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

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

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

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

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

מגבלות

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

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

  • המכונות הבאות יכולות להפסיק לפעול רק במהלך אירועי תחזוקה של המארח:

    • מכונות שלא תומכות בהעברה חיה, כמו:
      • מכונות H4D
      • מכונות Z3 עם יותר מ-18,000 GiB של Titanium SSD מחובר
      • מכונות Z4D ו-Z4M עם יותר מ-42,000 GiB של Titanium SSD מצורף
      • מכונות עם ממשק רשת של Cloud RDMA
      • מכונות Bare Metal
      • מכונות וירטואליות שמחוברות ליחידות GPU או TPU
    • VMs במודל Spot או VMs זמניים.
  • אי אפשר להפעיל מחדש באופן אוטומטי VM במודל Spot ו-VM זמני אחרי שגיאות מארח או עצירות מתוכנתות.

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

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

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

    המסוף

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

    gcloud

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

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

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

      התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם.

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

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

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

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

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

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

  • כדי ליצור מכונה:
    • ‫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 Engine ישתמש בהגדרות ברירת המחדל כשתיצרו מכונה של או תבנית של הגדרות מכונה.

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

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

    • Migrate: Compute Engine מבצע מיגרציה פעילה אוטומטית של המכונה למארח אחר. זו הגדרת ברירת המחדל לכל סוגי המכונות, חוץ מ-VM במודל Spot ומ-VM זמני.

    • ‫Terminate: המכונה תופסק על ידי Compute Engine. זו הגדרת ברירת המחדל למכונות וירטואליות במודל Spot או למכונות וירטואליות זמניות, וזו ההגדרה היחידה שנתמכת במכונות H4D, במכונות Z3 עם יותר מ-18,000GiB של Titanium SSD מחובר, במכונות Z4D ו-Z4M עם יותר מ-42,000GiB של Titanium SSD מחובר, במכונות עם ממשק רשת Cloud RDMA, במכונות Bare Metal ובמכונות עם יחידות GPU או TPU מחוברות.

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

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

      • במסוף Google Cloud , בחלונית Advanced, ברשימה Automatic restart בוחרים באפשרות On (recommended).

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

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

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

      • במסוף Google Cloud , בחלונית Advanced, ברשימה Automatic restart בוחרים את האפשרות Off.

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

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

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

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

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

      • במכונות Z4M בשרת פיזי ובמכונות Z3 בשרת פיזי: z3-highmem-192-highlssd-metal: 168 שעות

      • למכונות וירטואליות מסוג Z4D,‏ Z4M ו-Z3: ‏6 שעות

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

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

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

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

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

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

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

הגדרת המדיניות למכונה קיימת

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

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

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

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

המסוף

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

    כניסה לדף VM instances

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

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

  4. בקטע ניהול, אתם יכולים לבצע אחת או יותר מהפעולות הבאות:

    • כדי לשנות את ההתנהגות במהלך אירועי תחזוקה, בוחרים אפשרות אחרת מהרשימה 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.

לדוגמה, כדי לשנות את ההתנהגות של תחזוקת המארח, להפעיל מחדש באופן אוטומטי את המכונה אחרי שגיאות מארח או עצירות מתוכנתות, לשנות את הזמן הקצוב לשחזור נתונים של Local 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, המשמעות היא ש-Compute Engine לא משחזר את הנתונים ב-SSD המקומי.

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

REST

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

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

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

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

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

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

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

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

POST https://compute./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, המשמעות היא ש-Compute Engine לא משחזר את הנתונים ב-SSD המקומי.

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

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

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

כדי להגדיר את זמן הקצוב לתפוגה של שחזור הנתונים ב-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:

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

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

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

gcloud

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

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

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

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

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

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

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

לדוגמה, כדי להגדיר את ההתנהגות של תחזוקת המארח, להפעיל מחדש באופן אוטומטי את המכונה אחרי שגיאות מארח או עצירות מתוכנתות, להגדיר זמן קצוב לשחזור נתונים של Local 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, המשמעות היא ש-Compute Engine לא משחזר את הנתונים ב-SSD המקומי.

  • ‫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./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, המשמעות היא ש-Compute Engine לא משחזר את הנתונים ב-SSD המקומי.

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

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

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

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

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

המסוף

  1. במסוף Google Cloud , נכנסים לדף תבניות של הגדרות מכונה.

    כניסה לדף Instance templates

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

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

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

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

    • כדי ליצור תבנית גלובלית של הגדרות מכונה, בוחרים באפשרות 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 שניות.

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

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

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

  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, המשמעות היא ש-Compute Engine לא משחזר את הנתונים ב-SSD המקומי.

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

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

REST

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

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

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

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

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

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

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

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

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

POST https://compute./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, המשמעות היא ש-Compute Engine לא משחזר את הנתונים ב-SSD המקומי.

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

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

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

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

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

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

המסוף

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

    כניסה לדף VM instances

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

  3. בכרטיסייה Details, בקטע Management, בחלק Availability policies, אפשר לראות את הפרטים הבאים:

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

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

    • בשדה Automatic restart אפשר לראות אם המכונה מופעלת מחדש באופן אוטומטי אחרי שהיא קורסת או אחרי ש-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./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
    }
  }
}

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