במהלך אירוע תחזוקה מתוכנן של החומרה הבסיסית של מכונה וירטואלית (VM) או מכונת Bare Metal, שרת המארח לא זמין. כדי שמכונה וירטואלית תמשיך לפעול במהלך אירוע של המארח, Compute Engine מבצע מיגרציה פעילה של המכונה לשרת מארח אחר באותו אזור. מידע נוסף על אירועים במארח זמין במאמר מידע על אירועים במארח.
מיגרציה פעילה מאפשרת Google Cloud לבצע תחזוקה בלי להפריע לעומס העבודה, להפעיל מחדש מכונה או לשנות את המאפיינים של המכונה, כמו כתובות IP, מטא נתונים, נתונים של אחסון בלוקים, מצב האפליקציה או הגדרות הרשת.
מיגרציה פעילה מאפשרת להמשיך להפעיל את המופעים במצבים הבאים:
תחזוקת התשתית. תחזוקת התשתית כוללת חומרה של מארחים, רשתות ורשתות חשמל במרכזי נתונים, ומערכת הפעלה (OS) ו-BIOS של מארחים.
עדכונים שקשורים לאבטחה ושינויים בהגדרות המערכת. האירועים האלה כוללים אירועים כמו התקנת תיקוני אבטחה ושינוי הגודל של מחיצת הבסיס של המארח לאחסון של תמונת מערכת ההפעלה של המארח וחבילות.
כשלים בחומרה. הכשלים האלה כוללים זיכרון, מעבדים, כרטיסי ממשק רשת ודיסקים. אם הכשל מזוהה לפני שיש כשל מלא בשרת, Compute Engine מבצע מיגרציה פעילה מונעת של המכונה לשרת מארח חדש. אם החומרה נכשלת לחלוטין או מונעת מיגרציה פעילה, המופע מסתיים ומופעל מחדש באופן אוטומטי.
Compute Engine מבצע מיגרציה פעילה רק של מכונות וירטואליות שהמדיניות שלהן לגבי תחזוקת המארח מוגדרת למיגרציה. למידע על שינוי מדיניות התחזוקה של המארח, אפשר לעיין במאמר בנושא הגדרת מדיניות תחזוקה של מארח מכונה וירטואלית.
תהליך המיגרציה הפעילה ודיסקים מקומיים מסוג SSD
ב-Compute Engine אפשר לבצע מיגרציה של מופעים עם כונני SSD מקומיים שמצורפים אליהם (לא כולל מופעי Z3 עם יותר מ-18 TiB של כונני Titanium SSD שמצורפים אליהם). מערכת Compute Engine מעבירה את מכונות החישוב יחד עם נתוני ה-SSD המקומי שלהן לשרת מארח חדש לפני כל תחזוקה מתוכננת.
מגבלות
העברה פעילה לא נתמכת בסוגי מכונות וירטואליות (VM) הבאים:
- מופעי H4D עם SSD מקומי.
- מופעי Bare Metal. אי אפשר לבצע מיגרציה פעילה של מופעים שנוצרו עם סוג מכונת Bare Metal. התנהגות התחזוקה של המכונות האלה מוגדרת ל-
TERMINATEול-RESTART, בהתאמה. - Most Confidential VM instances. מיגרציה פעילה של מכונות וירטואליות חסויות נתמכת בסוגי מכונות N2D ו-C3D שמופעל בהן AMD SEV. כל המכונות הווירטואליות הסודיות האחרות לא תומכות במיגרציה פעילה, ולכן צריך להגדיר אותן כך שהן יופסקו ויופעלו מחדש (אם רוצים) במהלך אירוע תחזוקה של המארח. פרטים נוספים זמינים במאמר בנושא מיגרציה פעילה.
מכונות וירטואליות עם יחידות GPU מצורפות. צריך להגדיר את המכונות הווירטואליות עם יחידות ה-GPU המצורפות כך שהן יופסקו, ואפשר גם להגדיר הפעלה מחדש. Compute Engine מציע הודעה לפני שמכונה וירטואלית עם GPU מצורף מופסקת, בהתאם לסוג ה-GPU:
- ברוב המקרים, Compute Engine מספק הודעה מראש של 60 דקות.
- למופעי A4X, A4 או A3 Ultra, Compute Engine מספק הודעה מראש של 10 דקות.
מידע נוסף על הודעות לגבי אירועי תחזוקה זמין במאמר בנושא שליחת שאילתות לשרת המטא-נתונים לגבי הודעות על אירועי תחזוקה.
במאמר טיפול בתחזוקת מארח במסמכי התיעוד בנושא GPU מוסבר איך לטפל בתחזוקת מארח באמצעות GPU.
- Cloud TPUs. Cloud TPU לא תומך במיגרציה פעילה.
-
מכונות וירטואליות שעברו אופטימיזציה לאחסון. לסוגי המכונות הבאים, התנהגות התחזוקה של מכונות ה-VM האלה מוגדרת ל-
TERMINATEול-RESTART. במהלך אירוע התחזוקה, נשמרים הנתונים בכונן ה-SSD של Titanium ב-Compute Engine, כמו שמתואר במאמר שמירת נתונים בכונן לאחר סיום המכונה.- מכונות וירטואליות מסוג Z4D עם יותר מ-42 TiB של Titanium SSD מצורף
- מכונות וירטואליות מסוג Z3 עם יותר מ-18 TiB של Titanium SSD מצורף
- מכונות וירטואליות מותאמות לצריכת מעבד גבוהה (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 כדי להגדיר את המופעים להעברה פעילה.
איך מקבלים הודעות על העברה בשידור חי כדי להפעיל משימות שרוצים לבצע לפני אירוע תחזוקה.
כדאי לקרוא את הטיפים לתכנון מערכת חזקה שיכולה להתמודד עם שיבושים בשירות.