הגדרת מדיניות תחזוקת המארח למופע של מחשוב

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

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

  • צמצום זמן ההשבתה.

  • מניעת אובדן נתונים.

מגבלות

ההגבלות הבאות חלות על מדיניות תחזוקת המארח:

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

  • במקרים הבאים, אפשר לעצור את המופעים רק במהלך אירועי תחזוקה של המארח:

    • מכונות שלא תומכות במיגרציה פעילה, כמו מכונות H4D, מכונות Z3 עם יותר מ-18 TiB של Titanium SSD מצורף, מכונות Bare Metal או מכונות וירטואליות עם כרטיסי GPU מצורפים.

    • מכונות וירטואליות (VM) במודל Spot או מכונות וירטואליות (VM) זמניות.

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

לפני שמתחילים

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

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

    המסוף

    כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים ולממשקי ה-API, לא צריך להגדיר אימות. Google Cloud

    gcloud

    1. התקינו את ה-CLI של Google Cloud. אחר כך, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:

      gcloud init

      אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

  • הגדרת אזור ותחום כברירת מחדל
  • REST

    כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.

      התקינו את ה-CLI של Google Cloud.

      אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

    מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Google Cloud .

התפקידים הנדרשים

כדי לקבל את ההרשאות שנדרשות להגדרת מדיניות התחזוקה של המארח למכונת Compute, צריך לבקש מהאדמין להקצות לכם ב-IAM את התפקיד אדמין מכונות של Compute ‏ (v1) (roles/compute.instanceAdmin.v1) בפרויקט. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

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

ההרשאות הנדרשות

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

  • כדי ליצור מופע:
    • compute.instances.create בפרויקט
    • כדי להשתמש באימג' בהתאמה אישית ליצירת המכונה הווירטואלית (VM): compute.images.useReadOnly בקובץ אימג'
    • כדי להשתמש ב-snapshot ליצירת המכונה הווירטואלית: compute.snapshots.useReadOnly בקובץ ה-snapshot
    • כדי להשתמש בתבנית של הגדרות מכונה ליצירת המכונה הווירטואלית: compute.instanceTemplates.useReadOnly בתבנית של הגדרות המכונה
    • כדי להקצות רשת מדור קודם למכונה הווירטואלית: compute.networks.use בפרויקט
    • כדי לציין כתובת IP סטטית למכונה הווירטואלית: compute.addresses.use בפרויקט
    • כדי להקצות כתובת IP חיצונית למכונה הווירטואלית כשמשתמשים ברשת מדור קודם: compute.networks.useExternalIp בפרויקט
    • כדי לציין רשת משנה למכונה הווירטואלית: compute.subnetworks.use בפרויקט או ברשת המשנה שנבחרה
    • כדי להקצות כתובת IP חיצונית למכונה הווירטואלית כשמשתמשים ברשת VPC: compute.subnetworks.useExternalIp בפרויקט או ברשת המשנה שנבחרה
    • כדי להגדיר מטא-נתונים של המכונה הווירטואלית: compute.instances.setMetadata בפרויקט
    • כדי להגדיר תגים למכונה הווירטואלית: compute.instances.setTags במכונה הווירטואלית
    • כדי להגדיר תוויות למכונה הווירטואלית: compute.instances.setLabels במכונה הווירטואלית
    • כדי להגדיר חשבון שירות לשימוש של המכונה הווירטואלית: compute.instances.setServiceAccount במכונה הווירטואלית
    • כדי ליצור דיסק חדש למכונה הווירטואלית: compute.disks.create בפרויקט
    • כדי לצרף דיסק קיים במצב קריאה-בלבד או במצב קריאה וכתיבה: compute.disks.use בדיסק
    • כדי לצרף דיסק קיים במצב קריאה-בלבד: compute.disks.useReadOnly בדיסק
  • כדי ליצור תבנית של הגדרות מכונה: compute.instanceTemplates.create בפרויקט
  • כדי לעדכן את מדיניות התחזוקה של המארח עבור מכונה: compute.instances.setScheduling במכונה

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

מאפייני תחזוקה זמינים למארחים

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

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

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

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

    • סיום: המכונה של Compute Engine מפסיקה את המכונה. זו הגדרת ברירת המחדל למכונות וירטואליות מסוג Spot או למכונות וירטואליות שניתנות להפסקת פעולה, והיא ההגדרה הנתמכת היחידה למכונות H4D, למכונות Z3 עם יותר מ-18 TiB של Titanium SSD מצורף, למכונות Bare Metal ולמכונות עם יחידות GPU או TPU מצורפות.

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

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

      • במסוף, בחלונית מתקדם, ברשימה הפעלה מחדש אוטומטית, בוחרים באפשרות מופעל (מומלץ). Google Cloud

      • ב-Google Cloud CLI, משתמשים בדגל --restart-on-failure.

      • ב-REST, מגדירים את השדה automaticRestart לערך true.

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

      • במסוף Google Cloud , בחלונית מתקדם, ברשימה הפעלה מחדש אוטומטית, בוחרים באפשרות מושבת.

      • ב-CLI של gcloud, משתמשים בדגל --no-restart-on-failure.

      • ב-REST, מגדירים את השדה automaticRestart לערך false.

  • Local SSD data recovery timeout (localSsdRecoveryTimeout): ההגדרה הזו חלה רק על מקרים שבהם מצורפים דיסקים של SSD מקומי. ההגדרה הזו קובעת כמה זמן Compute Engine יחכה לשחזור נתונים מדיסקי SSD מקומיים אחרי שגיאות במארח. כברירת מחדל, המאפיין הזה לא מוגדר.

    אפשר להגדיר את המאפיין localSsdRecoveryTimeout לאחד מהערכים הבאים:

    • Unset: ב-Compute Engine נעשה שימוש בזמן ההמתנה שמוגדר כברירת מחדל:

      • למכונות VM מסוג Z3, ‏ 6 שעות

      • לכל שאר סוגי המקרים: שעה אחת

    • מספר שלם מ-0 עד 168: מספר השעות להמתנה. הגדרת המאפיין הזה לערך 0 פירושה ש-Compute Engine לא משחזר נתוני Local SSD ומפעיל מחדש את המכונה באופן מיידי.

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

    • לא מוגדר: מערכת Compute Engine ממתינה עד 330 שניות (5 דקות ו-30 שניות). זו הגדרת ברירת המחדל לכל סוג של מופע.

    • מספר שלם מ-90 עד 330: זמן ההמתנה בשניות, במרווחים של 30 שניות.

הגדרת מדיניות תחזוקת המארח עבור מופע

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

הגדרת המדיניות עבור מופע קיים

לפני שמשנים את מדיניות התחזוקה של מארח של מופע קיים, חשוב לוודא את הדברים הבאים:

  • אי אפשר לשנות את התנהגות התחזוקה (onHostMaintenance) של סוגי המופעים הבאים:

    • מכונות וירטואליות שמשתמשות בסוגי מכונות E2.

    • מכונות וירטואליות (VM) במודל Spot או מכונות וירטואליות (VM) זמניות.

    • מופעים שלא תומכים במיגרציה פעילה.

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

כדי לשנות את הזמן הקצוב לתפוגה של שחזור נתונים ב-SSD מקומי במכונה וירטואלית שמצורפים אליה דיסקים של SSD מקומי, צריך להשתמש ב-CLI של gcloud או ב-API בארכיטקטורת REST. אחרת, בוחרים אחת מהאפשרויות הבאות:

המסוף

  1. נכנסים לדף VM instances במסוף Google Cloud .

    כניסה לדף VM instances

  2. בעמודה Name (שם), לוחצים על השם של המכונה שרוצים לעדכן. יופיע דף עם פרטי המופע.

  3. לוחצים על עריכה. מופיע דף שבו אפשר לערוך את מאפייני המכונה.

  4. בקטע Management (ניהול), אפשר לבצע אחת או יותר מהפעולות הבאות:

    • כדי לשנות את ההתנהגות במהלך אירועי תחזוקה, בוחרים באפשרות אחרת מהרשימה On host maintenance (במהלך תחזוקת המארח).

    • כדי לשנות את תקופת הזמן להמתנה לפני הפעלה מחדש של מופע שלא מגיב, בוחרים באפשרות אחרת מהרשימה Host error timeout (זמן קצוב לתפוגה של שגיאת מארח).

    • כדי לשנות את ההגדרה לגבי הפעלה מחדש של המופע אחרי שגיאות במארח או עצירות מתוכנתות, בוחרים באפשרות אחרת מהרשימה Automatic restart.

  5. לוחצים על Save.

gcloud

כדי לשנות את מדיניות התחזוקה של המארח במופע קיים, משתמשים בפקודה gcloud compute instances set-scheduling עם אחד או יותר מהדגלים הבאים:

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

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

    • כדי להפעיל מחדש את המכונה באופן אוטומטי, צריך לכלול את הדגל --restart-on-failure.

    • כדי למנוע את ההפעלה האוטומטית מחדש של המכונה, צריך לכלול את הדגל --no-restart-on-failure.

  • כדי לשנות את הזמן הקצוב לתפוגה של שחזור נתונים ב-Local SSD אם למופע מצורפים דיסקים של Local SSD, צריך לכלול את האפשרות --local-ssd-recovery-timeout.

  • כדי לשנות את הזמן הקצוב לתפוגה של שגיאת המארח, צריך לכלול את הדגל --host-error-timeout-seconds.

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

gcloud compute instances set-scheduling INSTANCE_NAME \
    --host-error-timeout-seconds=ERROR_DETECTION_TIMEOUT \
    --local-ssd-recovery-timeout=LOCAL_SSD_RECOVERY_TIMEOUT \
    --maintenance-policy=MAINTENANCE_POLICY \
    --restart-on-failure \
    --zone=ZONE

מחליפים את מה שכתוב בשדות הבאים:

  • INSTANCE_NAME: השם של המכונה.

  • ERROR_DETECTION_TIMEOUT: מספר השניות שלפני ש-Compute Engine מפעיל מחדש מכונה שלא מגיבה. הערך צריך להיות בין 90 (90 שניות) לבין 330 (330 שניות, או 5 דקות ו-30 שניות). אפשר להשתמש רק בתוספות של 30 שניות.

  • MAINTENANCE_POLICY: אופן התחזוקה של המופע. הערך יכול להיות TERMINATE או MIGRATE.

  • LOCAL_SSD_RECOVERY_TIMEOUT: מספר השעות שיוקדשו לשחזור נתונים מדיסקי ה-SSD המקומיים המצורפים. הערך צריך להיות בין 0 (0 שעות) לבין 168 (168 שעות, או 7 ימים). אם מגדירים את השדה הזה לערך 0, נתוני ה-SSD המקומי לא ישוחזרו ב-Compute Engine.

  • ZONE: האזור שבו קיימת המכונה.

REST

כדי לשנות את מדיניות התחזוקה של המארח במכונה קיימת, שולחים בקשת POST אל ה-method‏ instances.setScheduling. בגוף הבקשה, כוללים שדה אחד או יותר מהשדות הבאים:

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

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

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

    • כדי למנוע את ההפעלה האוטומטית מחדש של המכונה, צריך לכלול את השדה automaticRestart.

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

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

לדוגמה, כדי לשנות את התנהגות התחזוקה של המארח, להפעיל מחדש באופן אוטומטי את המופע אחרי שגיאות במארח או עצירות מתוכנתות, לשנות את הזמן הקצוב לתפוגה של שחזור נתונים ב-Local SSD ולשנות את הזמן הקצוב לתפוגה של שגיאות במארח, שולחים בקשה באופן הבא:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/setScheduling

{
  "automaticRestart": AUTOMATIC_RESTART,
  "hostErrorTimeoutSeconds": ERROR_DETECTION_TIMEOUT,
  "localSsdRecoveryTimeout": LOCAL_SSD_RECOVERY_TIMEOUT,
  "onHostMaintenance": "MAINTENANCE_POLICY"
}

מחליפים את מה שכתוב בשדות הבאים:

  • PROJECT_ID: מזהה הפרויקט שבו נמצא המופע.

  • ZONE: האזור שבו קיימת המכונה.

  • INSTANCE_NAME: השם של המכונה.

  • AUTOMATIC_RESTART: התנהגות ההפעלה מחדש האוטומטית של המכונה אם היא קורסת או אם Compute Engine מפסיק אותה בגלל עצירה מתוכנת. מציינים אחד מהערכים הבאים:

    • כדי לאפשר ל-Compute Engine להפעיל מחדש את המכונה באופן אוטומטי: true

    • כדי למנוע הפעלה מחדש אוטומטית: false

  • ERROR_DETECTION_TIMEOUT: מספר השניות לפני הפעלה מחדש של מכונה וירטואלית שלא מגיבה. הערך צריך להיות בין 90 (90 שניות) לבין 330 (330 שניות, או 5 דקות ו-30 שניות). אפשר להשתמש רק במרווחי זמן של 30 שניות.

  • LOCAL_SSD_RECOVERY_TIMEOUT: מספר השעות שיוקדשו לשחזור נתונים מדיסקי ה-SSD המקומיים המצורפים. הערך צריך להיות בין 0 (0 שעות) לבין 168 (168 שעות, או 7 ימים). אם מגדירים את השדה הזה לערך 0, נתוני ה-SSD המקומי לא ישוחזרו ב-Compute Engine.

  • MAINTENANCE_POLICY: אופן התחזוקה של המופע. הערך יכול להיות TERMINATE או MIGRATE.

הגדרת המדיניות בזמן יצירת מופע

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

כדי להגדיר את הזמן הקצוב לתפוגה של שחזור נתונים בכונן SSD מקומי בזמן יצירת מכונה עם דיסקי SSD מקומיים שמצורפים אליה, צריך להשתמש ב-CLI של gcloud או ב-API בארכיטקטורת REST. אחרת, בוחרים באחת מהאפשרויות הבאות:

המסוף

  1. נכנסים לדף Create an instance במסוף Google Cloud .

    כניסה לדף Create an instance

  2. בשדה Name, מזינים שם למופע.

  3. בשדות Region ו-Zone, מציינים את האזור והתחום שבהם רוצים ליצור את המכונה.

  4. מציינים את סוג המכונה של המופע.

  5. בתפריט הניווט, לוחצים על מתקדם.

  6. בקטע Provisioning model, מרחיבים את VM provisioning model advanced settings ומבצעים אחת או יותר מהפעולות הבאות:

    • כדי להגדיר את ההתנהגות במהלך אירועי תחזוקה, בוחרים באחת מהאפשרויות הבאות ברשימה On host maintenance:

      • כדי להעביר את המופע במהלך אירועי תחזוקת המארח, בוחרים באפשרות Migrate VM instance (recommended) (העברת מופע של מכונה וירטואלית (מומלץ)).

      • כדי להפסיק את המופע במהלך אירועי תחזוקה של המארח, בוחרים באפשרות Terminate VM instance.

    • כדי להגדיר את משך הזמן הקצוב לתפוגה לפני הפעלה מחדש של מופע שלא מגיב, בוחרים באחת מהאפשרויות הבאות ברשימה Host error timeout (זמן קצוב לתפוגה של שגיאת מארח):

      • כדי לא לציין זמן קצוב לתפוגה של שגיאת מארח, בוחרים באפשרות לא צוין (ברירת מחדל).

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

    • כדי להגדיר אם להפעיל מחדש את המכונה אם היא קורסת או נעצרת, בוחרים באחת מהאפשרויות הבאות ברשימה Automatic restart:

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

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

  7. לוחצים על יצירה.

gcloud

כדי להגדיר את מדיניות התחזוקה של המארח של מכונה בזמן שיוצרים אותה, משתמשים בפקודה gcloud compute instances create עם אחד או יותר מהדגלים הבאים:

  • כדי להגדיר את אופן הפעולה של תחזוקת המארח, צריך לכלול את הדגל --maintenance-policy.

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

    • כדי להפעיל מחדש את המכונה באופן אוטומטי, צריך לכלול את הדגל --restart-on-failure.

    • כדי למנוע את ההפעלה האוטומטית מחדש של המכונה, צריך לכלול את הדגל --no-restart-on-failure.

  • כדי להגדיר פסק זמן לשחזור נתונים של SSD מקומי אם למכונה שלכם מצורפים דיסקים של SSD מקומי, צריך לכלול את הדגל --local-ssd-recovery-timeout.

  • כדי להגדיר פסק זמן לשגיאת מארח, צריך לכלול את הדגל --host-error-timeout-seconds.

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

gcloud compute instances create INSTANCE_NAME \
    --host-error-timeout-seconds=ERROR_DETECTION_TIMEOUT \
    --local-ssd-recovery-timeout=LOCAL_SSD_RECOVERY_TIMEOUT \
    --machine-type=MACHINE_TYPE \
    --maintenance-policy=MAINTENANCE_POLICY \
    --restart-on-failure \
    --zone=ZONE

מחליפים את מה שכתוב בשדות הבאים:

  • INSTANCE_NAME: השם של המכונה.

  • ERROR_DETECTION_TIMEOUT: מספר השניות לפני הפעלה מחדש של מכונה וירטואלית שלא מגיבה. הערך צריך להיות בין 90 (90 שניות) לבין 330 (330 שניות, או 5 דקות ו-30 שניות). אפשר להשתמש רק במרווחי זמן של 30 שניות.

  • LOCAL_SSD_RECOVERY_TIMEOUT: מספר השעות שיוקדשו לשחזור נתונים מדיסקי ה-SSD המקומיים המצורפים. הערך צריך להיות בין 0 (0 שעות) לבין 168 (168 שעות, או 7 ימים). אם מגדירים את השדה הזה לערך 0, נתוני ה-SSD המקומי לא ישוחזרו ב-Compute Engine.

  • MACHINE_TYPE: סוג המכונה שבה רוצים להשתמש.

  • MAINTENANCE_POLICY: אופן התחזוקה של המופע. הערך יכול להיות TERMINATE או MIGRATE. אם אתם יוצרים VM במודל Spot, VM זמני או מכונה שלא תומכת במיגרציה פעילה, אתם יכולים להשתמש רק ב-TERMINATE.

  • ZONE: האזור שבו רוצים ליצור את המכונה.

REST

כדי להגדיר את מדיניות התחזוקה של המארח של מופע בזמן יצירת המופע, שולחים בקשת POST אל ה-method‏ instances.insert. בגוף הבקשה, כוללים אחד או יותר מהשדות הבאים בשדה scheduling:

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

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

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

    • כדי למנוע את ההפעלה האוטומטית מחדש של המכונה, צריך לכלול את השדה automaticRestart.

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

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

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

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

{
  "name": "INSTANCE_NAME",
  "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
  "disks": [
    {
      "boot": true,
      "initializeParams": {
        "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
      }
    }
  ],
  "networkInterfaces": [
    {
      "network": "global/networks/default"
    }
  ],
  "scheduling": {
    "automaticRestart": AUTOMATIC_RESTART,
    "hostErrorTimeoutSeconds": ERROR_DETECTION_TIMEOUT,
    "localSsdRecoveryTimeout": LOCAL_SSD_RECOVERY_TIMEOUT,
    "onHostMaintenance": "MAINTENANCE_POLICY"
  }
}

מחליפים את מה שכתוב בשדות הבאים:

  • PROJECT_ID: מזהה הפרויקט שבו רוצים ליצור את המכונה.

  • ZONE: האזור שבו רוצים ליצור את המכונה.

  • INSTANCE_NAME: השם של המכונה.

  • MACHINE_TYPE: סוג המכונה שבה רוצים להשתמש.

  • IMAGE_PROJECT: פרויקט התמונה שמכיל את התמונה, לדוגמה debian-cloud. מידע נוסף על פרויקטים של תמונות נתמכות זמין במאמר תמונות ציבוריות.

  • IMAGE: מציינים אחת מהאפשרויות הבאות:

    • גרסה ספציפית של תמונת מערכת ההפעלה – לדוגמה, debian-12-bookworm-v20240617.

    • משפחת תמונות, שצריכה להיות בפורמט family/IMAGE_FAMILY. המאפיין הזה מציין את תמונת מערכת ההפעלה העדכנית ביותר שלא הוצאה משימוש. לדוגמה, אם מציינים family/debian-12, נעשה שימוש בגרסה העדכנית ביותר במשפחת תמונות Debian 12. מידע נוסף על שימוש במשפחות של תמונות זמין במאמר בנושא שיטות מומלצות לשימוש במשפחות של תמונות.

  • AUTOMATIC_RESTART: התנהגות ההפעלה מחדש האוטומטית של המכונה אם היא קורסת או אם Compute Engine מפסיק אותה בגלל עצירה מתוכנת. מציינים אחד מהערכים הבאים:

    • כדי לאפשר ל-Compute Engine להפעיל מחדש את המכונה באופן אוטומטי: true

    • כדי למנוע הפעלה מחדש אוטומטית: false

  • ERROR_DETECTION_TIMEOUT: מספר השניות לפני הפעלה מחדש של מכונה וירטואלית שלא מגיבה. הערך צריך להיות בין 90 (90 שניות) לבין 330 (330 שניות, או 5 דקות ו-30 שניות). אפשר להשתמש רק במרווחי זמן של 30 שניות.

  • LOCAL_SSD_RECOVERY_TIMEOUT: מספר השעות שיוקדשו לשחזור נתונים מדיסקי ה-SSD המקומיים המצורפים. הערך צריך להיות בין 0 (0 שעות) לבין 168 (168 שעות, או 7 ימים). אם מגדירים את השדה הזה לערך 0, נתוני ה-SSD המקומי לא ישוחזרו ב-Compute Engine.

  • MAINTENANCE_POLICY: אופן התחזוקה של המופע. הערך יכול להיות TERMINATE או MIGRATE. אם אתם יוצרים VM במודל Spot או מכונה וירטואלית שלא תומכת במיגרציה פעילה, אתם יכולים להשתמש רק ב-TERMINATE.

למידע נוסף על יצירת מכונה, אפשר לעיין במאמר בנושא יצירת מכונה של Compute Engine והפעלה שלה.

הגדרת המדיניות בזמן יצירת מופעים בכמות גדולה

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

gcloud

כדי להגדיר את מדיניות התחזוקה של המארח כשיוצרים כמות גדולה של מכונות, משתמשים בפקודה gcloud compute instances bulk create עם אחד או יותר מהדגלים הבאים:

  • כדי להגדיר את אופן הפעולה של תחזוקת המארח, צריך לכלול את הדגל --maintenance-policy.

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

    • כדי להפעיל מחדש את המכונה באופן אוטומטי, צריך לכלול את הדגל --restart-on-failure.

    • כדי למנוע את ההפעלה האוטומטית מחדש של המכונה, צריך לכלול את הדגל --no-restart-on-failure.

  • כדי להגדיר פסק זמן לשחזור נתונים של SSD מקומי אם למכונה שלכם מצורפים דיסקים של SSD מקומי, צריך לכלול את הדגל --local-ssd-recovery-timeout.

  • כדי להגדיר פסק זמן לשגיאת מארח, צריך לכלול את הדגל --host-error-timeout-seconds.

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

gcloud compute instances bulk create \
    --count=COUNT \
    --host-error-timeout-seconds=ERROR_DETECTION_TIMEOUT \
    --local-ssd-recovery-timeout=LOCAL_SSD_RECOVERY_TIMEOUT \
    --machine-type=MACHINE_TYPE \
    --maintenance-policy=MAINTENANCE_POLICY \
    --name-pattern=NAME_PATTERN \
    --restart-on-failure \
    --zone=ZONE

מחליפים את מה שכתוב בשדות הבאים:

  • COUNT: מספר המופעים שרוצים ליצור.

  • ERROR_DETECTION_TIMEOUT: מספר השניות לפני הפעלה מחדש של מכונה וירטואלית שלא מגיבה. הערך צריך להיות בין 90 (90 שניות) לבין 330 (330 שניות, או 5 דקות ו-30 שניות). אפשר להשתמש רק במרווחי זמן של 30 שניות.

  • LOCAL_SSD_RECOVERY_TIMEOUT: מספר השעות שיוקדשו לשחזור נתונים מדיסקי ה-SSD המקומיים המצורפים. הערך צריך להיות בין 0 (0 שעות) לבין 168 (168 שעות, או 7 ימים). אם מגדירים את השדה הזה לערך 0, נתוני ה-SSD המקומי לא ישוחזרו ב-Compute Engine.

  • MACHINE_TYPE: סוג המכונה שבה רוצים להשתמש.

  • MAINTENANCE_POLICY: אופן הפעולה של התחזוקה של המופעים. הערך יכול להיות TERMINATE או MIGRATE. אם אתם יוצרים מכונות וירטואליות מסוג Spot, מכונות וירטואליות שניתן להפסיק את הפעולה שלהן או מופעים שלא תומכים במיגרציה פעילה, אתם יכולים להשתמש רק ב-TERMINATE.

  • NAME_PATTERN: תבנית השם של המכונות. כדי להחליף רצף של מספרים בשם של מופע, משתמשים ברצף של תווים מסוג סולמית (#). לדוגמה, שימוש ב-instance-# בתבנית השם יוצר מופעים עם שמות שמתחילים ב-instance-1, instance-2 וממשיכים עד מספר המופעים שצוין על ידי COUNT.

  • ZONE: האזור שבו רוצים ליצור את המופעים.

REST

כדי להגדיר את מדיניות התחזוקה של המארח כשיוצרים כמות גדולה של מכונות, שולחים בקשת POST אל ה-method‏ instances.bulkInsert. בגוף הבקשה, כוללים אחד או יותר מהשדות הבאים בשדה scheduling:

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

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

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

    • כדי למנוע את ההפעלה האוטומטית מחדש של המכונה, צריך לכלול את השדה automaticRestart.

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

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

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

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/bulkInsert

{
  "count": COUNT,
  "namePattern": "NAME_PATTERN",
  "instanceProperties": {
    "machineType": "MACHINE_TYPE",
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
        }
      }
    ],
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ],
    "scheduling": {
      "automaticRestart": AUTOMATIC_RESTART,
      "hostErrorTimeoutSeconds": ERROR_DETECTION_TIMEOUT,
      "localSsdRecoveryTimeout": LOCAL_SSD_RECOVERY_TIMEOUT,
      "onHostMaintenance": "MAINTENANCE_POLICY"
    }
  }
}

מחליפים את מה שכתוב בשדות הבאים:

  • PROJECT_ID: מזהה הפרויקט שבו רוצים ליצור את המופעים.

  • ZONE: האזור שבו רוצים ליצור את המופעים.

  • COUNT: מספר המופעים שרוצים ליצור.

  • NAME_PATTERN: תבנית השם של המכונות. כדי להחליף סדרה של מספרים בשם של מופע, משתמשים בסדרה של תווים מסוג סולמית (#). לדוגמה, שימוש ב-instance-# בתבנית השם יוצר מופעים עם שמות שמתחילים ב-instance-1, instance-2 וממשיכים עד מספר המופעים שצוין על ידי COUNT.

  • MACHINE_TYPE: סוג המכונה שבה רוצים להשתמש.

  • IMAGE_PROJECT: פרויקט התמונה שמכיל את התמונה, לדוגמה debian-cloud. מידע נוסף על פרויקטים של תמונות נתמכות זמין במאמר תמונות ציבוריות.

  • IMAGE: מציינים אחת מהאפשרויות הבאות:

    • גרסה ספציפית של תמונת מערכת ההפעלה – לדוגמה, debian-12-bookworm-v20240617.

    • משפחת תמונות, שצריכה להיות בפורמט family/IMAGE_FAMILY. המאפיין הזה מציין את תמונת מערכת ההפעלה העדכנית ביותר שלא הוצאה משימוש. לדוגמה, אם מציינים family/debian-12, נעשה שימוש בגרסה העדכנית ביותר במשפחת תמונות Debian 12. מידע נוסף על שימוש במשפחות של תמונות זמין במאמר בנושא שיטות מומלצות לשימוש במשפחות של תמונות.

  • AUTOMATIC_RESTART: התנהגות ההפעלה מחדש האוטומטית של המכונה אם היא קורסת או אם Compute Engine מפסיק אותה בגלל עצירה מתוכנת. מציינים אחד מהערכים הבאים:

    • כדי לאפשר ל-Compute Engine להפעיל מחדש את המכונה באופן אוטומטי: true

    • כדי למנוע הפעלה מחדש אוטומטית: false

  • ERROR_DETECTION_TIMEOUT: מספר השניות לפני הפעלה מחדש של מכונה וירטואלית שלא מגיבה. הערך צריך להיות בין 90 (90 שניות) לבין 330 (330 שניות, או 5 דקות ו-30 שניות). אפשר להשתמש רק במרווחי זמן של 30 שניות.

  • LOCAL_SSD_RECOVERY_TIMEOUT: מספר השעות שיוקדשו לשחזור נתונים מדיסקי ה-SSD המקומיים המצורפים. הערך צריך להיות בין 0 (0 שעות) לבין 168 (168 שעות, או 7 ימים). אם מגדירים את השדה הזה לערך 0, נתוני ה-SSD המקומי לא ישוחזרו ב-Compute Engine.

  • MAINTENANCE_POLICY: אופן הפעולה של התחזוקה של המופעים. הערך יכול להיות TERMINATE או MIGRATE. אם אתם יוצרים מכונות וירטואליות מסוג Spot, מכונות וירטואליות שניתן להפסיק את הפעולה שלהן או מופעים שלא תומכים במיגרציה פעילה, אתם יכולים להשתמש רק ב-TERMINATE.

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

הגדרת המדיניות במהלך יצירת תבנית של הגדרות מכונה

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

כדי להגדיר את הזמן הקצוב לתפוגה של שחזור נתונים בכונן SSD מקומי כשיוצרים תבנית של הגדרות מכונה שמציינת דיסקים של SSD מקומיים, צריך להשתמש ב-CLI של gcloud או ב-API בארכיטקטורת REST. אחרת, בוחרים באחת מהאפשרויות הבאות:

המסוף

  1. נכנסים לדף Instance templates במסוף Google Cloud .

    כניסה לדף Instance templates

  2. לוחצים על Create instance template. מופיע הדף Create instance template (יצירת תבנית של הגדרות מכונה).

  3. בשדה Name, מזינים שם לתבנית של הגדרות מכונה.

  4. בקטע מיקום בוחרים באחת מהאפשרויות הבאות:

    • כדי ליצור תבנית של הגדרות מכונה אזורית, בוחרים באפשרות Regional (מומלץ) ואז בוחרים את האזור שבו רוצים ליצור את התבנית.

    • כדי ליצור תבנית של הגדרות מכונה גלובלית, בוחרים באפשרות Global (גלובלית).

  5. בקטע Machine configuration, מציינים את סוג המכונה של תבנית של הגדרות מכונה.

  6. בקטע Provisioning model, מרחיבים את VM provisioning model advanced settings ומבצעים אחת או יותר מהפעולות הבאות:

    • כדי לשנות את ההתנהגות במהלך אירועי תחזוקה, ברשימה On host maintenance (במהלך תחזוקת המארח), בוחרים באחת מהאפשרויות הבאות:

      • כדי להעביר את המופע במהלך אירועי תחזוקת המארח, בוחרים באפשרות Migrate VM instance (recommended) (העברת מופע של מכונה וירטואלית (מומלץ)).

      • כדי להפסיק את המופע במהלך אירועי תחזוקה של המארח, בוחרים באפשרות Terminate VM instance.

    • כדי לשנות את תקופת הזמן הקצובה לתפוגה לפני הפעלה מחדש של מופע שלא מגיב, ברשימה Host error timeout (זמן קצוב לתפוגה של שגיאת מארח), בוחרים באחת מהאפשרויות הבאות:

      • כדי לא לציין זמן קצוב לתפוגה של שגיאת מארח, בוחרים באפשרות לא צוין (ברירת מחדל).

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

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

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

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

  7. לוחצים על יצירה.

gcloud

כדי להגדיר את מדיניות התחזוקה של המארח בזמן יצירת תבנית של הגדרות מכונה, משתמשים בפקודה gcloud compute instance-templates create עם אחד או יותר מהדגלים הבאים:

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

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

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

    • כדי למנוע את ההפעלה האוטומטית מחדש של המכונה, צריך לכלול את השדה automaticRestart.

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

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

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

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --host-error-timeout-seconds=ERROR_DETECTION_TIMEOUT \
    --instance-template-region=REGION \
    --local-ssd-recovery-timeout=LOCAL_SSD_RECOVERY_TIMEOUT \
    --machine-type=MACHINE_TYPE \
    --maintenance-policy=MAINTENANCE_POLICY \
    --restart-on-failure

מחליפים את מה שכתוב בשדות הבאים:

  • INSTANCE_TEMPLATE_NAME: השם של תבנית הגדרות המכונה.

  • ERROR_DETECTION_TIMEOUT: מספר השניות לפני הפעלה מחדש של מכונה וירטואלית שלא מגיבה. הערך צריך להיות בין 90 (90 שניות) לבין 330 (330 שניות, או 5 דקות ו-30 שניות). אפשר להשתמש רק במרווחי זמן של 30 שניות.

  • REGION: האזור שבו רוצים ליצור את תבנית הגדרות המכונה.

  • LOCAL_SSD_RECOVERY_TIMEOUT: מספר השעות שיוקדשו לשחזור נתונים מדיסקי ה-SSD המקומיים המצורפים. הערך צריך להיות בין 0 (0 שעות) לבין 168 (168 שעות, או 7 ימים). אם מגדירים את השדה הזה לערך 0, נתוני ה-SSD המקומי לא ישוחזרו ב-Compute Engine.

  • MACHINE_TYPE: סוג המכונה שבה רוצים להשתמש.

  • MAINTENANCE_POLICY: אופן הפעולה של התחזוקה של המופעים. הערך יכול להיות TERMINATE או MIGRATE. אם מציינים תבנית של הגדרות מכונה של VM במודל Spot, VM זמני או סוג מכונה שלא תומך במיגרציה פעילה, אפשר להשתמש רק ב-TERMINATE.

REST

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

בגוף הבקשה, כוללים אחד או יותר מהשדות הבאים בשדה scheduling:

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

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

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

    • כדי למנוע את ההפעלה האוטומטית מחדש של המכונה, צריך לכלול את השדה automaticRestart.

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

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

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

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceTemplates

{
  "name": "INSTANCE_TEMPLATE_NAME",
  "properties": {
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
        }
      }
    ],
    "machineType": "MACHINE_TYPE",
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ],
    "scheduling": {
      "automaticRestart": AUTOMATIC_RESTART,
      "hostErrorTimeoutSeconds": ERROR_DETECTION_TIMEOUT,
      "localSsdRecoveryTimeout": LOCAL_SSD_RECOVERY_TIMEOUT,
      "onHostMaintenance": "MAINTENANCE_POLICY"
    }
  }
}

מחליפים את מה שכתוב בשדות הבאים:

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

  • REGION: האזור שבו רוצים ליצור את תבנית הגדרות המכונה.

  • INSTANCE_TEMPLATE_NAME: השם של תבנית הגדרות המכונה.

  • IMAGE_PROJECT: פרויקט התמונה שמכיל את התמונה, לדוגמה debian-cloud. מידע נוסף על פרויקטים של תמונות נתמכות זמין במאמר תמונות ציבוריות.

  • IMAGE: מציינים אחת מהאפשרויות הבאות:

    • גרסה ספציפית של תמונת מערכת ההפעלה – לדוגמה, debian-12-bookworm-v20240617.

    • משפחת תמונות, שצריכה להיות בפורמט family/IMAGE_FAMILY. המאפיין הזה מציין את תמונת מערכת ההפעלה העדכנית ביותר שלא הוצאה משימוש. לדוגמה, אם מציינים family/debian-12, נעשה שימוש בגרסה העדכנית ביותר במשפחת תמונות Debian 12. מידע נוסף על שימוש במשפחות של תמונות זמין במאמר בנושא שיטות מומלצות לשימוש במשפחות של תמונות.

  • MACHINE_TYPE: סוג המכונה שבה רוצים להשתמש.

  • AUTOMATIC_RESTART: התנהגות ההפעלה מחדש האוטומטית של המכונה אם היא קורסת או אם Compute Engine מפסיק אותה בגלל עצירה מתוכנת. מציינים אחד מהערכים הבאים:

    • כדי לאפשר ל-Compute Engine להפעיל מחדש את המכונה באופן אוטומטי: true

    • כדי למנוע הפעלה מחדש אוטומטית: false

  • ERROR_DETECTION_TIMEOUT: מספר השניות לפני הפעלה מחדש של מכונה וירטואלית שלא מגיבה. הערך צריך להיות בין 90 (90 שניות) לבין 330 (330 שניות, או 5 דקות ו-30 שניות). אפשר להשתמש רק במרווחי זמן של 30 שניות.

  • LOCAL_SSD_RECOVERY_TIMEOUT: מספר השעות שיוקדשו לשחזור נתונים מדיסקי ה-SSD המקומיים המצורפים. הערך צריך להיות בין 0 (0 שעות) לבין 168 (168 שעות, או 7 ימים). אם מגדירים את השדה הזה לערך 0, נתוני ה-SSD המקומי לא ישוחזרו ב-Compute Engine.

  • MAINTENANCE_POLICY: אופן הפעולה של התחזוקה של המופעים. הערך יכול להיות TERMINATE או MIGRATE. אם מציינים תבנית של הגדרות מכונה של VM במודל Spot, VM זמני או סוג מכונה שלא תומך במיגרציה פעילה, אפשר להשתמש רק ב-TERMINATE.

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

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

אפשר לראות את מדיניות התחזוקה של המארח של מופע על ידי הצגת פרטי המופע.

כשמציגים את פרטי המופע באמצעות ה-CLI של gcloud או API בארכיטקטורת REST, אפשר לראות את השדות localSsdRecoveryTimeout ו-hostErrorTimeoutSeconds רק אם ציינתם אותם כשיוצרים או מעדכנים את המופע.

כדי לראות את הזמן הקצוב לתפוגה של שחזור נתונים מ-SSD מקומי במכונה שמצורפים אליה דיסקים של SSD מקומי, צריך להשתמש ב-CLI של gcloud או ב-API בארכיטקטורת REST. אחרת, בוחרים אחת מהאפשרויות הבאות:

המסוף

  1. נכנסים לדף VM instances במסוף Google Cloud .

    כניסה לדף VM instances

  2. בעמודה Name (שם), לוחצים על המופע שרוצים לראות. ייפתח דף עם פרטי המופע.

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

    • בשדה On host maintenance אפשר לראות את אירועי ההתנהגות של תחזוקת המארח של המופע.

    • בשדה Host error timeout (זמן קצוב לתפוגה של שגיאת מארח) אפשר לראות את משך הזמן שהמופע ממתין לפני הפעלה מחדש או עצירה של המופע אחרי זיהוי שהוא לא מגיב. אם הערך לא מוגדר (), זמן ההמתנה שמוגדר כברירת מחדל הוא 5 דקות ו-30 שניות.

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

gcloud

כדי להציג את מדיניות התחזוקה של המארח עבור מכונה, משתמשים בפקודה gcloud compute instances describe עם הדגל --flatten שמוגדר לערך scheduling:

 gcloud compute instances describe INSTANCE_NAME \
    --flatten=scheduling \
    --zone=ZONE

מחליפים את מה שכתוב בשדות הבאים:

  • INSTANCE_NAME: השם של המכונה.

  • ZONE: האזור שבו נמצאת המכונה.

הפלט אמור להיראות כך:

---
scheduling:
  automaticRestart: true
  hostErrorTimeoutSeconds: 120
  localSsdRecoveryTimeout:
    nanos: 0
    seconds: '10800'
  onHostMaintenance: MIGRATE
  preemptible: false
  provisioningModel: STANDARD

REST

כדי לראות את מדיניות התחזוקה של המארח עבור מכונה, שולחים בקשת GET אל ה-method‏ instances.get. בכתובת ה-URL של הבקשה, כוללים את פרמטר השאילתה fields ומגדירים אותו לערך scheduling:

  GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME?fields=scheduling

מחליפים את מה שכתוב בשדות הבאים:

  • PROJECT_ID: הפרויקט שבו קיימת המכונה.

  • ZONE: האזור שבו המכונה קיימת.

  • INSTANCE_NAME: השם של המכונה.

הפלט אמור להיראות כך:

{
  "scheduling": {
    "onHostMaintenance": "MIGRATE",
    "automaticRestart": true,
    "preemptible": false,
    "provisioningModel": "STANDARD",
    "localSsdRecoveryTimeout": {
      "seconds": "10800",
      "nanos": 0
    }
  }
}

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