כיצד גיבוי סיטריקס Xen VMs בחינם עם זן- pocalypse (בש)
האם אי פעם צריך גיבוי שלך Citrix Xen Virtual Machines (VMs) אבל לא רוצה לשבור את הבנק עושה את זה? HTG יש רק את התסריט bash בשבילך עם זן- pocalypse.
תמונה על ידי h.koppdelaney, תקוע מותאם אישית ו Hotfortech.
אחד הדברים היפים ב- Citrix Xen הוא שרבים מתכונותיו הן חופשי של תשלום. עם זאת, אם אתה רוצה את "אוטומטי VM הגנה והתאוששות" תכונה, היית צריך להתחיל לשלם עבור "מראש" רישיון. גם אז, אתה משלם רק עבור רמת הדיסק גיבויים, אשר אינם מספיקים עבור סוגים רבים של עומסי עבודה כמו Active Directory, מסדי נתונים & וכו 'כדי להתגבר על זה אולי אתה רוצה את "זיכרון Live תמונת ולהחזיר", אשר יכול להציל את כל מצב מחשב, כולל תוכן RAM. עם זאת, תכונה זו היא חלק "Enterprise" ו "פלטינה" מהדורות, אשר הם אפילו יותר יקר. זה לא שאנחנו ב HTG הם דוחה את הערך של תוכנת גיבוי אמיתי, אבל אם אתה על תקציב הדוק ולא אכפת לי כמה זמן השבתה עבור פעולת הגיבוי, אתה עשוי למצוא Xen- פוקליפסה להיות פתרון הגיוני לחלוטין לפני שתבצע את המחויבות התקציב.
סקירה כללית
"מקרה שימוש": יש לך כמה VMs הדורשים גיבוי. את "כיבוי VM וייצוא אותו כקובץ" מתוך "מרכז Xen" באמצעות קליקים ימינה עובד בסדר, אבל אתה רוצה את התהליך הזה יקרה באופן אוטומטי על לוח זמנים. זה סקריפט Bash משתמש "XE" הפקודה לבצע את תפקידיה. XE הוא ממשק שורת הפקודה של Xen (CLI), שווה ערך אוטומטית להנפקת "הקליקים הנכונים" במרכז "Xen". אנחנו נהיה קורא את התסריט מ Cron אשר יספק את "תזמון" חלק. בצורתו הפשוטה ביותר, זרימת הגיבוי היא:
- כבה את ה- VM של היעד.
- ייצא את ה- VM כקובץ למיקום הגיבוי.
- אם ה- VM מופעל, לפני תחילת הגיבוי, הוא יופעל מחדש.
בואו לקבל פיצוח :)
השג את התסריט
Xen-pocalypse ניתן להשיג בחופשיות מן github, באמצעות שיטות git רגיל. עם זאת, אם אתה לא בקי ב git עדיין, אתה יכול לתפוס את קובץ ה- zip עם הקישור הזה. כמו סקריפט צריך לרוץ על אחד השרתים שלך זן, אתה צריך לחלץ אותו שם, כך הרשאות ביצוע נשמרות.
wget https://github.com/aviadra/Xen-pocalypse/archive/master.zip
לפתוח הורים - -
למרות האמור לעיל יעבוד, מומלץ להשתמש בשיטת GIT, כך שתוכל להפיק תועלת עדכונים עתידיים.
השג SendEmail (אופציונלי)
כתבנו על התוכנית SendEmail perl בעבר, ולכן אין צורך לחזור על זה כאן. די לומר, זה עובד באותה דרך על לינוקס כפי שהיא עושה ב- Windows.
אמנם הפעלת דוא"ל היא אופציונלית, מומלץ מאוד כי אז התסריט יוכל:
- להודיע לך כאשר זה התחיל & סיים לפעול.
- התראה על כל השגיאות שהוא היה מסוגל לזהות ולטפל.
- ליידע על פסילת גיבוי עקב בעיות בחלל. (התנהגות זו יכולה להיות מושבתת אם לא רצוי)
הורד אותו לשרת Xen ולחלץ.
wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz
tar xvzhf שלח אימייל- v1.56.tar.gz
שים לב למיקום שבו חילצת אותו. תזדקק לו עבור קובץ ההגדרות.
הגדרת תגיות
Citrix Xen נותן לך את היכולת להגדיר "שדות מותאמים אישית" עבור יכולות סינון. אנו ניצור את השדות ולאחר מכן לאכלס אותם עם המידע המשמש את Xen-pocalypse. Xen-pocalypse מזהה 3 TAGs שליטה אשר מייחסים את שם התג עבור גיבוי ואת יחסי הורה לילד. אם אינך מתכוון להשתמש בשיטת קלט הקובץ, עליך ליצור לפחות את שם שם תג הגיבוי.
לשם כך, פתח את המאפיינים של השרת או אפילו של VM. בחלונית הניווט, בחר "שדות מותאמים אישית".
אם זו הפעם הראשונה שאתה מגדיר מערכת יחסים (כמו בדוגמה לעיל), לא יהיו לך שדות להזנת נתונים, לכן עליך ליצור אותם. כדי לעשות זאת, לחץ על "ערוך שדות מותאמים אישית" בתיבת הדו שיח כי אבא, לחץ על "הוסף ..."
צור שלושה שדות טקסט מסוג "טקסט". אחד ייקרא "BackupTAG" ואחרים "הורה" ו "ילדים".
הערה: שמות השדות המותאמים אישית, "מקודדים בקפדנות" לתוך התסריט, לכן אין לחרוג מהאיות לעיל, אלא אם תשנה גם את הקוד הרלוונטי.
לאחר יצירת כל השדות, תראה:
סגור את window.You עכשיו יש את השדות "BackupTAG", "האב" ו "ילדים" למלא, כמו בתמונה למטה.
עכשיו כל מה שאתה צריך לעשות הוא לייעד אילו VMs שייכים למה "BackupTAG".
לדוגמה, בחברה שבה התסריט גדל, היו לנו VMs שהיו מגובים מדי שבוע ביום חמישי ושישי, לוח זמנים עבור המוצר שלנו אטלסיאן VMs וחלקם היו לגבות רק חודשי. אז הסקירה שלנו נראתה כמו:
איפה למשל "שבועי יום שישי" היה הטקסט שיש לנו קלט לתוך "BackupTAG" "שדה מותאם אישית". מסודר? :)
הורים וילדים (אופציונלי)
היופי האמיתי של התסריט הזה הוא שהוא תומך "הורה" כדי "ילד" היחסים. כלומר, ניתן להגדיר רשימה של VMs "ילד" כי יהיה כבוי מגובים לפני ההורה, וכי הילדים האלה יהיה רק לחזור על פעם אחת ההורה סיימה את הגיבוי שלה כבר חזר on. אפשרות זו שימושית במקרים בהם כיבוי ה - VM ההורה יגרום לשירות ב ילד להיות בלתי זמין. דבר כזה יביא לכך שהשירות ב- VM של הילד לא יהיה זמין פעמיים, פעם אחת עבור תהליך הגיבוי של הילד ופעם אחת עבור ההורה. יצירת מערכת יחסים זו מתגבר על בעיה זו.
לדוגמה, כל ה- VM של אטלסיאן שלנו השתמשו ב- DataBase יחיד (DB), אשר נקבע גם לגיבוי. אז על ידי ציון כי VM DB הוא "האב" על VMs אחרים, הסדר הנכון של כיבוי - גיבוי -> ההפעלה, יכול להיות מובטחת.
בזמן כתיבת שורות אלה, יש בפונקציה זו מספר אזהרות:
- שמות ה- VM שיש להם מערכת יחסים כזו אינם יכולים להכיל רווחים. יהיה עליך להסיר רווחים משמות ה- VM שלך, שכן הם יחולקו במרחב, כמו בדוגמה הבאה.
- יכול להיות רק הורה אחד. תכנון יותר מאחד אפילו לא מתוכנן, שלא לדבר על נבדק.
כדי ליצור את הקשר הזה, להיכנס למאפיינים של VM. אם זהו "הורה", כתוב מי ילדיו ואם זה "ילד", כתוב מי ההורה שלו. לדוגמה:
הערה: לא הגדרת הורה לילד עלולה לגרום להופעת הילד לפני שהורה שלו מוכן, ועלולה לגרום לגיבוי כפול.
שיטת FILE (אופציונלי)
מסיבות היסטוריות, Xen-pocalypse תומך גם בקבלת רשימת ה- VM לגיבוי כקובץ טקסט. בעוד "קוד" עדיין שם, הפונקציונליות היא נחותה חמור לשיטת TAGs ולכן זה לא מומלץ. עם זאת, אם אתה מעדיף להשתמש בשיטת הרשימה מסיבה כלשהי, המגבלות הבאות חלות:
- שמות ה- VMs אינם יכולים להכיל רווחים או תווים מיוחדים.
- יכול להיות רק שם VM אחד בכל שורה.
- אין להשתמש בקווים ריקים.
כדי ליצור את הרשימה, או להעתיק את השם של VM ממרכז Xen, או לבצע על מארח Xen:
xe vm רשימה שם התווית grep אוק
'[הדפס $ 4' | סוג
העתק את הרשימה לעיל לקובץ טקסט רגיל.
מיקום הגיבוי
בעוד שבאופן אקראי מציצים ב- Citrix Xen, גיליתי שמאגרי האחסון (SRs) זמינים לשימוש תחת "/ var / run / sr-mount /% UUID%", כאשר UUID הוא המזהה הייחודי של ה- SR, המתקבל מה- GUI.
זה אומר שאנחנו יכולים להשתמש רגיל "הבא - הבא -" סיום "אשף כדי ליצור את הר למיקום הגיבוי הרצוי, ולאחר מכן יש להשתמש בסקריפט כי הנתיב (כמו apposed להתעסק עם הרכבה משורת הפקודה), אבל עושה כך הוא מעבר להיקף של מדריך זה.
כדי ליצור חדש "הר", לחץ לחיצה ימנית על שם השרת ובחר חדש SR.
בדוגמה זו נכוון את Xen למיקום Windows, לכן בחר "שיתוף קבצים של Windows (CIFS)":
השלם את הבא -> הבא -> סיום.
השג את ה- UUID של SR
כדי להשיג UUID של SR, פשוט לחץ על שמו במרכז Xen ועבור לכרטיסייה "כללי".
כדי להעתיק את UUID, פשוט לחץ לחיצה ימנית על זה לבחור "להעתיק".
עם מידע זה בהישג יד, אתה מוכן לערוך את קובץ ההגדרות.
הגדר את קובץ ההגדרות.
פרוייקט Xen-pocalypse מגיע יחד עם תבנית "הגדרות" קובץ. יש לערוך תבנית זו כדי לשקף את ההגדרה שלך ולהעביר אותה כארגומנט הראשון לסקריפט. קובץ ההגדרות מציין את הפרטים הבאים:
השיטה כדי לקבל גיבוי VMs - שיטת ברירת המחדל היא TAGs. אתה יכול לשנות את זה ל- FILE, אבל זה לא מומלץ.
המיקום של יעד הגיבוי - אם עקבת אחר המדריך לנקודה זו, עליך להחליף רק את% UUID% עם ה- SR כפי שהוא התקבל מלמעלה.
המיקום של SendEmail - אם בחרת לאפשר אימייל, עליך להזין את המקום שבו הוצא את קובץ ה- Perl כאן.
פרטי דוא"ל - שוב, אם איפשרת דוא"ל, אתה צריך להגדיר פרטים כגון: אל, מאת, Servername / IP & וכו '.
דחיסה - זה מוגדר "לא" כברירת מחדל, כי בעת הפעלת זה יהיה לייצר קובץ גיבוי קטן יותר, זה גם יגרום הליך הגיבוי לרוץ במשך זמן רב הרבה יותר זמן.
בדוק אם יש מקום פנוי על היעד - זה יהיה לבדוק את התסריט כי ביצוע גיבוי של VM לא יגרום מקום פנוי של מקום פנוי ליפול מתחת 10GB. זה נעשה על מנת להבטיח את כמות מרבית של VMs מגובים במקום רק אחד גדול מאוד VM. החישוב נעשה באמצעות גודל דיסק ברוטו הכולל של כל HDs הקשורים VM.
ניקוי באגים - ברירת המחדל היא כי באגים כבוי עם הערך "0" (אפס). אתה לא צריך להפעיל את זה, אבל אם אתה עושה, מידע נוסף הוא ציין את קטע פתרון בעיות.
ביצוע / תזמון
בצורתו הפשוטה ביותר, תיראה קריאה של זן-פוקליפסה:
./Xen-backup.sh settings.cfg שבוע-שישי
איפה במקרה הנ"ל, אנחנו בתוך הספרייה שמחזיקה את התסריט & את קובץ ההגדרות. "תג" התסריט יחפש הוא "שבועי יום שישי".
כפי שצוין לעיל, נשתמש Cron לתזמן את ביצוע. לפני שנכנס לתצורה, זה מומלץ מאוד כי אתה מגדיר את חבילת SSMTP מותקנת כבר בשרת Xen שלך. אמנם זהו צעד אופציונלי, עושה כך ייתן לך אספן backwash. בעקבות כזה "backwash אספן" עשוי להתריע על דברים סקריפט אינו מסוגל.
היכנס לעריכה של cron על ידי הנפקת:
crontab -e
אם עקבת אחר ההוראות לעיל וברצונך להוסיף גיבוי מתוזמן ליום שישי בשעה 18:01 (6:01 PM), הזן את הפרטים הבאים:
01 18 * * fri /root /Xen-pocalypse-master/Xen_Backup.sh /root/Xen-pocalypse-master/settings.cfg שבוע-שישי
האמור לעיל נכון בהנחה שהסקריפט וקובץ ההגדרות שלך נמצאים תחת "/ root / Xen-pocalypse-master /".
פתרון תקלות
בעוד אני כבר השקיע מאמץ רב להפוך את התסריט קל לשימוש, כמו חסינת תקלות ככל האפשר, "העולם הוא מעבדה גדולה יותר". המידע להלן עשוי לעזור לך לברר מה מקור הצרות שלך.
התקדמות
ייתכן שתרצה להשתמש זה אניה אחת במהירות "לצפות" את כל המשימות בתהליך, כדי לראות אם הם באמת מתקדמים בכלל או אם הם באמת תקועים.
בעוד [-e / dev / null]; לעשות עבור VM ב "$ (xE-task list-grep uuid | awk 'print $ 5'); לעשות XE-param-get-param-name = התקדמות uuid = $ VM; שינה 1; בוצע; בוצע
כדי להפסיק לצפות, השתמש Ctrl + C לבלום את "בזמן לולאה".
רישום
כל "רישום" נאסף על ידי המארח Xen מפעיל את התסריט במנגנון syslog. זה כמובן ניתן לראות עם:
פחות + F / var / log / הודעות
אתה מחפש את מילת המפתח "Xen-pocalypse".
הערה: Citrix קבעה מדיניות שמירה של יומיים (2) עבור syslog של השרתים שלה. ייתכן שתרצה לשמור את זה בחשבון עבור שלאחר המוות.
ניקוי באגים
כפי שצוין בקטע קובץ ההגדרות, קיימת הוראה המאפשרת איתור באגים. הפעלת איתור באגים תגרום לסקריפט לפלט את יומן הרישום לקונסולה ולסרס אותו משליחת הודעות דוא"ל וביצוע בפועל של היצוא, אלא אם כן יוגדרו גם הדגלים הרלוונטיים. הדגלים האפשריים מצוינים בתבנית קובץ ההגדרות והם מאפשרים לך להגדיר באופן גרעיני את מה שאתה רוצה לתקן באגים.
זה אני מקווה שאתה לא צריך שום באגים ואתה קוצרים את פירות העבודה שלי :)
דחף, אחי, אתה עומד להיות מספר אחד decepticon ...