Computer >> कंप्यूटर >  >> सॉफ्टवेयर >> आभासी मशीन

सामान्य KVM समस्याओं का निवारण

कुछ समय पहले, मैंने आपको दो Xen समस्या निवारण लेख दिए थे, जिसमें उन कुछ अधिक सामान्य समस्याओं पर चर्चा की गई थी, जिनका सामना आप Xen तकनीक का उपयोग करके अपने परिवेश को व्यवस्थित करने का प्रयास करते समय कर सकते हैं। आज हम केवीएम के साथ भी यही करेंगे।

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

युक्ति 1:ब्रिज नेटवर्किंग इंटरफ़ेस दिखाई नहीं देता

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

सामान्य KVM समस्याओं का निवारण

समाधान बहुत सरल है - अपने डोमेन के लिए मैन्युअल रूप से कॉन्फ़िगरेशन फ़ाइल संपादित करें। डिफ़ॉल्ट रूप से, KVM फ़ाइलों को दो स्थानों पर संग्रहीत करता है, या तो /etc/kvm/vm या /etc/libvirt/qemu, इसलिए सबसे अधिक संभावना है कि आप अपनी XML फ़ाइलों को वहां पा सकते हैं। संबंधित को खोलें और मैन्युअल रूप से <स्रोत ब्रिज> के तहत ब्रिज किए गए एडेप्टर विवरण को बदलें। फ़ाइल बंद करें, वर्चुअल मशीन प्रारंभ करें और आनंद लें।

<इंटरफ़ेस प्रकार ='पुल'>
<स्रोत पुल ='br0'/>
<मैक पता ='52:54:00:0d:e6:4a'/>

युक्ति 2:Biosdevname और कोई नेटवर्क नहीं

Biosdevname एक उपयोगिता है जो उपकरणों को BIOS-दिए गए नामों को निर्दिष्ट करने का प्रयास करती है, समानता को संरक्षित करती है और विशेष रूप से नेटवर्क उपकरणों के साथ हार्डवेयर व्यवस्थापन के तर्क को सरल बनाती है। यदि आपके पास अद्वितीय क्षमताओं या कार्यों के साथ उनमें से कई हैं, तो आपको उन्हें सामान्य ethX नामों से पहचानना कठिन होगा, लेकिन यदि उन्हें अद्वितीय स्ट्रिंग्स दी गई हों, तो आप आसानी से 1Gbps और 10Gbps एडेप्टर और इसी तरह के अलग-अलग बता सकते हैं। स्वाभाविक रूप से, यह ज्यादातर उद्यम प्रणालियों के लिए उपयोगी है, क्योंकि घर पर लोगों को शायद ही कभी यह दुविधा होती है।

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

समस्या को हल करने के कई तरीके हैं। एक, उपयोगिता के कुछ संस्करण यह पता लगाने में सक्षम हैं कि उन्हें एक आभासी वातावरण के अंदर बुलाया जा रहा है और बिना किसी बदलाव के मशीन से बाहर निकल जाएगा। दूसरा GRUB मेनू में कर्नेल तर्क पास करना है; biosdevname=0 यूटिलिटी को चलने से अक्षम कर देगा।

एक तीसरा विकल्प नेटवर्क कार्ड को नाम देने के लिए उपयोग किए जाने वाले udev नियमों को हैक करना है। यहाँ एक बहुत ही अल्पविकसित उदाहरण है; यह एक मशीन के लिए एक नेटवर्क एडेप्टर के साथ डिज़ाइन किया गया है, इसलिए आपको कई कार्डों के लिए अधिक गतिशील तर्क की आवश्यकता होगी। या, जैसा कि टिप्पणी पाठ कहता है, आपको प्रत्येक नियम के लिए एक अलग पंक्ति बनाने की आवश्यकता होगी।

सामान्य KVM समस्याओं का निवारण

क्लासिक असाइनमेंट पाने के लिए आप मैन्युअल बदलाव कर सकते हैं:

vi /etc/udev/rules.d/70-persistent-net.rules

NAME स्ट्रिंग को "eth_biosname" से "ethX" या किसी भी चीज़ में बदलें:

#पीसीआई डिवाइस...
SUBSYSTEM=="net", ACTION=="जोड़ें", ATTR(type)=="1",
KERNEL=="eth*", NAME="eth_biosname"

#पीसीआई डिवाइस...
SUBSYSTEM=="net", ACTION=="जोड़ें", ATTR(type)=="1",
KERNEL=="eth*", NAME="eth0"

आपके वर्चुअल मशीन में उपयोग किए जाने वाले वर्चुअल हार्डवेयर के आधार पर आपको अलग-अलग नियम मिलेंगे। उदाहरण के लिए, आप Realtek, e1000 या virtio वर्चुअल हार्डवेयर का विकल्प चुन सकते हैं, जिसके परिणामस्वरूप अन्य तार होंगे। ध्यान दें और सुनिश्चित करें कि आप अपने विशिष्ट परिवेश के समाधान से मेल खाते हैं।

टिप 3:डोमेन पहले से मौजूद है

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

virsh परिभाषित मशीन.xml
त्रुटि:machine.xml से डोमेन परिभाषित करने में विफल
त्रुटि:ऑपरेशन विफल:डोमेन 'मशीन' पहले से मौजूद है
UUID के साथ 883ab02f-1a67-7430-ef9a-2b59af52210e7

आपको कॉन्फ़िगरेशन फ़ाइल ढूंढनी होगी और उसे हटाना होगा। और फिर libvirtd सेवा को पुनरारंभ करें।

अपडेटेडबी
मशीन.एक्सएमएल का पता लगाएं
आरएम <मशीन.एक्सएमएल के लिए पूर्ण पथ>
/etc/init.d/libvirtd पुनरारंभ करें

टिप 4:आंतरिक त्रुटि cgroup

खोजने में असमर्थ

यह समस्या libvirtd को फिर से शुरू करने के बाद प्रकट हो सकती है, जैसे ऊपर दिए गए उदाहरण में, या पूरी तरह से असंबंधित। एक पूर्ण त्रुटि संदेश ऐसा दिखाई दे सकता है:

virsh create machine.xml
त्रुटि:machine.xml से डोमेन बनाने में विफल
त्रुटि:आंतरिक त्रुटि मशीन

के लिए cgroup खोजने में असमर्थ

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

आप libvirtd विन्यास, /etc/libvirt/qemu.conf को संपादित करके समस्या का समाधान कर सकते हैं। इस फ़ाइल के अंदर, आपको cgroups_controllers निर्देश को संपादित करने की आवश्यकता है ताकि यह किसी भी cgroups को सूचीबद्ध न करे, जिस स्थिति में, libvirtd उनके बिना चलने में सक्षम होगा।

cgroups_controllers =[ ]

इसके बाद आपको फिर से libvirtd को पुनरारंभ करना होगा। वैकल्पिक रूप से, आपको मैन्युअल रूप से आवश्यक cgroups बनाना होगा और libvirtd प्रक्रिया को संबंधित सबसिस्टम में असाइन करना होगा।

टिप 5:वर्चुअल मशीन VMM से हॉल्ट/रीबूट होने पर गायब हो जाती है

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

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

नष्ट करें
रीस्टार्ट करें
नष्ट करें

टिप 6:कोई रीबूट कार्रवाई नहीं; समारोह समर्थित नहीं है

दोबारा, पिछले टिप से बहुत संबंधित है। यदि आप पुनरारंभ करने के बजाय रीबूट निर्दिष्ट करते हैं, तो आप सीखेंगे कि यह एक अमान्य आदेश है जिसे केवीएम निष्पादित नहीं कर सकता है। हालाँकि, आपको सबसे अधिक संभावना एक विपुल त्रुटि दिखाई देगी:

libvirtError:यह फ़ंक्शन हाइपरवाइज़र द्वारा समर्थित नहीं है:virDomainReboot

यदि आप पुनरारंभ का उपयोग करते हैं, तो सब ठीक हो जाएगा।

युक्ति 7:स्थापना के बाद बूटलोडर त्रुटि

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

रूट (एचडी0,1)
फ़ाइल सिस्टम प्रकार ext2fs है, विभाजन प्रकार 0x83 है
कर्नेल /बूट/vmlinuz

त्रुटि 15:फ़ाइल नहीं मिली

जारी रखने के लिए कोई भी कुंजी दबाएं...

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

और मुझे लगता है कि हम आज के लिए यहां कर चुके हैं।

और पढ़ना

आपको कई और KVM आलेखों में रुचि हो सकती है:

KVM स्टोरेज और नेटवर्क गाइड, साथ ही ब्रिज्ड नेटवर्किंग

केवीएम + वर्चुअलबॉक्स साथ-साथ उपयोग कैसे करें

केवीएम क्लोनिंग गाइड

निष्कर्ष

पहली समस्या निवारण गाइड के लिए आधा दर्जन टिप्स, मुझे लगता है कि बुरा नहीं है। यह ट्यूटोरियल ब्रिज्ड नेटवर्किंग सेटअप पर ध्यान केंद्रित करता है, बायोसदेवनाम, cgroups + libvirtd समस्याओं के आसपास काम कर रहा है, गुण-प्रबंधक द्वारा ऑटो-निर्मित डुप्लिकेट डोमेन को अपंजीकृत कर रहा है, और गेस्ट ऑपरेटिंग सिस्टम रीस्टार्ट समस्याओं को हल कर रहा है।

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

प्रोत्साहित करना।

  1. VMLite - वर्चुअल ब्लॉक पर एक नया बच्चा

    geeky प्रवृत्ति वाले डेस्कटॉप उपयोगकर्ता ज्यादातर उत्पादों की VMware लाइन और वर्चुअलबॉक्स से परिचित हैं, जिसने पिछले कुछ वर्षों में तीन बार पितृत्व को बदल दिया है, innotek से Sun के माध्यम से Oracle तक। फिर, लिनक्स उपयोगकर्ताओं के पास केवीएम और ज़ेन भी हैं, जो थोड़े अधिक जटिल हैं और काफी मुख्यधारा न

  1. वर्चुअल मशीन को VMware कन्वर्टर से कन्वर्ट करें

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

  1. Windows 11 में ऑडियो समस्याओं का निवारण (7 समाधान)

    विंडोज़ 11 पर ऑडियो साउंड की समस्या आमतौर पर साउंड कार्ड के साथ भौतिक समस्याओं या ऑडियो ड्राइवर के साथ समस्याओं के कारण होती है। कभी-कभी गलत कॉन्फ़िगरेशन या अक्षम ऑडियो सेवाओं के कारण विंडोज़ ध्वनि समस्याएं उत्पन्न होती हैं। यदि windows 11 ध्वनि काम नहीं कर रही है या आपके लैपटॉप या पीसी पर कोई आवाज