الصفحة الرئيسية » howto » كيفية عمل نسخة احتياطية من Citrix Xen VMs مجانا مع Xen-pocalypse (Bash)

    كيفية عمل نسخة احتياطية من Citrix Xen VMs مجانا مع Xen-pocalypse (Bash)

    هل احتجت في أي وقت إلى عمل نسخة احتياطية من أجهزة Citrix Xen الظاهرية (VMs) ولكنك لم ترغب في كسرها؟ HTG لديه فقط البرنامج النصي bash لك مع Xen-pocalypse.

    صورة h.koppdelaney ، عالقة في العرف و Hotfortech.

    أحد الأشياء اللطيفة في Citrix Xen هو أن العديد من ميزاته حر للشحن. مع ذلك ، إذا كنت تريد ميزة "الحماية الآلية لاستعادة البيانات الظاهرية" ، فيجب عليك البدء في دفع الرخصة "المتقدمة". وحتى ذلك الحين ، فأنت تدفع فقط مقابل النسخ الاحتياطية على مستوى القرص ، والتي لا تكفي لأنواع كثيرة من أعباء العمل مثل الدليل النشط ، وقواعد البيانات وغيرها. للتغلب على هذا قد ترغب في "لقطة حية للذاكرة والعودة" ، والتي يمكن أن تنقذ كامل حالة الجهاز ، بما في ذلك محتويات ذاكرة الوصول العشوائي. ومع ذلك ، فإن هذه الميزة جزء من إصدارات "Enterprise" و "Platinum" ، وهي أكثر تكلفة. لا يعني ذلك أننا في HTG نرفض قيمة برنامج النسخ الاحتياطي الحقيقي ، ولكن إذا كنت على ميزانية ضيقة ولا تمانع بعض التوقف عن عملية النسخ الاحتياطي ، قد تجد Xen-pocalypse لتكون حلا معقولا تماما قبل أن تجعل التزام الميزانية.

    نظرة عامة

    "حالة الاستخدام": لديك زوجين من أجهزة VM التي تتطلب نسخة احتياطية. يعمل "إيقاف تشغيل VM وتصديره كملف" من "مركز Xen" باستخدام نقرات يمينية ، ولكنك تريد أن تتم هذه العملية تلقائيًا وعلى جدول زمني. يستخدم هذا البرنامج النصي باش الأمر "XE" لأداء واجباته. XE هي واجهة سطر الأوامر Xen (CLI) ، وهي مكافئة تلقائية لإصدار "النقرات الصحيحة" في "مركز زين". سوف نتصل بالسيناريو من Cron الذي سيوفر جزء "الجدولة". في أبسط أشكاله ، يكون التدفق الاحتياطي:

    • قم بإيقاف تشغيل VM الهدف.
    • تصدير VM كملف إلى موقع النسخ الاحتياطي.
    • إذا تم تشغيل VM ، قبل بدء النسخ الاحتياطي ، سيتم تشغيله مرة أخرى.

    فلنسرع :)

    الحصول على البرنامج النصي

    Xen-pocalypse يمكن الحصول عليه بحرية من جيثب ، وذلك باستخدام طرق git العادية. مع ذلك ، إذا لم تكن على دراية بـ git بعد ، يمكنك الحصول على ملف zip بهذا الرابط. بما أن البرنامج النصي بحاجة إلى العمل على أحد خوادم Xen الخاصة بك ، فيجب عليك استخراجه حتى يتم الحفاظ على أذونات التنفيذ.

    مجلد مشترك https://github.com/aviadra/Xen-pocalypse/archive/master.zip
    بفك سيد

    بينما يعمل ما سبق ، ننصحك باستخدام طريقة GIT ، بحيث يمكنك الاستفادة من التحديثات المستقبلية.

    الحصول على SendEmail (اختياري)

    لقد كتبنا عن برنامج SendEmail perl في الماضي ، لذا لا داعي للتكرار هنا. يكفي القول ، إنه يعمل بنفس الطريقة على لينكس كما هو الحال في Windows.

    على الرغم من أن تمكين البريد الإلكتروني هو أمر اختياري ، إلا أنه يوصى به بشدة لأن البرنامج النصي سيكون قادرًا على:

    • إخبارك عند بدئها والانتهاء من التشغيل.
    • نبهك بأية أخطاء تمكنت من اكتشافها والتعامل معها.
    • أبلغ عن عدم أهلية النسخ الاحتياطي بسبب قضايا الفضاء. (يمكن تعطيل هذا السلوك إذا لم يكن مطلوبًا)

    تحميل البرنامج إلى خادم Xen واستخراج.

    مجلد مشترك 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 على ثلاث مجموعات تعريفية للسيطرة التي تحدد اسم العلامة للنسخ الاحتياطي والعلاقات بين الوالدين والطفل. إذا كنت لا تريد استخدام طريقة إدخال الملف ، فيجب عليك إنشاء حقل اسم العلامة الاحتياطية على الأقل.

    للقيام بذلك ، افتح الخادم أو حتى خصائص VM. في جزء التنقل ، حدد "الحقول المخصصة".

    إذا كانت هذه هي المرة الأولى التي تحدد فيها علاقة ما (كما هو موضح في المثال أعلاه) ، فلن يكون لديك أي حقول لإدخال البيانات فيها ، لذلك تحتاج إلى إنشائها. للقيام بذلك ، انقر فوق "تحرير الحقول المخصصة" في مربع الحوار الذي ينبثق ، انقر فوق "إضافة ..."

    قم بإنشاء حقول نوع (3) "نص" ثلاثة. سوف يطلق على واحد "BackupTAG" والآخرين "الوالدين" و "الأطفال".

    ملحوظة: أسماء الحقول المخصصة ، تم "تشفيرها" في البرنامج النصي ، لذلك يجب أن لا تحيد عن التهجئة أعلاه ، إلا إذا قمت بتغيير التعليمات البرمجية ذات الصلة.

    بمجرد إنشاء جميع الحقول ، يجب أن تشاهد:

    أغلق النافذة. يجب أن يكون لديك الآن حقول "BackupTAG" و "Parent" و "Children" لتعبئة ، كما في الصورة أدناه.

    الآن كل ما عليك القيام به هو تعيين أي VMs تنتمي إلى ما "BackupTAG".
    على سبيل المثال ، في الشركة التي نمت فيها السكربت ، كان لدينا VMs التي كان من المفترض أن تكون مدعومة أسبوعيًا يومي الخميس والجمعة ، وهو جدول زمني لأجهزة VM الخاصة بنا في Atlassian وبعض البرامج التي سيتم نسخها احتياطيًا شهريًا فقط. لذلك بدا نظرة عامة لدينا مثل:

    حيث على سبيل المثال "الأسبوعية-الجمعة" كان النص الذي أدخلناه في حقل "BackupTAG" المخصص. أنيق هاه؟ :)

    الآباء والأطفال (اختياري)

    إن الجمال الحقيقي لهذا النص هو أنه يدعم "الأم" إلى علاقات "الطفل". وهذا يعني ، أنه من الممكن وضع قائمة من أجهزة VM الفرعية "التابعة" التي سيتم إيقاف تشغيلها والاحتفاظ بها احتياطيًا قبل الأصل ، وأنه سيتم إعادة تشغيل هؤلاء الأطفال مرة واحدة بمجرد الانتهاء من النسخ الاحتياطي للوالد وتمت إعادته على. يفيد ذلك في الحالات التي يؤدي فيها إيقاف تشغيل VM الأصل إلى عدم إتاحة الخدمة في الطفل. مثل هذا الشيء يعني أن الخدمة على الطفل VM لن تكون متاحة مرتين ، مرة واحدة لعملية النسخ الاحتياطي للطفل ومرة ​​واحدة للوالد. خلق هذه العلاقة يتغلب على هذه المشكلة.

    على سبيل المثال ، استخدم كل أجهزة VM الخاصة بنا في Atlassian نظام DataBase (DB) VM واحدًا ، والذي تم إعداده أيضًا ليكون مدعومًا. لذلك من خلال ملاحظة أن DB VM هو "الوالد" للآخرين VMs ، يمكن ضمان الترتيب الصحيح للإغلاق -> النسخ الاحتياطي -> بدء التشغيل ،.

    في وقت كتابة هذه السطور ، تحتوي هذه الوظيفة على عدد من التحذيرات:

    1. لا يمكن أن تحتوي أسماء VMs التي لها مثل هذه العلاقة على مسافات. سيكون عليك إزالة مسافات من أسماء VM الخاصة بك ، لأنها ستكون مساحة محددة ، كما هو موضح في المثال أدناه.
    2. يمكن أن يكون هناك أحد الوالدين فقط. لم يتم تخطيط حتى أكثر من واحد ، بالإضافة إلى اختباره.

    لإنشاء هذه العلاقة ، انتقل إلى خصائص VM. إذا كان هذا "أحد الوالدين" ، فاكتب من هم أبناؤه وإذا كان هذا "طفلاً" ، فاكتب من يكون والده. فمثلا:

    ملاحظة: قد لا يؤدي تعيين ولي أمر لطفل إلى بدء تشغيل الطفل قبل أن يصبح الأصل جاهزًا ، وقد يتسبب في إجراء نسخ احتياطي له مرتين..

    طريقة FILE (اختياري)

    لأسباب تاريخية ، يدعم Xen-pocalypse أيضًا الحصول على نسخة احتياطية من VMs كملف نصي. في حين أن "الكود" لا يزال موجودًا ، فإن الوظيفة أقل شدةً من طريقة TAGs ولذلك لا ينصح بها. مع ذلك ، إذا كنت تفضل استخدام طريقة القائمة لسبب ما ، يتم تطبيق القيود التالية:

    1. لا يمكن أن تحتوي أسماء VMs على أية مسافات أو أحرف خاصة.
    2. يمكن أن يكون هناك اسم VM واحد فقط لكل سطر.
    3. الخطوط الفارغة غير مسموح بها.

    لإنشاء القائمة ، قم إما بنسخ اسم VM من مركز Xen ، أو قم بالتنفيذ على مضيف Xen:

    xe vm-list | grep اسم العلامة | AWK "print $ 4" | فرز

    انسخ القائمة أعلاه إلى ملف نصي عادي.

    موقع النسخ الاحتياطي

    في حين أن بدسًا عشوائيًا في Citrix Xen ، فقد وجدت أن مستودعات التخزين (SRs) متاحة للاستخدام تحت "/ var / run / sr-mount /٪ UUID٪" حيث UUID هو المعرّف الفريد لـ SR ، والذي يمكن أن يكون الحصول عليها من واجهة المستخدم الرسومية.

    وهذا يعني أنه يمكننا استخدام المعالج "التالي - التالي - التالي" لإنهاء التحميل إلى موقع النسخ الاحتياطي المطلوب ، ومن ثم استخدام البرنامج النصي لذلك المسار (كما هو مفترض للعبث مع التثبيت من سطر الأوامر) ، هذا هو أبعد من نطاق هذا الدليل.

    لإنشاء "تثبيت" جديد ، انقر بزر الماوس الأيمن على اسم الخادم وحدد New SR.

    في هذا المثال سنشير Xen إلى مشاركة Windows ، لذا اختر "مشاركة ملفات Windows (CIFS)":

    أكمل التالي -> التالي -> إنهاء.

    الحصول على UUID الخاص SR

    للحصول على UUID الخاص بـ SR ، ما عليك سوى النقر فوق اسمه في مركز Xen والانتقال إلى علامة التبويب "عام".

    من أجل نسخ UUID ، ببساطة انقر بزر الماوس الأيمن عليه اختيار "نسخ".

    مع وجود هذه المعلومات في متناول اليد ، أنت على استعداد لتحرير ملف الإعدادات.

    تكوين ملف الإعدادات.

    يأتي مشروع Xen-pocalypse مرفقًا بقالب ملف "الإعدادات". يجب تحرير هذا القالب ليعكس الإعداد الخاص بك وتمريره كوسيطة أولى للبرنامج النصي. يحدد ملف الإعدادات ما يلي:

    طريقة للحصول على نسخ VMs احتياطيًا - الطريقة الافتراضية هي TAGs. يمكنك تغيير هذا إلى FILE ، لكن هذا غير مستحسن.

    الموقع وجهة النسخ الاحتياطي - إذا كنت قد اتبعت الدليل إلى هذه النقطة ، فيجب عليك استبدال٪ UUID٪ مع SR حيث تم الحصول عليها من الأعلى.

    موقع SendEmail  - إذا كنت قد اخترت تمكين البريد الإلكتروني ، فأنت بحاجة إلى إدخال حيث قمت باستخراج بيرل القابل للتنفيذ هنا.

    تفاصيل البريد الإلكتروني - مرة أخرى ، إذا قمت بتمكين البريد الإلكتروني ، فستحتاج إلى تحديد تفاصيل مثل: إلى ، From ، Servername / IP & etc '.

    ضغط - يتم تعيين هذا على "لا" بشكل افتراضي ، لأنه في حين أن تمكينه سيؤدي إلى إنشاء ملف نسخ احتياطي أصغر ، فإنه سيؤدي أيضًا إلى تشغيل إجراء النسخ الاحتياطي لفترة أطول بكثير من الوقت.

    تحقق من وجود مساحة خالية على الوجهة - سيحصل هذا على النص البرمجي للتحقق من أن إنشاء نسخة احتياطية من VM لن يتسبب في انخفاض المساحة الخالية لموقع النسخ الاحتياطي إلى 10 غيغابايت. يتم ذلك للتأكد من أن معظم كميات VMs مدعومة بدلاً من VM واحد كبير جداً. يتم الحساب باستخدام إجمالي حجم القرص الإجمالي لجميع HDs المرتبطة بـ VM.

    التصحيح  - الإعداد الافتراضي هو إيقاف تشغيل التصحيح باستخدام القيمة "0" (صفر). يجب أن لا تحتاج إلى تشغيل هذا ، ولكن إذا قمت بذلك ، يتم تدوين المزيد من المعلومات في جزء استكشاف الأخطاء وإصلاحها.

    تنفيذ / جدولة

    في أبسط صوره ، يبدو أن احتفال Xen-pocalypse بالشكل التالي:

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

    في الحالة أعلاه ، نحن داخل الدليل الذي يحمل النص البرمجي وملف الإعدادات. علامة "العلامة" التي سيبحث عنها البرنامج النصي هي "أسبوعيًا".

    كما ذكرنا أعلاه ، سنستخدم Cron لجدولة التنفيذ. قبل أن نذهب إلى التكوين ، هو ينصح به بشده قمت بتكوين حزمة SSMTP المثبتة بالفعل على خادم Xen الخاص بك. في حين أن هذه خطوة اختيارية ، فإن القيام بذلك سوف يعطيك أداة تجميع الغسيل العكسي. إن وجود مثل هذا "مجمّع الغسيل العكسي" قد ينبهك إلى أشياء لا يستطيع البرنامج النصي القيام بها.

    أدخل في تحرير cron أكثر من خلال إصدار:

    crontab -e

    إذا اتبعت التعليمات أعلاه وتريد إضافة نسخة احتياطية مجدولة ليوم الجمعة الساعة 18:01 (6:01 م) ، أدخل أدناه:

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

    ما سبق هو الصحيح على افتراض أن ملفك النصي والإعدادات موجودان تحت "root / Xen-pocalypse-master /".

    استكشاف الأخطاء وإصلاحها

    في الوقت الذي بذلت فيه الكثير من الجهد لجعل البرنامج النصي سهل الاستخدام ومضادًا قدر الإمكان ، "إن العالم عبارة عن مختبر أكبر". قد تساعدك المعلومات الواردة أدناه في التأكد من مصدر مشكلاتك.

    تقدم

    قد ترغب في استخدام هذه الخطوط الملاحية السريعة "لمشاهدة" جميع المهام قيد التقدم بسرعة ، لمعرفة ما إذا كانت تتقدم فعلاً على الإطلاق أم أنها عالقة فعلاً.

    بينما [-e / dev / null]؛ فعل لـ VM في "$ (قائمة المهام xe | grep uuid | awk" print $ 5 ') "؛ do xe task-param-get param-name = progress uuid = $ VM؛ sleep 1؛ فعله؛ فعله

    للتوقف عن المشاهدة ، استخدم Ctrl + C لفرملة "while loop".

    تسجيل

    يتم جمع كل "التسجيل" بواسطة مضيف Xen الذي يقوم بتشغيل البرنامج النصي في آلية سجل النظام. يمكن مشاهدة هذا بالطبع مع:

    أقل + F / var / log / messages

    كنت تبحث عن الكلمة الرئيسية "Xen-pocalypse".

    ملاحظة: قامت Citrix بتعيين سياسة احتفاظ لمدة يومين (2) لسجل مخدماتها. قد تحتاج إلى أن تضع ذلك في الاعتبار ل postmortems.

    التصحيح

    كما هو موضح في مقطع ملف الإعدادات ، يوجد توجيه لتمكين تصحيح الأخطاء. سيؤدي تمكين التصحيح إلى قيام البرنامج النصي بإخراج التسجيل المطوّل إلى وحدة التحكم وإخراجه من إرسال رسائل البريد الإلكتروني وتنفيذ عمليات التصدير فعليًا ، ما لم يتم أيضًا تعيين العلامات ذات الصلة. تلاحظ العلامات المحتملة في قالب ملف الإعدادات وتمكنك من تحديد ما تريد تصحيحه بدقة.

    آمل أنك لم تكن بحاجة إلى أي تصحيح وأنت تجني ثمار عملي :)


    اقتحام يا راجل ، أنت على وشك أن تصبح خادعة رقم واحد ...