KVM / libvirt / virt-manager VM का एक डूप कैसे बनाएं?


13

मैं गुण-प्रबंधक / libvirt / KVM के साथ थोड़ा खो गया हूं।

मुझे एक केवीएम वीएम (विंडोज एक्सपी) काम कर रहा है जो अच्छी तरह से काम करता है।

VM 4GB फ़ाइल या तो (a .img ) द्वारा समर्थित है ।

अब मैं कुछ बहुत सरल करना चाहता हूं: मैं अपने वीएम की नकल करना चाहता हूं।

मैंने सोचा "ठीक है, कोई बात नहीं, चलो 4GB फ़ाइल कॉपी करें और XML" फाइल कॉपी करें

लेकिन तब एफएवीवीएआरटी एफएक्यू सभी अपरकेस में बताता है: "आप नहीं चाहते कि एक्सएमएल ISOR क्या है"

libvirt FAQ

ठीक है, मुझे परवाह नहीं करनी चाहिए। लेकिन फिर मैं अपने वीएम की नकल कैसे करूं?

मैं एक नया VM बनाना चाहता हूं जो उस VM की एक प्रति है।

जवाबों:


4

virshअपने सर्वर के लिए XML परिभाषा को संपादित करने, निर्यात करने और आयात करने की अनुमति देगा। मैं virt-cloneएक क्लोन छवि फ़ाइल उत्पन्न करने और XML निर्यात करने के लिए उपयोग करूंगा । सुरक्षित होने के लिए मैं मूल सर्वर से क्लोन कॉन्फ़िगरेशन को हटा दूंगा।


42

सबसे सुविधाजनक बस है:

# virt-clone --connect=qemu://example.com/system -o this-vm -n that-vm --auto-clone

जो की एक प्रतिलिपि बनायेगा this-vm, नाम देगा that-vm, और भंडारण उपकरणों की नकल करने का ध्यान रखेगा । विस्तार के अलावा यहां कुछ भी नया नहीं है।

इस बिंदु पर अधिक, सामान्य प्रश्न क्या कह रहा है कि XML डोमेन विवरण सीधे संपादन योग्य नहीं हैं, आपको libvirt से गुजरना होगाvirt-cloneकमांड द्वारा उठाए गए कदमों को पूरा करने के लिए , आप:

source_vm=vm_name
new_vm=new_vm_name

# You cannot "clone" a running vm, stop it.  suspend and destroy
# are also valid options for less graceful cloning
virsh shutdown "$source_vm"

# copy the storage.
cp /var/lib/libvirt/images/{"$source_vm","$new_vm"}.img

# dump the xml for the original
virsh dumpxml "$source_vm" > "/tmp/$new_vm.xml"

# hardware addresses need to be removed, libvirt will assign
# new addresses automatically
sed -i /uuid/d "/tmp/$new_vm.xml"
sed -i '/mac address/d' "/tmp/$new_vm.xml"

# and actually rename the vm: (this also updates the storage path)
sed -i "s/$source_vm/$new_vm" "/tmp/$new_vm.xml"

# finally, create the new vm
virsh define "/tmp/$new_vm.xml"
virsh start "$source_vm"
virsh start "$new_vm"

यह वीएम पर किसी अन्य होस्ट को कॉपी करने के लिए भी काम करता है: cp के बजाय sftp का उपयोग करें, (संभव है) नए vm को परिभाषित करने से पहले छवि पथ को बदल दें और sftp दूसरे होस्ट को sftp भी दे दे।
एंड्रियास फ्लोरैथ

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

क्या virt-cloneफुल डिस्क एन्क्रिप्शन को सही तरीके से हैंडल करता है? मतलब, क्या यह अपनी बात करने से पहले मुझसे मेरे डिक्रिप्ट पीडब्ल्यू से पूछेगा?
एक कोडर

मुझे लगता है कि sed -i "s/$source_vm/$new_vm" "/tmp/$new_vm.xml"पढ़ना चाहिए sed -i "s/$source_vm/$new_vm/" "/tmp/$new_vm.xml"या कम से कम मेरे डेबियन व्युत्पन्न सेड को एक लापता ट्रेलिंग / की शिकायत है। जानकारी के लिए भी धन्यवाद, मेरा वायरल-क्लोन बस काम नहीं कर रहा था।
नंबर

3

"गुण-क्लोन" के अलावा आप VM को इस तरह से डुप्लिकेट कर सकते हैं:

  1. सुनिश्चित करें कि मौजूदा VM (डुप्लिकेट होने के लिए) बंद है।
  2. मौजूदा VM की "sudo virsh डंपएक्स एमएल <डोमिड>" करें, और आउटपुट xml फ़ाइल सहेजें।
  3. <डोमेन> टैग के तहत <नाम> टैग को संशोधित करें।
  4. एक नई अनूठी आईडी जनरेट करने के लिए "uuidgen" का उपयोग करें और मौजूदा <uuid> टैग को संशोधित करने के लिए इसका उपयोग करें।
  5. मौजूदा qcow आभासी छवियों की एक प्रतिलिपि बनाएँ, जिसे VM उपयोग करता है, (आमतौर पर / var / lib / libvirt / छवियों में संग्रहीत होता है, लेकिन यह सुनिश्चित करने के लिए कि सटीक स्थान के लिए बस अपनी XML फ़ाइल पढ़ें)। कमांड "sudo cp /var/lib/libvirt/images/xxx.qcow2 yyyy.qcow2" है, और XML फ़ाइल में नई फ़ाइल yyyy.qcow2 भरें।
  6. नया vm प्रारंभ करें: sudo virsh परिभाषित new.xml
  7. नया अधिवास प्रारंभ करें: sudo virsh start <new_domid>



0

जाहिरा तौर पर पुण्य-क्लोन जाने का रास्ता है।

मैंने XML को डुप्लिकेट करने की कोशिश की, लेकिन यह पुण्य-प्रबंधक के अंतर्गत नहीं आएगा।

मुझे अभी भी आश्चर्य है कि मैं एक XML + .gg को एक नई प्रणाली में कैसे स्थानांतरित कर सकता हूं जिसने कहा ...


0

निम्नलिखित कमांड ने मेरे लिए काम किया (कमांड चलाने से पहले वीएसए / वीएम को बंद करना है)

# virt-clone --connect=qemu:///system -o present_vsa/vm_name -n vsa/vm_to_be_cloned_name --auto-clone

1
छद्म वीएम नामों के अलावा, यह तीन-वर्षीय उत्तर से कमांड के समान है - लेकिन उस उत्तर से पूरक जानकारी का अभाव है।
जी-मैन का कहना है कि 'मोनिका' की बहाली

0

गुण-क्लोन - ऑटो-क्लोन को LVM के साथ अच्छी तरह से खेलना प्रतीत नहीं होता है। मैं यह उम्मीद कर रहा था कि यह एक स्नैपशॉट बनाए और इसका उपयोग करे, लेकिन इसके बजाय यह सभी डेटा को कॉपी करता है।

डंपएक्सएमएल / परिभाषित मार्ग करने के लिए बेहतर; और क्लोन के रूट फाइल सिस्टम को माउंट करना और मूल और क्लोन को शुरू करने से पहले आईपी पते और होस्टनाम को उचित रूप से बदलना याद रखें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.