במהלך אירוע תחזוקה מתוכנן של החומרה הבסיסית של מכונה וירטואלית (VM), שרת המארח לא זמין. כדי שמכונה וירטואלית תמשיך לפעול במהלך אירוע של המארח, Compute Engine מבצע מיגרציה פעילה של המכונה לשרת מארח אחר באותו אזור. מידע נוסף על אירועים במארח זמין במאמר מידע על אירועים במארח.
מיגרציה פעילה מאפשרת Google Cloud לבצע תחזוקה בלי להפריע לעומס העבודה, להפעיל מחדש מכונה או לשנות את המאפיינים של המכונה, כמו כתובות IP, מטא נתונים, נתונים של אחסון בלוקים, מצב האפליקציה או הגדרות הרשת.
מיגרציה פעילה מאפשרת להמשיך להפעיל את המופעים במצבים הבאים:
תחזוקת התשתית. תחזוקת התשתית כוללת חומרה של מארחים, רשתות ורשתות חשמל במרכזי נתונים, ומערכת הפעלה (OS) ו-BIOS של מארחים.
עדכונים שקשורים לאבטחה ושינויים בהגדרות המערכת. האירועים האלה כוללים אירועים כמו התקנת תיקוני אבטחה ושינוי הגודל של מחיצת הבסיס של המארח לאחסון של תמונת מערכת ההפעלה של המארח וחבילות.
כשלים בחומרה. הכשלים האלה כוללים זיכרון, מעבדים, כרטיסי ממשק רשת ודיסקים. אם הכשל מזוהה לפני שיש כשל מלא בשרת, Compute Engine מבצע מיגרציה פעילה מונעת של המכונה לשרת מארח חדש. אם החומרה נכשלת לחלוטין או מונעת מיגרציה פעילה, המופע מסתיים ומופעל מחדש באופן אוטומטי.
Compute Engine מבצע מיגרציה פעילה רק של מכונות וירטואליות שהמדיניות שלהן לגבי תחזוקת המארח מוגדרת למיגרציה. למידע על שינוי מדיניות התחזוקה של המארח, אפשר לעיין במאמר בנושא הגדרת מדיניות תחזוקה של מארח מכונה וירטואלית.
מגבלות
העברה פעילה לא נתמכת בסוגי מכונות וירטואליות (VM) הבאים:
- מופעי H4D עם SSD מקומי.
- מופעי Bare Metal. אי אפשר לבצע מיגרציה פעילה של מופעים שנוצרו עם סוג מכונת Bare Metal. התנהגות התחזוקה של המכונות האלה מוגדרת ל-
TERMINATEול-RESTART, בהתאמה. - מופעים של Confidential VM. כל הסוגים של מכונות וירטואליות מסוג Confidential VM צריכים להיות מוגדרים לעצירה, ואפשר גם להגדיר הפעלה מחדש. פרטים נוספים זמינים במאמר בנושא מיגרציה פעילה.
- מכונות וירטואליות מותאמות לצריכת מעבד גבוהה (compute-optimized) מכונות וירטואליות מסוג H4D לא תומכות במיגרציה פעילה, כי מיגרציה פעילה לא נתמכת במכונות וירטואליות עם RDMA. מנקודת המבט של אפליקציית HPC, ביצוע מיגרציה פעילה של מופע ישפיע באופן משמעותי על ביצועי האפליקציה, ועדיף שהאפליקציות יתחילו מנקודת ביקורת. התנהגות התחזוקה של מכונות ה-VM האלה מוגדרת ל-
TERMINATEול-RESTART. Compute Engine שומר את הנתונים בכונן ה-SSD של Titanium במהלך אירוע התחזוקה, כפי שמתואר במאמר שמירת נתונים בכונן לאחר סיום המכונה.
איך מתבצע תהליך המיגרציה הפעילה?
כשמתוכננת מיגרציה פעילה של מכונה וירטואלית, Compute Engine מספק התראה כדי שתוכלו להכין את עומסי העבודה והאפליקציות שלכם לשיבוש שייגרם מהמיגרציה הפעילה. במהלך מיגרציה פעילה, Google Cloud נצפה זמן שיבוש מינימלי, שבדרך כלל קצר בהרבה משנייה אחת. אם לא מוגדרת העברה פעילה של מכונה וירטואלית, Compute Engine מפסיק את הפעילות של המכונה הווירטואלית במהלך תחזוקת המארח. מכונות וירטואליות שמוגדרות להפסקת פעולה במהלך אירוע במארח יופסקו (ואפשר גם להפעיל אותן מחדש).
כש- Google Cloud מעביר מכונה וירטואלית פועלת ממארח אחד למארח אחר, הוא מעביר את המצב המלא של המכונה הווירטואלית מהמקור ליעד באופן שקוף למערכת ההפעלה של האורח ולכל מה שמתקשר איתה. יש הרבה רכיבים שפועלים יחד כדי שהמיגרציה תתבצע בצורה חלקה.
התהליך מתחיל בהתראה על כך שצריך להעביר מכונה וירטואלית מהמכונה המארחת הנוכחית שלה. ההתראה עשויה להתחיל בשינוי בקובץ שמציין שגרסת BIOS חדשה זמינה, בתחזוקה של תזמון פעולת חומרה או באות אוטומטי מכשל חומרה מתקרב.
תוכנת ניהול האשכולות שלGoogle Cloudעוקבת כל הזמן אחרי האירועים האלה ומתזמנת אותם על סמך מדיניות ששולטת במרכזי הנתונים, כמו שיעורי ניצול הקיבולת ומספר המכונות הווירטואליות שלקוח יחיד יכול להעביר בבת אחת.
אחרי שבוחרים מכונה וירטואלית למיגרציה, Google Cloud שולח הודעה לאורח על כך שהמיגרציה תתבצע בקרוב. אחרי תקופת המתנה, נבחר מארח יעד והמארח מתבקש להגדיר מכונה וירטואלית חדשה וריקה של 'יעד' כדי לקבל את המכונה הווירטואלית של 'מקור' שמועברת. האימות משמש ליצירת חיבור בין המקור ליעד.
תהליך ההעברה של המכונה הווירטואלית כולל שלושה שלבים:
האפלה חלקית של מקורות. המכונה הווירטואלית עדיין פועלת במקור, בזמן שרוב המצב נשלח מהמקור ליעד. לדוגמה, Google Cloud מעתיק את כל הזיכרון של האורח ליעד, תוך מעקב אחרי הדפים ששונו במקור. הזמן שנדרש להפסקת פעולה זמנית של המקור הוא פונקציה של גודל הזיכרון של המכונה האורחת וקצב השינוי של הדפים.
האפלה. רגע קצר מאוד שבו המכונה הווירטואלית לא פועלת בשום מקום, המכונה הווירטואלית של המקור מושהית וכל המצב שנותר שנדרש כדי להתחיל להריץ את המכונה הווירטואלית ביעד נשלח. המכונה הווירטואלית נכנסת לשלב ההשבתה כששליחת שינויי המצב במהלך שלב ההפחתה של מקור מגיע לנקודה של תפוקה שולית פוחתת. האלגוריתם שבו נעשה שימוש מאזן בין מספר הבייטים של הזיכרון שנשלח לבין קצב השינויים במכונה הווירטואלית של האורח.
במהלך אירועי הפסקת שידור, שעון המערכת קופץ קדימה עד 5 שניות. אם אירוע של הפסקת שידור נמשך יותר מ-5 שניות, Google Cloud השעון נעצר ומסונכרן באמצעות דמון שכלול בחבילות של מערכת ההפעלה האורחת במכונה הווירטואלית.
השבתה חלקית של טירגוט. המכונה הווירטואלית מופעלת במכונת היעד. המכונה הווירטואלית של המקור קיימת ויכולה לספק תמיכה למכונה הווירטואלית של היעד. לדוגמה, עד שהרשת תתעדכן במיקום החדש של מכונת היעד, מכונת המקור תספק שירותי העברה למנות אל מכונת היעד וממנה.
בסיום, ההעברה הושלמה והמערכת מוחקת את מכונת ה-VM של המקור. אפשר לראות שהמיגרציה התבצעה ביומני Cloud Logging של מכונת ה-VM.
מיגרציה פעילה של מכונות וירטואליות ב-Sole-tenant
במהלך הפעלת עומס העבודה, יכול להיות שתרצו להעביר מכונות וירטואליות לצומת אחר או לקבוצת צמתים אחרת של דייר יחיד. אם מעבירים מכונה וירטואלית לקבוצת צמתים, מערכת Compute Engine קובעת באיזה צומת למקם אותה. מידע נוסף על דיירות יחידה זמין במאמר סקירה כללית על דיירות יחידה.
כדי להעביר מכונות וירטואליות עם דייר יחיד לצומת אחר או לקבוצת צמתים אחרת, אפשר להפעיל ידנית מיגרציה פעילה. אפשר גם להפעיל מיגרציה פעילה באופן ידני כדי להעביר מכונת VM במארח עם מספר דיירים לשרת לדייר יחיד (sole-tenant). מידע נוסף זמין במאמר העברה ידנית של מכונות וירטואליות בשידור חי.
המאמרים הבאים
מגדירים את האפשרויות של VM host maintenance policy כדי להגדיר את המופעים להעברה פעילה.
איך מקבלים הודעות על העברה בשידור חי כדי להפעיל משימות שרוצים לבצע לפני אירוע תחזוקה.
כדאי לקרוא את הטיפים לתכנון מערכת חזקה שיכולה להתמודד עם שיבושים בשירות.