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

KVM क्या है?

इसे भी कहा जाता है: Kernel-based Virtual Machine
परिभाषा

KVM is full hardware virtualisation built into the Linux kernel, giving each guest its own kernel and hardware-enforced isolation from other tenants. Because a KVM guest runs its own kernel, it can load kernel modules, run non-Linux operating systems, use real swap and support nested virtualisation.

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

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

व्यवहार में KVM

जब आप KVM सर्वर चलाते हैं, तो सबसे पहले गेस्ट में /proc/cpuinfo जांचें—यदि यह होस्ट के फ्लैग्स से मेल नहीं खाता, तो आप संभवतः परावर्चुअलाइज़्ड शॉर्टकट देख रहे हैं, पूर्ण KVM नहीं। आप मेमोरी आवंटन वास्तविक आरक्षण के साथ सेट करते हैं: ओवरकमिट करने पर गेस्ट का OOM किलर चालू हो जाएगा जबकि होस्ट निष्क्रिय दिखता है। यदि आप नेस्टेड वर्चुअलाइज़ेशन गलत कॉन्फ़िगर करते हैं, तो आप हार्डवेयर-सहायता प्राप्त पेजिंग खो देते हैं और गेस्ट गति के एक अंश पर चलते हैं। गलत करने पर आप प्रदर्शन खो देते हैं जिसे आप रीबूट के बिना पुनर्प्राप्त नहीं कर सकते।

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

लोग मान लेते हैं कि KVM, OpenVZ या LXC के समान है क्योंकि दोनों Linux कर्नेल का उपयोग करते हैं। सुधार यह है कि KVM प्रत्येक गेस्ट को अपना कर्नेल देता है, जबकि कंटेनर होस्ट के कर्नेल को साझा करते हैं। आप केवल KVM पर कर्नेल मॉड्यूल लोड कर सकते हैं और गैर-Linux OS चला सकते हैं। साझा-नेमस्पेस अलगाव हार्डवेयर-लागू नहीं है।

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

KVM का प्रदर्शन पर क्या मतलब है?

KVM का हार्डवेयर वर्चुअलाइज़ेशन मतलब है कि प्रत्येक गेस्ट का अपना कर्नेल होता है, इसलिए CPU और मेमोरी के लिए प्रदर्शन लगभग-नेटिव होता है। मेमोरी वास्तव में आरक्षित होती है, साझा नहीं। आप कंटेनरों की तुलना में पूर्वानुमानित, पृथक थ्रूपुट की उम्मीद कर सकते हैं।

क्या मैं KVM पर Windows चला सकता हूँ?

हाँ, KVM गेस्ट अपना कर्नेल चलाता है, इसलिए यह Windows जैसे गैर-Linux ऑपरेटिंग सिस्टम चला सकता है। आपको ISO अपलोड करना होगा और VNC कंसोल संलग्न करना होगा। Windows Server लाइसेंस कुछ क्षेत्रों में वैकल्पिक अतिरिक्त के रूप में उपलब्ध है।

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

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

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