ניהול אירועי תחזוקה באמצעות מעבדי TPU במצב 'כל הקיבולת'
כל מארחי ה-TPU עוברים תחזוקה שוטפת. במצב 'כל הקיבולת', אתם יכולים לתכנן אירועי תחזוקה עתידיים ולהפעיל את פעולות התחזוקה מתי שתרצו על כל הקיבולת שלכם. אפשר לעדכן את הקיבולת בשימוש ואת הקיבולת שלא בשימוש בו-זמנית או בנפרד. אפשר גם לבצע תחזוקה ברמת המכונה הווירטואלית, תת-הבלוק, הבלוק או ההזמנה. השליטה המדויקת הזו בתחזוקה מאפשרת לכם ליצור רצף אופטימלי של תחזוקה ולתזמן פעולות תחזוקה כדי למזער את ההשפעה על העסק.
במצב 'קיבולת' יש תמיכה רק ב'תחזוקה מקובצת', כלומר פעולות התחזוקה של כל המכונות הווירטואליות בתוך הזמנה מתוזמנות לאותו זמן. לכל המכונות הווירטואליות של TPU בהזמנה יש חלון זמן זהה לתחזוקה. עם זאת, אפשר לבצע את פעולות התחזוקה בנפרד ברמת המארח, תת-הבלוק, הבלוק או ההזמנה. ההתראות על תחזוקה נשלחות בערך 90 יום מראש. עבודות התחזוקה לא יתבצעו בתדירות גבוהה יותר מפעם אחת כל 90 ימים.
אם אתם משתמשים במצב'כל הקיבולת' ב-GKE ואתם משתמשים במאגרי צמתים של חלקי TPU מרובי-מארחים, מומלץ למחוק את מאגר הצמתים של GKE לפני שמתחילים באופן ידני את התחזוקה בהמתנה של מארחים במאגר הצמתים הזה. אחרי שהתחזוקה תתבצע בכל המארחים במאגר הצמתים המקורי, תוכלו ליצור מחדש את מאגר הצמתים.
הדוגמה הבאה מציגה ציר זמן של אירוע תחזוקה של מארח TPU:
- נקבעה תחזוקה. תישלח אליכם הודעה שהמארח יעודכן תוך 90 ימים.
- אפשר לבחור לעדכן את המארח באופן ידני תוך 90 יום.
- אחרי 90 יום, פעולת התחזוקה מופעלת ללא יוצא מן הכלל.
- אם מתוכנן אירוע תחזוקה נוסף לפני שהאירוע הקודם מופעל, הפעולה השנייה מתוכננת להפעלה אחרי 180 ימים, 90 ימים אחרי המועד שבו מתוכנן אירוע התחזוקה הראשוני.
הגדרת התראות על תחזוקה לגבי קיבולת פיזית
Compute Engine שולח לכם אירועים של Cloud Logging לגבי תחזוקה מתוזמנת, תחזוקה שהתחילה או תחזוקה שהסתיימה. אירועי התחזוקה האלה נשארים ביומנים, כך שתוכלו ליצור שאילתות ביומן כדי לקבל תצוגה היסטורית של התחזוקה של הקיבולת שלכם. אפשר גם ליצור כללי מדיניות להתראות שמבוססים על יומנים כדי לקבל התראות על אירועי תחזוקה עתידיים של הזמנה, חסימה או חסימת משנה.
כדי ליצור התראה על אירועי תחזוקה בקיבולת הפיזית:
- במסוף Google Cloud , עוברים אל Logs Explorer.
- מוודאים שהאפשרות הצגת השאילתה מופעלת.
- בחלונית השאילתה, יוצרים שאילתה בפורמט שמפורט בקטעים הבאים. מחליפים את הפלייסהולדר של הפרמטר המתאים ומריצים את השאילתה.
- אחרי שמוודאים שהתוצאות שמוחזרות תואמות למה שרוצים, אפשר ליצור התראות. לשם כך, בוחרים באפשרות יצירת התראה על יומן מהתפריט הנפתח פעולות בסרגל הכלים של תוצאות השאילתה ומזינים את המידע הנדרש.
שאילתה לגבי תחזוקה קרובה
הנה דוגמה לשאילתה לחיפוש מידע על תחזוקה עתידית:
protoPayload.methodName="compute.CAPACITY_COMPONENT.upcomingGroupMaintenance" severity>=DEFAULT protoPayload.resourceName="projects/shared-reservation-project/reservations/RESOURCE_NAME" protoPayload.status.message =~ "scheduled"
מחליפים את CAPACITY_COMPONENT ו-RESOURCE_NAME בערכים הבאים:
| קבלת התראה על תחזוקה קרובה של | CAPACITY_COMPONENT |
RESOURCE_NAME |
|---|---|---|
| כל ההזמנות | reservations |
השמטה RESOURCE_NAME |
| הזמנה ספציפית | reservations |
YOUR_RESERVATION_NAME |
| חסימות בכל ההזמנות | reservations.blocks |
השמטה RESOURCE_NAME |
| בלוק ספציפי | reservations.blocks |
YOUR_RESERVATION_NAME/reservationBlocks/YOUR_RESERVATION_BLOCK_ID |
| חסימות משנה בכל ההזמנות | reservations.blocks.subblocks |
השמטה RESOURCE_NAME |
| חסימה משנית ספציפית | reservations.blocks.subblocks |
YOUR_RESERVATION_NAME/reservationBlocks/YOUR_RESERVATION_BLOCK_ID/reservationSubBlocks/YOUR_RESERVATION_SUBBLOCK_ID |
שאילתה לפתיחת חלון זמן לתחזוקה
protoPayload.methodName="compute.reservations.CAPACITY_COMPONENT.startGroupMaintenance" severity>=DEFAULT protoPayload.status.message =~ "started"
מחליפים את CAPACITY_COMPONENT באחד מהערכים הבאים:
| קבלת התראה על פתיחת חלון זמן לתחזוקה עבור | CAPACITY_COMPONENT |
|---|---|
| חסימות בהזמנות | reservations.blocks |
| בלוקים משניים בהזמנה | reservations.blocks.subblocks |
שאילתה לגבי תחזוקה שהושלמה
הדוגמה הבאה היא לשאילתה שמשמשת לחיפוש של פעולות תחזוקה שהסתיימו:
protoPayload.methodName="compute.reservations.CAPACITY_COMPONENT.completedGroupMaintenance" severity>=DEFAULT protoPayload.resourceName="projects/YOUR_RESERVATION_PROJECT/reservations/RESOURCE" protoPayload.status.message =~ "completed"
מחליפים את CAPACITY_COMPONENT ו-RESOURCE_NAME בערכים הבאים:
| קבלת התראה על תחזוקה שהסתיימה עבור | CAPACITY_COMPONENT |
RESOURCE_NAME |
|---|---|---|
| כל ההזמנות | reservations |
השמטה של RESOURCE_NAME |
| הזמנה ספציפית | reservations |
YOUR_RESERVATION_NAME |
| חסימות בכל ההזמנות | reservations.blocks |
השמטה של RESOURCE_NAME |
| בלוק ספציפי | reservations.blocks |
YOUR_RESERVATION_NAME/reservationBlocks/YOUR_RESERVATION_BLOCK_ID |
| חסימות משנה בכל ההזמנות | reservations.blocks.subblocks |
השמטה של RESOURCE_NAME |
| חסימה משנית ספציפית | reservations.blocks.subblocks |
YOUR_RESERVATION_NAME/reservationBlocks/YOUR_RESERVATION_BLOCK_ID/reservationSubBlocks/YOUR_RESERVATION_SUBBLOCK_ID |
צפייה בסטטוס התחזוקה של הקיבולת הפיזית
אפשר לראות את סטטוס התחזוקה של הקיבולת באמצעות Cloud Logging, API ו-CLI. מידע על סטטוס התחזוקה מסופק בארבע רמות: הזמנה, בלוק, תת-בלוק ומארח.
Cloud Logging
הנה דוגמה ל-JSON שנוצר בתגובה לשאילתה לדוגמה:
{ "protoPayload": { "@type": "type.googleapis.com/google.cloud.audit.AuditLog", "status": { "message": "Maintenance is scheduled for this block in reservation YOUR_RESERVATION. Review the maintenance schedule by describing the reservation and block via gcloud CLI" }, "metadata": { "type":SCHEDULED "canReschedule":True "windowGroupStartTime": '2025-09-12T13:00:00.000-07:00', "windowGroupEndTime": '2025-09-12T17:00:00.000-07:00', "maintenanceGroupStatus":PENDING, "maintenancePendingCount":128 # Used and Unused Machines, "instanceMaintenancePendingCount": 64 # VMs Only }, "methodName": "compute.reservations.block.upcomingGroupMaintenance", … }, }
gcloud
gcloud compute reservations blocks describe YOUR_RESERVATION \ --block-name=YOUR_BLOCK \ --project=YOUR_PROJECT \ --zone=YOUR_ZONE
הפלט אמור להיראות כך:
count: 128 # Host count creationTimestamp: '2025-08-19T18:23:32.825-07:00' id: '6404259976725386932' inUseCount: 64 # In use host count kind: compute#reservationBlock name: exr1-block-0002 … reservationMaintenance: instanceMaintenanceOngoingCount: 0 instanceMaintenancePendingCount: 64 # VMs Only maintenanceOngoingCount: 0 maintenancePendingCount: 128 # Used and Unused Hosts schedulingType: GROUPED subblockInfraMaintenanceOngoingCount: 0 subblockInfraMaintenancePendingCount: 0 upcomingGroupMaintenance: canReschedule: true maintenanceReasons: - PLANNED_UPDATE maintenanceStatus: PENDING type: SCHEDULED windowEndTime: '2025-09-12T17:00:00.000-07:00' windowStartTime: '2025-09-12T13:00:00.000-07:00' …
הערכים הבאים בפלט מתארים את פרטי התחזוקה:
-
reservationMaintenance.instanceMaintenanceOngoingCount: מספר המארחים בשימוש שעובר עדכון reservationMaintenance.instanceMaintenancePendingCount: מספר המארחים בשימוש שממתינים לתחזוקהreservationMaintenance.maintenanceOngoingCount: מספר המארחים שלא נעשה בהם שימוש שמתעדכן-
reservationMaintenance.maintenancePendingCount: מספר המארחים שלא נעשה בהם שימוש שממתינים לתחזוקה -
reservationMaintenance.upcomingGroupMaintenance.maintenanceReasons: סוג התחזוקה reservationMaintenance.upcomingGroupMaintenance.maintenanceStatus: הסטטוס של פעולת התחזוקה-
reservationMaintenance.upcomingGroupMaintenance.type: סוג התחזוקה (SCHEDULEDלתחזוקה מתוכננת אוUNSCHEDULEDלתחזוקה לא מתוכננת או לתחזוקת חירום) -
reservationMaintenance.upcomingGroupMaintenance.windowEndTime: סיום חלון הזמן המתוכנן של פעולת התחזוקה -
reservationMaintenance.upcomingGroupMaintenance.windowStartTime: תחילת חלון הזמן המתוכנן לפעולת התחזוקה
הגדרת התראות על תחזוקה של מכונות וירטואליות של TPU
אתם יכולים ליצור התראות לאירועי תחזוקה במכונות הווירטואליות של TPU:
- במסוף Google Cloud , עוברים אל Logs Explorer.
- מעבירים את המתג הצגת שאילתה למצב 'מופעל'.
- בחלונית השאילתה, יוצרים שאילתה בפורמט שמפורט בקטעים הבאים.
- אחרי שמוודאים שהתוצאות שהוחזרו תואמות למה שרוצים, אפשר ליצור התראה. לשם כך, לוחצים על התפריט הנפתח פעולות, בוחרים באפשרות יצירת התראה על סמך יומן וממלאים את הפרטים בחלונית יצירת מדיניות התראה על סמך יומנים.
שאילתה לגבי מועד התחזוקה שנקבע למכונה וירטואלית
protoPayload.methodName="compute.instances.upcomingMaintenance" severity>=DEFAULT protoPayload.status.message =~ "scheduled"
שאילתה לגבי מועד הפתיחה של חלון זמן לתחזוקה של מכונה וירטואלית
protoPayload.methodName="compute.instances.upcomingMaintenance" severity>=DEFAULT protoPayload.status.message =~ "ongoing"
התחילה שאילתה לגבי תחזוקה של מכונות VM
protoPayload.methodName="compute.instances.blocks.terminateOnHostMaintenance" severity>=DEFAULT
שאילתה לגבי השלמת תחזוקה של מכונה וירטואלית
protoPayload.methodName="compute.instances.upcomingMaintenance" severity>=DEFAULT protoPayload.status.message =~ "completed"
צפייה בסטטוס התחזוקה של Cloud TPU VM
אפשר לאחזר את סטטוס התחזוקה של Cloud TPU VM באמצעות Compute Engine instance API או באמצעות פקודה curl מתוך מערכת ההפעלה של האורח.
תיאור של מכונה
gcloud
gcloud compute instances describe INSTANCE --zone ZONE
הפלט של הפקודה אמור להיראות כך:
… upcomingMaintenance:{ "type":"SCHEDULED" "canReschedule":True "windowStartTime": '2025-09-12T13:00:00.000-07:00' "windowEndTime": '2025-09-12T17:00:00.000-07:00' "latestWindowStartTime": '2025-09-12T13:00:00.000-07:00' "maintenanceStatus":"PENDING" ...
curl
curl http://metadata.google.internal/computeMetadata/v1/instance/upcoming-maintenance?alt=json -H "Metadata-Flavor: Google"
הפלט של הפקודה אמור להיראות כך:
{ "maintenanceType":"SCHEDULED" "canReschedule":True "windowStartTime": '2025-09-12T13:00:00.000-07:00' "windowEndTime": '2025-09-12T17:00:00.000-07:00' "latestWindowStartTime": '2025-09-12T13:00:00.000-07:00' "maintenanceStatus":"PENDING" }
אפשר למצוא התראות על תחזוקה גם ב-Cloud Logging.
ההודעה הבאה ביומן היא דוגמה לתחזוקה מתוכננת בהמתנה. לדוגמה לשאילתה, אפשר לעיין במאמר הצגת סטטוס התחזוקה של קיבולת פיזית.
{ "protoPayload": { "@type": "type.googleapis.com/google.cloud.audit.AuditLog", "status": { "message": "Maintenance is scheduled for this instance. Review the maintenance schedule by describing the VM with gcloud CLI or querying the http://metadata.google.internal/computeMetadata/v1/instance/upcoming-maintenance metadata key." }, "metadata": { "canReschedule": true "latestWindowStartTime": "2024-01-01:00:00:00PST" "maintenanceStatus": "PENDING" "type": "SCHEDULED" "windowEndTime": "2024-01-01:00:02:00PST" "windowStartTime": "2024-01-01:00:00:00PST" }, }, "operation": { "id": "systemevent-1702539760425-60c736da2db40-701ddf19-b5424b20", "producer": "compute.instances.upcomingMaintenance", "first": true, "last": false }, }
בדוגמה הבאה מוצגת הודעה ביומן על תחזוקה לא מתוכננת שמתבצעת כרגע. לדוגמה של שאילתה, אפשר לעיין במאמר שאילתה לבדיקה מתי חלון זמן לתחזוקה פתוח.
{ "protoPayload": { "@type": "type.googleapis.com/google.cloud.audit.AuditLog", "status": { "message": "Maintenance window has started for this instance. Review the maintenance schedule by describing the VM with gcloud CLI or querying the http://metadata.google.internal/computeMetadata/v1/instance/upcoming-maintenance metadata key." }, "metadata": { "canReschedule": true "latestWindowStartTime": "2024-01-01:00:00:00PST" "maintenanceStatus": "ONGOING" "type": "UNSCHEDULED" "windowEndTime": "2024-01-01:00:02:00PST" "windowStartTime": "2024-01-01:00:00:00PST" }, }, "operation": { "id": "systemevent-1702539760425-60c736da2db40-701ddf19-b5424b20", "producer": "compute.instances.upcomingMaintenance", "first": true, "last": false }, }
בדוגמה הבאה מוצגת הודעה ביומן על תחזוקה שהסתיימה. לדוגמה לשאילתה, ראו שאילתה לבדיקה מתי הסתיימה התחזוקה של מכונה וירטואלית.
{ "protoPayload": { "@type": "type.googleapis.com/google.cloud.audit.AuditLog", "status": { "message": "Maintenance window has completed for this instance. All maintenance notifications on the instance have been removed." }, "operation": { "id": "systemevent-1702539760425-60c736da2db40-701ddf19-b5424b20", "producer": "compute.instances.upcomingMaintenance", "first": false, "last": true }, }
הפעלה ידנית של תחזוקה בהמתנה של קיבולת פיזית
אחרי שתקבעו אירוע תחזוקה (הערך של maintenanceStatus יהיה PENDING), תוכלו להתחיל ידנית את התחזוקה של ההזמנות, הבלוקים או הבלוקים המשניים שבהם המאפיין canReschedule מוגדר לערך True. כשמפעילים ידנית אירוע תחזוקה בהמתנה, מה שקורה תלוי במצב התחזוקה של ההזמנה, החסימות או חסימות המשנה. בטבלה הבאה מתואר מה קורה בכל אחד מהמקרים האלה:
| מצב תחזוקה | תיאור | מה שרואים |
|---|---|---|
| מתוזמנת | נקבעה תחזוקה למקום השמור ב-Compute Engine. אתם יכולים להתחיל את התחזוקה ידנית לפני השעה שנקבעה. | ב-Google Cloud CLI או ב-API בארכיטקטורת REST, השדה maintenanceStatus מוגדר ל-PENDING. |
| בתהליך | מתבצעות פעולות תחזוקה. אי אפשר לשנות את מועד הפגישה. | ב-Google Cloud CLI או ב-API בארכיטקטורת REST, השדה maintenanceStatus
מוגדר ל-ONGOING. |
| הושלמה | התחזוקה הסתיימה. Compute Engine הסיר את כל ההתראות על תחזוקה מהמכונה הווירטואלית. | ב-Google Cloud CLI או ב-API בארכיטקטורת REST, השדה maintenanceStatus לא קיים. |
התחלת תחזוקה ידנית של כל ההזמנה
הפקודה הבאה מפעילה תחזוקה בהזמנה. משתמשים בפרמטר --scope כדי לציין אחד מהערכים הבאים שמגדירים את ההיקף של פעולת התחזוקה:
- כל המארחים:
--scope=all - מארחים עם מכונות וירטואליות פעילות:
--scope=running - מכונות וירטואליות שלא בשימוש, שהופסקו או שהושעו:
--scope=unused
כדי להתחיל תחזוקה בכל הבלוקים של הזמנה, מריצים את הפקודה הבאה:
gcloud compute reservations perform-maintenance YOUR_RESERVATION \ --zone=YOUR_ZONE \ --scope=all
כדי לבדוק את ההתקדמות של אירוע תחזוקה, מריצים את הפקודה הבאה:
gcloud compute reservations describe YOUR_RESERVATION \ --project=YOUR_PROJECT \ --zone=YOUR_ZONE
הפלט אמור להיראות כך:
ResourceStatus upcomingGroupMaintenance: "type":"SCHEDULED" "canReschedule":True "maintenanceStatus":"PENDING" → "ONGOING" "maintenancePendingCount":512 → 0 # all hosts are moved into an ongoing state. "maintenanceOngoingCount":0 → 512 → 256 → 0 # this number first increases to all hosts # as machines complete, this number reduces.
הפעלה ידנית של תחזוקה בבלוק
הפקודה הבאה מפעילה תחזוקה בבלוק. משתמשים בפרמטר --scope כדי לציין אחד מהערכים הבאים שמגדירים את היקף פעולת התחזוקה:
- כל המארחים:
--scope=all - מארחים עם מכונות וירטואליות פעילות:
--scope=running - מכונות וירטואליות שלא בשימוש, שהופסקו או שהושעו:
--scope=unused
הפקודה הבאה מראה איך להתחיל תחזוקה במארחים פעילים:
gcloud compute reservations blocks perform-maintenance YOUR_RESERVATION \ --block-name=YOUR_BLOCK_NAME \ --scope=RUNNING \ --project=YOUR_PROJECT \ --zone=YOUR_ZONE
הפקודה הבאה מראה איך בודקים את התקדמות התחזוקה של בלוק:
gcloud compute reservations blocks describe YOUR_RESERVATION \ --block-name=YOUR_BLOCK_NAME \ --project=YOUR_PROJECT \ --zone=YOUR_ZONE
הפלט אמור להיראות כך:
ResourceStatus upcomingGroupMaintenance: "maintenanceType":"SCHEDULED" … "maintenanceGroupStatus":"PENDING" → "ONGOING" "maintenancePending":0 "maintenanceOngoing":70 → 0
הפעלה ידנית של תחזוקה בחלק משנה
כשמתחילים תחזוקה של תת-בלוק, לא מציינים את הפרמטר --scope כי תת-בלוק הוא היקף התחזוקה הקטן ביותר.
הפקודה הבאה מתחילה תחזוקה בכל המארחים בבלוק:
gcloud compute reservations sub-blocks perform-maintenance YOUR_RESERVATION \ --block-name=YOUR_BLOCK_NAME \ --sub-block-name=YOUR_SUBBLOCK_NAME \ --project=YOUR_PROJECT \ --zone=YOUR_ZONE
הפקודה הבאה בודקת את התקדמות התחזוקה:
gcloud compute reservations sub-blocks describe YOUR_RESERVATION \ --block-name=YOUR_BLOCK_NAME \ --sub-block-name=YOUR_SUBBLOCK_NAME \ --project=YOUR_PROJECT \ --zone=YOUR_ZONE
הפלט אמור להיראות כך:
ResourceStatus groupMaintenance: "maintenanceType":"SCHEDULED" "canReschedule":True "maintenanceGroupStatus":"PENDING" → "ONGOING" "maintenancePendingCount": 32 → 0 # 32 hosts updated "maintenanceOngoingCount":0 → 32 → 0 "instanceMaintenancePendingCount": 64 → 0 "instanceMaintenanceOngoingCount": 0 → 64 → 0 # 64 instances updated
הפעלה ידנית של תחזוקה בהמתנה במכונת TPU וירטואלית
אם מארח מפעיל יותר ממכונה וירטואלית אחת, הפעלת התחזוקה במכונה וירטואלית אחת תפעיל תחזוקה בכל המכונות הווירטואליות במארח. מידע על הפעלה ידנית של אירוע תחזוקה של TPU VM זמין במאמר הפעלה ידנית של אירוע תחזוקה של מארח במסמכי התיעוד של Compute Engine.