ओपनवीजेड

ओपनवीजेड (ओपेन विरचोज़ज़ो) लिनक्स के लिए ऑपरेटिंग-सिस्टम-स्तरीय वर्चुअलाइजेशन तकनीक है। यह भौतिक सर्वर को कई पृथक ऑपरेटिंग सिस्टम उदाहरण चलाने की अनुमति देता है, जिन्हें कंटेनर आभासी स्वगत सर्वर (वीपीएस), वर्चुअल वातावरण (वीई) कहा जाता है। ओपनवीजेड सोलारिस कंटेनर और एलएक्ससी के समान है।

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

गिरी
ओपनवीजेड गिरी Linux गिरी है, जिसे ओपनवीजेड कंटेनरों के लिए समर्थन जोड़ने के लिए संशोधित किया गया है। संशोधित गिरी वर्चुअलाइजेशन, अलगाव, संसाधन प्रबंधन और आवेदन चेकपॉइंटिंग प्रदान करता है। vzctl 4.0 के रूप में, ओपनवीजेड कम फीचर सेट के साथ, अनपैच्ड Linux 3.x गिरी के साथ काम कर सकता है।

वर्चुअलाइजेशन और अलगाव
प्रत्येक कंटेनर अलग इकाई है, और बड़े पैमाने पर भौतिक सर्वर के रूप में व्यवहार करता है। प्रत्येक का अपना है: फाइलें: सिस्टम पुस्तकालय (कम्प्यूटिंग), अनुप्रयोग प्रक्रिया सामग्री, वर्चुअलाइज्ड  और , वर्चुअलाइज्ड लॉक (कंप्यूटर साइंस), आदि।

उपयोगकर्ता और समूह: प्रत्येक कंटेनर का अपना सुपर उपयोगकर्ता होता है, साथ ही अन्य उपयोगकर्ता (कंप्यूटिंग) और समूह (कंप्यूटिंग)।

प्रोसेस ट्री: कंटेनर केवल अपनी प्रक्रिया (कंप्यूटिंग) देखता है (से शुरू होता है ). प्रक्रिया पहचानकर्ताओं का वर्चुअलाइजेशन किया जाता है, ताकि init PID 1 जैसा होना चाहिए।


 * नेटवर्क: वर्चुअल कंप्यूटर नेटवर्किंग डिवाइस, जो कंटेनर को अपना आईपी पता रखने की अनुमति देता है, साथ ही नेटफिल्टर/आईपीटेबल्स|नेटफिल्टर, और मार्ग नियम।

उपकरण: यदि आवश्यक हो, तो किसी भी कंटेनर को वास्तविक उपकरणों जैसे नेटवर्क इंटरफ़ेस नियंत्रक, आनुक्रमिक द्वार, डिस्क विभाजन आदि तक पहुंच प्रदान की जा सकती है।

आईपीसी ऑब्जेक्ट्स: सहभाजीत मेमोरी (इंटरप्रोसेस कम्युनिकेशन), सेमाफोर (प्रोग्रामिंग), संदेश देना

संसाधन प्रबंधन
ओपनवीजेड संसाधन प्रबंधन में चार घटक होते हैं: दो-स्तरीय डिस्क कोटा, उचित CPU अनुसूचक, डिस्क I/O अनुसूचक, और उपयोगकर्ता बीन काउंटर (नीचे देखें)। इन संसाधनों को कंटेनर रन टाइम (प्रोग्राम जीवनचक्र चरण) के दौरान बदला जा सकता है, जिससे बूटिंग की आवश्यकता समाप्त हो जाती है।

दो-स्तरीय डिस्क कोटा
प्रत्येक कंटेनर का अपना डिस्क कोटा हो सकता है, जिसे डिस्क ब्लॉक और इनोड्स (मोटे तौर पर फाइलों की संख्या) के संदर्भ में मापा जाता है। कंटेनर के भीतर, UNIX प्रति-उपयोगकर्ता और प्रति-समूह डिस्क कोटा सेट करने के लिए मानक टूल का उपयोग करना संभव है।

सीपीयू अनुसूचक
ओपनवीजेड में CPU शेड्यूलर फेयर-शेयर शेड्यूलिंग रणनीति का दो-स्तरीय कार्यान्वयन है।

पहले स्तर पर, प्रति-कंटेनर cpuunits मानों के आधार पर, अनुसूचक यह तय करता है कि किस कंटेनर को CPU टाइम स्लाइस देना है। दूसरे स्तर पर मानक लिनक्स अनुसूचक निर्धारित करता है कि मानक लिनक्स प्रक्रिया प्राथमिकताओं का उपयोग करके उस कंटेनर में कौन सी प्रक्रिया को चलाना है।

प्रत्येक कंटेनर में सीपीयू के लिए अलग-अलग मान निर्धारित करना संभव है। वास्तविक CPU समय इन मानों के अनुपात में वितरित किया जाएगा।

उपरोक्त के अलावा, ओपनवीजेड प्रदान करता है के तरीके:
 * सख़्त CPU सीमा निर्धारित करें, जैसे कि कुल CPU समय का 10% ;
 * कंटेनर के लिए उपलब्ध CPU कोर की संख्या सीमित करें ;
 * कंटेनर को सीपीयू के विशिष्ट सेट से बांधें.

आई/ओ अनुसूचक
ऊपर वर्णित CPU अनुसूचक के समान, ओपनवीजेड में I/O अनुसूचक|I/O अनुसूचक भी दो-स्तरीय है, जेन्स ्सबो के CFQ I/O अनुसूचक का इसके दूसरे स्तर पर उपयोग करता है।

प्रत्येक कंटेनर को I/O प्राथमिकता दी जाती है, और अनुसूचक निर्दिष्ट प्राथमिकताओं के अनुसार उपलब्ध I/O बैंडविड्थ वितरित करता है। इस प्रकार कोई ल कंटेनर I/O चैनल को संतृप्त नहीं कर सकता है।

उपयोगकर्ता बीन काउंटर
उपयोगकर्ता बीनकाउंटर्स प्रति-कंटेनर काउंटरों, सीमाओं और गारंटी का सेट है, जिसका उद्देश्य ल कंटेनर को सिस्टम संसाधनों पर ाधिकार करने से रोकना है। वर्तमान ओपनवीजेड गिरी (RHEL6-आधारित 042stab*) में दो प्राथमिक पैरामीटर (रैम और स्वैप, a.k.a. physpages और swappages) हैं, और अन्य वैकल्पिक हैं। अन्य संसाधन ज्यादातर मेमोरी और विभिन्न इन-गिरी ऑब्जेक्ट हैं जैसे कि शेयर्ड मेमोरी (इंटरप्रोसेस कम्युनिकेशन) | इंटर-प्रोसेस कम्युनिकेशन शेयर्ड मेमोरी सेगमेंट और नेटवर्क बफ़र्स। प्रत्येक संसाधन से देखा जा सकता है  और इसके साथ जुड़े पांच मूल्य हैं: वर्तमान उपयोग, अधिकतम उपयोग (कंटेनर के जीवनकाल के लिए), बाधा, सीमा और असफल काउंटर। बाधा और सीमा का अर्थ पैरामीटर-निर्भर है; संक्षेप में, उन्हें सॉफ्ट लिमिट और हार्ड लिमिट के रूप में माना जा सकता है। यदि कोई संसाधन सीमा तक पहुँचता है, तो उसके लिए विफल काउंटर बढ़ा दिया जाता है। यह मालिक को कंटेनर में /proc/user_beancounters की निगरानी करके समस्याओं का पता लगाने की अनुमति देता है।

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

सीमाएं
डिफ़ॉल्ट रूप से, ओपनवीजेड वास्तविक भौतिक उपकरणों तक कंटेनर की पहुंच को प्रतिबंधित करता है (इस प्रकार कंटेनर को हार्डवेयर-स्वतंत्र बनाता है)। ओपनवीजेड व्यवस्थापक विभिन्न वास्तविक उपकरणों, जैसे डिस्क ड्राइव, USB पोर्ट, के लिए कंटेनर ्सेस को सक्षम कर सकता है। पीसीआई डिवाइस या भौतिक नेटवर्क कार्ड।

अक्सर तैनाती में प्रतिबंधित होता है (चूंकि लूप डिवाइस गिरी थ्रेड्स का उपयोग करते हैं जो सुरक्षा समस्या हो सकती है), जो डिस्क छवियों को माउंट करने की क्षमता को प्रतिबंधित करता है। वर्क-अराउंड यूजरस्पेस में फाइलसिस्टम का उपयोग करना है।

ओपनवीजेड PPP (जैसे PPTP/L2TP) और TUN/TAP पर आधारित केवल कुछ VPN तकनीक प्रदान करने तक सीमित है। IPsec गिरी 2.6.32 के बाद से कंटेनरों के अंदर समर्थित है।

2007 में EasyVZ नामक ग्राफिकल यूज़र इंटरफ़ेस का प्रयास किया गया था, लेकिन यह संस्करण 0.1 से आगे नहीं बढ़ा। संस्करण 3.4 तक, प्रॉक्समॉक्स वर्चुअल एनवायरनमेंट को जीयूआई के साथ ओपनवीजेड-आधारित सर्वर वर्चुअलाइजेशन वातावरण के रूप में इस्तेमाल किया जा सकता है, हालांकि बाद के संस्करण एलएक्ससी में बदल गए।

यह भी देखें

 * प्लेटफॉर्म वर्चुअलाइजेशन सॉफ्टवेयर की तुलना
 * ऑपरेटिंग-सिस्टम-लेवल वर्चुअलाइजेशन
 * प्रॉक्समॉक्स वर्चुअल एनवायरनमेंट