כיצד לשחזר סיטריקס- Xen VMs בחינם עם Xen-Phoenix (בש)
האם אי פעם היה צורך בתפזורת לשחזר את סיטריקס- Xen VMs עבור פתרון התאוששות מאסון (DR), או רק כדי לבדוק את הגיבויים שלך עובדים? HTG מסביר כיצד להשתמש Xen-Phoenix, סקריפט חינם bash, עבור שחזור VM.
צילום: ראיין McCurdy דרך Compfight עותק
כמו שהזכרנו ב "כיצד גיבוי סיטריקס Xen VMs בחינם עם Xen-pocalypse", אחד הדברים הנחמדים Citrix Xen היא כי רבות התכונות שלה הם חופשי של תשלום. עם זאת, אם אתה רוצה את "אוטומטי VM הגנה והתאוששות" תכונה, היית צריך להתחיל לשלם עבור "מראש" רישיון. שוב, זה לא שאנחנו ב HTG הם דוחה את הערך של פתרון גיבוי אמיתי, אבל אם אתה על תקציב הדוק, יש כבר gotten תמונות VM מתוך hypervisor והם זקוקים דרך להפוך את " שחזור "/" DR רענון "הליכים, אתה עשוי למצוא Xen-Phoenix להיות פתרון סביר לחלוטין לפני שתבצע את המחויבות התקציב.
סקירה כללית
"מקרה שימוש": יש לך כמה VMs הדורשים שחזור. ייבוא "מרכז Xen" באמצעות קליקים ימינה עובד בסדר, אבל אתה רוצה את התהליך הזה יקרה באופן אוטומטי על לוח זמנים. זה סקריפט Bash משתמש "XE" הפקודה לבצע את תפקידיה. XE הוא ממשק שורת הפקודה של Xen (CLI), שווה ערך אוטומטית להנפקת "הקליקים הנכונים" במרכז "Xen". אנחנו נהיה קורא את התסריט מ Cron אשר יספק את "תזמון" חלק. בצורתו הפשוטה ביותר, זרימת השחזור היא:
- מחק כל * הקיים בעבר VMs בשרת
- ייבוא VMs מקבצים במיקום הגיבוי.
- ודא שכל ה- VM הם ניתנים לפעולה על-ידי הפעלתם אחד אחד ולחפש את פעימות הלב של האורח.
- כבה את ה- VM כאשר נחשף פעימת לב, או שהגיע הזמן הקצוב לתפוגה.
* למחוק את כל ההתנהגות VMs יכול להיות מושבת לחלוטין תומך חריגים (ראה להלן).
בואו לקבל פיצוח :)
השג את התסריט
Xen-Phoenix ניתן להשיג בחופשיות מן github, באמצעות שיטות git רגיל. עם זאת, אם אתה לא בקי ב git עדיין, אתה יכול לתפוס את קובץ ה- zip עם הקישור הזה. כמו סקריפט צריך לרוץ על אחד השרתים שלך זן, אתה צריך לחלץ אותו שם, כך הרשאות ביצוע נשמרות.
wget https://github.com/aviadra/Xen-phoenix/archive/master.zip
לפתוח הורים - -
בעוד האמור לעיל יעבוד, מומלץ להשתמש בשיטת GIT כך שתוכל להפיק תועלת עדכונים עתידיים.
מיקום היצוא
אנחנו צריכים להגדיר היכן לקחת את היצוא VM מ.
בעוד שבאופן אקראי מציצים ב- Citrix Xen, גיליתי שמאגרי האחסון (SRs) זמינים לשימוש תחת "/ var / run / sr-mount /% UUID%", כאשר UUID הוא המזהה הייחודי של ה- SR, המתקבל מה- GUI.
זה אומר שאנחנו יכולים להשתמש הרגיל "הבא - הבא -" סיום "אשף כדי ליצור את" הר "למקום הגיבוי הרצוי, ולאחר מכן יש להשתמש בסקריפט כי הנתיב (כמו apposed להתעסק עם הרכבה משורת הפקודה אשר מעבר להיקף של מדריך זה).
כדי ליצור חדש "הר", לחץ לחיצה ימנית על שם השרת ובחר חדש SR.
בדוגמה זו, נצביע על Xen לשיתוף של Windows, לכן בחר "שיתוף קבצים של Windows (CIFS)":
השלם את הבא -> הבא -> סיום.
השג את ה- UUID של SR
כדי להשיג UUID של SR, פשוט לחץ על שמו במרכז Xen ועבור לכרטיסייה "כללי".
כדי להעתיק את UUID, פשוט לחץ לחיצה ימנית על זה ובחר "להעתיק".
עם מידע זה בהישג יד, אתה מוכן לערוך את קובץ ההגדרות.
הגדר את קובץ ההגדרות
פרויקט Xen-Phoenix מגיע יחד עם תבנית קובץ "הגדרות". יש לערוך תבנית זו כדי לשקף את ההגדרה שלך ולהעביר אותה כארגומנט הראשון לסקריפט.
קובץ ההגדרות מציין את הפרטים הבאים:
- המיקום של היצוא מקור - אם יש לך בעקבות המדריך לנקודה זו, אתה רק צריך להחליף את% UUID% עם SR של כפי שהושג מלמעלה.
- המיקום של SendEmail - אם בחרת לאפשר אימייל, אתה צריך קלט שבו יש לך חילוץ ההפעלה Perl כאן.
- אימות - פעולה זו שולטת בהליך שחזור האימות. אפשרות זו מופעלת כברירת מחדל, שכן "שחזור ברמת הקובץ" המוצלח אינו בהכרח אמצעי VM פונקציונלי.
- Server_prep - זה שולט מראש שחזור מחיקה של כל ה - VM בשרת DR. אפשרות זו מופעלת כברירת מחדל מכיוון שמניחים ששרת ה- DR הוא שרת ייעודי למטרה זו. אם אתה זקוק ל- VM שפועל בשרת זה כדי לא למחוק, הגדר אותו כך שלא ייכלל. אם התנהגות זו אינה מתאימה למצב שלך, פשוט להשבית אותו לחלוטין.
- פרטי דוא"ל - שוב, אם איפשרת דוא"ל, אתה צריך להגדיר פרטים כגון: אל, מאת, Servername / IP & וכו '.
- ניקוי באגים - ברירת המחדל היא כי איתור באגים כבוי עם הערך "0" (אפס). לא צריך להפעיל את זה, אבל אם כן, יש לציין מידע נוסף במקטע פתרון הבעיות.
ביצוע
סקריפט זה לוקח את קובץ ההגדרות כמו הארגומנט הראשון שלה וכל שאר הארגומנטים כמו "Chevrons" כדי לחפש (מופרדים על ידי רווחים). Chevrons, הם "מחרוזות", אשר תומכים ביטויים רגולריים המייצגים לפחות חלק שם הקובץ הרצוי של ייצוא VM.
כלומר, בצורתו הפשוטה ביותר, תיראה קריאה של זן-פניקס:
./Xen-phoenix.sh settings.cfg DevTools
איפה במקרה הנ"ל, אנחנו בתוך הספרייה שמחזיקה את התסריט & את קובץ ההגדרות ואת "Chevron" התסריט יחפש הוא "DevTools". זה יגרום כל הקבצים בספרייה היצוא עם מחרוזת "DevTools" בשמם להיות מיובאים.
דוגמה מורכבת יותר יכולה להיראות כך:
./Xen-phoenix.sh settings.cfg [Aa] [Dd] [Bb] [iI] [Dd] ev [Tt] ools
כאשר בדוגמה שלמעלה, קבצים המכילים את המילה "devtools" מאויתים באותיות "D" ו- "T" או באותיות רישיות, כמו גם "AD" ו- "BI" עם או ללא שימוש באותיות רישיות, יובאו.
תזמון
כפי שצוין לעיל, נשתמש Cron לתזמן את ביצוע. לפני שנכנס לתצורה, זה מומלץ מאוד כי אתה מגדיר את חבילת SSMTP מותקנת כבר בשרת Xen שלך. אמנם זה צעד אופציונלי, עושה כך ייתן לך "backwash" אספן. בעקבות כזה "backwash אספן" עשוי להזהיר אותך דברים סקריפט אינו מסוגל.
היכנס למצב עריכה של cron על ידי הנפקת:
crontab -e
אם עקבת אחר ההוראות לעיל וברצונך להוסיף גיבוי מתוזמן ליום ראשון בשעה 01:31 (1:31 בבוקר), הזן את הפרטים הבאים:
31 [*] / sun /root /Xen-phoenix-master/Xen-phoenix.sh /root / Xen-phoenix-master/settings.cfg [Aa] [Dd] DB [Bb] [iI] [Dd] ev [Tt ] ools
האמור לעיל נכון בהנחה כי קובץ ה- script וההגדרות שלך נמצאים תחת "/ root / Xen-Phoenix-master /".
השג SendEmail (אופציונלי)
כתבנו על התוכנית SendEmail perl בעבר, ולכן אין צורך לחזור על זה כאן. די לומר, זה עובד באותה דרך על לינוקס כפי שהיא עושה ב- Windows.
אמנם הפעלת דוא"ל היא אופציונלית, מומלץ מאוד כי אז התסריט יוכל:
- להודיע לך כאשר זה התחיל & סיים לפעול.
- התראה על כל השגיאות שהוא היה מסוגל לזהות ולטפל.
הורד אותו לשרת Xen ולחלץ.
wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz
tar xvzhf שלח אימייל- v1.56.tar.gz
שים לב למיקום שבו חילצת אותו. תזדקק לו עבור קובץ ההגדרות.
הגדרת תג "מחק חריגה" (אופציונלי)
Xen-Phoenix לוקח דף מאבותיו (Xen-Pocalypse) ונותן לך את היכולת לא לכלול VM מחיקת המערכת כולה באמצעות TAG בקרה. כדי לעשות זאת, אתה צריך להגדיר חדש "שדה מותאם אישית".
לשם כך, פתח את המאפיינים של השרת או אפילו של VM. בחלונית הניווט, בחר "שדות מותאמים אישית".
אם זו הפעם הראשונה שאתה מגדיר "שדה מותאם אישית" (כמו בדוגמה לעיל), לא יהיה לך את השדה "Phoenix_keeper" כדי להזין נתונים לתוך, אז אתה צריך ליצור אותו. כדי לעשות זאת, לחץ על "ערוך שדות מותאמים אישית" בתיבת הדו שיח כי צץ, ולאחר מכן לחץ על "הוסף ..."
יצירת שדה "טקסט" סוג עם השם "Phoenix_keeper".
הערה: השם של השדה המותאם אישית היה "מקודד היטב" לתוך התסריט, ולכן אתה לא חייב לסטות מן האיות לעיל, אלא אם כן תשנה את הקוד הרלוונטי גם כן.
לאחר יצירת השדה, תראה:
סגור את החלון. עכשיו אתה צריך את השדה "פניקס_קייפר" למלא, כמו בתמונה למטה.
עכשיו, כל מה שאתה צריך לעשות הוא לאכלס את השדה הזה עם הערה (כל הערה יעשה), אשר יגרום עוף זן לדלג עליו בעת מחיקת.
פתרון תקלות
בעוד אני כבר השקיע מאמץ רב להפוך את התסריט קל לשימוש, כמו חסינת תקלות ככל האפשר, "העולם הוא מעבדה גדולה יותר". המידע להלן עשוי לעזור לך לברר מה מקור הצרות שלך.
רישום
כל "רישום" נאסף על ידי המארח Xen מפעיל את התסריט במנגנון syslog. זה, כמובן, ניתן לראות עם:
פחות + F / var / log / הודעות
אתה מחפש את מילת המפתח "Xen-Phoenix".
הערה: Citrix קבעה מדיניות שמירה של יומיים (2) עבור syslog של השרתים שלה. ייתכן שתרצה לשמור את זה בחשבון עבור שלאחר המוות.
ניקוי באגים
כפי שצוין בקטע קובץ ההגדרות, קיימת הוראה המאפשרת איתור באגים. הפעלת איתור באגים תגרום לסקריפט לפלט את יומן הרישום לקונסולה ולסרס אותו משליחת הודעות דוא"ל וביצוע בפועל של היבוא, אלא אם כן יוגדרו גם הדגלים הרלוונטיים. הדגלים האפשריים מצוינים בתבנית קובץ ההגדרות, והם מאפשרים לך להגדיר באופן גרעיני את מה שאתה רוצה לתקן באגים.
זה אני מקווה שאתה לא צריך שום באגים ואתה קוצרים את פירות העבודה שלי :)
רק תחשבו על כל העוני, השנאה והשקרים, ותארו לעצמכם את חורבן כל מה שאתם מתעבים. אט אט מן האפר, עוף החול יעלה ...