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

LXC क्या है?

इसे भी कहा जाता है: Linux Containers
परिभाषा

LXC is Linux-native containerisation that isolates processes with namespaces and cgroups while sharing the host kernel. LXC is excellent inside a trust boundary you already own and weak as a multi-tenant boundary, because a kernel escape affects every container on the host.

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

LXC उस विश्वास सीमा के भीतर उत्कृष्ट है जो आपके पास है, और मल्टी-टेनेंट सीमा के रूप में कमजोर है, क्योंकि एक कर्नेल एस्केप होस्ट पर हर कंटेनर को प्रभावित करता है।

व्यवहार में LXC

LXC के साथ आपको एक हल्का कंटेनर मिलता है जो होस्ट कर्नेल साझा करता है। आप इसे lxc कमांड सूट या API के माध्यम से प्रबंधित करते हैं, CPU और मेमोरी दबाव के लिए cgroup आँकड़े देखते हैं। ट्यूनिंग ज्यादातर नेमस्पेस और cgroup सीमाएँ हैं: प्रक्रियाओं को पिन करना, मेमोरी सीमाएँ निर्धारित करना। गलत होने की कीमत जोखिम है: एक कर्नेल एस्केप होस्ट पर हर कंटेनर से समझौता करता है, इसलिए आप होस्ट को एक ही ट्रस्ट डोमेन मानते हैं, और आप होस्ट स्तर पर फेलओवर की योजना बनाते हैं, प्रति कंटेनर नहीं।

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

लोग LXC को KVM के बराबर सुरक्षा सीमा मानते हैं। यह नहीं है: कंटेनर एक कर्नेल साझा करते हैं, इसलिए उस कर्नेल में एक दोष किसी भी कंटेनर से बाहर निकल सकता है। सुधार यह है कि LXC आपके स्वामित्व वाली ट्रस्ट सीमा के भीतर अलगाव के लिए है, न कि बहु-किरायेदार होस्टिंग के लिए जहाँ किरायेदार शत्रुतापूर्ण हो सकते हैं।

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

क्या LXC Docker के समान है?

नहीं। Docker कंटेनर प्राइमिटिव जैसे LXC पर बनाता है लेकिन इमेज प्रबंधन, लेयरिंग और ऑर्केस्ट्रेशन जोड़ता है। LXC एक हल्के VM की तरह है: आप इसमें पूर्ण डिस्ट्रो चलाते हैं, और इसे systemd या init के साथ सीधे प्रबंधित करते हैं। Docker ऐप्स पैकेज करने के बारे में है; LXC सिस्टम वर्चुअलाइज़ करने के बारे में है।

क्या मैं कस्टम कर्नेल के साथ LXC चला सकता हूँ?

यह होस्ट पर निर्भर करता है। कुछ प्रदाता, जैसे OnionVPS, पूर्ण रूट देते हैं और कस्टम कर्नेल की अनुमति देते हैं, लेकिन LXC के साथ आप होस्ट कर्नेल साझा करते हैं, इसलिए कस्टम कर्नेल कंटेनर के लिए नहीं है। उसके लिए आप KVM का उपयोग करेंगे। LXC होस्ट द्वारा प्रदान किए गए कर्नेल संस्करण और कॉन्फ़िगरेशन से बंधा है।

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

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

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