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

במאמר הזה מתואר גמישות המכונות כשיוצרים מכונות VM בכמות גדולה באמצעות 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, כולל הזמנות עתידיות, מודל ההקצאה של הפעלה גמישה ו-GPU מסוג A3 Ultra,‏ A4 וחדשים יותר.
  • אפשר לציין עד 10 סוגים שונים של מכונות ב-10 בחירות שונות של מופעים לכל היותר.

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