במאמר הזה מוסבר איך להשתמש בתכונות של תחזוקת המארח שזמינות במכונות וירטואליות מסוג H4D. במאמר מוסבר איך לעקוב אחרי תחזוקה מתוזמנת במכונות וירטואליות (VM), לתכנן אותה ולבצע אותה. כדי לנהל תחזוקה בבלוקים של קיבולת שהוזמנו, בין אם מכונות וירטואליות פועלות בהם ובין אם לא, אפשר לעיין במאמר ניהול אירועים במארח בהזמנות.
כשמנהלים באופן יזום אירועי תחזוקה של המארח הקרובים במכונות הווירטואליות, אפשר לצמצם את השיבושים ולשמור על רמת ביצועים אופטימלית.
לפני שמתחילים
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
המסוף
כשמשתמשים במסוף Cloud de Confiance כדי לגשת לשירותים ולממשקי ה-API של Cloud de Confiance by S3NS , לא צריך להגדיר אימות.
gcloud
מתקינים את ה-CLI של Google Cloud ואז נכנסים ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם. אחרי שנכנסתם לחשבון, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:
gcloud initREST
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.
מתקינים את ה-CLI של Google Cloud ואז נכנסים ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם.
מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Cloud de Confiance .
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות לניהול אירועי תחזוקה של מארחים במכונות וירטואליות, בקשו מהאדמין לתת לכם את התפקידים הבאים ב-IAM:
- אדמין Compute (
roles/compute.admin) בפרויקט -
כדי לקבל גישה לקריאה בלבד ליומני הביקורת של אירועי המערכת: צפייה ביומנים (
roles/logging.viewer) בפרויקט
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
התפקידים המוגדרים מראש האלה כוללים את ההרשאות שנדרשות כדי לנהל אירועי תחזוקה של מארחים במכונות וירטואליות. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי לנהל אירועי תחזוקה של מארחים במכונות וירטואליות, נדרשות ההרשאות הבאות:
-
כדי לראות את הפרטים של מכונה וירטואלית:
compute.instances.getבפרויקט
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
סקירה כללית
כדי לבצע אופטימיזציה לתחזוקה של המכונות הווירטואליות:
הסבר על תחזוקת המארח מידע ולמידה על התדירות והתחזוקה של המכונות הווירטואליות בהתאם לסדרת המכונות שלהן. המידע הזה עוזר לכם לצמצם את ההפרעות לעומסי העבודה.
הגדרת הצליל והרטט של התראות ליצור התראות מבוססות-יומנים כדי לקבל התראות כשמתוזמנת, מתחילה או מסתיימת פעולת תחזוקה במכונות הווירטואליות. הגישה הזו עוזרת לכם לתכנן את הפעילויות מראש ולמנוע השבתה לא צפויה.
ניהול התחזוקה במכונות וירטואליות. איך בודקים אם נקבעה תחזוקה למכונות הווירטואליות. במקרה הצורך, אתם יכולים להתחיל את פעולות התחזוקה באופן ידני בכל המכונות הווירטואליות. התהליך הזה עוזר להגביר את העמידות של עומסי העבודה לאירועים במארח, למנוע זמני השבתה ולמקסם את הזמינות של האפליקציות.
הסבר על תחזוקת המארח
במהלך מחזור החיים של מכונה ב-Compute Engine, המכונה המארחת שבה פועלת המכונה שלכם עוברת כמה אירועים במארח. אירוע במארח יכול לכלול תחזוקה שוטפת של תשתית Compute Engine, או במקרים נדירים, שגיאה במארח. בנוסף, Compute Engine מבצע שדרוגים קלים ולא מפריעים ל-Hypervisor ולרשת ברקע.
בסדרת המכונות H4D יש את התכונות הבאות שקשורות לתחזוקת המארח:
| סוג המכונה | תדירות אופיינית של אירועי תחזוקה מתוזמנים | התנהגות תחזוקה | התראה מראש | תחזוקה על פי דרישה | הדמיית תחזוקה |
|---|---|---|---|---|---|
h4d-standard-192 |
מינימום 30 ימים | סיום | 7 ימים | כן | לא |
h4d-highmem-192 |
30 ימים לפחות | סיום | 7 ימים | כן | לא |
h4d-highmem-192-lssd |
30 ימים לפחות | ההפעלה מסתיימת עם שמירת נתונים ב-SSD מקומי | 7 ימים | כן | לא |
h4d-megamem-192 |
30 ימים לפחות | סיום | 7 ימים | כן | לא |
h4d-megamem-192-lssd |
30 ימים לפחות | ההפעלה מסתיימת עם שמירת נתונים ב-SSD מקומי | 7 ימים | כן | לא |
תדירויות התחזוקה שמוצגות בטבלה הקודמת הן הערכות, ולא הבטחות. יכול להיות ש-Compute Engine יבצע תחזוקה בתדירות גבוהה יותר מדי פעם.
הגדרת התראות למכונות וירטואליות
כדי לקבל התראות על אירועי תחזוקה מתוזמנים, שהתחילו או שהסתיימו במכונות הווירטואליות, אתם יכולים ליצור מדיניות התראות מבוססת-יומנים.
כדי ליצור התראה לאירועי התחזוקה של מכונות וירטואליות, צריך לבצע את השלבים הבאים. חוזרים על התהליך הזה לכל התראה שרוצים ליצור.
-
במסוף Cloud de Confiance , נכנסים לדף Logs Explorer:
אם אתם משתמשים בשורת החיפוש כדי למצוא את הדף הזה, בחרו בתוצאה עם כותרת המשנה Logging.
לוחצים על המתג Show query כדי להפעיל אותו.
בחלונית Query, יוצרים אחת מהשאילתות הבאות. השאילתות האלה מסננות רשומות ביומן כדי לזהות אירועי תחזוקה ספציפיים. אם רוצים להשתמש בכמה שאילתות, צריך לחזור על התהליך הזה כדי ליצור התראה ייחודית לכל שאילתה.
כדי לקבל התראות כשמתוזמנת פעולת תחזוקה למכונה וירטואלית:
protoPayload.methodName="compute.instances.upcomingMaintenance" severity>=DEFAULT protoPayload.status.message =~ "scheduled"כדי לקבל התראות כשחלון הזמן לתחזוקה של VM נפתח:
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"
כדי לאמת את השאילתה, לוחצים על Run query. אם השאילתה תקינה, בחלונית Query results יוצגו רשומות ביומן שתואמות לשאילתה.
בסרגל הכלים של תוצאות ה-Query, לוחצים על הרשימה Actions ובוחרים באפשרות Create log alert. מופיעה החלונית Create logs-based alert policy.
בקטע Alert details:
בשדה Alert Policy Name, מזינים שם למדיניות התראות.
ברשימה רמת החומרה של המדיניות, בוחרים באפשרות אזהרה (או ברמת חומרה גבוהה יותר).
לוחצים על הבא.
בקטע Choose logs to include in the alert, לוחצים על Next.
בקטע Set notification frequency and autoclose duration, מגדירים את הפרטים הבאים:
ברשימה Time between notifications, בוחרים באיזו תדירות רוצים לקבל התראות.
ברשימה Incident autoclose duration, בוחרים אחרי כמה זמן Cloud Logging יפסיק לשלוח התראות ויסגור את האירוע באופן אוטומטי.
לוחצים על הבא.
בקטע Who should be notified?, מציינים ערוץ התראות שאליו יישלחו התראות מ-Logging.
לוחצים על Save.
במאמר דוגמאות להתראות על אירועי תחזוקה שבמסמכי התיעוד של Compute Engine, תוכלו לראות דוגמאות להתראות על אירועי תחזוקה ב-Logs Explorer.
ניהול תחזוקה במכונות וירטואליות
כדי לראות ולנהל את פעולות התחזוקה של המכונות הווירטואליות, אתם יכולים לבצע אחת או יותר מהפעולות הבאות:
כדי לבדוק את המצב ואת השעה המתוזמנת של תחזוקה קרובה של מכונות וירטואליות, צופים במצב התחזוקה של המכונות הווירטואליות.
כדי להתחיל מיד בתחזוקה של המכונות הווירטואליות, במקום לחכות לזמן התחזוקה המתוזמן שלהן, מתחילים ידנית את התחזוקה של המכונות הווירטואליות.
הצגת מצב התחזוקה של מכונות וירטואליות
כדי לראות את המצב ואת השעה המתוזמנת של תחזוקה עתידית במכונות הווירטואליות, צריך לבדוק את הערך של השדה upcomingMaintenance במטא-נתונים של המופע. אם במכונה וירטואלית מסוימת אין את השדה upcomingMaintenance, לא מתוזמן אירוע תחזוקה למארח של המכונה הווירטואלית. למידע נוסף על השדות ב-upcomingMaintenance, קראו את ההגדרות של סטטוס התחזוקה במאמרי העזרה של Compute Engine.
בנוסף, אם מתוכננת תחזוקה למכונה וירטואלית, השדה upcomingGroupMaintenance מכיל את השדה maintenanceReasons. בשדה הזה מתוארת הסיבה לכך שנקבעה תחזוקה למכונה הווירטואלית, כפי שמתואר בטבלה הבאה:
| סוג התחזוקה | סיבת התחזוקה | מצב המכונות הווירטואליות |
|---|---|---|
| תחזוקה מתוכננת לתחזוקה שוטפת |
|
החיוב חל על מכונות וירטואליות פועלות, מושהות או מושעות. |
| תחזוקת חירום לא מתוכננת |
|
ההגדרה רלוונטית רק למכונות וירטואליות שפועלות. |
כדי לראות את השדה maintenanceReasons במכונה וירטואלית, צריך להשתמש ב-CLI של gcloud או ב-API בארכיטקטורת REST. כדי לראות את מצב התחזוקה של כמה מכונות וירטואליות בו-זמנית, צריך להשתמש במסוף Cloud de Confiance או ב-API בארכיטקטורת REST. אחרת, בוחרים באחת מהאפשרויות הבאות:
המסוף
נכנסים לדף VM instances במסוף Cloud de Confiance .
בעמודה Maintenance status (סטטוס התחזוקה), מוצג מצב התחזוקה של המכונות הווירטואליות ב-Compute Engine. אם העמודה הזו לא מופיעה בטבלה VM instances, לוחצים על view_column Column display options, מסמנים את התיבה Maintenance status ולוחצים על OK.
gcloud
כדי לראות את מצב התחזוקה של VM, משתמשים בפקודה gcloud compute instances describe עם הדגל --flatten=resourceStatus.upcomingMaintenance:
gcloud compute instances describe VM_NAME \
--flatten=resourceStatus.upcomingMaintenance \
--zone=ZONE
מחליפים את מה שכתוב בשדות הבאים:
VM_NAME: שם המכונה הווירטואלית.
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'אם לא מתוזמן אירוע תחזוקה למכונה הווירטואלית, הפלט יהיה דומה לזה:
--- 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 של השאילתה לביטוי סינון אחר.
שרת מטא-נתונים
כדי לראות את מצב התחזוקה של מכונה וירטואלית:
אם עדיין לא עשיתם את זה, מתחברים ל-Linux או ל-Windows VM.
שולחים לשרת המטא-נתונים שאילתה באופן הבא:
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 נקבעה תחזוקה למכונה הווירטואלית. אתם יכולים להתחיל את התחזוקה ידנית לפני השעה שנקבעה. |
|
| בתהליך | מתבצעת תחזוקה. אי אפשר לקבוע לו מועד חדש. |
|
| הושלמה | פעולות התחזוקה הסתיימו. Compute Engine הסיר את כל ההתראות על תחזוקה מהמכונה הווירטואלית. |
|
אפשר להתחיל תחזוקה ידנית לכמה מכונות וירטואליות בו-זמנית או למכונות וירטואליות ספציפיות. כדי להשבית את השירות בכמה מכונות וירטואליות, משתמשים במסוף Cloud de Confiance . אם המכונות הווירטואליות נמצאות באותו אזור, משתמשים ב-CLI של gcloud. למכונות וירטואליות ספציפיות, בוחרים באחת מהאפשרויות הבאות:
המסוף
נכנסים לדף VM instances במסוף Cloud de Confiance .
בוחרים את השורות של המכונות הווירטואליות שרוצים להתחיל בהן את פעולת התחזוקה.
לוחצים על הפעלת תחזוקה.
כדי לאשר, לוחצים על הפעלת תחזוקה.
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.