वर्चुअलाइज़ेशन

Hypervisor क्या है?

परिभाषा

A hypervisor is the software layer that creates and runs virtual machines, allocating physical CPU, memory and IO between them. A type-1 hypervisor runs directly on the hardware; KVM is unusual in being a type-1 hypervisor implemented as a Linux kernel module, which lets it use the whole Linux driver ecosystem.

Hypervisor क्यों मायने रखता है

टाइप-1 हाइपरवाइज़र सीधे हार्डवेयर पर चलता है; KVM एक टाइप-1 हाइपरवाइज़र के रूप में असामान्य है जिसे लिनक्स कर्नेल मॉड्यूल के रूप में लागू किया गया है, जो इसे पूरे लिनक्स ड्राइवर पारिस्थितिकी तंत्र का उपयोग करने देता है।

व्यवहार में Hypervisor

जब आप KVM हाइपरवाइज़र पर सर्वर चला रहे होते हैं, तो आप वास्तविक हार्डवेयर आवंटन देखते हैं: vCPU, RAM, डिस्क I/O। आप इन्हें पैनल से समायोजित करते हैं, अक्सर बिना रिबूट के अतिरिक्त मेमोरी गर्म-जोड़ते हैं। इसे गलत करें होस्ट को ओवरकमिट करके, और आपके पड़ोसियों के शोरगुल वाले वर्कलोड आपके इंस्टेंस की CPU या IO को भूखा बना सकते हैं, जिससे एक पूरी तरह से कॉन्फ़िगर किया गया गेस्ट सुस्त हो जाता है। नेस्टेड वर्चुअलाइज़ेशन का मतलब है कि आप अपने हाइपरवाइज़र के अंदर एक हाइपरवाइज़र चला सकते हैं, परीक्षण के लिए सुविधाजनक, लेकिन यह प्रदर्शन खर्च करता है और आपकी अपनी संसाधन गणना को भ्रमित कर सकता है।

लोग Hypervisor के बारे में क्या गलत समझते हैं

आम गलती हाइपरवाइज़र को कंटेनर सीमा समझना है। ऐसा नहीं है। हाइपरवाइज़र आपको एक पूर्ण वर्चुअल मशीन देता है—आपका अपना कर्नेल, आपका अपना /proc, कोई साझा नेमस्पेस नहीं। लोग मान लेते हैं कि पड़ोसी की प्रक्रियाएँ अदृश्य हैं या कस्टम कर्नेल असंभव है, फिर सीमाओं से टकराते हैं। सुधार: KVM के साथ, आपको वास्तविक अलगाव और नियंत्रण मिलता है, इसलिए आप हाथ से बनी इमेज बूट कर सकते हैं या नेस्टेड वर्चुअलाइज़ेशन चला सकते हैं, जो कंटेनर नहीं कर सकते।

Hypervisor — सामान्य प्रश्न

टाइप-1 हाइपरवाइज़र का क्या मतलब है?

टाइप-1 हाइपरवाइज़र सीधे होस्ट हार्डवेयर पर चलता है, न कि किसी ऑपरेटिंग सिस्टम के ऊपर। KVM खास है क्योंकि यह Linux कर्नेल मॉड्यूल के रूप में लागू टाइप-1 हाइपरवाइज़र है, इसलिए यह हार्डवेयर प्रबंधन के लिए पूरे Linux ड्राइवर इकोसिस्टम का उपयोग कर सकता है। यह आपको बेयर-मेटल वर्चुअलाइज़ेशन का प्रदर्शन और Linux का लचीलापन देता है।

KVM, OpenVZ जैसे कंटेनरों से कैसे अलग है?

KVM सच्चा वर्चुअलाइज़ेशन प्रदान करता है: हर गेस्ट को अपना कर्नेल, अपना /proc मिलता है, और कोई साझा नेमस्पेस नहीं, इसलिए आपके पास पूर्ण रूट एक्सेस होता है और कस्टम कर्नेल चला सकते हैं। कंटेनर होस्ट कर्नेल और नेमस्पेस साझा करते हैं, जो आपकी क्षमताओं को सीमित करता है। KVM के साथ, आपको अलगाव और नियंत्रण मिलता है, जिसमें नेस्टेड वर्चुअलाइज़ेशन चलाने या कस्टम ISO बूट करने की क्षमता शामिल है।

Hypervisor कहाँ चर्चा में आता है

वर्चुअलाइज़ेशन से अधिक

KVM
KVM लिनक्स कर्नेल में निर्मित पूर्ण हार्डवेयर वर्चुअलाइज़ेशन है, जो प्रत्येक अतिथि को अपना कर्नेल और अन्य टेनेंट से हार्डवेयर-प्रवर्तित अलगाव देता है।
OpenVZ
OpenVZ कंटेनर-आधारित वर्चुअलाइज़ेशन है जिसमें प्रत्येक इंस्टेंस होस्ट कर्नेल साझा करता है, इसलिए अतिथि कर्नेल मॉड्यूल लोड नहीं कर सकते हैं या एक अलग ऑपरेटिंग सिस्टम नहीं चला सकते हैं।
LXC
LXC लिनक्स-नेटिव कंटेनरीकरण है जो नेमस्पेस और cgroups के साथ प्रक्रियाओं को अलग करता है जबकि होस्ट कर्नेल साझा करता है।
नेस्टेड वर्चुअलाइज़ेशन
नेस्टेड वर्चुअलाइज़ेशन एक वर्चुअल मशीन को स्वयं वर्चुअल मशीन चलाने देता है, अतिथि को प्रोसेसर वर्चुअलाइज़ेशन एक्सटेंशन उजागर करके।
vCPU
वीपीयू एक वर्चुअल प्रोसेसर है जो गेस्ट को प्रस्तुत होता है, जो भौतिक कोर या थ्रेड पर शेड्यूलिंग समय द्वारा समर्थित होता है।
cloud-init
cloud-init पहले बूट पर वर्चुअल मशीन को कॉन्फ़िगर करने का मानक तंत्र है, जो प्लेटफ़ॉर्म द्वारा प्रदान किए गए मेटाडेटा का उपयोग करता है।