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

במאמר הזה נסביר איך להגדיר את מדיניות התחזוקה של המארח במכונה של 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 ולשירותים של Cloud de Confiance by S3NS . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים האלה:

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

    המסוף

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

    gcloud

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      • למכונות Bare Metal מדגם Z4M ולמכונות Bare Metal מדגם Z3 z3-highmem-192-highlssd-metal: ‏ 168 שעות

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

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

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

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

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

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

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

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

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

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

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

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

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

המסוף

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

    כניסה לדף 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.s3nsapis.fr/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.

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

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

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

המסוף

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

    כניסה לדף 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.

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

  • ‫MACHINE_TYPE: סוג המכונה לשימוש.

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

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

REST

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

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

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

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

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

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

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

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

POST https://compute.s3nsapis.fr/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 לא ישחזר נתונים של Local SSD.

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

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

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

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

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

המסוף

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

    כניסה לדף 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 בוחרים אחת מהאפשרויות הבאות:

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

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

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

gcloud

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

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

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

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

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

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

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

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

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

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

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

POST https://compute.s3nsapis.fr/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 במסוף Cloud de Confiance .

    כניסה לדף VM instances

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

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

    • בשדה 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.s3nsapis.fr/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
    }
  }
}

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