2015-07-06 9 views
10

कई प्रक्रियाओं के बीच कर्नेल द्वारा प्रदान किए गए ऑपरेटिंग सिस्टम कंटेनर द्वारा प्रदान किया गया अलगाव कैसा है?ओएस कंटेनर अलगाव बनाम प्रक्रिया अलगाव

प्रत्येक प्रक्रिया पहले से ही उसी कर्नेल पर चल रही किसी भी अन्य प्रक्रिया से अलग है। यह अलगाव कंटेनरों द्वारा प्रदान किए गए अलगाव से अलग कैसे है?

+0

क्या आपका मतलब है कि अलगाव कैसे काम करता है? – Salman

+1

कंटेनर न केवल अलगाव प्रदान करते हैं। वे उनके साथ जुड़े एक संपूर्ण पदानुक्रमिक प्रबंधन प्रणाली के साथ तैनात-सक्षम वातावरण भी हैं। – MatBailie

उत्तर

1

यदि "ऑपरेटिंग सिस्टम कंटेनर" से आपका मतलब डॉकर्स की तरह कुछ है, तो मेरा एन्वेयर उस पर है।

डॉकर्स पर आप उसी मशीन पर सेट किए गए प्रत्येक कंटेनर के लिए मेमोरी और सीपीयू उपयोग को सीमित कर सकते हैं।

https://docs.docker.com/engine/admin/resource_constraints/

प्रक्रियाओं पर आप नौकरी वस्तुओं के साथ इसी तरह कुछ कर सकते हैं, वहीं वे एप्लिकेशन को आप में कोडित किया जाना चाहिए: यहाँ एक कड़ी बताते हैं कि कैसे और विभिन्न संभावनाओं के कुछ है।

https://msdn.microsoft.com/en-us/library/ms684161(VS.85).aspx

आशा मैं अच्छी तरह से सवाल समझा।

1

प्रत्येक प्रक्रिया पहले से ही उसी कर्नेल पर चल रही किसी अन्य प्रक्रिया से अलग हो चुकी है।

क्या वे हैं? kill -9 कैसे काम करता है? अगर मेरे पास पर्याप्त अनुमति है, तो मैं बस किसी भी प्रक्रिया को महसूस कर सकता हूं और ज़ैप कर सकता हूं।

डोकर, RKT, और LXC तरह कंटेनर प्रौद्योगिकियों विशेष रूप से दो लिनक्स कर्नेल सुविधाओं का उपयोग "कन्टेनीकरण" प्राप्त करने के लिए।

पहला namespaces है। विकिपीडिया प्रविष्टि के उद्घाटन blurb से:

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

तो मैं, नामस्थान उपयोग कर सकते हैं उदाहरण के लिए, क्या एक प्रक्रिया को देख सकते हैं या जो एक प्रक्रिया कर्नेल स्तर पर करने के लिए, बात कर सकते हैं सीमित करने के लिए। मैं इंटरप्रोसेस संचार और फ़ाइल सिस्टम दृश्यता को इस तरह से कॉन्फ़िगर कर सकता हूं कि मेरे kill -9 कमांड एक अलग नेमस्पेस में रहने वाली प्रक्रियाओं को नहीं देख पा रहे हैं, और इस तरह वे उन्हें केवल मार नहीं सकते हैं।

दूसरा control groups है, जो संसाधन सीमा और अलगाव के लिए अनुमति देता है। Cgroups हमें एक प्रक्रिया बताते हैं "आप केवल 512 एमबी मेमोरी और 10% होस्ट सीपीयू उपयोग कर सकते हैं"। अगर मैं कुछ बदसूरत आदेश है कि सीपीयू के 99% उपयोग करने में सक्षम है, मेजबान पर अन्य प्रक्रियाओं हर अब और फिर सीपीयू का 1% साझा करने की आवश्यकता के खिलाफ अलग-थलग नहीं किया जाएगा। Cgroups के साथ, मुझे लगता है कि हालांकि बदल सकते हैं। मैं अपने बदसूरत कमांड को बता सकता हूं "आपको किसी भी समय सीपीयू का 25% मिलता है" और यह सब कुछ हो सकता है।

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

संबंधित मुद्दे