מידע על קבוצות אזוריות של מכונות וירטואליות מנוהלות (MIG)

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

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

המסמך הזה מכיל מידע רעיוני על קבוצות MIG אזוריות:

במאמר יצירת קבוצת MIG בכמה אזורים מוסבר איך יוצרים קבוצת MIG אזורית.

למה כדאי לבחור בקבוצות אזוריות של מופעי מכונה מנוהלים?

‫Google ממליצה על קבוצות MIG אזוריות ולא על קבוצות MIG של אזור ספציפי, מהסיבות הבאות:

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

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

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

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

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

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

אפשרויות הגדרה נוספות לקבוצות MIG אזוריות

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

האפשרויות האלה מתוארות בקטעים הבאים.

בחירת אזור

כברירת מחדל, קבוצת MIG אזורית מחלקת את המכונות המנוהלות שלה באופן שווה בין שלושה אזורים. יכולות להיות סיבות שונות לבחירת אזורים ספציפיים לאפליקציה. לדוגמה, אם אתם צריכים GPU למכונות, יכול להיות שתבחרו רק תחומים (zones) שתומכים ב-GPU, או שיש לכם דיסקי אחסון מתמידים (persistent disks) או מקומות שמורים שזמינים רק בתחומים (zones) מסוימים.

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

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

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

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

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

במאמר יצירת MIG אזורי מוסבר איך יוצרים MIG אזורי ובוחרים אזורים.

צורת ההתפלגות של היעד

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

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

  • ‫EVEN (ברירת המחדל): הקבוצה יוצרת ומוחקת מכונות וירטואליות כדי להגיע לאותו מספר של מכונות וירטואליות באזורים שנבחרו, ולשמור על המספר הזה. בהפצה מסוג EVEN, ההפרש בין מספר המכונות הווירטואליות בכל שני אזורים הוא לכל היותר 1. מומלץ לעומסי עבודה של הצגת מודעות בזמינות גבוהה.
  • ‫BALANCED: הקבוצה נותנת עדיפות ליצירת מכונות וירטואליות באזורים שבהם יש משאבים זמינים, ומפזרת את המכונות הווירטואליות באופן שווה ככל האפשר בין האזורים שנבחרו כדי למזער את ההשפעה של כשל באזור. מומלץ לעומסי עבודה של הצגה או אצווה בזמינות גבוהה.
  • ‫ANY: הקבוצה בוחרת אזורים ליצירת מכונות וירטואליות כדי למלא את מספר המכונות הווירטואליות המבוקש, במסגרת מגבלות המשאבים הקיימות וכדי למקסם את הניצול של המקומות השמורים שלא נוצלו באזורים. מומלץ לעומסי עבודה באצווה שלא דורשים זמינות גבוהה.
  • ANY SINGLE ZONE: הקבוצה יוצרת את כל המכונות הווירטואליות באזור אחד. האזור נבחר על סמך תמיכה בחומרה, זמינות נוכחית של משאבים ומכסות, והזמנות תואמות. מומלץ בשילוב עם מדיניות למיקום קומפקטי של מכונות וירטואליות לעומסי עבודה שדורשים תקשורת נרחבת בין מכונות וירטואליות.

כשיוצרים את ה-MIG, אם מגדירים את הצורה שלו ל-BALANCED, ל-ANY או ל-ANY_SINGLE_ZONE, לא צריך לבדוק באופן ידני אילו אזורים תומכים בחומרה שציינתם בהגדרות של ה-MIG. אתם יכולים לבחור את כל האזורים במחוז, וכשהצורה מוגדרת ל-BALANCED, ל-ANY או ל-ANY_SINGLE_ZONE, קבוצת ה-MIG האזורית בודקת את זמינות המשאבים ומתזמנת מכונות רק באזורים שבהם יש את המשאבים.

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

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

חלוקה מחדש יזומה של מכונות וירטואליות

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

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

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

הפצה מחדש יזומה מאפשרת להפיץ מחדש באופן שווה בין האזורים.
דוגמה להפצה מחדש יזומה

לדוגמה, נניח שיש לכם קבוצת MIG אזורית עם 12 מכונות שפרוסות על פני 3 אזורים: a,‏ b ו-c. אם תמחקו 3 מכונות מנוהלות ב-c, הקבוצה תנסה לאזן מחדש את המכונות כדי שהן יתחלקו שוב באופן שווה בין האזורים. במקרה כזה, הקבוצה מוחקת 2 מכונות (אחת מ-a ואחת מ-b) ויוצרת 2 מכונות באזור c, כך שבכל אזור יש 3 מכונות ומתקבלת חלוקה שווה. אי אפשר לבחור אילו מופעים יימחקו. הקבוצה מאבדת באופן זמני את הקיבולת בזמן שהמכונות החדשות מופעלות.

כדי למנוע חלוקה מחדש אוטומטית של המכונות, אתם יכולים להשבית את החלוקה מחדש היזומה של המכונות.

כדאי להשבית את החלוקה היזומה מחדש של המכונות כשרוצים:

  • למחוק או לנטוש מכונות מהקבוצה בלי להשפיע על מכונות אחרות שפועלות. לדוגמה, אתם יכולים למחוק worker instance באצווה אחרי שהמשימה מסתיימת, בלי להשפיע על worker instance אחרים.
  • הגנה על מכונות עם עומסי עבודה עם שמירת מצב מפני מחיקה אוטומטית לא רצויה, כתוצאה מהפצה מחדש יזומה.
  • מגדירים את צורת ההפצה של היעד של קבוצת המכונות המנוהלת ל-BALANCED או ל-ANY_SINGLE_ZONE.
השבתת החלוקה מחדש היזומה יכולה להשפיע על הקיבולת בזמן תקלה באזור.
חלוקה לא שווה אחרי השבתת החלוקה מחדש היזומה

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

ההתנהגות של קבוצת מכונות מנוהלת כשנכשלת יצירה של מכונה ראשונית

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

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

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

הבדלים בהתנהגות בהשוואה לקבוצות MIG אזוריות

ההבדל העיקרי בין קבוצת MIG אזורית לקבוצת MIG מבוססת-אזור הוא שקבוצת MIG אזורית יכולה להשתמש ביותר מאזור אחד.

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

התאמה אוטומטית לעומס (autoscaling) של MIG אזורי

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

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

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

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

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

עדכון של קבוצת MIG אזורית

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

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

אם רוצים להוסיף או להסיר מכונות ב-MIG, התהליך דומה ל-MIG אזוריים ול-MIG של אזורים. הוספה והסרה של מכונות וירטואליות ב-MIG

אם אתם רוצים להגדיר דיסקים עם שמירת מצב או מטא-נתונים עם שמירת מצב ב-MIG, קראו את המאמר הגדרת קבוצות MIG עם שמירת מצב.

איך להגדיל את הזמינות באמצעות הקצאת יתר

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

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

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

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

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

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

הערכת גודל הקבוצה המומלץ

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

אתם יכולים להיעזר בטבלה הבאה כדי לקבוע את הגודל המינימלי המומלץ לקבוצה:

מספר האזורים מכונות וירטואליות נוספות המספר הכולל המומלץ של מכונות וירטואליות
2 ‎+100% 200%
3 עלייה של 50% 150%
4 ‎+33% 133%

הקצאת MIG אזורי בשלושה אזורים או יותר

כשיוצרים קבוצת MIG אזורית באזור עם לפחות שלושה אזורים, Google ממליצה להקצות לקבוצה לפחות 50% יותר משאבים מהנדרש. כברירת מחדל, קבוצת MIG אזורית יוצרת מכונות בשלושה אזורים. אם יש לכם מכונות בשלושה אזורים, אתם יכולים לשמר לפחות 2/3 מיכולת ההצגה שלכם. אם אזור אחד נכשל, שני האזורים האחרים באזור יכולים להמשיך להציג תנועה ללא הפרעה. אם מקצים 150% מהקיבולת, אפשר להבטיח שגם אם שליש מהקיבולת יאבד, 100% מהתנועה תיתמך על ידי התחומים שנותרו.

לדוגמה, אם אתם צריכים 20 מכונות ב-MIG בשלושה אזורים, מומלץ להוסיף לפחות 50% מכונות. במקרה הזה, 50% מ-20 הם 10 מכונות נוספות, כך שבסך הכול יהיו 30 מכונות בקבוצה. אם יוצרים קבוצת MIG אזורית בגודל 30, הקבוצה מפיצה את המכונות הווירטואליות בשלושת האזורים, באופן הבא:

תחום (zone) מספר המכונות הווירטואליות
example-zone-1 10
example-zone-2 10
example-zone-3 10

אם אזור אחד נכשל, עדיין יש 20 מכונות שמטפלות בתנועה.

הקצאת קבוצת MIG אזורית בשני אזורים

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

תחום (zone) מספר המכונות הווירטואליות
example-zone-1 20
example-zone-2 20

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

הקצאת קבוצת מכונות וירטואליות מנוהלת (MIG) אזורית באזור אחד

אפשר ליצור קבוצת MIG אזורית עם אזור אחד בלבד. התהליך דומה ליצירת MIG אזורי.

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

מעקב אחרי התפלגות המכונות בין אזורים

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

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