वर्चुअलाइज़ेशन
Nested virtualisation क्या है?
Nested virtualisation lets a virtual machine itself run virtual machines, by exposing the processor virtualisation extensions to the guest. It is required for Proxmox VE, VM-based CI jobs and some Docker configurations. Many providers disable it, which is the usual reason those workloads fail elsewhere.
Nested virtualisation क्यों मायने रखता है
यह Proxmox VE, VM-आधारित CI जॉब्स और कुछ Docker कॉन्फ़िगरेशन के लिए आवश्यक है। कई प्रदाता इसे अक्षम कर देते हैं, जो आमतौर पर अन्यत्र उन वर्कलोड के विफल होने का कारण है।
व्यवहार में Nested virtualisation
जब आप नेस्टेड वर्चुअलाइज़ेशन चलाते हैं, तो आप KVM गेस्ट के अंदर एक हाइपरवाइज़र बूट करते हैं और होस्ट CPU के वर्चुअलाइज़ेशन एक्सटेंशन पास करते हैं। आप गेस्ट में /proc/cpuinfo में svm या vmx फ्लैग जांचेंगे। यदि वे अनुपस्थित हैं, तो आपका आंतरिक हाइपरवाइज़र सॉफ़्टवेयर एमुलेशन पर वापस आ जाता है, जो प्रदर्शन को परिमाण के क्रम से काट सकता है। आपको वे फ्लैग पाने के लिए जेनेरिक मॉडल के बजाय 'host' CPU प्रकार सक्षम करने की भी आवश्यकता हो सकती है। इसे गलत करें और आपका Proxmox या CI वर्कलोड रेंगता है।
लोग Nested virtualisation के बारे में क्या गलत समझते हैं
लोग मानते हैं कि नेस्टेड वर्चुअलाइज़ेशन केवल VM में Windows जैसे पूर्ण OS चलाने के लिए मायने रखता है। सुधार: यह Docker के डिफ़ॉल्ट ओवरले नेटवर्किंग और कुछ कर्नेल मॉड्यूल को भी तोड़ता है, क्योंकि वे गेस्ट के अंदर वर्चुअलाइज़ेशन सुविधाओं पर निर्भर करते हैं। इसलिए एक कंटेनर वर्कलोड ऐसे प्रदाता पर विफल हो सकता है जो नेस्टिंग अक्षम करता है, भले ही आपने कभी VM चलाने का इरादा न किया हो।
Nested virtualisation — सामान्य प्रश्न
क्या मैं नेस्टेड VM के अंदर Docker चला सकता हूँ?
हाँ, और यह सबसे आम कारण है जिसके लिए लोगों को नेस्टेड वर्चुअलाइज़ेशन की आवश्यकता होती है। Docker की डिफ़ॉल्ट ब्रिज नेटवर्किंग iptables और कर्नेल मॉड्यूल का उपयोग करती है जो CPU वर्चुअलाइज़ेशन एक्सटेंशन उजागर किए बिना अलग व्यवहार कर सकते हैं। हमारी KVM योजनाओं में नेस्टेड वर्चुअलाइज़ेशन शामिल है, इसलिए आपके Docker कंटेनर अपेक्षित रूप से चलते हैं।
मैं कैसे जांचूं कि नेस्टेड वर्चुअलाइज़ेशन सक्षम है या नहीं?
अपने VM के अंदर, grep -E '(svm|vmx)' /proc/cpuinfo चलाएं। यदि आप फ्लैग देखते हैं, तो नेस्टिंग उपलब्ध है। यदि नहीं, तो हाइपरवाइज़र उन्हें उजागर नहीं कर रहा है, जिसका आमतौर पर मतलब है कि प्रदाता ने इसे अक्षम कर दिया है।
Nested virtualisation कहाँ चर्चा में आता है
- Can I run nested virtualisation on a VPS? हाँ। हर OnionVPS इंस्टेंस पर नेस्टेड वर्चुअलाइजेशन सक्षम है, इसलिए आप अपने इंस्टेंस के अंदर KVM गेस्ट चला सकते हैं, Proxmox VE इंस्टॉल कर सकते हैं, या Dock…
- सबसे सस्ता VPS कौन सा है जो वास्तव में उपयोग योग्य है? लगभग $4 प्रति माह में 1 vCPU, 1 GB RAM और 20 GB NVMe वास्तविक KVM वर्चुअलाइजेशन पर मिलता है। यह वास्तव में WireGuard VPN, DNS रिज़ॉल्वर, Tor रिले, छोटे बॉट…
- KVM वर्चुअलाइज़ेशन क्या है? KVM (कर्नेल-आधारित वर्चुअल मशीन) Linux कर्नेल में निर्मित पूर्ण हार्डवेयर वर्चुअलाइज़ेशन है, जो प्रोसेसर एक्सटेंशन का उपयोग करके प्रत्येक गेस्ट को अपने कर्…
- KVM बनाम OpenVZ: वर्चुअलाइज़ेशन प्रकार क्यों मायने रखता है KVM पूर्ण हार्डवेयर वर्चुअलाइज़ेशन है: आपका इंस्टेंस अपना स्वयं का कर्नेल चलाता है और होस्ट को नहीं देख सकता। OpenVZ और LXC कंटेनर तकनीक हैं जो होस्ट कर्ने…
वर्चुअलाइज़ेशन से अधिक
- KVM
- KVM लिनक्स कर्नेल में निर्मित पूर्ण हार्डवेयर वर्चुअलाइज़ेशन है, जो प्रत्येक अतिथि को अपना कर्नेल और अन्य टेनेंट से हार्डवेयर-प्रवर्तित अलगाव देता है।
- OpenVZ
- OpenVZ कंटेनर-आधारित वर्चुअलाइज़ेशन है जिसमें प्रत्येक इंस्टेंस होस्ट कर्नेल साझा करता है, इसलिए अतिथि कर्नेल मॉड्यूल लोड नहीं कर सकते हैं या एक अलग ऑपरेटिंग सिस्टम नहीं चला सकते हैं।
- LXC
- LXC लिनक्स-नेटिव कंटेनरीकरण है जो नेमस्पेस और cgroups के साथ प्रक्रियाओं को अलग करता है जबकि होस्ट कर्नेल साझा करता है।
- हाइपरवाइज़र
- हाइपरवाइज़र सॉफ़्टवेयर परत है जो वर्चुअल मशीन बनाता है और चलाता है, उनके बीच भौतिक CPU, मेमोरी और IO आवंटित करता है।
- vCPU
- वीपीयू एक वर्चुअल प्रोसेसर है जो गेस्ट को प्रस्तुत होता है, जो भौतिक कोर या थ्रेड पर शेड्यूलिंग समय द्वारा समर्थित होता है।
- cloud-init
- cloud-init पहले बूट पर वर्चुअल मशीन को कॉन्फ़िगर करने का मानक तंत्र है, जो प्लेटफ़ॉर्म द्वारा प्रदान किए गए मेटाडेटा का उपयोग करता है।