शुरू करने से पहले मैं आपको चेतावनी दे दूं; अगर आप हार्डवेयर वर्चुअलाइज़ेशन के बिना ज़ेन का उपयोग करने की कोशिश करेंगे, तो आपकी यात्रा समस्याओं से भरी होगी। यह एक स्पष्ट संकेत है कि यदि आपके पास वर्चुअलाइज़ेशन एक्सटेंशन वाला आधुनिक CPU नहीं है तो आपको ज़ेन आज़माना नहीं चाहिए। यह वर्चुअलबॉक्स या VMware प्लेयर जैसे घरेलू समाधानों से बिल्कुल अलग है, लेकिन फिर ज़ेन पूरी तरह से अलग बाज़ार खंड को लक्षित करता है।
पैरावर्चुअलाइज़ेशन क्यों परेशानी का सबब बन सकता है
आधिकारिक व्याख्या यहाँ दी गई है:
पैरावर्चुअलाइज़ेशन ज़ेन द्वारा पेश की गई एक कुशल और हल्की वर्चुअलाइज़ेशन तकनीक है, जिसे बाद में अन्य वर्चुअलाइज़ेशन समाधानों द्वारा भी अपनाया गया। पैरावर्चुअलाइज़ेशन के लिए होस्ट CPU से वर्चुअलाइज़ेशन एक्सटेंशन की आवश्यकता नहीं होती। हालांकि, पैरावर्चुअलाइज़्ड गेस्ट के लिए एक विशेष कर्नेल की आवश्यकता होती है जिसे ज़ेन पर नेटिव रूप से चलाने के लिए पोर्ट किया गया हो, ताकि गेस्ट हाइपरवाइज़र से अवगत हों और अनुकरण या वर्चुअल अनुकरण हार्डवेयर के बिना कुशलतापूर्वक चल सकें।
ज़ोर "गेस्ट को विशेष कर्नेल की आवश्यकता होती है" शब्दों पर है। यदि आप नहीं जानते कि यह क्या है या इसे कैसे प्राप्त किया जाए, तो आपको चीजों को शुरू करने के लिए कड़ी मेहनत करनी पड़ेगी। विशेष रूप से, आपको लाइव CD छवि से बूट करने का प्रयास करते समय समस्याएं दिखाई देंगी, जो सिस्टम इंस्टॉलेशन में पहला कदम होना चाहिए।
CD या ISO छवि से बूट करें
समस्या तब शुरू होगी जब आप अपनी नई वर्चुअल मशीन सेटअप करने का प्रयास करेंगे। जैसा कि हमने लाखों बार किया है, हम चाहते हैं कि हमारा गेस्ट पहले CD से बूट हो।
लेकिन फिर आपको इस तरह की भद्दी त्रुटि मिलती है, भले ही आप ISO का उपयोग करने का प्रयास करें:
यदि आप इंटरनेट खंगालेंगे, तो आपको सत्तर लाख रेसिपी मिलेंगी जो बताती हैं कि यह कैसे किया जा सकता है या नहीं किया जा सकता। लेकिन यह कभी भी एक-लाइनर नहीं होता, कभी प्लग-एंड-प्ले नहीं होता। सबसे आम समाधान छवि निकालकर HTTP सर्वर पर अपलोड करने और छवि को लूपबैक डिवाइस के रूप में माउंट करने के बीच भिन्न होते हैं।
P.S. कृपया "अधिक पठन" अनुभाग भी देखें। संदर्भ सामग्री बताती है कि उबंटू, जिसे हमने ऊपर परीक्षण के लिए चुना है, अतिरिक्त कड़ी मेहनत और संशोधन के बिना पैरावर्चुअलाइज़्ड गेस्ट के रूप में वास्तव में बूट नहीं करेगा।
तो आपको क्या करना चाहिए?
सबसे पहले, कुछ नहीं। सुझाए गए कुछ तरीके आसानी से लागू नहीं होते। और वे वास्तव में बिल्कुल काम नहीं करते। आपको जो करना है वह है त्रुटि संदेश की जांच करना। विवरण पर क्लिक करें और सर्वश्रेष्ठ की आशा करें। विवरण उपयोगी हो सकता है।
सभी संभावित मामलों पर विस्तार से चर्चा किए बिना, पैरावर्चुअलाइज़ेशन की मुख्य समस्याएं दो मुख्य मुद्दों तक सीमित हैं: 1) गेस्ट सिस्टम को बूट करने के लिए आपको सही कर्नेल और initrd की आवश्यकता है 2) पैरावर्चुअलाइज़्ड नेटवर्क इंटरफेस खराब हैं। और इन दोनों का संयोजन आपको अपनी वर्चुअल मशीनों को CD/DVD से बूट करने से रोकेगा।
कर्नेल और initrd छवि
पूर्ण वर्चुअलाइज़ेशन के साथ, यह काफी सरल है। वर्चुअल मशीन कॉन्फ़िगरेशन फ़ाइल में, आपको बिल्डर, कर्नेल और बूट निर्देशों को ठीक से निर्दिष्ट करने की आवश्यकता है। hvmloader कर्नेल हमेशा उपलब्ध होता है, इसलिए आप वहां ठीक हैं।
पैरावर्चुअलाइज़्ड गेस्ट के लिए ऐसा कोई कर्नेल या initrd नहीं है। इसलिए आपको थोड़ा सुधार करना होगा। जब आप GUI विज़ार्ड के साथ इसे बनाने के बाद अपनी वर्चुअल मशीन लॉन्च करने का प्रयास करते हैं, तो आपको CD-ROM त्रुटि मिलेगी। लेकिन कॉन्फ़िगरेशन फ़ाइल डिस्क पर लिखी जाएगी।
/etc/xen/vm निर्देशिका पर जाएं और फ़ाइल को टेक्स्ट एडिटर में खोलें। कर्नेल और initrd लाइनों पर ध्यान दें, जो /tmp के तहत अस्थायी कर्नेल और initrd छवियों की ओर इशारा करती हैं। आप इन दो प्रविष्टियों को स्थायी ज़ेन कर्नेल और initrd फ़ाइलों की ओर इंगित करने के लिए बदल सकते हैं, लेकिन यह बोझिल हो सकता है, क्योंकि आपको इन्हें अलग से डाउनलोड करने या स्वयं बनाने की आवश्यकता हो सकती है। आप CD छवि की सामग्री की जांच भी कर सकते हैं और ज़ेन-संबंधित सामग्री ढूंढ सकते हैं, जिसे आप कॉपी करके गेस्ट को बूट करने के लिए उपयोग कर सकते हैं। यहाँ एक नमूना है:
आप उचित तर्कों के साथ बूटलोडर निर्देश का भी उपयोग कर सकते हैं, लेकिन फिर से, यह एक थकाऊ प्रक्रिया है, क्योंकि प्रत्येक वर्चुअल मशीन को एक अलग सबसेट की आवश्यकता होगी। हालांकि, अधिकांश लिनक्स गेस्ट के लिए, निम्नलिखित काम करना चाहिए, एक बड़े, निहित "शायद" के साथ:
bootloader = '/usr/lib/xen/boot/domUloader.py'
bootentry = '--entry-=xvda1:/boot/vmlinuz-xen,/boot/initrd-xen'
आपको निश्चित रूप से अपने सेटअप में उपयोग किए जा रहे अनुसार xvda1 से वर्चुअल डिवाइस को समायोजित करना होगा। यह एक भद्दा हैक है और जरूरी नहीं कि काम करे।
पैरावर्चुअलाइज़्ड नेटवर्क इंटरफेस
एक और बाधा vif निर्देश है। ज़ेन पैरावर्चुअलाइज़्ड गेस्ट आपके सेटअप को पसंद नहीं कर सकते। कारण यह है कि आप अपने नेटवर्क एडाप्टर को ब्रिज किए बिना सीधे उपयोग नहीं कर सकते। आप eth0 या wlan0 जैसे उपकरणों का उपयोग नहीं कर पाएंगे, आपको xenbr0 या br0 और इसी तरह के उपयोग करने होंगे। यदि आप कमांड लाइन से वर्चुअल मशीन शुरू करने का प्रयास करते हैं, तो त्रुटि संदेश स्पष्ट और स्पष्ट होगा:
एक अस्थायी समाधान के रूप में, निर्देश को हटाएं या टिप्पणी करें और आपकी वर्चुअल मशीन बूट होनी चाहिए। फिर से, मेरे अधिकांश ट्यूटोरियल के विपरीत, जो एक सकारात्मक, निश्चित हां का उपयोग करते हैं, यहां हम निराशाजनक "शायद" के साथ काम कर रहे हैं। अपनी कॉन्फ़िगरेशन फ़ाइल में किसी भी प्रकार के निर्देश के साथ सामान्य vif को बदलें।
#vif=['',]
और फिर, जादुई कंसोल:
और आप जल्दी या बाद में नेटवर्क की बाधा से टकराएंगे:
सामान्य तौर पर, आप बिना नेटवर्क के काम चला सकते हैं, लेकिन यह मुश्किल से उपयोगी है, क्योंकि हम अपने गेस्ट के लिए कनेक्शन चाहते हैं। इसलिए, आपको अपने एडाप्टर को ब्रिज करना होगा। आपके कुछ नेटवर्क इंटरफेस ब्रिजिंग का समर्थन नहीं कर सकते, इसलिए इसे ध्यान में रखें।
फिर से, यह मदद कर भी सकता है और नहीं भी। वस्तुतः कोई गारंटी नहीं है। उदाहरण के लिए, आप अशुभ हो सकते हैं और इस तरह का संदेश देख सकते हैं जो आपको बता रहा है: आपको अब छोड़ देना चाहिए। या आप brctl उपयोगिता का उपयोग करके मैन्युअल रूप से एक ब्रिज बनाने का प्रयास कर सकते हैं।
हमारे पास यहाँ क्या है?
यह गाइड थोड़ा भ्रमित करने वाला है, तो आइए देखें कि अब तक हमारे पास क्या है। आपके पास दो मुख्य मुद्दे हैं: एक, आपके गेस्ट के लिए बूटलोडर/कर्नेल; दो, नेटवर्क इंटरफेस। पैरावर्चुअलाइज़्ड मोड में चल रहा ज़ेन, आपके गेस्ट के लिए सही कर्नेल और initrd फ़ाइलों की आवश्यकता करता है जो डिस्क पर कहीं स्थित हों। इसके लिए ब्रिज्ड नेटवर्क एडाप्टर की भी आवश्यकता होती है।
आप पहले को हल कर सकते हैं जिससे वर्चुअल मशीन विज़ार्ड आपके लिए हार्ड डिस्क पर अस्थायी प्रविष्टियाँ बना दे, लेकिन यह केवल कुछ प्रकार के गेस्ट ऑपरेटिंग सिस्टम के लिए काम करता है। उदाहरण के लिए, साइंटिफिक लिनक्स 6, जो रेडहैट 6 पर आधारित है, स्पष्ट रूप से इस तरह की चीज़ का समर्थन करता है, इसलिए आप भाग्यशाली हैं। अधिक विवरण के लिए नीचे देखें। वैकल्पिक रूप से, आप उचित ज़ेन कर्नेल और initrd को मैन्युअल रूप से अपनी हार्ड डिस्क पर कहीं रख सकते हैं। अंतिम विकल्प के रूप में, आप बूटलोडर का सीधे उपयोग भी कर सकते हैं, फिर से सही फ़ाइलों के साथ।
दूसरा मुद्दा एक अतिरिक्त कदम लेता है; आपको एक नेटवर्क ब्रिज कॉन्फ़िगर करना होगा। आप वायर्ड और वायरलेस दोनों एडाप्टर को ब्रिज कर सकते हैं, हालांकि कुछ हार्डवेयर इसका समर्थन नहीं कर सकते।
फिर भी, चीजें काम नहीं कर सकतीं। और शायद नहीं करेंगी। निचला रेखा, ज़ेन पैरावर्चुअलाइज़ेशन एक दर्द है; यदि संभव हो तो इससे बचें। यदि आप किसी भी विकल्प के मुकाबले इस तरह से अपनी वर्चुअल मशीनों को चलाने में कठिनाई की तुलना करते हैं, तो उत्तर काफी स्पष्ट है।
अधिक पठन
यदि आप इस गाइड के बाद भी साहसी हैं, तो आप अपने गेस्ट को CD-ROM से बूट करने के संभावित समाधान प्रस्तुत करने वाले कुछ और लेख पढ़ने पर विचार कर सकते हैं। या बल्कि, आपको दिखा रहे हैं कि यह क्यों काम नहीं करता और आपको परेशान क्यों नहीं करना चाहिए।
ज़ेन domU समर्थन - उबंटू और फेडोरा जैसे लोकप्रिय विकल्प अभी तक नहीं चलते
SLES पैरा-वर्चुअल domU को रेस्क्यू सिस्टम के रूप में कैसे बूट करें
निष्कर्ष
पैरावर्चुअलाइज़्ड मोड में ज़ेन के साथ काम करना एक सुखद कार्य नहीं है। यह इस बात पर निर्भर करता है कि आपके गेस्ट सिस्टम पैरा-domU का समर्थन करने में कितने उन्नत हैं, आप भाग्यशाली हो सकते हैं और CD या ISO छवि से बूट कर सकते हैं। लेकिन आपको ब्रिज्ड नेटवर्किंग की भी आवश्यकता होगी, जो हमेशा काम नहीं कर सकती, विशेष रूप से वायरलेस एडाप्टर के साथ।
इसके अलावा, आपको अपने गेस्ट सिस्टम के लिए ज़ेन कर्नेल और initrd फ़ाइलों की खोज करने की आवश्यकता हो सकती है, जिसमें आपके स्वयं के कस्टम संस्करण को संकलित करना भी शामिल है। इस तरह का काम अधिकांश लोगों के लिए कौशल, धैर्य और प्रशासनिक ओवरहेड के मामले में बहुत अधिक है, खासकर जब से अन्य वर्चुअलाइज़ेशन समाधान पसीना बहाए बिना उतना ही प्रदान करते हैं।
उम्मीद है, यह गाइड धुंध को थोड़ा साफ करता है। वेब सर्वर, लूपबैक डिवाइस, भौतिक ड्राइव, इससे कोई फर्क नहीं पड़ता। आपको विशेष कर्नेल और initrd छवियों और ब्रिज्ड नेटवर्किंग की आवश्यकता है। आप भाग्यशाली हो सकते हैं और ऐसे गेस्ट हों जो domU पैरावर्चुअलाइज़ेशन का समर्थन करते हों। यदि नहीं, तो आप बड़ी मुसीबत में हैं। मेरी हार्दिक सलाह है, यदि संभव हो तो इससे बचें, वैकल्पिक समाधानों के लिए जाएं। हालांकि, अपने पूर्ण हार्डवेयर वर्चुअलाइज़ेशन मोड में, ज़ेन काफी अच्छा है।
चीयर्स।