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

במאמר הזה מוסבר על גמישות המכונות כשיוצרים מכונות וירטואליות בכמות גדולה באמצעות Compute Engine.

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

שימוש בגמישות של מכונה

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

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

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

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

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

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

מידע נוסף זמין במאמר יצירת מכונות וירטואליות בכמות גדולה באזור.

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

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

  • ב-Compute Engine, המערכת נותנת עדיפות להקצאת המספר המקסימלי של מכונות וירטואליות עד count, גם אם המשמעות היא שימוש במכונות עם העדפה נמוכה יותר. לדוגמה, אם בבקשה שלכם צוינה מכונה וירטואלית אחת לפחות (minCount=1) ועד 10 מכונות וירטואליות (count=10), ואם ל-Compute Engine יש קיבולת להקצאת מכונה וירטואלית אחת עם העדפה גבוהה יותר או שש מכונות וירטואליות עם העדפה נמוכה יותר, אז Compute Engine יקצה את שש המכונות הוירטואליות עם העדפה נמוכה יותר.
  • אם Compute Engine יכול לספק את אותו מספר מקסימלי של מכונות וירטואליות עד count באמצעות בחירות שונות של מופעים, הוא נותן עדיפות לבחירה עם העדפה גבוהה יותר. לדוגמה, אם בבקשה שלכם צוין מינימום של מכונה וירטואלית אחת (minCount=1) ומקסימום של 10 מכונות וירטואליות (count=10), ואם Compute Engine יכול להקצות שש מכונות וירטואליות באמצעות בחירה של מופע עם העדפה גבוהה יותר או נמוכה יותר, אז Compute Engine יקצה את שש המכונות הווירטואליות מתוך הבחירה עם ההעדפה הגבוהה יותר.

מידע נוסף זמין במאמר בנושא מאפיין minCount ב-bulkInsert.

תרחישים של אימות ושגיאות בהוספה בכמות גדולה

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

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

מגבלות

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

  • אפשר לציין גמישות של מופעים רק בבקשות אזוריות של bulkInsert, ולא בבקשות אזוריות.
  • גמישות המופעים לא תומכת בתכונות של AI Hypercomputer, כולל הזמנות עתידיות, מודל הקצאת המשאבים של flex start ו-GPU מדגמי A3 Ultra,‏ A4 ודגמים חדשים יותר.
  • אי אפשר לציין סוגי מכונות מותאמים אישית עם גמישות של מופעים.
  • אפשר לציין עד 10 סוגים שונים של מכונות ב-10 בחירות שונות של מופעים לכל היותר.

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