प्लेन इंग्लिश में बताएं कि LXC क्या है और इसके लिए क्या उपयोगी है [बंद]


9
  • LXC क्या है?
  • यह किसके लिए उपयोगी है?
  • एलएक्ससी और सामान्य वर्चुअलाइजेशन के बीच अंतर क्या हैं?

8
आपने अब तक खुद को जानने में क्या कामयाब किया है?
औरोल

जवाबों:


24

यदि "सादा अंग्रेजी" से आपका मतलब अनैतिक लोगों से है, तो अंतर को आसानी से नहीं समझाया जा सकता है। यह बाल बहुत सावधानी से विचार किए बिना विभाजित करने के लिए बहुत ठीक है।

यदि "सादा अंग्रेजी" से आपका तात्पर्य प्रबंधकीय प्रकारों से है, जो तकनीकी लोगों से बात करते हैं, और इस प्रकार कम से कम तकनीकी विषयों की एक समझ है, तो मैं निम्नलिखित क्रिया प्रस्तुत करता हूं:


यह वर्चुअलाइजेशन का एक अलग रूप है।

यदि आप VMWare ESXi को देखते हैं, तो यह एक पूर्ण हाइपरवाइजर है जिसे पूर्ण वर्चुअलाइजेशन कहा जाता है। हार्डवेयर के शीर्ष पर चल रहे वर्चुअलाइज्ड सिस्टम के बीच एक बहुत छोटी परत होती है। पूर्ण हार्डवेयर वर्चुअलाइजेशन है, जहां वर्चुअल मशीन में चलने वाला ओएस हाइपरविजर से खुद को पूरी तरह से स्वतंत्र है और सभी हार्डवेयर के साथ प्रस्तुत किया जाता है, जिसकी वह अपेक्षा कर रहा है।

एक और कदम बढ़ाएं, और VMWare प्लेयर, वर्कस्टेशन, ESX (ESXi नहीं), या VMWare सर्वर जैसे कुछ को देखें, और आपके पास एक पूर्ण ऑपरेटिंग सिस्टम है जो हाइपरविजर भूमिका प्रदान करता है। हालांकि, वर्चुअल मशीनों को अभी भी वर्चुअल हार्डवेयर के पूर्ण सरणी के साथ प्रस्तुत किया जाता है।

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

LXC, या लिनक्स कंटेनर, अभी तक एक और कदम है। इस मामले में यह ठीक उसी ऑपरेटिंग सिस्टम के कई उदाहरण चला रहा है । कर्नेल समान हो सकता है, लेकिन प्रत्येक ओएस कंटेनर के लिए कई उपयोगकर्ता स्थान चल रहे हैं। प्रत्येक कंटेनर में एक अलग फाइल-सिस्टम हो सकता है या नहीं।

कंटेनर एक तरह से प्रक्रियाओं के बीच मजबूत सुरक्षा पृथक्करण प्रदान करने का एक तरीका प्रदान करते हैं जो सिस्टम में उपलब्ध नहीं है जिसमें समान उपयोगकर्ता स्थान है। यूनिक्स जैसे ऑपरेटिंग सिस्टम में काफी समय से 'चेरोट जेल' है, लेकिन यह प्रक्रिया को अलग करने या जेल में प्रक्रियाओं द्वारा खपत संसाधनों को सीमित करने की क्षमता प्रदान नहीं करता है। ऐसी प्रक्रियाओं को कंटेनरीकृत करके, संसाधन उपयोग को सीमित किया जा सकता है, असतत आईपी पते उन्हें सौंपे जा सकते हैं, और उपयोगकर्ता की शोषण करने वाली सुरक्षा कमजोरियां सिस्टम के बाकी हिस्सों से निहित हैं।

आप एलएक्ससी बनाम कुछ अन्य प्रकार के वर्चुअलाइजेशन का उपयोग कहां करेंगे? यह निर्भर करता है, लेकिन LXC को किसी भी अन्य विआयनीकरण विधि की तुलना में कम वर्चुअलाइजेशन-दंड प्रदान करना चाहिए क्योंकि यह एक ही कर्नेल है जो सभी हाइपरवाइजर कॉल्स की मध्यस्थता करने के बजाय एक हाइपरवाइजर के रूप में ओएस छवियों का एक गुच्छा है जो भौतिक हार्डवेयर से बात करने की उम्मीद करता है। इसलिए यदि आपके पास प्रसंस्करण का एक गुच्छा है जिसे समान OS संस्करण की आवश्यकता है, और अद्यतनों के लिए एक ही समय में रिबूट किया जा सकता है, तो LXC उस सभी को सुरक्षित और संसाधन प्रबंधन के साथ चलाने के लिए कम-लागत वाला तरीका प्रदान कर सकता है।


और भी बहुत कुछ।
निकोली

ठीक है, सिवाय इसके कि मैं बहुत निश्चित हूं कि आप VMWare ESX का गलत चित्रण कर रहे हैं। यह एक पूर्ण हाइपरविजर है जो नंगे धातु पर चलता है; यह सिर्फ एक लिनक्स कंसोल प्रस्तुत करता है। विकिपीडिया: "वर्तमान ईएसएक्स संस्करण 4.1 के माध्यम से, एक लिनक्स कर्नेल को सबसे पहले शुरू किया जाता है, [6] और इसका उपयोग विभिन्न प्रकार के विशिष्ट वर्चुअलाइजेशन घटकों को लोड करने के लिए किया जाता है, जिसमें वीएमवेयर के vmk कर्नेल घटक शामिल हैं। यह पहले बूट किया हुआ लिनक्स कर्नेल तब पहला चलने वाला आभासी बन जाता है। मशीन और सर्विस कंसोल कहा जाता है। " नॉवेल नेटवेयर की तरह - बूट लोडर के रूप में डॉस का उपयोग करने वाले बूट, और फिर एनडब्ल्यू कर्नेल रनटाइम के लिए नंगे धातु है।
mfinni

@mfinni "सादे अंग्रेजी" की मांग करने वाले लोगों से बात करते समय, उन जैसे भेद कम महत्वपूर्ण नहीं हैं। ESX / ESXi और प्लेयर दोनों अभी भी पूर्ण वर्चुअलाइजेशन हैं, अंतर यह है कि हाइपरविजर बैठता है धातु के कितने करीब है।
sysadmin1138

5

LXC एक ऐसा साधन है जिसके द्वारा कर्नेल में सिस्टम / प्रक्रियाओं को अलग किया जाता है। सिस्टम को "कंटेनर" में बंद कर दिया जाता है ताकि वह उस कंटेनर के बाहर किसी चीज के साथ बातचीत न कर सके। इस प्रकार लिनक्स कंटेनर नाम।

यह कई चीजों के लिए उपयोगी हो सकता है, जिनमें से एक मशीन पर चलने वाली सेवाओं को अलग करना होगा। यदि इनमें से किसी एक सेवा से छेड़छाड़ की जाती है, तो मेजबान प्रणाली स्वयं (अन्य सेवाओं के साथ अपने LXCs में चल रही है) अप्रभावित रहेगी। यह भी एक गूंगा साधन के रूप में इस्तेमाल किया जा सकता है प्रत्येक उपयोगकर्ता को अपने स्वयं के सिस्टम के लिए रूट एक्सेस देने के लिए, उनमें से कोई चिंता नहीं एक दूसरे के साथ बातचीत।

अधिकांश अन्य "सामान्य" वर्चुअलाइजेशन हार्डवेयर उपकरणों का अनुकरण करने की आवश्यकता के कारण संसाधन उपयोग का एक बड़ा ओवरहेड लगाते हैं। LXC को हार्डवेयर उपकरणों के लिए किसी भी प्रकार के एमुलेशन की आवश्यकता नहीं होती है, क्योंकि प्रत्येक LXC को हार्डवेयर तक सीमित / कोई सीधी पहुँच नहीं दी जाती है। प्रत्येक सिस्टम होस्ट पर "चल रहा है", लेकिन इसके कंटेनर के बाहर कुछ भी प्रभावित नहीं कर सकता है। इस प्रकार के वर्चुअलाइजेशन को ओएस-स्तर वर्चुअलाइजेशन (इसे Google) कहा गया है। जो अनिवार्य रूप से लिनक्स कंटेनर चलाने के लिए बहुत कम / गैर-मौजूद ओवरहेड का मतलब है। तो आपके पास किसी दिए गए मशीन पर सैकड़ों LXCs हो सकते हैं, लेकिन आप "सामान्य" वर्चुअल मशीन सॉफ़्टवेयर का उपयोग करके संसाधनों से बहुत जल्दी बाहर निकल जाएंगे।

मैं वास्तव में Linux-Vserver से अधिक परिचित हूं लेकिन सिद्धांत बहुत समान है।


3

इसे समझने का सबसे सरल तरीका यह सीखना है कि चुरोट क्या करता है। चेरोट आपको यूनिक्स जैसी प्रणाली के एक फ़ोल्डर को "लॉग इन" करने देता है, जैसे कि यह अपने आप में पूर्ण सिस्टम था। दूसरे शब्दों में:

यदि आपके पास है:

 /
   /boot
   /etc
   /home
   ...

आदि, तो आप एक some_new_install निर्देशिका जोड़ सकते हैं:

 /
   /some_new_install
      /boot
      /etc
      /home
      /usr
      ...
   /boot
   /etc
   /home
   /usr
      ...

और लॉग इन / some_new_install। तब / some_new_install / etc उदाहरण के लिए नया / आदि है, और मूल / आदि छिपा हुआ है, और (ज्यादातर) दुर्गम है। / usr / बिन मूल से अलग हो सकता है, विभिन्न कार्यक्रमों के साथ। MySQL / usr / bin / mysql में एक ही प्रोग्राम हो सकता है, लेकिन / var / lib / mysql में अलग-अलग डेटा के साथ।

फाइलसिस्टम को वर्चुअलाइज किया गया है; आपने अपने मूल फाइल सिस्टम को विभाजित कर दिया है, अपने संसाधनों को साझा कर रहे हैं, उन संसाधनों को अन्य वर्चुअलाइज्ड संसाधनों से अलग कर रहे हैं।

यह काफी शानदार है। यूनिक्स की एक पूरी नई, आभासी प्रति को चलाने के बजाय, बस एक अतिरिक्त प्रोग्राम को चलाने के लिए, आप एक वर्चुअल फाइलसिस्टम में कूद सकते हैं और इसे एक ही कर्नेल, एक ही लाइब्रेरी (यदि आपने सिमलिंक का उपयोग किया है) पर चला सकते हैं, आदि तो यह MUCH से अधिक कुशल है। Xen, या VirtualBox की तरह कुछ।

समस्या यह है कि, अगर उन प्रोग्रामों में से एक, MySQL, नट जाता है और आपके सभी CPU का उपयोग करना शुरू कर देता है और डिस्क पर स्वैप करता है, तो यह अभी भी बाकी मशीन को प्रभावित करने वाला है, क्योंकि केवल फाइलसिस्टम को वर्चुअलाइज्ड किया गया था, सीपीयू को नहीं या अंतर्निहित डिस्क प्रदर्शन। IP पते और पोर्ट या तो वर्चुअलाइज़ नहीं किए जाते हैं, इसलिए यदि दो प्रोग्राम नेटवर्क पर जानकारी भेजते हैं, तो वे एक ही IP से ऐसा करेंगे, संभावित रूप से विरोध हो सकता है। इसी तरह, यदि mysql की दो प्रतियां एक पोर्ट पर सुनने का प्रयास करती हैं, तो दूसरा विफल हो जाएगा, क्योंकि पोर्ट उपयोग में है।

LXC इसे न केवल फाइलसिस्टम के वर्चुअलाइजेशन द्वारा हल करता है, बल्कि नेटवर्क ips / पोर्ट्स / इंटरफेस, CPU, मेमोरी, आदि भी।

LXC पूर्ण आभासी मशीनों के रूप में काफी सुरक्षित नहीं है, लेकिन आम तौर पर, यह बेहतर समाधान है। आखिरकार, ऑपरेटिंग सिस्टम सभी संसाधनों को सुरक्षित रूप से साझा करने के बारे में हैं। ज्यादातर समय, यह करने के लिए कई ओएस चलाने के लिए मूर्खतापूर्ण है - हमें बेहतर अलगाव के साथ बस एक बेहतर ओएस की आवश्यकता है। यही एलएक्ससी और इसी तरह के उपकरण प्रदान करते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.