כשיוצרים מכונות וירטואליות (VM) בכמות גדולה באזור מסוים באמצעות Compute Engine, אם האפליקציה לא מוגבלת לסוג מכונה אחד, אפשר להגדיר הפעלה גמישה של מכונות כדי להגדיל את שיעור ההצלחה של הקצאת מספר המכונות הווירטואליות הנדרש. התכונה "הפעלה גמישה של מכונות" מאפשרת לציין סוג מכונה אחד או יותר שמתאים לעומס העבודה. לאחר מכן, Compute Engine מקצה מכונות וירטואליות באמצעות אחד או יותר מסוגי המכונות האלה, על סמך הקיבולת והמכסות הזמינות. אפשר ליצור מכונות וירטואליות מסוגים שונים באמצעות בקשת הוספה בכמות גדולה אחת.
הפעלה גמישה של מכונות עוזרת לכם למקסם את זמינות המשאבים בזמן שיאי הביקוש, לשפר את היחס בין המחיר לביצועים ולאמץ בבטחה את החומרה העדכנית ביותר. מידע נוסף זמין במאמר אופטימיזציה של הקצאת משאבי המחשוב.
במאמרי עזרה הזה מוסבר איך פועלת הפעלה גמישה של מכונות עבור מכונות וירטואליות שנוצרו בכמות גדולה, כולל שינוי מברירת המחדל של מאפייני המכונות לפלטפורמת CPU מינימלית ולדיסקים, וגם המגבלות. מידע נוסף על הגדרת הפעלה גמישה של מכונות זמין במאמר יצירת מכונות וירטואליות בכמות גדולה עם הפעלה גמישה של מכונות.
שימוש בהפעלה גמישה של מכונות
כדי להגדיר גמישות של מכונות וירטואליות, צריך להגדיר בחירה אחת או יותר של מכונות וירטואליות בבקשה אזורית להוספה בכמות גדולה.
לדוגמה, בבקשת REST, אתם כוללים את האובייקט instanceFlexibilityPolicy, שבתוכו אתם מגדירים אובייקט אחד או יותר מסוג instanceSelections, שכל אחד מהם מכיל רשימה של סוגי מכונות.
אפשר גם לציין סוגי מכונות שפועלות בפלטפורמות שונות של מעבדים, שיש להן ארכיטקטורות שונות (כמו x86 ו-Arm) או שיש להן דרישות שונות לגבי דיסקים. כדי להשתמש בסוגי מכונות עם דרישות חומרה שונות, משתמשים בבחירת מכונה כדי לשנות את המאפיינים התואמים ממאפייני המכונה של הבקשה (instanceProperties). מידע נוסף זמין במאמר שינוי מאפייני מכונה בבחירת מכונות.
כש-Compute Engine מקבל את הבקשה, הוא קודם מאמת את סוגי המכונות ואת התאימות שלהם לאזורים, ומוציא מכלל זה ערכים לא תקינים. אם קיימת לפחות הגדרה תקינה אחת, הפעולה ממשיכה.
לאחר מכן, המערכת של Compute Engine מנסה להקצות מכונות וירטואליות על סמך החומרה, המכסות וההזמנות הזמינות. אם מגדירים דרגות לבחירות של המופעים, המערכת נותנת עדיפות לבחירות עם דרגה נמוכה יותר. בכל דירוג, Compute Engine מתייחסת להזמנות שלא נוצלו ולהנחיות לגבי VM במודל Spot כדי לבחור סוגי מכונות עם סבירות נמוכה יותר להפסקה זמנית.
ביטול מאפייני מופע בבחירות של מופעים
כשבוחרים מכונה, אפשר לציין מאפיינים נוספים של המכונה, כמו פלטפורמת CPU מינימלית (minCpuPlatform) ודיסקים (disks), כדי לשנות את המאפיינים שמוגדרים במאפייני המכונה של הבקשה (instanceProperties) או להוסיף להם מאפיינים. כש-Compute Engine בוחר סוג מכונה מתוך בחירת מכונה כדי ליצור מכונות וירטואליות, הוא משתמש במאפייני המכונה שצוינו בבחירה הזו. אם לא תציינו שינויים לבחירת המכונה, המערכת של Compute Engine תשתמש במאפיינים התואמים מ-instanceProperties למכונות הווירטואליות שהיא יוצרת מהבחירה הזו.
כשעוקפים את מאפייני המכונה ברמת בחירת המכונה, מקבלים יותר שליטה וגמישות כשמשתמשים בהגדרות חומרה שונות בבקשה אחת להוספה בכמות גדולה.
שינוי ברירת המחדל של פלטפורמת ה-CPU המינימלית
אתם יכולים לציין פלטפורמת CPU מינימלית (minCpuPlatform) למכונות וירטואליות ש-Compute Engine יוצר מסוגי המכונות שבבחירת המכונות. השינוי הזה מאפשר לשלב סוגי מכונות שונים ולהחיל באופן סלקטיבי פלטפורמות CPU מינימליות. כל סוג מכונה בבחירת מכונה חייב לתמוך בפלטפורמת ה-CPU המינימלית האפקטיבית, בין אם היא צוינה בבחירה או שהיא הועברה בירושה מ-instanceProperties.
אפשר גם להגדיר את השדה minCpuPlatform לערך AUTOMATIC. ההגדרה הזו מבטלת את הערך minCpuPlatform ב-instanceProperties ומאפשרת ל-Compute Engine להשתמש בכל פלטפורמת CPU תואמת לסוגי המכונות בבחירת המופעים.
כדי לשלב סוגי מכונות שבהם רק סדרה אחת תומכת בפלטפורמת מעבד ספציפית, צריך להציב אותם בבחירות נפרדות של מכונות. לדוגמה, סוגי המכונות N4 תומכים בפלטפורמת Intel Emerald Rapids, וסוגי המכונות N2 עם פחות מ-96 מעבדי vCPU תומכים ב-Intel Ice Lake וב-Intel Cascade Lake. כדי לשלב בין N4 ל-N2 בבקשה להוספה בכמות גדולה, ולדרוש ש-N2 יפעל ב-Intel Ice Lake, מגדירים שתי בחירות של מכונות באופן הבא:
- בחירה ב-N2: מגדירים את השדה
minCpuPlatformלערךIntel Ice Lake. - בחירת N4: משאירים את השדה
minCpuPlatformללא הגדרה, או מגדירים אותו לערךAUTOMATIC.
כדי להגדיר העדפה שווה לשני סוגי המכונות, מקצים את אותו דירוג לשתי בחירות המכונות.
שינויים בדיסק
אתם יכולים לציין הגדרת דיסק בהתאמה אישית בבחירת מכונה כדי לשנות את דיסק האתחול או דיסקים נוספים שצוינו ב-instanceProperties, או כדי לצרף דיסקים נוספים. השינוי הזה מאפשר לשלב סוגי מכונות עם ארכיטקטורות שונות או שתומכים בסוגי דיסקים שונים. אפשר גם לציין את תמונות האתחול או הדיסקים שנדרשים לכל סוג מכונה.
לדוגמה, אפשר להשתמש בבחירות נפרדות של מכונות כדי לשנות את הדיסקים בהתאם לדרישות שונות:
- ארכיטקטורות שונות: אפשר לשלב בין סוגי מכונות C4 (ארכיטקטורת x86) ו-C4A (ארכיטקטורת Arm). מכיוון שסוגי מכונות x86 ו-Arm דורשים קובצי אימג' שונים לאתחול, אפשר לבטל את ברירת המחדל של דיסק האתחול כדי לציין קובץ אימג' תואם לכל ארכיטקטורה.
- סוגי דיסקים שונים: אפשר לשלב בין סוגי המכונות N2 ו-N4. במכונות N2 אפשר להשתמש רק ב-Persistent Disk כדיסקי אתחול, ובמכונות N4 אפשר להשתמש רק ב-Google Cloud Hyperdisk. לכן, אתם יכולים לשנות את הגדרות הדיסק כדי לציין סוג דיסק נתמך לכל סדרת מכונות.
בשני התרחישים, אתם יכולים להגדיר העדפה שווה לשני סוגי המכונות על ידי הקצאת אותו דירוג לבחירות של המכונות.
אם לדיסק בבחירת המכונה יש deviceName שתואם לדיסק ב-instanceProperties, Compute Engine מבטל את ההגדרה של הדיסק הזה. אם הערך של deviceName לא תואם לאף דיסק ב-instanceProperties, המערכת של Compute Engine מצרפת אותו כדיסק נוסף. צריך לוודא שהגדרת הדיסק בפועל תואמת לכל סוגי המכונות שנבחרו למופע.
הדיאגרמה הבאה מציגה כיצד Compute Engine ממזג תצורות דיסק מ-instanceProperties ובחירת מכונה:
הוראות להזנת פלטפורמת CPU מינימלית ושינויים בהגדרות הדיסק כשיוצרים מכונות וירטואליות בכמות גדולה מפורטות במאמר יצירת מכונות וירטואליות עם כמה סוגי מכונות, פלטפורמת CPU מינימלית ושינויים בהגדרות הדיסק.
מידע נוסף על המגבלות בשימוש בשינוי ברירת המחדל של בחירת המכונות מופיע בקטע מגבלות במסמך הזה.
דוגמה: פלטפורמת CPU מינימלית ושינויים בדיסק
אתם יכולים להשתמש בשינויים במדיניות ההפעלה הגמישה של מכונות כדי להקצות מכונות וירטואליות בסדרות של מכונות שדורשות פלטפורמות שונות של מעבדים, קובצי אימג' לאתחול או סוגי דיסקים.
נניח שיש בקשה להוספה בכמות גדולה עם הגדרת הבסיס הבאה של instanceProperties, שמגדירה דיסק אתחול של pd-balanced כברירת מחדל:
"instanceProperties": {
"disks": [
{
"autoDelete": true,
"deviceName": "boot-disk",
"boot": true,
"initializeParams": {
"sourceImage": "projects/debian-cloud/global/images/family/debian-12",
"diskSizeGb": "10",
"diskType": "pd-balanced"
}
}
],
"networkInterfaces": [{}]
}
ההגדרה הבאה של instanceFlexibilityPolicy באותה בקשה מבטלת את ההגדרה הבסיסית של instanceProperties, על ידי ציון פלטפורמת מעבד (CPU) מינימלית והגדרות דיסק בשלוש בחירות של מכונות:
"instanceFlexibilityPolicy": {
"instanceSelections": {
"first-preference": {
"rank": 1,
"machineTypes": ["n4-standard-4"],
"disks": [
{
"autoDelete": true,
"deviceName": "boot-disk",
"boot": true,
"initializeParams": {
"sourceImage": "projects/debian-cloud/global/images/family/debian-12",
"diskSizeGb": "10",
"diskType": "hyperdisk-balanced"
}
}
]
},
"second-preference": {
"rank": 2,
"machineTypes": ["c4a-standard-4"],
"disks": [
{
"autoDelete": true,
"deviceName": "boot-disk",
"boot": true,
"initializeParams": {
"sourceImage": "projects/debian-cloud/global/images/family/debian-12-arm64",
"diskSizeGb": "10",
"diskType": "hyperdisk-balanced"
}
},
{
"autoDelete": true,
"deviceName": "data-disk",
"boot": false,
"initializeParams": {
"diskSizeGb": "100",
"diskType": "hyperdisk-balanced"
}
}
]
},
"third-preference": {
"rank": 3,
"machineTypes": ["n2-standard-4"],
"minCpuPlatform": "Intel Ice Lake",
"disks": [
{
"autoDelete": true,
"deviceName": "boot-disk",
"boot": true,
"initializeParams": {
"sourceImage": "projects/debian-cloud/global/images/family/debian-12",
"diskSizeGb": "10",
"diskType": "pd-ssd"
}
}
]
}
}
}
בדוגמה הזו, המערכת של Compute Engine מבצעת את השינויים הבאים בהתאם לבחירת המכונה שבה היא משתמשת כדי ליצור מכונות וירטואליות:
- העדפה ראשונה (
first-preference): במכונות וירטואליות מסוגn4-standard-4, הבחירה מבטלת אתboot-diskכדי להשתמש בדיסקhyperdisk-balancedבמקום בדיסק הבסיסיpd-balanced. - העדפה שנייה (
second-preference): במכונות וירטואליות מסוגc4a-standard-4(Arm), הבחירה מבטלת אתboot-diskכדי להשתמש בקובץ אימג' לאתחול שתואם ל-Arm (debian-12-arm64) בדיסקhyperdisk-balanced, ומצרפת דיסקhyperdisk-balancedנוסף בנפח 100GB בשםdata-disk. - העדפה שלישית (
third-preference): במכונות וירטואליות מסוגn2-standard-4, הבחירה מגדירה אתminCpuPlatformל-Intel Ice Lakeומבטלת אתboot-diskכדי להשתמש בדיסקpd-ssd.
בחירת אזור כשמוגדרת צורת חלוקה ליעד
כשמשתמשים בגמישות של מופעים עם בקשה אזורית 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, או עם A3 Ultra, A4 ו-GPU חדשים יותר.
- אפשר לציין עד 10 סוגי מכונות שונים ב-10 בחירות שונות של מכונות.
- כשמשנים את
minCpuPlatformאו אתdisksבבחירת מופע, חלות גם המגבלות הבאות:- כשמגדירים את
minCpuPlatformאוdisksלבחירת מופע, צריך לכלול גם את השדהmachineTypes. אם לא מציינים את השדהmachineTypes, הפעולה נכשלת ומוצגת שגיאה. - אפשר לשנות את הגדרות הדיסקים של SSD מקומי רק עבור סוגי מכונות שמאפשרים לבחור מספר דיסקים של SSD מקומי.
אי אפשר לבטל את השימוש בדיסקים של SSD מקומיים ב
-lssdוריאציות של סוגי מכונות, שבהן דיסקים של SSD מקומיים מצורפים באופן אוטומטי.
- כשמגדירים את
המאמרים הבאים
- איך יוצרים מכונות וירטואליות בכמות גדולה עם הפעלה גמישה של מכונות
- במאמר אופטימיזציה של הקצאת משאבי מחשוב מוסבר על מימדי הגמישות, תרחישי שימוש ושיטות מומלצות.