रबर हाइपरवाइजर. हम Linux में QEMU-KVM को वर्चुअलाइज़ करने के लिए तार्किक समूहों का उपयोग करते हैं। KVM वर्चुअलाइजेशन क्या है लिनक्स कर्नेल के लिए वर्चुअलाइजेशन की विशेषताएं

💖क्या आपको यह पसंद है?लिंक को अपने दोस्तों के साथ साझा करें

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

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

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

वास्तव में वर्चुअलाइजेशन कई प्रकार के होते हैं:

  • सॉफ्टवेयर वर्चुअलाइजेशन;
  • हार्डवेयर वर्चुअलाइजेशन;
  • ऑपरेटिंग सिस्टम स्तर वर्चुअलाइजेशन.

वर्चुअलाइजेशन, बदले में, होता है भरा हुआऔर आंशिक.

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

हार्डवेयर वर्चुअलाइजेशन- एक प्रकार जो विशेष हार्डवेयर निर्देश, विशेष रूप से प्रोसेसर निर्देश प्रदान करता है। आपको अतिथि ओएस को दरकिनार कर क्वेरी निष्पादित करने और उन्हें सीधे हार्डवेयर पर निष्पादित करने की अनुमति देता है। (केवीएम वर्चुअलाइजेशन, एक्सईएन वर्चुअलाइजेशन, पैरेलल्स, वीएमवेयर, वर्चुअलबॉक्स)

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

यह लेख विचार करेगा हार्डवेयर वर्चुअलाइजेशन,और विशेष रूप से KVM वर्चुअलाइजेशन।

योजना 1. - हार्डवेयर के साथ वर्चुअल मशीन घटकों की सहभागिता

लिनक्स कर्नेल के लिए वर्चुअलाइजेशन की विशेषताएं

प्रत्यक्ष हार्डवेयर अनुरोधों को निष्पादित करने के लिए, OS में एक लाइब्रेरी होनी चाहिए जो इन हार्डवेयर अनुरोधों को सीधे भेजेगी। लंबे समय तक, लिनक्स-आधारित प्लेटफ़ॉर्म पर, कोई अंतर्निहित वर्चुअलाइज़ेशन सिस्टम (अंतर्निहित हाइपरवाइज़र) मौजूद ही नहीं था। हार्डवेयर वर्चुअलाइजेशन तकनीक का समर्थन करने वाले प्रत्येक वर्चुअलाइजेशन सॉफ़्टवेयर निर्माता को लिनक्स कर्नेल (वर्चुअलबॉक्स में vboxdrv, VMWare में vmware-service, आदि) के लिए अपने स्वयं के मॉड्यूल बनाने के लिए मजबूर किया गया था, स्वाभाविक रूप से, यह हमेशा के लिए नहीं रह सका, और Qumranet, Inc., जो था फिर राधात ने ओपन वर्चुअलाइजेशन एलायंस बनाया, जिसे लिनक्स कर्नेल के लिए बुनियादी हाइपरवाइजर की कमी की समस्या को हल करने के लिए माना गया था। इस तरह इसे बनाया गया सूत्र केवीएमया कर्नेल-आधारित वर्चुअल मशीन।

कार्यान्वयन

KVM हाइपरवाइज़र एक लोड करने योग्य Linux कर्नेल मॉड्यूल है जिसे Linux x86 प्लेटफ़ॉर्म पर वर्चुअलाइजेशन प्रदान करने के लिए डिज़ाइन किया गया है। मॉड्यूल में स्वयं वर्चुअलाइजेशन घटक (kvm.ko), और प्रोसेसर-विशिष्ट लोड करने योग्य मॉड्यूल kvm-amd.ko या kvm-intel.ko शामिल होता है।

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

KVM स्वयं अनुकरण नहीं करता है. इसके बजाय, उपयोगकर्ता स्थान में चल रहा प्रोग्राम वर्चुअल मशीन अतिथि के पता स्थान को कॉन्फ़िगर करने के लिए /dev/kvm इंटरफ़ेस का उपयोग करता है, और इसके माध्यम से I/O डिवाइस और वीडियो एडाप्टर का अनुकरण करता है।

KVM वर्चुअल मशीनों को QEMU, VMware और अन्य ऑपरेटिंग सिस्टम वाले असंशोधित डिस्क छवियों का उपयोग करने की अनुमति देता है। प्रत्येक वर्चुअल मशीन का अपना वर्चुअल हार्डवेयर होता है: नेटवर्क कार्ड, डिस्क, वीडियो कार्ड और अन्य डिवाइस।

प्रयोग

इस हाइपरवाइज़र का उपयोग करने के लिए कई कार्यान्वयन हैं। कुछ संपूर्ण विशिष्ट पुस्तकालय हैं, अन्य सरल ग्राफ़िकल अनुप्रयोगों का रूप लेते हैं।

स्पष्टता के लिए, हम लाइब्रेरी पर आधारित KVM वर्चुअलाइजेशन पर विचार करते हैं गुण-प्रबंधक।

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

योजना 2. - लिबवर्ट घटकों की परस्पर क्रिया

QEMUआपको क्लाइंट सिस्टम पर हाइपरवाइज़र को कॉल करने के लिए एक फ़्रेम बनाने की अनुमति देता है। यह प्रोग्राम कमांड लाइन कॉल तर्कों के साथ कॉन्फ़िगर किया गया है और काफी हल्का और सरल है।

कई ग्राफ़िकल शेल भी हैं, जैसे सूक्ति-बक्से.

निष्कर्ष

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

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

केवीएम हाइपरवाइजर

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

एक्सईएन हाइपरवाइजर

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

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

अध्ययन

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

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

परिणाम

परीक्षण सॉफ्टवेयर को छोड़कर, अकेले हार्डवेयर पर स्थित वीएम के परीक्षण परिणामों को मापने पर आधारित था। वर्चुअलाइजेशन के बिना दो सर्वरों के प्रदर्शन में विचलन आधे प्रतिशत से भी कम था।

पहले उम्मीदवार, केवीएम ने हार्डवेयर प्रदर्शन की तुलना में औसतन डेढ़ प्रतिशत कम प्रदर्शन दिखाया। 7-ज़िप परीक्षण में, यह हाइपरवाइज़र लगभग 3 प्रतिशत धीमा निकला, और पोस्टमार्क परीक्षण में यह हार्डवेयर की तुलना में 4 प्रतिशत से अधिक तेज़ था। ज़ेन के परिणाम बदतर थे; इसने किसी भी परीक्षण में अपने प्रतिद्वंद्वी से बेहतर प्रदर्शन नहीं किया, तीन परीक्षणों में हार्डवेयर से 2.5 प्रतिशत पीछे रहा, और बाकी में और भी खराब प्रदर्शन किया। केवीएम की तरह, पोस्टमार्क परीक्षण में सबसे मजबूत विचलन सामने आया था, लेकिन ज़ेन अपने प्रतिद्वंद्वी की तरह हार्डवेयर से आगे नहीं निकल पाया, लेकिन लगभग 15 प्रतिशत से पिछड़ गया। बार-बार किए गए परीक्षण के परिणाम पिछले वाले से 2 प्रतिशत से अधिक भिन्न नहीं हुए। आप तालिका में परीक्षा परिणाम अधिक विस्तार से देख सकते हैं:

जमीनी स्तर

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

इस परिचयात्मक लेख में, मैं सेवा विकास प्रक्रिया में उपयोग किए जाने वाले सभी सॉफ़्टवेयर टूल का संक्षेप में परिचय दूंगा। निम्नलिखित लेखों में उन पर अधिक विस्तार से चर्चा की जाएगी।

क्यों ? यह ऑपरेटिंग सिस्टम मेरे करीब और समझने योग्य है, इसलिए वितरण चुनते समय कोई पीड़ा, पीड़ा या उछाल नहीं आया। Red Hat Enterprise Linux पर इसका कोई विशेष लाभ नहीं है, लेकिन एक परिचित प्रणाली के साथ काम करने का निर्णय लिया गया था।

यदि आप समान तकनीकों का उपयोग करके स्वतंत्र रूप से बुनियादी ढांचे को तैनात करने की योजना बना रहे हैं, तो मैं आपको आरएचईएल लेने की सलाह दूंगा: अच्छे दस्तावेज़ीकरण और अच्छी तरह से लिखे गए एप्लिकेशन प्रोग्राम के लिए धन्यवाद, यह, यदि परिमाण का क्रम नहीं है, तो निश्चित रूप से दोगुना सरल होगा, और विकसित प्रमाणन प्रणाली के लिए धन्यवाद, आप आसानी से ऐसे कई विशेषज्ञ पा सकते हैं जो उचित स्तर पर इस ओएस से परिचित हैं।

हमने, फिर से, उपयोग करने का निर्णय लिया डेबियन निचोड़पैकेज के एक सेट के साथ सिड/प्रायोगिकऔर कुछ पैकेजों को हमारे पैच के साथ बैकपोर्ट और संकलित किया गया।
पैकेजों के साथ एक भंडार प्रकाशित करने की योजना है।

वर्चुअलाइजेशन तकनीक चुनते समय, दो विकल्पों पर विचार किया गया - ज़ेन और केवीएम।

साथ ही, इस तथ्य को भी ध्यान में रखा गया कि ज़ेन पर आधारित डेवलपर्स, होस्टर्स और वाणिज्यिक समाधानों की एक बड़ी संख्या थी - केवीएम पर आधारित समाधान लागू करना उतना ही दिलचस्प था।

हमने केवीएम का उपयोग करने का निर्णय लेने का मुख्य कारण फ्रीबीएसडी और भविष्य में एमएस विंडोज के साथ वर्चुअल मशीन चलाने की आवश्यकता है।

वर्चुअल मशीनों को प्रबंधित करने के लिए, इसके एपीआई का उपयोग करने वाले उत्पादों का उपयोग करना बेहद सुविधाजनक साबित हुआ: विरश, गुण-प्रबंधक, पुण्य-स्थापित, वगैरह।

यह एक ऐसी प्रणाली है जो वर्चुअल मशीनों की सेटिंग्स को संग्रहीत करती है, उन्हें प्रबंधित करती है, उन पर आँकड़े रखती है, यह सुनिश्चित करती है कि वर्चुअल मशीन का इंटरफ़ेस शुरू होने पर ऊपर उठा हुआ है, उपकरणों को मशीन से जोड़ता है - सामान्य तौर पर, यह बहुत उपयोगी काम करता है और उससे थोड़ा अधिक.

बेशक, समाधान सही नहीं है. नुकसान में शामिल हैं:

  • बिल्कुल पागलपन भरे त्रुटि संदेश।
  • वर्चुअल मशीन कॉन्फ़िगरेशन के भाग को तुरंत बदलने में असमर्थता, हालांकि QMP (QEMU मॉनिटर प्रोटोकॉल) इसकी अनुमति देता है।
  • कभी-कभी, किसी अज्ञात कारण से, libvirtd से जुड़ना असंभव होता है - यह बाहरी घटनाओं पर प्रतिक्रिया देना बंद कर देता है।

शुरुआत में सेवा को लागू करने में मुख्य समस्या वर्चुअल मशीनों के लिए संसाधनों की सीमा थी। ज़ेन में, इस समस्या को एक आंतरिक शेड्यूलर की मदद से हल किया गया था जो वर्चुअल मशीनों के बीच संसाधनों को वितरित करता है - और सबसे अच्छी बात यह है कि डिस्क संचालन को सीमित करने की क्षमता भी लागू की गई थी।

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

लाभ यह है कि यह सब कर्नेल के अंदर कार्यान्वित किया जाता है, और इसका उपयोग न केवल सर्वर के लिए, बल्कि डेस्कटॉप के लिए भी किया जा सकता है (जिसका उपयोग प्रसिद्ध "द ~200 लाइन लिनक्स कर्नेल पैच दैट डू वंडर्स" में किया गया था)। और मेरी राय में, यह 2.6 शाखा में सबसे महत्वपूर्ण परिवर्तनों में से एक है, मेरे पसंदीदा #12309 को छोड़कर, और किसी अन्य फ़ाइल सिस्टम की फाइलिंग को नहीं। खैर, शायद, POHMELFS को छोड़कर (लेकिन पूरी तरह से नाम के कारण)।

इस उपयोगिता पुस्तकालय के प्रति मेरा दृष्टिकोण बहुत अस्पष्ट है।

एक ओर तो यह कुछ इस तरह दिखता है:

और इस चीज़ को स्रोत से इकट्ठा करना भी बहुत मुश्किल है, एक पैकेज में तो बिल्कुल भी नहीं: कभी-कभी मुझे ऐसा लगता है कि स्क्रैच से लिनक्स को स्क्रैच से बनाना थोड़ा आसान है।

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

दिलचस्प बात यह है कि अधिकांश कोड असेंबली के समय, साथ ही प्रोजेक्ट के दस्तावेज़ीकरण के समय तैयार किया जाता है। Ocaml और perl का व्यापक रूप से उपयोग किया जाता है। कोड स्वयं C में लिखा जाता है, जिसे बाद में OCaml में लपेटा जाता है, और कोड के दोहराए गए टुकड़े स्वयं उत्पन्न होते हैं। छवियों के साथ काम करना एक विशेष सेवा छवि (सुपरमिन उपकरण) लॉन्च करके किया जाता है, जिसमें एक चैनल के माध्यम से कमांड भेजे जाते हैं। इस बचाव छवि में उपयोगिताओं का एक निश्चित सेट शामिल है, जैसे पार्टेड, एमकेएफएस और सिस्टम प्रशासक के लिए उपयोगी अन्य।

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

अन्य

उपयोग किए गए सॉफ़्टवेयर के विवरण के लिए नीचे कुछ और दिलचस्प लिंक दिए गए हैं - यदि आपकी रुचि हो तो इसे स्वयं पढ़ें और अध्ययन करें। उदाहरण के लिए,

मान लीजिए कि आप एक युवा हैं, लेकिन फिर भी गरीब छात्र हैं, जिसका अर्थ है कि सभी संभावित प्लेटफार्मों में से आपके पास केवल विंडोज़ और पीएस4 पर एक पीसी है। एक दिन आप होश में आने और एक प्रोग्रामर बनने का फैसला करते हैं, लेकिन इंटरनेट पर बुद्धिमान लोगों ने आपको बताया कि आप लिनक्स के बिना एक सामान्य इंजीनियर नहीं बन सकते। आप फेडोरा को अपने मुख्य और एकमात्र सिस्टम के रूप में स्थापित नहीं कर सकते, क्योंकि गेम्स और VKontakte के लिए विंडोज की अभी भी आवश्यकता है, और डर या अनुभव की कमी आपको अपनी हार्ड ड्राइव पर लिनक्स को दूसरे सिस्टम के रूप में स्थापित करने से रोकती है।

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

या, मान लें कि आपके पास पहले से ही दाढ़ी और चश्मा है, आप एक तकनीकी निदेशक हैं, और आप इस बात से खुश नहीं हैं कि डेवलपर्स को एक नया एप्लिकेशन तैनात करने के लिए नया सर्वर प्राप्त करने में दो महीने लगते हैं। ऐसी स्थिति में तेजी से आगे कैसे बढ़ें?

या हो सकता है कि आप एक वास्तुकार हों जिसने बिजनेस एनालिटिक्स के प्रसंस्करण के लिए एक नई जटिल प्रणाली तैयार की हो। आपके सिस्टम में ElasticSearch, Kafka, Spark और बहुत कुछ जैसी चीज़ें शामिल हैं, और प्रत्येक घटक को अलग-अलग रहना चाहिए, बुद्धिमानी से कॉन्फ़िगर किया जाना चाहिए और अन्य घटकों के साथ संचार करना चाहिए। एक अच्छे इंजीनियर के रूप में, आप समझते हैं कि इस पूरे चिड़ियाघर को सीधे अपने सिस्टम पर स्थापित करना ही पर्याप्त नहीं है। आपको भविष्य के उत्पादन परिवेश के जितना संभव हो सके एक परिवेश को तैनात करने का प्रयास करने की आवश्यकता है, और अधिमानतः ताकि आपका विकास तब उत्पादन सर्वर पर निर्बाध रूप से काम कर सके।

और इन सभी कठिन परिस्थितियों में क्या करें? सही: वर्चुअलाइजेशन का उपयोग करें।

वर्चुअलाइजेशन आपको कई ऑपरेटिंग सिस्टम को एक-दूसरे से पूरी तरह से अलग करने और एक ही हार्डवेयर पर साथ-साथ चलने की अनुमति देता है।

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

आइए विभिन्न प्रौद्योगिकियों और वर्चुअलाइजेशन के तरीकों के विकास के लंबे और दर्दनाक इतिहास को पर्दे के पीछे छोड़ दें - जिज्ञासु पाठक के लिए, लेख के अंत में इस विषय पर अतिरिक्त सामग्री होगी। महत्वपूर्ण बात यह है कि आखिरकार यह सब किस नतीजे पर पहुंचा: वर्चुअलाइजेशन के तीन मुख्य दृष्टिकोण।

वर्चुअलाइजेशन के लिए दृष्टिकोण

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

उपयोग की गई तकनीक के आधार पर, हाइपरवाइज़र या तो सीधे हार्डवेयर पर स्थापित अलग सॉफ़्टवेयर हो सकता है, या ऑपरेटिंग सिस्टम का हिस्सा हो सकता है।

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

वर्चुअल मशीनों के हार्डवेयर के साथ इंटरैक्ट करने के तीन तरीके हैं:

गतिशील प्रसारण

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

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

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

हार्डवेयर वर्चुअलाइजेशन

प्रोसेसर डेवलपर्स को समय पर एहसास हुआ कि x86 आर्किटेक्चर वर्चुअलाइजेशन के लिए खराब रूप से अनुकूल है, क्योंकि इसे शुरू में एक समय में एक ओएस के लिए डिज़ाइन किया गया था। इसलिए, VMWare से गतिशील अनुवाद और Xen से पैरावर्चुअलाइज़ेशन सामने आने के बाद, Intel और AMD ने वर्चुअलाइज़ेशन के लिए हार्डवेयर समर्थन वाले प्रोसेसर जारी करना शुरू कर दिया।

सबसे पहले, इससे प्रदर्शन में बहुत अधिक वृद्धि नहीं हुई, क्योंकि पहली रिलीज़ का मुख्य फोकस प्रोसेसर आर्किटेक्चर में सुधार करना था। हालाँकि, अब, Intel VT-x और AMD-V के आगमन के 10 से अधिक वर्षों के बाद, हार्डवेयर वर्चुअलाइजेशन किसी भी तरह से हीन नहीं है और यहां तक ​​कि कुछ मायनों में अन्य समाधानों से बेहतर भी है।

हार्डवेयर वर्चुअलाइजेशन केवीएम (कर्नेल-आधारित वर्चुअल मशीन) का उपयोग करता है और इसकी आवश्यकता होती है, जिसे हम भविष्य में उपयोग करेंगे।

कर्नेल-आधारित वर्चुअल मशीन

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

वैसे, यह कई कारणों में से एक है कि हम Red Hat वितरण पर जोर क्यों देते हैं।

केवीएम के रचनाकारों ने शुरू में हार्डवेयर वर्चुअलाइजेशन का समर्थन करने पर ध्यान केंद्रित किया और कई चीजों का पुन: आविष्कार नहीं किया। हाइपरवाइज़र, संक्षेप में, एक छोटा ऑपरेटिंग सिस्टम है जो मेमोरी, नेटवर्किंग आदि के साथ काम करने में सक्षम होना चाहिए। लिनक्स यह सब करने में पहले से ही बहुत अच्छा है, इसलिए लिनक्स कर्नेल को हाइपरवाइजर के रूप में उपयोग करना एक तार्किक और सुंदर तकनीकी समाधान है। प्रत्येक KVM वर्चुअल मशीन सिर्फ एक अलग Linux प्रक्रिया है, SELinux/sVirt का उपयोग करके सुरक्षा प्रदान की जाती है, संसाधनों को CGroups का उपयोग करके प्रबंधित किया जाता है।

हम एक अन्य लेख में SELinux और CGgroups के बारे में अधिक बात करेंगे, यदि आप इन शब्दों को नहीं जानते हैं तो चिंतित न हों।

केवीएम सिर्फ लिनक्स कर्नेल के हिस्से के रूप में काम नहीं करता है: कर्नेल संस्करण 2.6.20 के बाद से, केवीएम लिनक्स का एक मुख्य घटक रहा है। दूसरे शब्दों में, यदि आपके पास Linux है, तो आपके पास पहले से ही KVM है। सुविधाजनक, है ना?

यह कहने लायक है कि सार्वजनिक क्लाउड प्लेटफ़ॉर्म के क्षेत्र में, ज़ेन पूरी तरह से थोड़ा अधिक हावी है। उदाहरण के लिए, AWS EC2 और Rackspace Xen का उपयोग करते हैं। यह इस तथ्य के कारण है कि ज़ेन बाकी सभी की तुलना में पहले दिखाई दिया और प्रदर्शन का पर्याप्त स्तर हासिल करने वाला पहला व्यक्ति था। लेकिन अच्छी खबर है: नवंबर 2017 में, जो धीरे-धीरे सबसे बड़े क्लाउड प्रदाता के लिए Xen की जगह ले लेगा।

हालाँकि KVM हार्डवेयर वर्चुअलाइजेशन का उपयोग करता है, कुछ I/O डिवाइस ड्राइवरों के लिए KVM पैरावर्चुअलाइजेशन का उपयोग कर सकता है, जो कुछ उपयोग मामलों के लिए प्रदर्शन लाभ प्रदान करता है।

libvirt

हम लगभग लेख के व्यावहारिक भाग तक पहुँच चुके हैं, अब केवल एक अन्य ओपन सोर्स टूल पर विचार करना बाकी है: libvirt।

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

वैसे, libvirt को Red Hat द्वारा विकसित किया जा रहा है। क्या आपने पहले ही फेडोरा वर्कस्टेशन को अपने मुख्य सिस्टम के रूप में स्थापित कर लिया है?

आइए एक वर्चुअल मशीन बनाएं

libvirt सिर्फ एक एपीआई है, लेकिन यह उपयोगकर्ता पर निर्भर है कि वह इसके साथ कैसे इंटरैक्ट करे। बहुत सारे विकल्प हैं. हम कई मानक उपयोगिताओं का उपयोग करेंगे। हम आपको याद दिलाते हैं: हम Red Hat वितरण (CentOS, Fedora, RHEL) का उपयोग करने पर जोर देते हैं और नीचे दिए गए आदेशों का इनमें से एक सिस्टम पर परीक्षण किया गया था। अन्य लिनक्स वितरणों के लिए थोड़ा अंतर हो सकता है।

सबसे पहले, आइए जांचें कि हार्डवेयर वर्चुअलाइजेशन समर्थित है या नहीं। वास्तव में, यह इसके समर्थन के बिना बहुत धीमी गति से काम करेगा।

egrep --रंग = ऑटो "vmx|svm|0xc0f" /proc/cpuinfo # यदि कुछ भी प्रदर्शित नहीं होता है, तो कोई समर्थन नहीं है :(

चूंकि केवीएम एक लिनक्स कर्नेल मॉड्यूल है, इसलिए आपको यह जांचना होगा कि क्या यह पहले से ही लोड है, और यदि नहीं, तो इसे लोड करें।

एलएसएमओडी | ग्रेप केवीएम # केवीएम, केवीएम_इंटेल, केवीएम_एएमडी। यदि कुछ भी प्रदर्शित नहीं होता है, तो आपको आवश्यक मॉड्यूल लोड करने की आवश्यकता है # यदि मॉड्यूल लोड नहीं है modprobe kvm modprobe kvm_intel # या modprobe kvm_amd

यह संभव है कि हार्डवेयर वर्चुअलाइजेशन BIOS में अक्षम है। इसलिए, यदि kvm_intel/kvm_amd मॉड्यूल लोड नहीं हैं, तो BIOS सेटिंग्स की जांच करें।

अब आवश्यक पैकेज स्थापित करते हैं। ऐसा करने का सबसे आसान तरीका पैकेजों के एक समूह को एक साथ स्थापित करना है:

यम समूह सूची "वर्चुअल*"

समूहों की सूची प्रयुक्त ओएस पर निर्भर करती है। मेरे ग्रुप को बुलाया गया वर्चुअलाइजेशन. कमांड लाइन से वर्चुअल मशीनों को प्रबंधित करने के लिए, virsh उपयोगिता का उपयोग करें। वर्श लिस्ट कमांड का उपयोग करके जांचें कि क्या आपके पास कम से कम एक वर्चुअल मशीन है। सबसे अधिक संभावना नहीं.

यदि आपको कमांड लाइन पसंद नहीं है, तो वहाँ virt-manager भी है - वर्चुअल मशीनों के लिए एक बहुत ही सुविधाजनक GUI।

virsh केवल XML फ़ाइलों से वर्चुअल मशीन बना सकता है, जिसके प्रारूप का अध्ययन libvirt दस्तावेज़ में किया जा सकता है। सौभाग्य से, वहाँ virt-manager और virt-install कमांड भी है। आप स्वयं GUI का पता लगा सकते हैं, लेकिन यहां virt-install का उपयोग करने का एक उदाहरण दिया गया है:

sudo virt-install --name mkdev-vm-0 \ --location ~/Downloads/CentOS-7-x86_64-Minimal-1511.iso \ --memory = 1024 --vcpus = 1 \ --डिस्क आकार = 8

डिस्क आकार निर्दिष्ट करने के बजाय, आप इसे virt-manager, या virsh और एक XML फ़ाइल के माध्यम से पहले से बना सकते हैं। मैंने उपरोक्त छवि का उपयोग सेंटोस 7 मिनिमल से किया है, जिसे सेंटोस वेबसाइट पर ढूंढना आसान है।

अब एक महत्वपूर्ण प्रश्न शेष है: बनाई गई मशीन से कैसे जुड़ें? ऐसा करने का सबसे आसान तरीका virt-manager के माध्यम से है - बस बनाई गई मशीन पर डबल-क्लिक करें और SPICE कनेक्शन वाली एक विंडो खुल जाएगी। ओएस इंस्टॉलेशन स्क्रीन वहां आपका इंतजार कर रही है।

वैसे, केवीएम वर्चुअलाइजेशन को नेस्टेड कर सकता है: वर्चुअल मशीन के अंदर वर्चुअल मशीनें। हमें गहराई में जाने की जरूरत है!

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

लेकिन मुझे ऐसी फ़ाइल कहां मिल सकती है? इसे शुरू से क्यों नहीं लिखा? बिलकुल नहीं: चूँकि हमने पहले से ही अपनी वर्चुअल मशीन के अंदर Centos 7 स्थापित कर लिया है, हमें बस इसे कनेक्ट करने और फ़ाइल /root/anaconda-ks.cfg ढूंढने की आवश्यकता है - यह पहले से ही की एक प्रति बनाने के लिए किकस्टार्ट कॉन्फ़िगरेशन है ओएस बनाया। आपको बस इसे कॉपी करना होगा और सामग्री को संपादित करना होगा।

लेकिन केवल फ़ाइल की प्रतिलिपि बनाना उबाऊ है, इसलिए हम इसमें कुछ और जोड़ देंगे। तथ्य यह है कि डिफ़ॉल्ट रूप से हम होस्ट मशीन की कमांड लाइन से निर्मित वर्चुअल मशीन के कंसोल से कनेक्ट नहीं हो पाएंगे। ऐसा करने के लिए, आपको GRUB बूटलोडर कॉन्फ़िगरेशन को संपादित करना होगा। इसलिए, किकस्टार्ट फ़ाइल के बिल्कुल अंत में हम निम्नलिखित अनुभाग जोड़ेंगे:

%पोस्ट --लॉग = /root/grubby.log /sbin/grubby --update-kernel = ALL --args = "कंसोल=ttyS0" %end

%post, जैसा कि आप अनुमान लगा सकते हैं, OS स्थापित होने के बाद निष्पादित किया जाएगा। ग्रुबी कमांड कंसोल से कनेक्ट करने की क्षमता जोड़ने के लिए GRUB कॉन्फिगरेशन को अपडेट करेगा।

वैसे, आप वर्चुअल मशीन के निर्माण के दौरान ही कंसोल के माध्यम से कनेक्ट करने की क्षमता भी निर्दिष्ट कर सकते हैं। ऐसा करने के लिए, आपको virt-install कमांड के लिए एक और तर्क पारित करना होगा: --extra-args='console=ttyS0' । इसके बाद, आप ओएस को अपने होस्ट मशीन के टर्मिनल से इंटरैक्टिव टेक्स्ट मोड में स्थापित कर सकते हैं, इसके निर्माण के तुरंत बाद वर्चुअल मशीन से वर्श कंसोल के माध्यम से कनेक्ट कर सकते हैं। यह विशेष रूप से तब सुविधाजनक होता है जब आप किसी दूरस्थ हार्डवेयर सर्वर पर वर्चुअल मशीन बनाते हैं।

अब आप बनाई गई कॉन्फ़िगरेशन को लागू कर सकते हैं! वर्चुअल मशीन बनाते समय virt-install आपको अतिरिक्त तर्क पारित करने की अनुमति देता है, जिसमें किकस्टार्ट फ़ाइल का पथ भी शामिल है।

sudo virt-install --name mkdev-vm-1 \ --location ~/Downloads/CentOS-7-x86_64-Minimal-1511.iso \ --initrd-inject /path/to/ks.cfg \ --extra- args ks = फ़ाइल:/ks.cfg \ --मेमोरी = 1024 --vcpus = 1 --डिस्क आकार = 8

दूसरी वर्चुअल मशीन बनने के बाद (पूरी तरह से स्वचालित रूप से), आप इसे virsh कंसोल vm_id कमांड का उपयोग करके कमांड लाइन से कनेक्ट कर सकते हैं। vm_idआप virsh list कमांड का उपयोग करके सभी वर्चुअल मशीनों की सूची से पता लगा सकते हैं।

KVM/libvirt का उपयोग करने के लाभों में से एक अद्भुत दस्तावेज़ीकरण है, जिसमें Red Hat द्वारा निर्मित दस्तावेज़ भी शामिल है। प्रिय पाठक को उचित जिज्ञासा के साथ इसका अध्ययन करने के लिए आमंत्रित किया जाता है।

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

आगे क्या होगा?

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

यह समझना महत्वपूर्ण है कि वर्चुअल मशीनें आधुनिक क्लाउड आर्किटेक्चर के निर्माण खंड हैं। वे एप्लिकेशन को सबसे तेज़ तरीके से और सभी संसाधनों के अधिकतम उपयोग के साथ स्वचालित रूप से असीमित आकार तक बढ़ने की अनुमति देते हैं।

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

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

केवीएम- नई वर्चुअलाइजेशन तकनीकों में से एक, जो भौतिक समर्पित सर्वर पर कई वर्चुअल समर्पित सर्वर स्थापित करना संभव बनाती है। इस वर्चुअलाइजेशन सिस्टम का मुख्य लाभ विभिन्न प्रकार के ऑपरेटिंग सिस्टम के साथ वीपीएस का निर्माण है, यानी आप एक ही सर्वर पर लिनक्स वीपीएस और विंडोज वीपीएस दोनों को आसानी से इंस्टॉल कर सकते हैं। इसके अलावा, KVM प्लेटफ़ॉर्म पर प्रत्येक व्यक्तिगत VPS सर्वर के अपने स्वतंत्र संसाधन होते हैं: अपना स्वयं का डिस्क स्थान, अपना स्वयं का RAM, नेटवर्क इंटरफ़ेस, इत्यादि।

KVM वर्चुअलाइजेशन के लाभ:

  • विभिन्न ऑपरेटिंग सिस्टम स्थापित करने की क्षमता: सेंटोस, डेबियन, उबंटू, मिंट, फ्रीबीएसडी, विंडोज़ 7, विंडोज़ 8, विंडोज़ 10, विंडोज़ एक्सपी इत्यादि।
  • सर्वर पर संसाधनों की गारंटी, यानी, यदि आपने कुछ संसाधनों के साथ वीपीएस सर्वर का ऑर्डर दिया है, तो निश्चिंत रहें, कोई भी आपसे संसाधन नहीं छीनेगा। इस वर्चुअलाइजेशन के साथ, आप पड़ोसी वीपीएस के संसाधनों का उपयोग नहीं कर सकते। ओवरसेलिंग जैसी कोई चीज़ होती है, यह तब होता है जब एक होस्टिंग कंपनी सर्वर पर मौजूद संसाधनों से अधिक संसाधन बेचती है। केवीएम में ऐसा नहीं हो सकता; सभी संसाधन स्पष्ट रूप से कॉन्फ़िगरेशन फ़ाइलों में दर्ज किए जाते हैं और सभी को एक वर्चुअल समर्पित सर्वर पर एक साथ निर्देशित किया जाता है।
  • आपके संपूर्ण ऑपरेटिंग सिस्टम को VPS सर्वर पर इंस्टॉल करना संभव है, उदाहरण के लिए, आप एक OS डेवलपर हैं और आपके पास अपना स्वयं का लिखित ऑपरेटिंग सिस्टम है, आप इसे KVM वाले सर्वर पर VPS में से किसी एक पर इंस्टॉल कर सकते हैं, इसके लिए आपको एक विशेष फ़ोल्डर के साथ सर्वर पर ओएस की आईएसओ छवि वाली एक फ़ाइल अपलोड करने की आवश्यकता है।
  • के साथ सुविधाजनक कार्य वीएनसी, जो आपके वीपीएस सर्वर को दूरस्थ रूप से प्रबंधित करना संभव बनाता है जैसे कि आप अपने व्यक्तिगत पीसी पर काम कर रहे थे; वीएनसी का उपयोग करके आप बायोस को कॉन्फ़िगर कर सकते हैं, वीपीएस को रीबूट कर सकते हैं और इसे देख सकते हैं। यदि आपने वीपीएस पर एक विंडोज सर्वर स्थापित किया है और उस पर जाकर ग्राफिकल मोड में काम करना चाहते हैं, तो आप इसे दो तरीकों से कर सकते हैं: वीएनसी के माध्यम से, या सीधे पूर्व-कॉन्फ़िगर रिमोट डेस्कटॉप के माध्यम से वीपीएस तक पहुंचें।

KVM वर्चुअलाइजेशन का एक नुकसान यह है कि इसका उपयोग करना और कॉन्फ़िगर करना, उदाहरण के लिए, की तुलना में अधिक कठिन है। ओपनवीजेड वर्चुअलाइजेशन. तो विकल्प क्या है? यदि आप लिनक्स ऑपरेटिंग सिस्टम के साथ वीपीएस सर्वर का उपयोग करने की योजना बना रहे हैं, तो हम ओपनवीजेड चुनने की सलाह देते हैं। यदि आप अपने वर्चुअल समर्पित सर्वर पर विंडोज़ का उपयोग करने की योजना बना रहे हैं, तो केवीएम वर्चुअलाइजेशन का उपयोग करना बेहतर है।

डिस्कस द्वारा संचालित टिप्पणियों को देखने के लिये कृपया जावास्क्रिप्ट सक्रिय कीजिए।
हाल के पोस्ट
  • नवीनतम यात्री और माल ढुलाई लिफ्टों का उपयोग हमें इष्टतम परिस्थितियाँ प्रदान करने की अनुमति देता है...

  • यह सुनिश्चित करने के लिए कि आपकी वेबसाइट हमेशा हानिरहित https:// प्रोटोकॉल का उपयोग करके खुलती है, हम...

  • क्रोम ब्राउज़र के नए संस्करणों में, पेज को व्हील से स्क्रॉल करना बंद हो गया है...

  • यूक्रेन में इंटरनेट व्यापार हर साल अधिक से अधिक बढ़ रहा है...

  • HTP बेलारूस में एक आईटी दिशा है जिसे बनाया गया था...

  • यूक्रेन में, अर्थात् निप्रॉपेट्रोस में, प्रथम...

  • अब आईटी के बिना दुनिया की कल्पना करना कठिन है, क्योंकि...

  • हम आपके ध्यान में abcname.com.ua वेबसाइट पर एक नई सेवा प्रस्तुत करते हैं। अलावा,…

  • आज हम आपको VPS सर्वर चुनने की विशेषताओं के बारे में बताएंगे। पहला…

  • आज हम अपने अद्वितीय, और... के एक नए अवसर से सभी को खुश करने की जल्दी में हैं।

  • 1) डोमेन नाम की जाँच करना हम जाँचते हैं कि क्या स्ट्रिंग सही डोमेन है...

  • आप इस पृष्ठ पर आईपी पता देख सकते हैं: http://abcname.com.ua/index.php?c=192 आईपी पता (शाब्दिक रूप से, फिर...

  • ABCname कंपनी आपके ध्यान में SYNONYMIZER प्रोग्राम प्रस्तुत करती है। पर्यायवाची से लिंक: https://abcname.net/news-new/sinonimizator-ru.html...

  • आप इस लिंक का अनुसरण करके ABCname द्वारा विकसित विज़िट काउंटर डाउनलोड कर सकते हैं: http://abcname.com.ua/stat/…

  • iOS 9.0.2 ऑपरेटिंग सिस्टम के नवीनतम अपडेट में, डेवलपर्स ने बहुत...

  • नवीनतम स्काइप समाचार: विंडोज़ पर इस प्रोग्राम के उपयोगकर्ताओं के लिए...

  • गूगल ने एक बार फिर हमें अपने आविष्कार से खुश किया, हाल ही में शहर में...

  • हाल ही में यह ज्ञात हुआ कि सैमसंग एक नया भुगतान लॉन्च कर रहा है...

  • लेनोवो के नए थिंकपैड लैपटॉप पहले से इंस्टॉल आते हैं...

  • पेबल ने हाल ही में स्मार्टवॉच की एक नई श्रृंखला विकसित की है...



मित्रों को बताओ