ब्लॉकसिंक्रोमो का उपयोग करके वीएम को कॉपी करने पर विस्तृत निर्देश
ये निर्देश एक वीवीएम प्रदान की गई डिस्क का उपयोग करके वीएम पर लागू होते हैं और यह मानते हैं कि पायथन मेजबान में से प्रत्येक पर है
Https://gist.github.com/rcoup/1338263 से blockync.py स्क्रिप्ट डाउनलोड करें और अपने / घर / उपयोगकर्ता फ़ोल्डर में स्रोत और गंतव्य होस्ट दोनों पर रखें।
अग्रगामी
- आपको अपने उपयोगकर्ता के लिए दोनों मशीनों (स्रोत और लक्ष्य) तक 'ssh' पहुंच की आवश्यकता होगी।
आपको दोनों मशीनों पर 'sudo' की 'रूट' एक्सेस करने की आवश्यकता होगी।
वैकल्पिक रूप से, आप सब कुछ रूट के रूप में कर सकते हैं, लेकिन केवल अगर आपकी ssh कुंजी आपको कम से कम लक्ष्य मशीन तक रूट एक्सेस देती है। ** इस मामले में, कमांड लाइनों से उपयोगकर्ता नाम हटा दें।
उदाहरण सेटिंग्स
- वर्चुअल मशीन डोम 0 होस्ट पर है जिसे च्वी के नाम से जाना जाता है
- डेस्ट होस्ट के रूप में जाना जाने वाला डेस्ट डेथ पर वांछित डेस्टिनेशन यहाँ था और यहाँ 10.10.10.38 (हमारे उदाहरण के लिए) एक आंतरिक आईपी था।
- हमारे वास्तविक मामले में हम सेंटो 7 का उपयोग दोनों मशीनों पर डोमे ऑपरेटिंग सिस्टम के रूप में करते हैं
- इस उदाहरण में VIRTUAL मशीन जो हम जा रहे हैं उसे LARRY कहा जाता है
- कार्रवाई करने वाला उपयोगकर्ता USER है (जो आपका नाम होगा)
- DOM0 का अर्थ है वास्तविक भौतिक सर्वर
प्रक्रिया
स्रोत होस्ट पर प्रारंभिक चरण
- वर्तमान में मशीन ("स्रोत" मेजबान) है, जो dom0 मेजबान के लिए लॉग इन करें:
ssh user@chewie.domainname.com.au
- अपने उपयोगकर्ता के रूप में रहें, इसलिए sudo उपयोगकर्ता न बनें * सूची मशीनों के साथ
सुडो वीर्ष - लंबा
- मशीन की परिभाषा का उपयोग कर डंप करें, जैसे:
sudo virsh डंपएक्सएमएल लैरी> लैरी.एक्सएमएल
डंप की गई परिभाषा को नई मशीन ("लक्ष्य" होस्ट) पर कॉपी करें, जैसे:
scp -p larry.xml 10.10.10.38:larry.xml
आप आंतरिक गंतव्य को अपने गंतव्य के लिए बदल सकते हैं dom0 सर्वर नाम ** नोट: लक्ष्य के लिए आईपी पते का उपयोग करना सबसे अच्छा है, उदाहरण के लिए: scp -p larry.xml user@10.10.10.38: larry.xml
यदि आप चाबी को लैरी.एक्सएमएल की वजह से कॉपी नहीं कर सकते हैं और इसे कॉपी कर सकते हैं तो आप दूसरी मशीन में जाकर फाइल बना सकते हैं और पेस्ट कर सकते हैं।
वीएम की डिस्क का आकार और नाम खोजें
सूद lvs - बीट्स
।
** ऊपर के आदेश को बाइट्स में बिल्कुल आकार दिखाना चाहिए। ** मशीन का डिस्क नाम सूची के पहले कॉलम में है, दूसरे में इसका वॉल्यूम समूह और आखिरी में आकार। ** डिवाइस का नाम / dev // के रूप में निर्धारित करें। ** इसे 'll' कमांड के साथ जाँचें उदाहरण के लिए, इस आउटपुट में: vm_larry vg1 -wi-ao ---- 69793218560B
LV VG Attr पूल मूल डेटा% मेटा% ले जाएँ लॉग इन करें Cpy% सिंक कन्वर्ट
lv_root vg1 -wi-ao ---- 53687091200B
lv_swap vg1 -wi-ao ---- 17179869184B
vm_vsrv1 vg1 -wi-ao ---- 193273528320B
vm_vsrv10 vg1 -wi-ao ---- 64424509440B
vm_vsrv11 vg1 -wi-ao ---- 161061273600B
vm_vsrv12 vg1 -wi-ao ---- 204010946560B
vm_vsrv2 vg1 -wi-ao ---- 140110725120B
vm_vsrv3 vg1 -wi-ao ---- 128849018880B
vm_larry vg1 -wi-ao ---- 69793218560B
vm_vsrv5 vg1 -wi-ao ---- 257698037760B
vm_vsrv6 vg1 -wi-ao ---- 64424509440B
vm_vsrv7 vg1 -wi-ao ---- 161061273600B
vm_vsrv8 vg1 -wi-ao ---- 64424509440B
vm_vsrv9 vg1 -wi-ao ---- 214748364800B
लक्ष्य होस्ट पर प्रारंभिक चरण
- लक्ष्य होस्ट में प्रवेश करें, जैसे
ssh user@darth.domainname.com.au
- अपने खुद के उपयोगकर्ता के रूप में रहें। यानी जड़ नहीं बनेंगे।
वॉल्यूम परिभाषा फ़ाइल बनाएँ, उदाहरण के लिए:
vi larry.domainname.com.au-vol.xml
या nano larry.domainname.com.au-vol.xml
निम्नलिखित पंक्तियों के साथ: नोट - आपको मूल VM से बाइट्स में आकार लेने और स्क्रिप्ट के नीचे रखने की आवश्यकता होगी। आकार के लिए स्रोत मशीन पर कमांड sudo lvs --units B था
<volume type='block'>
<name>larry.domainname.com.au</name>
<capacity unit='bytes'>69793218560</capacity>
<allocation unit='bytes'>69793218560</allocation>
<target>
<path>/dev/centos/larry.domainname.com.au</path>
<permissions>
<mode>0600</mode>
<owner>0</owner>
<group>6</group>
<label>system_u:object_r:fixed_disk_device_t:s0</label>
</permissions>
</target>
</volume>
नोट: यह परिभाषा VM लैरी के लिए 69793218560 बाइट्स डिस्क के लिए है, वास्तविक VM के लिए आवश्यक रूप से बदलें।
नोट: पथ का नाम और अंतिम भाग मेल खाना चाहिए और नए डिस्क नाम के रूप में उपयोग किया जाएगा।
उपयोग करके परिभाषा से नई डिस्क बनाएं
sudo virsh vol-create --pool centos larry.domainname.com.au-vol.xml
यह कहेगा Vol larry.domainname.com.au, larry.domainname.com.au-vol.xml से बनाया गया है
डिस्क डिवाइस फ़ाइल को सुलभ बनाएं:
सुडो चगरप व्हील / देवा / एम्पर / एसेंटोस-larry.domainname.com.au
सुदो चामोद g + rw /dev/mapper/centos-larry.domainname.com.au
Xml परिभाषा की प्रतिलिपि बनाकर संपादित करें, जैसे:
vi लैरी.एक्सएमएल
फ़ाइल में डिस्क परिभाषा ढूंढें ("स्रोत देव =" के लिए खोजें) और डिवाइस को उसी के साथ बदलें (जो आप vm देखने के लिए ls / dev / centos / कर सकते हैं), उदा: / dev / drbd4 -> / dev / CentOS / larry.domainname.com.au
यह पुल परिवर्तन हमारी स्थिति के लिए अद्वितीय था।
** इंटरफ़ेस श्लोक में "br1" के किसी भी संदर्भ को ढूंढें और इसे "br0" में बदलें जैसे कि आप स्रोत पुल को बदल रहे हैं ताकि लाइन इस तरह से हो
स्रोत होस्ट पर अंतिम चरण
स्रोत होस्ट में लॉग इन करें, जैसे
ssh user@chewie.domainname.com.au
अंतिम तालमेल करने से पहले वीएम स्रोत होस्ट पर वीएम को बंद करना होगा, लेकिन ऐसा करने की आवश्यकता नहीं है। (virsh शटडाउन NameOfMachine)
यदि स्रोत होस्ट पर पहले से ही नहीं है, तो https://gist.github.com/rcoup/1338263 से ब्लॉकसिंकहोम स्क्रिप्ट डाउनलोड करें
यदि आपका उपयोगकर्ता नाम उपयोगकर्ता है (उदाहरण के लिए) तो ब्लॉक मशीन को स्क्रिप्ट में कॉपी करें दोनों मशीनों में / घर / उपयोगकर्ता और उपयोगकर्ता को चुन लें: उपयोगकर्ता और 755 स्क्रिप्ट को चोद दें।
- यदि पहले से ही लक्ष्य होस्ट पर नहीं है, तो इसे वहां कॉपी करें, जैसे:
scp -p blockync.py user@10.10.10.38: blockync.py
- स्रोत डिस्क को लक्ष्य डिस्क में कॉपी करने के लिए इसका उपयोग करें, जैसे
कमांड जो कॉपी करता है
sudo -E python blockync.py / dev / vg1 / vm_larry user@10.10.10.38/dev/mapper/centos-larry.domainname.com.au -b 4194304
नोट: पहला उपकरण का नाम स्रोत होस्ट के लिए है, जैसा कि 'lvs' कमांड से निर्धारित होता है; यह एक [[chewie]] स्रोत होस्ट से है।
नोट: यह लक्ष्य डिस्क की सामग्री को नष्ट कर देगा , सुनिश्चित करें कि /dev/mapper/centos-larry.domainname.com.au सही है!
नोट: सिंक में एक लंबा समय लगेगा - प्रति गीगाबाइट में लगभग 100 सेकंड, यानी: 60 गीगाबाइट डिस्क के लिए 90 मिनट।
हालाँकि, आप एक सिंक कर सकते हैं जबकि VM उपयोग में है; बाद के syncs 25 प्रतिशत तक तेजी से हो सकते हैं
स्क्रिप्ट उन मापदंडों का प्रिंट लेगी जो वह उपयोग कर रहा है (एक अपग्रेड किए गए मॉड्यूल के बारे में एक संदेश हो सकता है, यह ठीक है)। इसके बाद, यह ssh कमांड को दिखाता है कि यह उपयोग कर रहा है और इसे चलाता है (आप अधिकृत कर्मचारियों को केवल तभी संदेश देखेंगे जब वह ऐसा करता है)। इसके सिंक के दौरान, यह कॉपी किए गए कुल ब्लॉक और इसकी औसत गति प्रदर्शित करेगा। अंत में, यह एक पूर्ण संदेश प्रिंट करता है जिसमें सेकंड की संख्या होती है।
जानने योग्य बातें
आप CTRL C के साथ सिंक को रद्द कर सकते हैं और इसे बाद में फिर से कमांड चलाकर पुनः आरंभ कर सकते हैं
लक्ष्य मेजबान पर अंतिम चरण
नोट: नए परिवेश के अनुरूप VM के विवरण में परिवर्तन करना आवश्यक हो सकता है।