איך חלק מהפעולות משפיעות על המצב השמור של מופעים מנוהלים

בקטעים הבאים מוסבר איך הגדרות שונות, פעולות של קבוצת מופעי מכונה מנוהלים (MIG) או אירועים במחזור החיים של מופע מכונה משפיעים על הסטטוס שנשמר של מופע מכונה מנוהל בקבוצת MIG עם שמירת סטטוס:

איך תיקון אוטומטי מטפל במצב שנשמר

כשמכונה וירטואלית (VM) מפסיקה לפעול או הופכת ללא תקינה, התכונה תיקון תוכנה אוטומטי יוצרת מחדש את המכונה הווירטואלית ושומרת את המצב של הפריטים שהגדרתם:

  • קבוצת ה-MIG שומרת את הדיסקים ואת כתובות ה-IP עם שמירת מצב, ומצרפת אותם מחדש כשמחדשים את מכונת ה-VM.
  • קבוצת ה-MIG שומרת את המטא-נתונים עם שמירת מצב, שמוגדרים בהגדרות של כל מכונה, ומגדירה אותם כשמכונה וירטואלית נוצרת מחדש.

כדי למנוע כשלים ביצירה מחדש של VM בגלל דיסק אתחול עם שמירת מצב פגום, צריך לוודא שדיסק האתחול הוא בלי שמירת מצב, כדי שהתיקון תוכנה אוטומטי (autohealing) יוכל ליצור מחדש את הדיסק מאפס באמצעות קובץ האימג' המקורי.

איך עדכון מופעים מטפל במצב שנשמר

כשמעדכנים מופע, ה-MIG שומר על המצב השמור של המופע (דיסקים, כתובות IP, מטא-נתונים):

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

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

כדי להסיר דיסקים עם שמירת נתונים מ-MIG כשהדיסקים האלה מוגדרים במדיניות עם שמירת נתונים, פועלים לפי השלבים הבאים:

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

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

‫Google ממליצה לשמור על דיסקי אתחול ועל דיסקים עם קבצים בינאריים או קבצים זמניים בלי שמירת מצב, ולשמור את הנתונים בדיסקים עם שמירת מצב. הגדרה כזו תומכת בהתנהגות הבאה:

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

אתם יכולים להגדיר דיסק אתחול כבעל מצב (stateful), למשל כדי לארח אפליקציה מדור קודם ששומרת קבצים בינאריים ונתונים באותו דיסק. הפעולה הזו מאפשרת להעביר אפליקציה ל-MIG כדי ליהנות מתיקון אוטומטי. אבל בתרחיש הזה, אתם צריכים לבצע בעצמכם עדכונים של התוכנה ומערכת ההפעלה, למשל על ידי עדכון של חבילות נפרדות באמצעות מנהל חבילות כמו apt במערכות Debian, או באמצעות כלים לניהול תצורה.

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

איך שינוי הגודל של קבוצה משפיע על המצב שנשמר

הקטנת גודל הקבוצה

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

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

הגדלת גודל הקבוצה

כשמגדילים את הגודל של קבוצת MIG עם שמירת מצב, הקבוצה יוצרת מכונות וירטואליות מתבנית של הגדרות מכונה הנוכחית עם שמות שנוצרו אוטומטית (שם הבסיס של המכונה + סיומת). אפשר לראות את ההגדרה המופעלת עם שמירת מצב ב-preservedStateFromPolicy של המופע המנוהל המתאים. אחרי שקבוצת ה-MIG יוצרת את המופעים, אפשר להגדיר מטא-נתונים עם שמירת מצב ודיסקים נוספים עם שמירת מצב או כתובות IP בהגדרות של כל מופע בנפרד.

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

איך מחיקת מופע משפיעה על המצב שנשמר

מכונה וירטואלית ב-MIG נמחקת באופן סופי כש:

  • מצמצמים את גודל הקבוצה, וקבוצת ה-MIG בוחרת את המופע הזה של מכונה וירטואלית למחיקה, או
  • למחוק את כל הקבוצה, או
  • למחוק את המכונה מ-MIG.

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

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

אתם יכולים להגדיר אם לשמור או למחוק דיסקים עם שמירת מצב וכתובות IP במחיקה של מופע קבוע. כדי לעשות זאת, צריך להגדיר את הדגל autoDelete לכל משאב במדיניות עם שמירת מצב או בהגדרה לכל מופע. הדגל תומך בשתי אפשרויות:

  • NEVER: (ברירת מחדל). ה-MIG אף פעם לא מוחק את הדיסק.
  • ON_PERMANENT_INSTANCE_DELETION: קבוצת ה-MIG מוחקת את הדיסק כשמכונת ה-VM נמחקת באופן סופי.

קבוצת ה-MIG לא מוחקת משאבים עם שמירת מצב כשמתבצע תיקון תוכנה אוטומטי (autohealing), עדכון או יצירה מחדש של מופעים.

בדוגמה הבאה, לקבוצת ה-MIG יש מכונה וירטואלית אחת node-1 עם מצב משומר שמוגדר על ידי הגדרות לכל מכונה וירטואלית. המצב המשומר כולל שני דיסקים (כחול וירוק) וid:xyz273 מטא-נתונים. אם משנים את הגודל של קבוצת המופעים המנוהלים לאפס, קבוצת המופעים המנוהלים מפעילה מחיקה קבועה של המופע, node-1, שגורמת להשפעות הבאות:

  • ה-MIG מוחק את המופע המנוהל ואת הגדרת המצב שנשמר.
  • ה-MIG מוחק את ההגדרה לכל מכונה עבור המכונה.
  • קבוצת ה-MIG מוחקת את משאב מכונת ה-VM בפועל.
  • המטא-נתונים id:xyz273 אבדו כי המופע של המכונה הווירטואלית וההגדרה של המצב השמור שלה נמחקו.
  • הדיסק הכחול עם שמירת המצב נמחק כי בהגדרה לכל מופע של הדיסק הזה מוגדר autoDelete: ON_PERMANENT_INSTANCE_DELETION.
  • הדיסק הירוק עם שמירת המצב מנותק כי ההגדרה לכל מופע בדיסק הזה היא autoDelete:NEVER.

מחיקת מופע מקבוצת מופעים מנוהלת (MIG) עם שמירת מצב.

איך נטישת מופע משפיעה על המצב שנשמר

כשמבטלים את הניהול של מכונה וירטואלית מקבוצת מופעי מכונה מנוהלים (MIG), המצב של המכונה הווירטואלית, כולל מטא-נתונים עם שמירת מצב, כתובות IP ודיסקים, נשאר במכונה מחוץ לקבוצת המופעים. המכונה הווירטואלית כבר לא מנוהלת על ידי ה-MIG, ולכן ה-MIG מוחק את ההגדרה התואמת לכל מכונה ואת המכונה המנוהלת, כולל הגדרת המצב המשומר של המכונה.

בדוגמה הבאה, המכונה הווירטואלית node-1 שמרה את הסטטוס שלה, שמוגדר על ידי מדיניות עם שמירת סטטוס (הדיסק הכחול) והגדרה לכל מופע (הדיסק הירוק והמטא-נתונים id:xyz273). אם תבטלו את המופע node-1 מתוך קבוצת ה-MIG, יקרו הדברים הבאים לגבי הסטטוס השמור שלו:

  • המכונה הווירטואלית העצמאית, node-1, שומרת על המצב שלה: כל הדיסקים שלה נשארים מחוברים והמטא-נתונים, id:xyz273, נשארים מוגדרים במכונה הווירטואלית.
  • ה-MIG מוחק את המופע המנוהל ואת הגדרת המצב שנשמר.
  • ה-MIG מוחק את ההגדרה לכל מכונה עבור המכונה.
  • המדיניות עם שמירת המצב נשארת ללא שינוי כי היא חלה על כל המופעים ב-MIG.

ביטול של מופע מקבוצת מופעים מנוהלים (MIG) עם שמירת מצב.

איך קבוצות אזוריות מטפלות במצב שנשמר

קבוצות MIG אזוריות עם שמירת מצב מטפלות במצבים השמורים של המופעים שלהן באותו אופן כמו קבוצות MIG אזוריות, אלא שבקבוצות MIG אזוריות נוצרים מופעים של מכונות וירטואליות במספר אזורים:

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

משוב

נשמח לשמוע על תרחישי השימוש שלכם, על האתגרים שנתקלתם בהם ועל המשוב שלכם לגבי קבוצות של מכונות וירטואליות עם שמירת מצב. נשמח לקבל משוב מהצוות שלך בכתובת mig-discuss@google.com.

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