תהליך המיגרציה הפעילה במהלך אירועי תחזוקה

במהלך אירוע תחזוקה מתוכנן של החומרה הבסיסית של מכונה וירטואלית (VM) או מכונת Bare Metal, שרת המארח לא זמין. כדי שהמכונה תמשיך לפעול במהלך אירוע במארח, Compute Engine מבצע מיגרציה פעילה של המכונה לשרת מארח אחר באותו אזור. מידע נוסף על אירועים במארח זמין במאמר מידע על אירועים במארח.

מיגרציה פעילה מאפשרת לבצע תחזוקה בלי להפריע לעומס העבודה, להפעיל מחדש מופע או לשנות את המאפיינים של המופע, כמו כתובות IP, מטא-נתונים, נתונים של אחסון בלוקים, מצב האפליקציה או הגדרות הרשת. Google Cloud

מיגרציה פעילה מאפשרת להמשיך להפעיל את המופעים במצבים הבאים:

  • תחזוקת התשתית. תחזוקת התשתית כוללת חומרה של מארחים, רשתות ורשתות חשמל במרכזי נתונים, ומערכת הפעלה (OS) ו-BIOS של מארחים.

  • עדכונים שקשורים לאבטחה ושינויים בהגדרות המערכת. האירועים האלה כוללים אירועים כמו התקנת תיקוני אבטחה ושינוי הגודל של מחיצת הבסיס של המארח לאחסון של קובץ אימג' של מערכת ההפעלה של המארח וחבילות.

  • כשלים בחומרה. הכשלים האלה כוללים כשלים בזיכרון, במעבדים, בכרטיסי ממשק הרשת ובדיסקים. אם הכשל מזוהה לפני כשל מלא בשרת, ‏ Compute Engine מבצע מיגרציה פעילה מונעת של המופע לשרת מארח חדש. אם החומרה נכשלת לחלוטין או מונעת מיגרציה פעילה מסיבה אחרת, המופע מסתיים ומופעל מחדש באופן אוטומטי.

‫Compute Engine מבצע מיגרציה פעילה רק של מכונות וירטואליות שהמדיניות שלהן לגבי תחזוקת המארח מוגדרת למיגרציה. למידע על שינוי מדיניות התחזוקה של המארח, אפשר לעיין במאמר בנושא הגדרת מדיניות תחזוקה של מארח מכונה וירטואלית.

תהליך המיגרציה הפעילה ודיסקים מקומיים של SSD

ב-Compute Engine אפשר לבצע העברה פעילה של מופעים עם כונני SSD מקומיים שמצורפים אליהם (לא כולל מופעי Z3 עם יותר מ-18 TiB של כונני Titanium SSD שמצורפים אליהם). ‫Compute Engine מעביר את המכונות הווירטואליות יחד עם הנתונים שלהן בכונן SSD מקומי למכונה חדשה לפני תחזוקה מתוכננת.

מגבלות

מיגרציה פעילה לא נתמכת בסוגי מכונות וירטואליות הבאים:

  • מופעי H4D עם SSD מקומי.
  • מופעים של שרתים פיזיים. אי אפשר לבצע מיגרציה פעילה של מכונות וירטואליות שנוצרו באמצעות סוג מכונת Bare Metal. התנהגות התחזוקה של המכונות האלה מוגדרת ל-TERMINATE ול-RESTART, בהתאמה.
  • Most Confidential VM instances. מיגרציה פעילה למכונות וירטואליות סודיות נתמכת רק בסוגי מכונות N2D עם פלטפורמות מעבד AMD EPYC Milan שמופעל בהן AMD SEV. כל שאר המכונות הווירטואליות הסודיות לא תומכות במיגרציה פעילה, ולכן צריך להגדיר אותן כך שיפסיקו לפעול ויפעלו מחדש במהלך אירוע תחזוקה של המארח. פרטים נוספים זמינים במאמר בנושא מיגרציה פעילה.
  • מכונות וירטואליות עם יחידות GPU מצורפות. צריך להגדיר את המכונות הווירטואליות עם יחידות ה-GPU המצורפות כך שהן יופסקו, ואפשר גם להגדיר הפעלה מחדש. ב-Compute Engine מוצגת הודעה לפני שמכונה וירטואלית עם GPU מצורף נעצרת, בהתאם לסוג ה-GPU:

    • ברוב המקרים, Compute Engine מספק הודעה מראש של 60 דקות.
    • למופעי A4X,‏ A4 או A3 Ultra,‏ Compute Engine מספק הודעה מראש של 10 דקות.

    מידע נוסף על הודעות לגבי אירועי תחזוקה זמין במאמר בנושא שליחת שאילתות לשרת המטא-נתונים כדי לקבל הודעות לגבי אירועי תחזוקה.

    במאמר טיפול בתחזוקת המארח בתיעוד בנושא GPU מוסבר איך לטפל בתחזוקת המארח באמצעות GPU.

  • Cloud TPUs. ‫Cloud TPU לא תומך במיגרציה פעילה.
  • מכונות וירטואליות שמותאמות לאחסון. מכונות וירטואליות מסוג Z3 עם יותר מ-18 TiB של כונני Titanium SSD מצורפים לא תומכות במיגרציה פעילה. התנהגות התחזוקה של המכונות הווירטואליות האלה מוגדרת כ-TERMINATE ו-RESTART.‏ Compute Engine שומר את הנתונים בכונן ה-SSD של Titanium במהלך אירוע התחזוקה, כפי שמתואר במאמר שמירת נתונים בדיסק אחרי סיום מופע.
  • מכונות וירטואליות מותאמות לצריכת מעבד גבוהה: מכונות וירטואליות מסוג H4D לא תומכות במיגרציה פעילה, כי מיגרציה פעילה לא נתמכת במכונות וירטואליות עם RDMA. מנקודת המבט של אפליקציית HPC, ביצוע מיגרציה פעילה של מופע ישפיע באופן משמעותי על ביצועי האפליקציה, ועדיף שהאפליקציות יתחילו מנקודת ביקורת. התנהגות התחזוקה של מכונות ה-VM האלה מוגדרת ל-TERMINATE ול-RESTART. במהלך אירוע התחזוקה, נתוני ה-SSD של Titanium נשמרים ב-Compute Engine, כמו שמתואר במאמר שמירת נתונים בדיסקים לאחר סיום המכונה.

איך מתבצע תהליך המיגרציה הפעילה?

כשמכונה וירטואלית מתוזמנת למיגרציה פעילה, Compute Engine מספק התראה כדי שתוכלו להכין את עומסי העבודה והאפליקציות שלכם להפרעה שתיגרם מהמיגרציה הפעילה. במהלך מיגרציה פעילה, Google Cloud נצפה זמן שיבוש מינימלי, שהוא בדרך כלל הרבה פחות משנייה אחת. אם לא מוגדרת העברה פעילה של מכונה וירטואלית, ‏ Compute Engine מפסיק את הפעילות של המכונה הווירטואלית במהלך תחזוקת המארח. מכונות וירטואליות שמוגדרות להפסיק לפעול במהלך אירוע במארח יופסקו (ואפשר גם להפעיל אותן מחדש).

כש- Google Cloud מעביר מכונה וירטואלית פעילה ממארח אחד למארח אחר, הוא מעביר את המצב המלא של המכונה הווירטואלית מהמקור ליעד באופן שקוף למערכת ההפעלה של האורח ולכל מה שמתקשר איתה. יש הרבה רכיבים שפועלים יחד כדי שהתהליך הזה יתבצע בצורה חלקה, אבל באיור הבא מוצגים השלבים העיקריים:

העברה של מכונה וירטואלית וכל המשאבים שלה למערכת מארחת חדשה, בלי שיהיה צורך להפעיל מחדש את מערכת ההפעלה האורחת.
רכיבים של מיגרציה פעילה

התהליך מתחיל בהתראה על כך שצריך להעביר מכונה וירטואלית מהמחשב המארח הנוכחי שלה. ההתראה עשויה להתחיל בשינוי בקובץ שמציין שגרסת BIOS חדשה זמינה, בתחזוקה של תזמון פעולת חומרה או באות אוטומטי שמתקבל מכשל חומרה שעומד להתרחש.

תוכנת ניהול האשכולות שלGoogle Cloudעוקבת כל הזמן אחרי האירועים האלה ומתזמנת אותם על סמך מדיניות ששולטת במרכזי הנתונים, כמו שיעורי ניצול הקיבולת ומספר המכונות הווירטואליות שלקוח יחיד יכול להעביר בבת אחת.

אחרי שבוחרים מכונה וירטואלית למיגרציה, Google Cloud שולח הודעה לאורח על כך שמיגרציה תתבצע בקרוב. אחרי תקופת המתנה, נבחר מארח יעד והמארח מתבקש להגדיר מכונה וירטואלית חדשה וריקה של 'יעד' כדי לקבל את המכונה הווירטואלית של 'מקור' שמועברת. האימות משמש ליצירת חיבור בין המקור ליעד.

ההעברה של המכונה הווירטואלית כוללת שלושה שלבים:

  1. האפלה חלקית של מקורות. המכונה הווירטואלית עדיין פועלת במקור, בזמן שרוב המצב נשלח מהמקור ליעד. לדוגמה, הפקודהGoogle Cloud מעתיקה את כל הזיכרון של האורח ליעד, תוך מעקב אחרי הדפים ששונו במקור. הזמן שנדרש להפסקת פעולה זמנית של המקור הוא פונקציה של גודל הזיכרון של המכונה האורחת וקצב השינוי של הדפים.

  2. האפלה. רגע קצר מאוד שבו המכונה הווירטואלית לא פועלת בשום מקום, המכונה הווירטואלית של המקור מושהית וכל המצב שנותר שנדרש כדי להתחיל להריץ את המכונה הווירטואלית ביעד נשלח. המכונה הווירטואלית נכנסת לשלב ההשבתה הזמנית כששליחת שינויי המצב במהלך שלב ההשבתה הזמנית של המקור מגיעה לנקודה של תפוקה שולית פוחתת. האלגוריתם שבו נעשה שימוש מאזן בין מספר הבייטים של הזיכרון שנשלח לבין קצב השינויים במכונה הווירטואלית של האורח.

    במהלך אירועים של הפסקת שידור, שעון המערכת נראה כאילו הוא קופץ קדימה, עד 5 שניות. אם אירוע של הפסקת שידור נמשך יותר מ-5 שניות, Google Cloud השעון מפסיק ומסתנכרן באמצעות דמון שכלול בחבילות של אורח המכונה הווירטואלית.

  3. השבתה חלקית של טירגוט. המכונה הווירטואלית מופעלת במכונה הווירטואלית של היעד. המכונה הווירטואלית של המקור קיימת ויכולה לספק תמיכה למכונה הווירטואלית של היעד. לדוגמה, עד שהרשת תתעדכן במיקום החדש של מכונת היעד, מכונת המקור תספק שירותי העברה למנות נתונים אל מכונת היעד וממנה.

בסיום, ההעברה הושלמה והמערכת מוחקת את מכונת ה-VM של המקור. אפשר לראות שהמיגרציה התבצעה ביומנים של Cloud Logging של מכונת ה-VM.

מיגרציה פעילה של מכונות וירטואליות עם דייר יחיד

במהלך הפעלת עומס העבודה, יכול להיות שתרצו להעביר מכונות וירטואליות לצומת אחר או לקבוצת צמתים אחרת של דייר יחיד. אם מעבירים מכונה וירטואלית לקבוצת צמתים, מערכת Compute Engine קובעת באיזה צומת למקם אותה. מידע על דיירות בלעדית זמין במאמר סקירה כללית על דיירות בלעדית.

כדי להעביר מכונות וירטואליות עם דייר יחיד לצומת אחר או לקבוצת צמתים אחרת, אפשר להפעיל מיגרציה פעילה באופן ידני. אפשר גם להפעיל מיגרציה פעילה באופן ידני כדי להעביר מכונת VM במארח עם מספר דיירים לשרת לדייר יחיד (sole-tenant). מידע נוסף זמין במאמר העברה ידנית של מכונות וירטואליות בשידור חי.

המאמרים הבאים