ניהול אירועי תחזוקה ב-TPU במצב 'כל הקיבולת'
כל מארחי ה-TPU עוברים תחזוקה שוטפת. במצב 'כל הקיבולת' של TPU, אתם יכולים לתכנן אירועי תחזוקה עתידיים ולהפעיל את פעולות התחזוקה מתי שתרצו על כל הקיבולת שלכם. אפשר לעדכן את הקיבולת שנעשה בה שימוש ואת הקיבולת שלא נעשה בה שימוש בו-זמנית או בנפרד. אפשר גם לבצע תחזוקה ברמת מכונה וירטואלית, תת-בלוק, בלוק או הזמנה. השליטה המדויקת הזו בתחזוקה מאפשרת לכם ליצור רצף תחזוקה אופטימלי ולתזמן פעולות תחזוקה כדי למזער את ההשפעה על העסק.
מצב 'כל הקיבולת' של TPU תומך רק ב'תחזוקה מקובצת', כלומר פעולות התחזוקה של כל המכונות הווירטואליות בהזמנה מתוזמנות לאותו זמן. לכל המכונות הווירטואליות של TPU במקום שמור יש חלון זמן לתחזוקה זהה. עם זאת, אפשר לבצע את פעולות התחזוקה בנפרד ברמת המארח, תת-הבלוק, הבלוק או ההזמנה. התראות על תחזוקה נשלחות בערך 90 יום מראש. עבודות התחזוקה לא יתבצעו בתדירות גבוהה יותר מפעם אחת כל 90 ימים.
אם אתם משתמשים ב-TPU Cluster Director ב-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.
- מעבירים את המתג Show query (הצגת השאילתה) למצב 'מופעל'.
- בחלונית השאילתה, יוצרים שאילתה בפורמט שמפורט בקטעים הבאים.
- אחרי שמוודאים שהתוצאות שהוחזרו תואמות למה שרוצים, אפשר ליצור התראה. לשם כך, לוחצים על התפריט הנפתח פעולות, בוחרים באפשרות יצירת התראה על סמך יומן וממלאים את הפרטים בחלונית יצירת מדיניות התראה על סמך יומנים.
שאילתה לגבי מועד התחזוקה שנקבע למכונה וירטואלית
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 וירטואלית
אפשר לאחזר את סטטוס התחזוקה של מכונת Cloud TPU וירטואלית באמצעות 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 וירטואלית זמין במאמר הפעלה ידנית של אירוע תחזוקה של מארח במסמכי התיעוד של Compute Engine.