ניהול אירועים של מארחים במכונות H4D VM

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

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

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

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

המסוף

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

gcloud

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

gcloud init

REST

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

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

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

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

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

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

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

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

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

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

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

סקירה כללית

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

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

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

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

הסבר על תחזוקת המארח

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

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

סוג המכונה התדירות הטיפוסית של אירועי תחזוקה מתוזמנים התנהגות תחזוקה התראות מתקדמות תחזוקה על פי דרישה סימולציה של תחזוקה
h4d-standard-192 לפחות 30 יום סיום 7 ימים כן לא
h4d-highmem-192 לפחות 30 יום סיום 7 ימים כן לא
h4d-highmem-192-lssd לפחות 30 יום הסיום עם נתונים קבועים ב-Local SSD 7 ימים כן לא

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

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

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

כדי ליצור התראה לאירועי התחזוקה של מכונות ה-VM, צריך לבצע את התהליך הבא. חוזרים על התהליך הזה לכל התראה שרוצים ליצור.

  1. במסוף Cloud de Confiance , נכנסים לדף Logs Explorer:

    כניסה אל Logs Explorer

    אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים בתוצאה שכותרת המשנה שלה היא Logging.

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

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

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

      protoPayload.methodName="compute.instances.upcomingMaintenance" severity>=DEFAULT
      protoPayload.status.message =~ "scheduled"
      
    • כדי לקבל התראות כשחלון הזמן לתחזוקה של מכונה וירטואלית נפתח:

      protoPayload.methodName="compute.instances.upcomingMaintenance" severity>=DEFAULT
      protoPayload.status.message =~ "ongoing"
      
    • כדי לקבל התראות כשתחזוקה של מכונה וירטואלית מתחילה:

      protoPayload.methodName="compute.instance.terminateOnHostMaintenance" severity>=DEFAULT
      
    • כדי לקבל התראות כשתחזוקה של מכונה וירטואלית מסתיימת:

      protoPayload.methodName="compute.instances.upcomingMaintenance" severity>=DEFAULT
      protoPayload.status.message =~ "completed"
      
  4. כדי לאמת את השאילתה, לוחצים על Run query. אם השאילתה תקינה, בחלונית Query results יוצגו רשומות ביומן שתואמות לשאילתה.

  5. בסרגל הכלים של תוצאות השאילתה, לוחצים על רשימת הפעולות ובוחרים באפשרות יצירת התראה ביומן. מופיעה החלונית Create logs-based alert policy.

  6. בקטע פרטי ההתראה, מבצעים את הפעולות הבאות:

    1. בשדה שם מדיניות ההתראה, מזינים שם למדיניות.

    2. ברשימה רמת החומרה של המדיניות, בוחרים באפשרות אזהרה (או ברמת חומרה גבוהה יותר).

    3. לוחצים על הבא.

  7. בקטע בחירת יומנים שייכללו בהתראה, לוחצים על הבא.

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

    1. ברשימה הזמן בין ההתראות, בוחרים באיזו תדירות רוצים לקבל התראות.

    2. ברשימה Incident autoclose duration (משך הזמן עד לסגירה אוטומטית של האירוע), בוחרים אחרי כמה זמן Cloud Logging יפסיק לשלוח התראות ויסגור אוטומטית את האירוע.

    3. לוחצים על הבא.

  9. בקטע למי לשלוח התראות?, מציינים ערוץ התראות ששירות Logging ישלח אליו התראות.

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

כדי לראות דוגמאות להתראות על אירועי תחזוקה בכלי Logs Explorer, אפשר לעיין בדוגמאות להתראות על תחזוקה במסמכי התיעוד של Compute Engine.

ניהול תחזוקה במכונות VM

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

צפייה במצב התחזוקה של מכונות וירטואליות

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

בנוסף, אם מתוכננת תחזוקה למכונה וירטואלית, השדה upcomingGroupMaintenance מכיל את השדה maintenanceReasons. בשדה הזה מתואר למה נקבעה תחזוקה למכונה הווירטואלית, כמו שמתואר בטבלה הבאה:

סוג התחזוקה הסיבה לתחזוקה מצב המכונות הווירטואליות
תחזוקה מתוכננת לתחזוקה רגילה
  • PLANNED_UPDATE: תחזוקת תשתית מתוכננת
  • PLANNED_NETWORK_UPDATE: תחזוקת רשת מתוכננת
ההגדרה חלה על מכונות וירטואליות שפועלות, מושבתות או מושעות.
תחזוקת חירום לא מתוכננת
  • FAILURE_DISK: תחזוקה לא מתוכננת שנקבעה בגלל שגיאה בדיסק שמצורף למכונה וירטואלית.
  • FAILURE_INFRA: תחזוקה לא מתוכננת שנקבעה בגלל שגיאה בתשתית.
  • FAILURE_INTERFACE: תחזוקה לא מתוכננת שנקבעה בגלל שגיאה בכרטיס רשת.
  • FAILURE_MEMORY: תחזוקה לא מתוכננת שנקבעה בגלל שגיאה בזיכרון של מכונה וירטואלית.
  • FAILURE_NETWORK: תחזוקה לא מתוכננת שנקבעה בגלל שגיאה ברשת.
ההגדרה רלוונטית רק למכונות וירטואליות שפועלות.

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

המסוף

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

    כניסה לדף VM instances

  2. בעמודה Maintenance status, ‏ Compute Engine מציג את מצב התחזוקה של המכונות הווירטואליות. אם העמודה הזו לא מופיעה בטבלה VM instances, לוחצים על view_column Column display options, מסמנים את תיבת הסימון Maintenance status ואז לוחצים על OK.

gcloud

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

gcloud compute instances describe VM_NAME \
    --flatten=resourceStatus.upcomingMaintenance \
    --zone=ZONE

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

  • VM_NAME: שם ה-VM.

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

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

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

    ---
    canReschedule: true
    latestWindowStartTime: '2025-11-01T19:00:00Z'
    maintenanceReasons:
    - 'PLANNED_UPDATE'
    - 'PLANNED_NETWORK_UPDATE'
    maintenanceStatus: 'PENDING'
    type: 'SCHEDULED'
    windowEndTime: '2025-11-01T22:00:00Z'
    windowStartTime: '2025-11-01T19:00:00Z'
    
  • אם לא מתוכנן אירוע תחזוקה של המארח עבור מכונת ה-VM, הפלט ייראה כך:

    ---
    null
    

REST

כדי לראות את מצב התחזוקה של מכונות וירטואליות, שולחים אחת מהבקשות הבאות GET כששולחים בקשה, צריך לכלול את פרמטר השאילתה fields כדי להציג רק את השם, סוג המכונה והתחזוקה הקרובה של מכונה וירטואלית. צריך לכלול גם את פרמטר השאילתה filter כדי לסנן מכונות וירטואליות רק לפי סוג מכונה ספציפי.

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

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/aggregated/instances?fields=items.name,items.machineType,items.upcomingMaintenance&filter=machineType%3AMACHINE_TYPE
    
  • כדי להציג מכונות וירטואליות באזור ספציפי: שיטת instances.list.

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances?fields=items.name,items.machineType,items.upcomingMaintenance&filter=machineType%3AMACHINE_TYPE
    

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

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

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

  • MACHINE_TYPE: סוג המכונה שרוצים לסנן את המכונות הווירטואליות לפיו.

אם מתוכנן אירוע תחזוקה של המארח למכונה וירטואלית, המכונה הווירטואלית מכילה את השדה upcomingMaintenance:

{
  "items": [
    {
      "name": "vm-01",
      "machineType": "https://www.googleapis.com/compute/v1/projects/example-project/zones/europe-west4-b/machineTypes/h4d-highmem-192-lssd",
      "resourceStatus": {
        "upcomingMaintenance": {
          "canReschedule": true,
          "latestWindowStartTime": "2024-11-01T19:00:00Z",
          "maintenanceStatus": "PENDING",
          "maintenanceReasons": [
            "PLANNED_UPDATE",
            "PLANNED_NETWORK_UPDATE"
          ],
          "type": "SCHEDULED",
          "windowEndTime": "2024-11-01T22:00:00Z",
          "windowStartTime": "2024-11-01T19:00:00Z"
        }
      }
    },
    ...
  ]
}

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

שרת מטא-נתונים

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

  1. אם עדיין לא עשיתם את זה, מתחברים ל-Linux או ל-Windows VM.

  2. שולחים לשרת המטא-נתונים שאילתה באופן הבא:

    curl http://metadata.google.internal/computeMetadata/v1/instance/upcoming-maintenance?alt=json -H "Metadata-Flavor: Google"
    

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

    "Upcoming maintenance": {
      "can_reschedule": "true",
      "latest_window_start_time": "2024-12-01T19:00:01Z",
      "maintenance_reasons": [
        "PLANNED_UPDATE",
        "PLANNED_NETWORK_UPDATE"
      ],
      "maintenance_status": "PENDING",
      "type": "SCHEDULED",
      "window_end_time": "2024-12-01T21:00:01Z",
      "window_start_time": "2024-12-01T19:00:01Z"
    }
    

    אם לא מתוכנן אירוע תחזוקה של המארח, הפלט ייראה כך:

    { }
    

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

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

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

מצב תחזוקה תיאור מה שרואים
מתוזמנת מתוכננת תחזוקה למכונה הווירטואלית ב-Compute Engine. אתם יכולים להתחיל את התחזוקה ידנית לפני המועד שנקבע.
  • במסוף Cloud de Confiance , מצב התחזוקה מוצג כ-Ready to run - will run on DATE.
  • ב-CLI של gcloud או ב-API בארכיטקטורת REST,‏ Compute Engine מגדיר את השדה maintenanceStatus לערך PENDING.
בתהליך מתבצעות פעולות תחזוקה. אי אפשר לתזמן אותו מחדש.
  • במסוף Cloud de Confiance , מצב התחזוקה יהיה פועל.
  • ב-CLI של gcloud או ב-API בארכיטקטורת REST,‏ Compute Engine מגדיר את השדה maintenanceStatus לערך ONGOING.
הושלמה התחזוקה הסתיימה. ‫Compute Engine הסיר את כל ההתראות על תחזוקה מהמכונה הווירטואלית.
  • במסוף Cloud de Confiance , מצב התחזוקה יהיה עדכני.
  • ב-CLI של gcloud או ב-API בארכיטקטורת REST,‏ Compute Engine מגדיר את השדה maintenanceStatus לערך COMPLETE.

אפשר להתחיל תחזוקה ידנית של כמה מכונות וירטואליות בו-זמנית או של מכונות וירטואליות בודדות. אם יש לכם כמה מכונות וירטואליות, אתם יכולים להשתמש במסוף Cloud de Confiance או ב-CLI של gcloud (אם המכונות הווירטואליות נמצאות באותו אזור). לגבי מכונות וירטואליות בודדות, בוחרים באחת מהאפשרויות הבאות:

המסוף

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

    כניסה לדף VM instances

  2. בוחרים את השורות של המכונות הווירטואליות שרוצים להתחיל בהן את התחזוקה.

  3. לוחצים על הפעלת תחזוקה.

  4. כדי לאשר, לוחצים על הפעלת תחזוקה.

gcloud

כדי להפעיל תחזוקה באופן ידני במכונה וירטואלית אחת או יותר באותו אזור, משתמשים בפקודה gcloud compute instances perform-maintenance:

gcloud compute instances perform-maintenance VM_NAMES \
    --zone=ZONE

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

  • VM_NAMES: רשימה של שמות מכונות וירטואליות שמופרדים ברווחים. לדוגמה, vm-01 vm-02 vm-03.

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

REST

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

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

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

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

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

  • VM_NAME: שם ה-VM.