पिछले लेख में हमने चर्चा की थी कि केवीएम हाइपरवाइजर कैसे स्थापित करें और वर्चुअल मशीन कैसे बनाएं। एक लेख में हम KVM वर्चुअल मशीन प्रबंधन को विस्तार से कवर करने में सक्षम नहीं थे। आज हम virsh
. के साथ कमांड लाइन से वर्चुअल मशीन को प्रबंधित करने का तरीका दिखाने का प्रयास करेंगे :VM सेटिंग कैसे बदलें, अतिरिक्त वर्चुअल डिवाइस जोड़ें, और Linux पर KVM वर्चुअल मशीन को प्रबंधित करने के लिए कौन से कमांड का उपयोग करें।
केवीएम वर्चुअल मशीन को प्रबंधित करने के लिए विरश (वर्चुअल शेल) कमांड का उपयोग करना
आइए एक नजर डालते हैं कि पंजीकृत KVM वर्चुअल मशीनों को कैसे देखें, कैसे शुरू करें, कैसे रोकें या हटाएं। Virsh
(libvirt API पर आधारित) का उपयोग Linux कंसोल में KVM वर्चुअल मशीन को प्रबंधित करने के लिए किया जा सकता है।
# virsh list
- चल रहे VMs की सूची दिखाता है
# virsh list --all
- सभी पंजीकृत वर्चुअल मशीनों की सूची दिखाता है (बंद की गई मशीनों सहित)
जैसा कि आप स्क्रीनशॉट में देख सकते हैं, पहले मामले में शटडाउन वीएम प्रदर्शित नहीं हुआ था।
# virsh shutdown <vm name>
— वर्चुअल मशीन को बंद करें
# virsh start <vm name>
— वर्चुअल मशीन शुरू करें
# virsh suspend <vm name>
— VM को सस्पेंड करें
# virsh resume <vm name>
- एक निलंबित वर्चुअल मशीन शुरू करें
# virsh reboot <vm name>
— VM को पुनरारंभ करें
# virsh destroy <vm name>
— तत्काल अपमानजनक शटडाउन शुरू करता है और VM को रोकता है (जब अतिथि वर्चुअल मशीन अनुत्तरदायी हो तो इस कमांड का उपयोग करें)
# virsh undefine <vm name>
— VM को अपंजीकृत करें और इसके स्टोरेज वॉल्यूम को हटा दें
# virsh vcpuinfo <vm name>
— VM के vCPU के बारे में जानकारी दिखाता है
वर्चुअल मशीन के बारे में अलग-अलग जानकारी प्राप्त करने के लिए यहां कुछ अन्य आदेश दिए गए हैं:
# virsh domid <vm name>
— वर्चुअल मशीन आईडी प्राप्त करें
# virsh domuuid <vm name>
— वर्चुअल मशीन का UUID दिखाएं
# virsh dominfo <vm name>
— वर्चुअल मशीन के बारे में जानकारी प्रदर्शित करता है
# virsh domstate <vm name>
— VM स्थिति देखें
# virsh dumpxml <vm name>
— किसी वर्चुअल मशीन की कॉन्फ़िगरेशन फ़ाइल को XML स्वरूप में सूचीबद्ध करें
KVM वर्चुअल मशीन में मेमोरी और vCPU कैसे जोड़ें?
KVM कंसोल में, आप VM को सौंपे गए CPU या मेमोरी संसाधनों को दो तरीकों से जोड़ या घटा सकते हैं:
- विरश का उपयोग करना
- VM कॉन्फ़िगरेशन के माध्यम से XML फ़ाइल
अगर कोई वर्चुअल मशीन चल रही है, तो उसे बंद कर दें:
# virsh shutdown test-centos
डोमेन टेस्ट-सेंटो को बंद किया जा रहा है
फिर वर्चुअल CPU (vCPU) की संख्या को 6 में बदलने के लिए virsh का उपयोग करें:
# virsh setvcpus <vm name> <vcpu_count> --config
उदाहरण के लिए:
# virsh setvcpus test-centos 6 --config
मेरे द्वारा कमांड चलाने के बाद, एक त्रुटि दिखाई दी:
त्रुटि:अमान्य तर्क:अनुरोधित vcpus स्थायी डोमेन के लिए अधिकतम स्वीकार्य vcpus से अधिक है:6> 4
आप अधिकतम संख्या से अधिक कोर की संख्या निर्धारित नहीं कर सकते। VM vCPU की अधिकतम अनुमत संख्या बढ़ाने के लिए, यह कमांड चलाएँ:
# virsh setvcpus test-centos 6 --config --maximum
फिर पिछली कमांड चलाएँ और वर्चुअल मशीन शुरू करें:
आइए VM सेटिंग्स में vCPU की संख्या की जाँच करें:
# virsh dumpxml test-centos
test-centos 3b223aa2-b322-1ff1-ab23-c1223abc1f01 2097152 2097152 6
उसी तरह, आप वर्चुअल मशीन में अतिरिक्त RAM जोड़ सकते हैं:
# virsh setmem <vm_name> <memsize> --config
उदाहरण के लिए:
# virsh setmem test-centos 4G --config
इसी कारण से एक त्रुटि हुई:
त्रुटि:अमान्य तर्क:अधिकतम मेमोरी से अधिक मेमोरी सेट नहीं कर सकता।
आइए मेमोरी की अधिकतम मात्रा बढ़ाएं:
# virsh setmaxmem test-centos 6G --config
फिर आप VM में मेमोरी जोड़ सकते हैं।
कोई भी बदलाव करने से पहले, वर्चुअल मशीन को बंद करना और फिर उसे चालू करना सुनिश्चित करें।
साथ ही, आप किसी KVM VM के संसाधनों की मात्रा को उसकी XML कॉन्फ़िगरेशन फ़ाइल में बदल सकते हैं। आप इसे ऑनलाइन संपादित कर सकते हैं या VM XML फ़ाइल का बैकअप ले सकते हैं, इसे संशोधित कर सकते हैं और वर्चुअल मशीन पर लागू कर सकते हैं।
आइए VM XML फ़ाइल को ऑनलाइन संपादित करें:
# virsh edit <vm_name>
vi . में दिखाई देने वाले संपादक, सम्मिलित करें . दबाकर अपने इच्छित परिवर्तन करें बटन।
निम्नलिखित ब्लॉक बदलें:
test-centos 3b223aa2-b322-1ff1-ab23-c1223abc1f01 6291456 4194304 6
उदाहरण के लिए, आइए VM को 2 प्रोसेसर कोर और 1 GB मेमोरी आवंटित करें:
ध्यान दें कि मेमोरी का आकार किलोबाइट में दिखाया गया है।
फ़ाइल में परिवर्तन सहेजें और अपने VM को रीबूट करें:
# virsh reboot <vm_name>
यदि आप XML फ़ाइल का बैकअप लेते हैं तो आप भी ऐसा ही कर सकते हैं:
# virsh dumpxml <vm_name> > /root/test.xml
# vi /root/test.xml
अपनी इच्छित सेटिंग बदलें, फ़ाइल सहेजें और इसे वर्चुअल मशीन पर लागू करें:
# virsh shutdown test-centos
डोमेन टेस्ट-सेंटो को बंद किया जा रहा है
# virsh define /root/test.xml
डोमेन टेस्ट-सेंटोस /root/test.xml से परिभाषित किया गया है
# virsh start test-centos
डोमेन परीक्षण केंद्र प्रारंभ हो गयाकभी-कभी जब आप किसी VM कॉन्फ़िगरेशन फ़ाइल को ऑनलाइन बदलते हैं, तो असाइन किए गए संसाधन रिबूट के बाद रीसेट हो जाते हैं। इस मामले में, वर्चुअल मशीन को रोकें और फिर इसे शुरू करें।
किसी मौजूदा KVM VM में डिस्क जोड़ें
हमारे एक लेख में हमने बताया कि KVM वर्चुअल मशीन के डिस्क आकार को कैसे बढ़ाया या घटाया जा सकता है। लेकिन हमने यह नहीं बताया कि अतिरिक्त डिस्क कैसे जोड़ें।
सबसे पहले, वर्चुअल मशीन के लिए एक नई डिस्क फ़ाइल बनाएं:
# qemu-img create -f qcow2 -o size=20G /vz/disk/test.img
Qcow2 के बजाय, आप अपने इच्छित डिस्क प्रारूप का उपयोग कर सकते हैं। फ़ाइल पथ भी निर्दिष्ट करें। मेरा डिस्क संग्रहण /vz/disk/ में स्थित है।
फिर आप VM में वर्चुअल डिस्क डिवाइस जोड़ सकते हैं:
# virsh attach-disk <vm_name> /vz/disk/test.img vdb --type disk --persistent
शट डाउन करें और अपने VM को रीबूट करें, फिर देखें कि आपको क्या मिला है:
# virsh shutdown test-centos
डोमेन टेस्ट-सेंटो को बंद किया जा रहा है
# virsh start test-centos
डोमेन परीक्षण केंद्र प्रारंभ हो गया
# virsh dumpxml test-centos
test-centos 3b223aa2-b322-1ff1-ab23-c1223abc1f01 2097152 2097152 6 <विभाजन>/मशीनपार्टिशन> <टाइप आर्क='x86_64' मशीन='पीसी-i440fx-rhel7.0.0'>एचवीएम ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~<डिस्क प्रकार ='फ़ाइल' डिवाइस ='डिस्क'> <चालक का नाम ='qemu' प्रकार ='qcow2'/><स्रोत फ़ाइल ='/vz/disk/test.img'/> <बैकिंगस्टोर/><लक्ष्य देव='vdb' बस='गुण'/><उपनाम नाम='virtio-disk1'/><पता प्रकार='pci' डोमेन='0x0000' बस='0x00' स्लॉट='0x09 ' फंक्शन='0x0'/>डिस्क>पूर्व>जैसा कि आप देख सकते हैं, डिस्क जोड़ दी गई है।
KVM वर्चुअल मशीन में दूसरा NIC कैसे जोड़ें?
आइए VM में एक और नेटवर्क इंटरफ़ेस जोड़ने का प्रयास करें। सबसे पहले, Linux होस्ट पर नेटवर्क इंटरफेस की जांच करें:
# brctl show
मेरे पास मेरे KVM होस्ट पर एक नेटवर्क इंटरफ़ेस के साथ एक वर्चुअल मशीन है। मैं br0 में एक और वर्चुअल नेटवर्क इंटरफ़ेस जोड़ना चाहता हूं। ये कमांड चलाएँ:
# virsh shutdown test-centos
# virsh attach-interface test-centos --type bridge --source br0 --persistent
# virsh start test-centosसुनिश्चित करें कि आपके VM में कोई अन्य नेटवर्क इंटरफ़ेस दिखाई दिया है:
<इंटरफ़ेस प्रकार='ब्रिज'><मैक पता='52:54:00:7e:c1:9f'/><स्रोत ब्रिज='br0'/><मॉडल प्रकार='virtio'/><पता टाइप ='पीसीआई' डोमेन ='0x0000' बस ='0x00' स्लॉट ='0x03' फ़ंक्शन ='0x0'/>इंटरफेस> <इंटरफ़ेस प्रकार ='ब्रिज'> <मैक पता ='52:54:00:2f:23:79'/><स्रोत ब्रिज='br0'/><मॉडल प्रकार='rtl8139'/><पता प्रकार='pci' डोमेन='0x0000' बस='0x00' स्लॉट='0x0a' समारोह='0x0'/>इंटरफ़ेस>पूर्व>साथ ही आप अपने वर्चुअल मशीन की नेटवर्क सेटिंग्स को सीधे XML फ़ाइल के माध्यम से बदल सकते हैं:
# virsh edit test-centos
पहले नेटवर्क इंटरफ़ेस के बाद, इन पंक्तियों को जोड़ें:
<इंटरफ़ेस प्रकार='ब्रिज'><स्रोत ब्रिज='br0'/>इंटरफ़ेस>फ़ाइल सहेजें और VM प्रारंभ करें। KVM शेष कॉन्फ़िगरेशन (MAC पता, आदि) को स्वयं जोड़ देगा।
इस लेख में हमने मुख्य चीजें शामिल की हैं जिनकी आपको Linux सर्वर कंसोल से KVM वर्चुअल मशीन को प्रबंधित करने की आवश्यकता हो सकती है। अगले लेख में हम दिखाएंगे कि वर्चुअल मशीन को
virt-manager
. के माध्यम से कैसे प्रबंधित किया जाए जीयूआई।