Xen-pocalypse (Bash) के साथ निशुल्क Citrix Xen VMs को बैकअप कैसे करें

विषयसूची:

Xen-pocalypse (Bash) के साथ निशुल्क Citrix Xen VMs को बैकअप कैसे करें
Xen-pocalypse (Bash) के साथ निशुल्क Citrix Xen VMs को बैकअप कैसे करें

वीडियो: Xen-pocalypse (Bash) के साथ निशुल्क Citrix Xen VMs को बैकअप कैसे करें

वीडियो: Xen-pocalypse (Bash) के साथ निशुल्क Citrix Xen VMs को बैकअप कैसे करें
वीडियो: 【2024 Solved】How to Recover Deleted Files from USB Drive [with/without Software] - YouTube 2024, जुलूस
Anonim
क्या आपको कभी भी अपनी साइट्रिक्स ज़ेन वर्चुअल मशीन (वीएम) बैकअप लेने की आवश्यकता है, लेकिन बैंक इसे तोड़ना नहीं चाहता था? Xen-pocalypse के साथ एचटीजी के लिए आपके लिए बैश स्क्रिप्ट है।
क्या आपको कभी भी अपनी साइट्रिक्स ज़ेन वर्चुअल मशीन (वीएम) बैकअप लेने की आवश्यकता है, लेकिन बैंक इसे तोड़ना नहीं चाहता था? Xen-pocalypse के साथ एचटीजी के लिए आपके लिए बैश स्क्रिप्ट है।

एच.कोप्पेडेलनी द्वारा छवि, कस्टम और हॉटफोर्ट में फंस गई।

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

अवलोकन

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

  • लक्ष्य वीएम बंद करें।
  • वीएम को बैकअप स्थान पर फ़ाइल के रूप में निर्यात करें।
  • अगर बैकअप शुरू होने से पहले वीएम चालू हो गया था, तो इसे वापस चालू कर दिया जाएगा।

चलें शुरू करें:)

स्क्रिप्ट प्राप्त करें

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

wget https://github.com/aviadra/Xen-pocalypse/archive/master.zip unzip master

जबकि उपर्युक्त काम करेगा, आपको सलाह दी जाती है कि जीआईटी विधि का उपयोग करें, ताकि भविष्य के अपडेट से आपको लाभ हो सके।

SendEmail प्राप्त करें (वैकल्पिक)

हमने अतीत में SendEmail perl प्रोग्राम के बारे में लिखा है, इसलिए यहां दोहराने की कोई आवश्यकता नहीं है। यह कहने के लिए पर्याप्त है, यह विंडोज़ पर लिनक्स पर उसी तरह काम करता है।

ईमेल सक्षम करने के दौरान वैकल्पिक है, इसकी अत्यधिक अनुशंसा की जाती है क्योंकि तब स्क्रिप्ट सक्षम हो जाएगी:

  • जब यह शुरू हुआ और चलना समाप्त हो गया तो आपको सूचित करें।
  • किसी भी त्रुटि के बारे में चेतावनी दें जो यह पहचानने और संभालने में सक्षम था।
  • अंतरिक्ष मुद्दों के कारण बैकअप अयोग्यता के बारे में जानकारी। (वांछित नहीं होने पर यह व्यवहार अक्षम किया जा सकता है)

इसे ज़ेन सर्वर पर डाउनलोड करें और निकालें।

wget https://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz tar xvzhf sendEmail-v1.56.tar.gz

उस स्थान पर ध्यान दें जहां आपने इसे निकाला था। आपको सेटिंग्स फ़ाइल के लिए इसकी आवश्यकता होगी।

टैग परिभाषित करना

साइट्रिक्स ज़ेन आपको फ़िल्टरिंग क्षमताओं के लिए "कस्टम फ़ील्ड" कॉन्फ़िगर करने की क्षमता देता है। हम फ़ील्ड्स बनाएंगे और फिर उन्हें ज़ेन-पॉकेलीप्स द्वारा उपयोग की जाने वाली जानकारी के साथ पॉप्युलेट करेंगे। जेन-पॉकेलीप्स 3 नियंत्रण टैग पहचानता है जो बैकअप के लिए टैग का नाम और माता-पिता को बाल संबंधों के लिए नामित करते हैं। यदि आप फ़ाइल इनपुट विधि का उपयोग करने का इरादा नहीं रखते हैं, तो आपको कम से कम बैकअप टैग नाम फ़ील्ड बनाना होगा।

ऐसा करने के लिए, सर्वर या यहां तक कि एक वीएम गुणों को खोलें। नेविगेशन फलक में, "कस्टम फ़ील्ड" का चयन करें।

यदि यह पहली बार है कि आप एक रिश्ते को परिभाषित करते हैं (जैसा उपरोक्त उदाहरण में है), आपके पास डेटा इनपुट करने के लिए कोई फ़ील्ड नहीं होगा, इसलिए आपको उन्हें बनाना होगा। ऐसा करने के लिए, पॉप-अप संवाद बॉक्स में "कस्टम फ़ील्ड संपादित करें" पर क्लिक करें, "जोड़ें …" पर क्लिक करें।
यदि यह पहली बार है कि आप एक रिश्ते को परिभाषित करते हैं (जैसा उपरोक्त उदाहरण में है), आपके पास डेटा इनपुट करने के लिए कोई फ़ील्ड नहीं होगा, इसलिए आपको उन्हें बनाना होगा। ऐसा करने के लिए, पॉप-अप संवाद बॉक्स में "कस्टम फ़ील्ड संपादित करें" पर क्लिक करें, "जोड़ें …" पर क्लिक करें।
तीन (3) "टेक्स्ट" प्रकार फ़ील्ड बनाएं। एक को "बैकअप TAG" और अन्य "अभिभावक" और "बच्चे" कहा जाएगा।
तीन (3) "टेक्स्ट" प्रकार फ़ील्ड बनाएं। एक को "बैकअप TAG" और अन्य "अभिभावक" और "बच्चे" कहा जाएगा।

ध्यान दें: कस्टम फ़ील्ड्स के नाम, स्क्रिप्ट में "हार्ड कोड" किए गए हैं, इसलिए आपको उपरोक्त वर्तनी से विचलित नहीं होना चाहिए, जब तक आप प्रासंगिक कोड भी बदल नहीं लेते।

एक बार सभी फ़ील्ड बनने के बाद, आपको देखना चाहिए:

विंडो बंद करें। अब आपके पास "बैकअप TAG", "अभिभावक" और "बच्चे" फ़ील्ड भरने की आवश्यकता है, जैसा कि नीचे दी गई तस्वीर में है।
विंडो बंद करें। अब आपके पास "बैकअप TAG", "अभिभावक" और "बच्चे" फ़ील्ड भरने की आवश्यकता है, जैसा कि नीचे दी गई तस्वीर में है।
Image
Image

अब आपको बस इतना करना है कि कौन से वीएम "बैकअप TAG" से संबंधित हैं। उदाहरण के लिए, जिस कंपनी में लिपि उगाई गई थी, हमारे पास वीएम थे जिन्हें गुरुवार और शुक्रवार को साप्ताहिक रूप से बैक अप किया जाना था, हमारे एटलसियन उत्पाद वीएम के लिए एक कार्यक्रम और कुछ जिन्हें केवल मासिक रूप से बैक अप किया जाना था। तो हमारा अवलोकन इस तरह दिखता था:

Image
Image

उदाहरण के लिए "साप्ताहिक-तला हुआ" वह पाठ था जिसे हमने "बैकअप TAG" "कस्टम फ़ील्ड" में इनपुट किया है। सुट हुह?:)

माता-पिता और बच्चे (वैकल्पिक)

इस लिपि की असली सुंदरता यह है कि यह "बच्चे" संबंधों के लिए "माता-पिता" का समर्थन करती है। यही है, "बच्चे" वीएम की एक सूची सेट करना संभव है जिसे माता-पिता के सामने बंद कर दिया जाएगा और बैक-अप किया जाएगा, और माता-पिता अपने बैकअप को समाप्त करने के बाद ही इन बच्चों को वापस कर दिया जाएगा और वापस कर दिया गया है पर।यह उन मामलों में उपयोगी है जहां माता-पिता वीएम को बंद करने से बच्चे में सेवा अनुपलब्ध हो जाएगी। इस तरह की बात यह होगी कि बच्चे के वीएम पर सेवा दो बार अनुपलब्ध होगी, एक बार बच्चे की बैकअप प्रक्रिया के लिए और एक बार माता-पिता के लिए। इस संबंध को बनाना उस समस्या को खत्म करता है।

उदाहरण के लिए, हमारे सभी एटलसियन वीएम ने एक डाटाबेस (डीबी) वीएम का इस्तेमाल किया, जिसे भी बैक अप लेने के लिए सेट किया गया था। तो यह ध्यान में रखते हुए कि डीबी वीएम अन्य वीएम के लिए "अभिभावक" है, शटडाउन का एक उचित क्रम -> बैकअप -> स्टार्टअप, सुनिश्चित किया जा सकता है।

इस लेखन के समय, इस समारोह में कुछ चेतावनी हैं:

  1. इस तरह के रिश्ते वाले वीएम के नाम में रिक्त स्थान नहीं हो सकते हैं। आपको अपने वीएम नामों से रिक्त स्थान हटाना होगा, क्योंकि वे नीचे दिए गए उदाहरण में स्थान सीमित होंगे।
  2. केवल एक माता पिता हो सकता है। परीक्षण का उल्लेख न करने के लिए, एक से अधिक को नामित करने की भी योजना नहीं है।

इस संबंध को बनाने के लिए, वीएम के गुणों में जाएं। यदि यह एक "माता-पिता" है, तो लिखें कि उसके बच्चे कौन हैं और यदि यह एक "बच्चा" है, तो लिखें कि उसका माता-पिता कौन है। उदाहरण के लिए:

नोट: किसी बच्चे के लिए माता-पिता को नामित करने से बच्चे को अपने माता-पिता के तैयार होने से पहले शुरू किया जा सकता है, और इसे दो बार बैक अप ले सकता है।
नोट: किसी बच्चे के लिए माता-पिता को नामित करने से बच्चे को अपने माता-पिता के तैयार होने से पहले शुरू किया जा सकता है, और इसे दो बार बैक अप ले सकता है।

फ़ाइल विधि (वैकल्पिक)

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

  1. वीएम के नामों में कोई रिक्त स्थान या विशेष वर्ण नहीं हो सकते हैं।
  2. प्रति पंक्ति केवल एक वीएम नाम हो सकता है।
  3. खाली लाइनों की अनुमति नहीं है।

सूची उत्पन्न करने के लिए, या तो ज़ेन केंद्र से VM का नाम कॉपी करें, या ज़ेन होस्ट पर निष्पादित करें:

xe vm-list | grep name-label | awk

'{ print $4 }' | sort

सूची को नियमित टेक्स्ट फ़ाइल में कॉपी करें।

बैकअप स्थान

सिट्रिक्स जेन में यादृच्छिक रूप से घूमते हुए, मैंने पाया है कि स्टोरेज रिपोजिटरीज (एसआरएस) "/ var / run / sr-mount /% UUID%" के तहत उपयोग के लिए उपलब्ध हैं, जहां यूयूआईडी एसआर का अद्वितीय पहचानकर्ता है, जो हो सकता है जीयूआई से प्राप्त किया।

इसका मतलब है कि हम वांछित बैकअप स्थान पर माउंट बनाने के लिए नियमित "अगला -> अगला -> समाप्त करें" विज़ार्ड का उपयोग कर सकते हैं, और तब स्क्रिप्ट उस पथ का उपयोग करें (जैसा कमांड लाइन से बढ़ते हुए गड़बड़ करने के लिए लगाया गया है), लेकिन कर रहा है तो इस गाइड के दायरे से बाहर है।

नया "माउंट" बनाने के लिए, सर्वर नाम पर राइट क्लिक करें और नया एसआर चुनें।

इस उदाहरण में हम ज़ेन को विंडोज़ शेयर पर इंगित करेंगे, इसलिए "विंडोज फाइल शेयरिंग (सीआईएफएस)" चुनें:
इस उदाहरण में हम ज़ेन को विंडोज़ शेयर पर इंगित करेंगे, इसलिए "विंडोज फाइल शेयरिंग (सीआईएफएस)" चुनें:
अगला पूरा करें -> अगला -> समाप्त करें।
अगला पूरा करें -> अगला -> समाप्त करें।

एसआर के यूयूआईडी प्राप्त करें

एसआर के यूयूआईडी प्राप्त करने के लिए, बस ज़ेन सेंटर में इसके नाम पर क्लिक करें और "सामान्य" टैब पर जाएं।

यूयूआईडी की प्रतिलिपि बनाने के लिए, बस इसे "प्रतिलिपि" चुनें पर राइट क्लिक करें।
यूयूआईडी की प्रतिलिपि बनाने के लिए, बस इसे "प्रतिलिपि" चुनें पर राइट क्लिक करें।
इस जानकारी के साथ, आप सेटिंग्स फ़ाइल को संपादित करने के लिए तैयार हैं।
इस जानकारी के साथ, आप सेटिंग्स फ़ाइल को संपादित करने के लिए तैयार हैं।

सेटिंग्स फ़ाइल कॉन्फ़िगर करें।

Xen-pocalypse प्रोजेक्ट को "सेटिंग्स" फ़ाइल टेम्पलेट के साथ बंडल किया जाता है। इस टेम्पलेट को आपके सेटअप को प्रतिबिंबित करने के लिए संपादित किया जाना चाहिए और स्क्रिप्ट के पहले तर्क के रूप में पारित किया जाना चाहिए। सेटिंग्स फ़ाइल निम्नलिखित निर्दिष्ट करता है:

प्रक्रिया वीएम को बैक अप लेने के लिए - डिफ़ॉल्ट विधि TAG है। आप इसे FILE में बदल सकते हैं, लेकिन इसकी अनुशंसा नहीं की जाती है।

स्थान बैकअप गंतव्य का - यदि आपने इस बिंदु पर मार्गदर्शिका का पालन किया है, तो आपको केवल यूआरआईडी% को एसआर के साथ बदलना होगा जैसा कि ऊपर से प्राप्त किया गया था।

SendEmail का स्थान - अगर आपने ईमेल को सक्षम करने का विकल्प चुना है, तो आपको इनपुट करने की आवश्यकता है जहां आपने यहां निष्पादन योग्य पर्ल निकाला है।

ईमेल विवरण -दोबारा, यदि आपने ईमेल सक्षम किया है, तो आपको विवरणों को परिभाषित करने की आवश्यकता है जैसे: से, से, सेरनावैम / आईपी और आदि '।

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

मुफ्त स्थान के लिए जाँच करें गंतव्य पर - इसमें स्क्रिप्ट की जांच होगी कि वीएम के बैकअप को बैकअप स्थान की खाली जगह 10 जीबी के नीचे गिरने का कारण नहीं बन जाएगी। यह सुनिश्चित करने के लिए किया जाता है कि केवल एक बहुत बड़े वीएम के बजाय अधिकांश वीएम का बैकअप लिया जाता है। गणना वीएम से जुड़े सभी एचडी के कुल डिस्क आकार कुल का उपयोग करके की जाती है।

डिबगिंग - डिफ़ॉल्ट "0" (शून्य) मान के साथ डीबगिंग बंद करना डिफ़ॉल्ट है। आपको इसे चालू करने की आवश्यकता नहीं है, लेकिन यदि आप करते हैं, तो समस्या निवारण खंड में अधिक जानकारी नोट की जाती है।

निष्पादन / निर्धारण

अपने सबसे सरल रूप में, ज़ेन-पॉकेलीप्स का एक आमंत्रण इस तरह दिखेगा:

./Xen-backup.sh settings.cfg weekly-fri

ऊपर दिए गए मामले में, हम उस निर्देशिका के अंदर हैं जिसमें स्क्रिप्ट और सेटिंग्स फ़ाइल है। स्क्रिप्ट "टैग" की तलाश करेगा "साप्ताहिक-तला हुआ"।

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

जारी करके क्रॉन के संपादन में अधिक दर्ज करें:

crontab -e

यदि आपने ऊपर दिए गए निर्देशों का पालन किया है और आप शुक्रवार के लिए 18:01 (6:01 अपराह्न) पर एक निर्धारित बैकअप जोड़ना चाहते हैं, तो नीचे इनपुट करें:

01 18 * * fri /root/Xen-pocalypse-master/Xen_Backup.sh /root/Xen-pocalypse-master/settings.cfg weekly-fri

उपर्युक्त यह सही है कि आपकी स्क्रिप्ट और सेटिंग्स फ़ाइल दोनों "/ root / Xen-pocalypse-master /" के अंतर्गत हैं।

समस्या निवारण

जबकि मैंने स्क्रिप्ट को उपयोग करने में आसान बनाने और जितना संभव हो सके मूर्खतापूर्ण बनाने में काफी प्रयास किए हैं, "दुनिया एक बड़ी प्रयोगशाला है"। नीचे दी गई जानकारी आपको यह पता लगाने में मदद कर सकती है कि आपकी परेशानी का स्रोत क्या है।

प्रगति

आप सभी कार्यों को प्रगति पर जल्दी से देखने के लिए इस लाइनर का उपयोग करना चाह सकते हैं, यह देखने के लिए कि क्या वे वास्तव में प्रगति कर रहे हैं या वास्तव में अटक गए हैं।

while [ -e /dev/null ]; do for VM in '$( xe task-list | grep uuid | awk '{print $5}' )'; do xe task-param-get param-name=progress uuid=$VM;sleep 1; done; done

देखने को रोकने के लिए, "जबकि लूप" ब्रेक करने के लिए Ctrl + C का उपयोग करें।

लॉगिंग

सभी "लॉगिंग" को ज़ेन होस्ट द्वारा सिस्लॉग तंत्र में स्क्रिप्ट चलाने के द्वारा एकत्र किया जाता है। यह निश्चित रूप से देखा जा सकता है:

less +F /var/log/messages

आप कुंजी शब्द "ज़ेन-पॉकेलीप्स" की तलाश में हैं।

नोट: सिट्रिक्स ने अपने सर्वर के syslog के लिए दो (2) दिन प्रतिधारण नीति सेट की है। आप पोस्टमॉर्टम के लिए इसे ध्यान में रखना चाह सकते हैं।

डिबगिंग

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

यह मेरी आशा है कि आपको किसी भी डिबगिंग की आवश्यकता नहीं है और आप मेरे श्रम के फल काट रहे हैं:)

जोर, मेरे आदमी, आप नंबर एक भ्रामक बनने जा रहे हैं …

सिफारिश की: