Xen-pocalypse (बैश) के साथ मुफ्त में Citrix Xen VMs का बैकअप कैसे लें
क्या आपको कभी अपने Citrix Xen Virtual Machines (VMs) का बैकअप लेने की ज़रूरत है, लेकिन ऐसा करने वाले बैंक को तोड़ना नहीं चाहते हैं? एचटीजी के पास आपके लिए एक्सएएन-पोक्लिप्स के साथ बस बैश स्क्रिप्ट है.
छवि द्वारा h.koppdelaney, कस्टम और हॉटफ़रटेक में अटक गया.
Citrix Xen में एक अच्छी बात यह है कि इसकी कई विशेषताएं हैं मुक्त प्रभार संबंधी। इसके साथ ही, यदि आप "स्वचालित VM सुरक्षा और पुनर्प्राप्ति" सुविधा चाहते हैं, तो आपको "अग्रिम" लाइसेंस के लिए भुगतान करना शुरू करना होगा। फिर भी, आप केवल डिस्क स्तर बैकअप के लिए भुगतान कर रहे हैं, जो सक्रिय निर्देशिका, डेटाबेस और आदि जैसे कई प्रकार के वर्कलोड के लिए पर्याप्त नहीं हैं। इसे दूर करने के लिए आप "लाइव मेमोरी स्नैपशॉट और रिवर्ट" चाहते हैं, जो पूरे को बचा सकता है। रैम की सामग्री सहित मशीन राज्य। हालाँकि, यह सुविधा "एंटरप्राइज" और "प्लेटिनम" संस्करणों का हिस्सा है, जो और भी अधिक महंगे हैं। ऐसा नहीं है कि हम HTG में एक सच्चे बैकअप सॉफ्टवेयर के मूल्य को खारिज कर रहे हैं, लेकिन यदि आप एक तंग बजट पर हैं और बैकअप ऑपरेशन के लिए कुछ डाउनटाइम नहीं देते हैं, तो आप Xen-pocalypse को एक उचित समाधान मान सकते हैं। इससे पहले कि आप बजट प्रतिबद्धता बनाएं.
अवलोकन
"उपयोग का मामला": आपके पास VM की एक जोड़ी है जिसमें बैकअप की आवश्यकता होती है। "एक्सएम सेंटर" से "वीएम को बंद करना और इसे फ़ाइल के रूप में निर्यात करना" सही क्लिक का उपयोग करके ठीक काम करता है, लेकिन आप चाहते हैं कि यह प्रक्रिया स्वचालित रूप से और एक शेड्यूल पर हो। यह बैश स्क्रिप्ट अपने कर्तव्यों को निभाने के लिए "XE" कमांड का उपयोग करता है। एक्सई एक्सईएन कमांड लाइन इंटरफेस (सीएलआई) है, जो "एक्सईएन सेंटर" में "राइट क्लिक" जारी करने के लिए स्वचालित बराबर है। हम क्रोन से स्क्रिप्ट बुला रहे हैं जो "शेड्यूलिंग" भाग की आपूर्ति करेगी। अपने सरलतम रूप में, बैकअप प्रवाह है:
- लक्ष्य VM बंद करें.
- VM को बैकअप स्थान पर फ़ाइल के रूप में निर्यात करें.
- यदि वीएम चालू किया गया था, तो बैकअप शुरू होने से पहले, इसे वापस चालू किया जाएगा.
चलें शुरू करें :)
स्क्रिप्ट प्राप्त करें
नियमित रूप से गिट तरीकों का उपयोग करके एक्सथ-पॉलीकिप्स को गिथब से स्वतंत्र रूप से प्राप्त किया जा सकता है। इसके साथ ही कहा, यदि आप अभी तक जीआईटी में पारंगत नहीं हैं, तो आप इस लिंक के साथ जिप फाइल को पकड़ सकते हैं। जैसा कि स्क्रिप्ट को आपके एक एक्सएन सर्वर पर चलाने की आवश्यकता होती है, आपको इसे वहां निकालना चाहिए ताकि निष्पादन अनुमति संरक्षित हो.
wget https://github.com/aviadra/Xen-pocalypse/archive/master.zip
अनजिप गुरु
उपरोक्त कार्य करने के दौरान, आपको GIT विधि का उपयोग करने की सलाह दी जाती है, ताकि आप भविष्य के अपडेट से लाभान्वित हो सकें.
SendEmail प्राप्त करें (वैकल्पिक)
हमने पिछले दिनों SendEmail perl प्रोग्राम के बारे में लिखा है, इसलिए यहाँ पुनरावृत्ति करने की कोई आवश्यकता नहीं है। यह कहने के लिए पर्याप्त है, यह लिनक्स पर उसी तरह काम करता है जैसा कि विंडोज पर करता है.
ईमेल को सक्षम करते समय वैकल्पिक है, यह अत्यधिक अनुशंसित है क्योंकि तब स्क्रिप्ट में सक्षम हो जाएगा:
- आपको सूचित करें कि यह कब शुरू और समाप्त हुआ.
- आपको किसी भी त्रुटि के बारे में सचेत करें जो यह पता लगाने और संभालने में सक्षम थी.
- अंतरिक्ष मुद्दों के कारण बैकअप अयोग्यता की सूचना। (यह व्यवहार अक्षम किया जा सकता है अगर वांछित नहीं)
इसे एक्सएन सर्वर पर डाउनलोड करें और निकालें.
wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz
tar xvzhf sendEmail-v1.56.tar.gz
उस स्थान पर ध्यान दें जहाँ आपने उसे निकाला था। आपको सेटिंग फ़ाइल के लिए इसकी आवश्यकता होगी.
टैग को परिभाषित करना
Citrix Xen आपको फ़िल्टरिंग क्षमताओं के लिए "कस्टम फ़ील्ड" कॉन्फ़िगर करने की क्षमता देता है। हम फ़ील्ड बनाएंगे और फिर उन्हें Xen-pocalypse द्वारा उपयोग की गई जानकारी के साथ पॉप्युलेट करेंगे। Xen-pocalypse 3 नियंत्रण TAG को पहचानता है जो बैकअप के लिए टैग का नाम और बाल संबंधों के लिए अभिभावक को नामित करता है। यदि आप फ़ाइल इनपुट विधि का उपयोग करने का इरादा नहीं कर रहे हैं, तो आपको कम से कम बैकअप टैग नाम फ़ील्ड बनाना होगा.
ऐसा करने के लिए, सर्वर या यहां तक कि वीएम के गुणों को खोलें। नेविगेशन फलक में, "कस्टम फ़ील्ड" चुनें.
यदि यह पहली बार है जब आप किसी रिश्ते को परिभाषित करते हैं (जैसा कि ऊपर उदाहरण में), तो आपके पास डेटा इनपुट करने के लिए कोई फ़ील्ड नहीं होगा, इसलिए आपको उन्हें बनाने की आवश्यकता है। ऐसा करने के लिए, संवाद बॉक्स में "कस्टम फ़ील्ड संपादित करें" पर क्लिक करें जो पॉप अप करता है, "जोड़ें ..." पर क्लिक करें
तीन (3) "टेक्स्ट" टाइप फ़ील्ड बनाएँ। एक को "बैकअपटेग" कहा जाएगा और दूसरे को "अभिभावक" और "बच्चे".
ध्यान दें: कस्टम फ़ील्ड के नाम, स्क्रिप्ट में "हार्ड कोडित" किए गए हैं, इसलिए आपको उपरोक्त वर्तनी से विचलन नहीं करना चाहिए, जब तक कि आप संबंधित कोड को नहीं बदलते हैं.
एक बार सभी फ़ील्ड बन जाने के बाद, आपको देखना चाहिए:
विंडो बंद करें। अब आपके पास भरने के लिए "BackupTAG", "पैरेंट" और "चिल्ड्रन" फ़ील्ड होनी चाहिए, जैसा कि नीचे दी गई तस्वीर में है.
अब आपको बस इतना करना है कि कौन सा VMs "BackupTAG" से संबंधित है.
उदाहरण के लिए, जिस कंपनी में स्क्रिप्ट विकसित हुई थी, हमारे पास वीएम थे, जिन्हें गुरुवार और शुक्रवार को साप्ताहिक रूप से बैकअप दिया जाना था, हमारे एटलसियन उत्पाद वीएम के लिए एक शेड्यूल और कुछ जो केवल मासिक रूप से समर्थित होने थे। तो हमारा अवलोकन इस प्रकार था:
जहां उदाहरण के लिए "साप्ताहिक-फ्राय" वह पाठ था जिसे हमने "बैकअपटैग" "कस्टम फील्ड" में इनपुट किया है। नीट हुह? :)
माता-पिता और बच्चे (वैकल्पिक)
इस स्क्रिप्ट की असली सुंदरता यह है कि यह "बच्चे" के रिश्तों को "माता-पिता" का समर्थन करता है। यही है, "बच्चे" वीएम की एक सूची सेट करना संभव है जो माता-पिता के सामने बंद हो जाएगा और बैक-अप किया जाएगा, और यह कि ये बच्चे केवल एक बार माता-पिता का बैकअप समाप्त होने पर वापस चालू हो जाएंगे और वापस कर दिए जाएंगे। पर। यह उन मामलों में उपयोगी है जहां मूल VM को बंद करने से बच्चे की सेवा अनुपलब्ध हो जाएगी। इस तरह की बात का मतलब होगा कि बच्चे की वीएम पर सेवा दो बार अनुपलब्ध होगी, एक बार बच्चे की बैकअप प्रक्रिया के लिए और एक बार माता-पिता के लिए। इस संबंध को बनाने से उस समस्या पर काबू पा लिया जाता है.
उदाहरण के लिए, हमारे सभी एटलसियन वीएम ने एक एकल डेटाबेस (डीबी) वीएम का उपयोग किया, जिसे बैकअप करने के लिए भी निर्धारित किया गया था। तो यह देखते हुए कि DB VM अन्य VMs के लिए एक "अभिभावक" है, शटडाउन का एक उचित क्रम -> बैकअप -> स्टार्टअप, सुनिश्चित किया जा सकता है.
इस लेखन के समय, इस फ़ंक्शन में दो जोड़े हैं:
- ऐसे संबंध रखने वाले VM के नाम में रिक्त स्थान नहीं हो सकते। आपको अपने वीएम नामों से रिक्त स्थान को निकालना होगा, क्योंकि वे नीचे दिए गए उदाहरण के अनुसार अंतरिक्ष सीमांकित होंगे.
- एक ही माता-पिता हो सकते हैं। एक से अधिक का डिजाइन करना भी योजनाबद्ध नहीं है, परीक्षण का उल्लेख नहीं करना.
इस संबंध को बनाने के लिए, VM के गुणों में जाएं। यदि यह एक "अभिभावक" है, तो लिखें कि उसके बच्चे कौन हैं और यदि यह "बच्चा" है, तो लिखें कि उसका माता-पिता कौन है। उदाहरण के लिए:
नोट: एक बच्चे के लिए माता-पिता को नामित करना बच्चे को उसके माता-पिता के तैयार होने से पहले शुरू करने का कारण नहीं हो सकता है, और यह दो बार वापस आने का कारण बन सकता है।.
फ़ाइल विधि (वैकल्पिक)
ऐतिहासिक कारणों से, Xen-pocalypse भी VMs की सूची को एक पाठ फ़ाइल के रूप में समर्थित करने के लिए प्राप्त करने का समर्थन करता है। हालांकि "कोड" अभी भी वहाँ है, कार्यक्षमता TAGs विधि से बहुत कम है और इसलिए यह अनुशंसित नहीं है। उस के साथ, यदि आप किसी कारण से सूची विधि का उपयोग करना पसंद करते हैं, तो निम्नलिखित प्रतिबंध लागू होते हैं:
- VMs के नामों में कोई स्थान या विशेष वर्ण नहीं हो सकते.
- प्रति लाइन केवल एक वीएम नाम हो सकता है.
- खाली लाइनों की अनुमति नहीं है.
सूची तैयार करने के लिए या तो एक्सएम सेंटर से वीएम का नाम कॉपी करें, या एक्सएन होस्ट पर निष्पादित करें:
xe vm- सूची | grep नाम-लेबल | awk
'प्रिंट $ 4' | तरह
ऊपर दी गई सूची को एक नियमित पाठ फ़ाइल में कॉपी करें.
बैकअप स्थान
Citrix Xen में बेतरतीब ढंग से घूमने के दौरान, मैंने पाया है कि स्टोरेज रिपॉजिटरी (SRs) “/ var / run / sr-Mount /% UUID%” के तहत उपयोग के लिए उपलब्ध हैं जहाँ UUID SR का विशिष्ट पहचानकर्ता है, जो हो सकता है GUI से प्राप्त किया.
इसका मतलब है कि हम नियमित बैकअप स्थान पर माउंट बनाने के लिए नियमित "अगला -> अगला -> समाप्त" विज़ार्ड का उपयोग कर सकते हैं, और फिर स्क्रिप्ट को उस पथ का उपयोग कर सकते हैं (जैसा कि कमांड लाइन से बढ़ते के साथ गड़बड़ करने के लिए अपील की गई है), लेकिन कर तो इस गाइड के दायरे से परे है.
एक नया "माउंट" बनाने के लिए, सर्वर नाम पर राइट क्लिक करें और नया SR चुनें.
इस उदाहरण में हम एक्सन को एक विंडोज़ शेयर पर इंगित करेंगे, इसलिए "विंडोज फाइल शेयरिंग (CIFS)" चुनें:
अगला -> अगला -> पूरा करें.
SR का UUID प्राप्त करें
SR का UUID प्राप्त करने के लिए, बस Xen केंद्र में इसके नाम पर क्लिक करें और "सामान्य" टैब पर जाएं.
UUID की प्रतिलिपि बनाने के लिए, बस इसे "कॉपी" चुनें पर राइट क्लिक करें.
हाथ में इस जानकारी के साथ, आप सेटिंग फ़ाइल को संपादित करने के लिए तैयार हैं.
सेटिंग्स फ़ाइल कॉन्फ़िगर करें.
Xen-pocalypse प्रोजेक्ट एक "सेटिंग" फ़ाइल टेम्पलेट के साथ बंडल में आता है। इस टेम्पलेट को आपके सेटअप को दर्शाने के लिए संपादित किया जाना चाहिए और स्क्रिप्ट के पहले तर्क के रूप में पारित किया जाना चाहिए। सेटिंग्स फ़ाइल निम्नलिखित नामित करती है:
प्रक्रिया वीएम को प्राप्त करने के लिए बैक अप लेने के लिए - डिफ़ॉल्ट विधि TAGs है। आप इसे FILE में बदल सकते हैं, लेकिन यह अनुशंसित नहीं है.
स्थान बैकअप गंतव्य के लिए - यदि आपने इस बिंदु पर गाइड का पालन किया है, तो आपको एसआर के साथ% UUID% को बदलना होगा क्योंकि यह ऊपर से प्राप्त किया गया था.
SendEmail का स्थान - यदि आपने ईमेल को सक्षम करने का विकल्प चुना है, तो आपको इनपुट करने की आवश्यकता है जहां आपने पर्ल निष्पादन योग्य निकाला है.
ईमेल विवरण - दोबारा, यदि आपने ईमेल सक्षम किया है, तो आपको विवरण को परिभाषित करने की आवश्यकता है जैसे: To, From, Servername / IP & etc '.
दबाव - यह डिफ़ॉल्ट रूप से "नहीं" पर सेट है, क्योंकि इसे सक्षम करते समय यह एक छोटी बैकअप फ़ाइल का उत्पादन करेगा, यह बैकअप प्रक्रिया को काफी अधिक समय तक चलाने का कारण बनेगा.
मुक्त स्थान की जाँच करें गंतव्य पर - यह स्क्रिप्ट की जाँच करेगा कि वीएम का बैकअप बनाने से बैकअप स्थान की खाली जगह 10GB से नीचे नहीं जाएगी। यह सुनिश्चित करने के लिए किया जाता है कि केवल एक बहुत बड़े वीएम की बजाय वीएम की सबसे अधिक मात्रा का बैकअप लिया जाए। गणना वीएम से जुड़े सभी HDs की कुल डिस्क आकार का उपयोग करके की जाती है.
डिबगिंग - डिफ़ॉल्ट डिबगिंग "0" (शून्य) मान के साथ बंद है। आपको इसे चालू करने की आवश्यकता नहीं है, लेकिन यदि आप करते हैं, तो समस्या निवारण खंड में अधिक जानकारी नोट की गई है.
निष्पादन / निर्धारण
अपने सरलतम रूप में, Xen-pocalypse का आह्वान इस तरह दिखेगा:
./Xen-backup.sh settings.cfg साप्ताहिक-फ़्री
जहां ऊपर मामले में, हम उस निर्देशिका के अंदर हैं जो स्क्रिप्ट और सेटिंग्स फ़ाइल रखती है। स्क्रिप्ट "टैग" के लिए "साप्ताहिक- fri" होगा.
जैसा कि ऊपर उल्लेख किया गया है, हम निष्पादन को निर्धारित करने के लिए क्रोन का उपयोग करेंगे। इससे पहले कि हम कॉन्फ़िगरेशन में जाएं, यह है अत्यधिक सिफारिशित आप अपने एक्सएमएल सर्वर पर पहले से स्थापित एसएसएमटीपी पैकेज को कॉन्फ़िगर करते हैं। जबकि यह एक वैकल्पिक कदम है, ऐसा करने से आपको बैकवॉश कलेक्टर मिलेगा। इस तरह के "बैकवॉश कलेक्टर" होने से आप उन चीजों के बारे में सचेत हो सकते हैं जो स्क्रिप्ट सक्षम नहीं है.
जारी करके क्रोन का संपादन अधिक दर्ज करें:
Crontab -e
यदि आपने उपरोक्त निर्देशों का पालन किया है और आप शुक्रवार को 18:01 (6:01 बजे) के लिए एक निर्धारित बैकअप जोड़ना चाहते हैं, तो नीचे इनपुट करें:
01 18 * * fri /root/Xen-pocalypse-master/Xen_Backup.sh /root/Xen-pocalypse-master/settings.cfg साप्ताहिक-फ़्री
उपरोक्त सही है कि आपकी स्क्रिप्ट और सेटिंग फ़ाइल दोनों "/ रूट / Xen-pocalypse-master /" के अंतर्गत हैं.
समस्या निवारण
हालांकि मैंने स्क्रिप्ट को उपयोग में आसान बनाने और जितना संभव हो सके उतना आसान बनाने में बहुत प्रयास किया है, "दुनिया एक बड़ी प्रयोगशाला है"। नीचे दी गई जानकारी आपको यह पता लगाने में मदद कर सकती है कि आपकी परेशानियों का स्रोत क्या है.
प्रगति
आप इस एक लाइनर का उपयोग प्रगति में सभी कार्यों को जल्दी से देखने के लिए कर सकते हैं, यह देखने के लिए कि क्या वे वास्तव में प्रगति कर रहे हैं या यदि वे वास्तव में फंस गए हैं.
जबकि [-ई / देव / अशक्त]; VM में "$ (xe टास्क-लिस्ट | grep uuid | awk '$ $ 5')"; do xe task-param-get param-name = प्रगति uuid = $ VM; नींद 1; किया हुआ; किया हुआ
देखने से रोकने के लिए, "लूप करते समय" ब्रेक करने के लिए Ctrl + C का उपयोग करें.
लॉगिंग
सभी "लॉगिंग" ज़ेन होस्ट द्वारा syslog तंत्र में स्क्रिप्ट को चलाने के लिए एकत्र किया गया है। इस पाठ्यक्रम को इसके साथ देखा जा सकता है:
कम + एफ / संस्करण / लॉग / संदेश
आप कुंजी शब्द "Xen-pocalypse" के लिए देख रहे हैं.
नोट: Citrix ने अपने सर्वर के syslog के लिए दो (2) दिन प्रतिधारण नीति निर्धारित की है। आप पोस्टमॉर्टम के लिए इसे ध्यान में रखना चाह सकते हैं.
डिबगिंग
जैसा कि सेटिंग्स फ़ाइल सेगमेंट में उल्लेख किया गया है, डिबगिंग को सक्षम करने का निर्देश है। डिबगिंग को सक्षम करने से स्क्रिप्ट को कंसोल में लॉग इन करने के लिए आउटपुट वर्बोज़ और इसे ईमेल भेजने और वास्तव में निर्यात करने से रोकने का कारण होगा, जब तक कि संबंधित झंडे भी सेट न हों। संभव झंडे सेटिंग्स फ़ाइल टेम्पलेट में नोट किए गए हैं और वे आपको डीबग करना चाहते हैं जो आपको डिबग करना चाहते हैं.
यह मेरी आशा है कि आपको किसी डिबगिंग की आवश्यकता नहीं है और आप मेरे परिश्रम का फल प्राप्त कर रहे हैं :)
जोर से, मेरे आदमी, तुम नंबर एक धोखेबाज बनने वाले हो ...