הרבה מערכות תוכנה שמסתמכות על רצף מדויק של אירועים נשענות על שעון מערכת יציב ועקבי. הן משתמשות ביומני מערכת עם חותמות זמן כדי לוודא שהזמן מסונכרן ולפתור בעיות בזמן שהן מתרחשות. כדי לשמור על סנכרון של שעוני המערכת, מכונות וירטואליות (VM) של Compute Engine מוגדרות מראש לשימוש בפרוטוקול זמן ברשת (NTP), פתרון משולב של חומרה ותוכנה לסנכרון זמן. אם חשוב לכם להבטיח סנכרון מדויק של השעה ולעקוב אחרי הדיוק של סנכרון השעה, אתם יכולים להגדיר שעה מדויקת במקום NTP, כדי לסנכרן את השעון של המכונה הווירטואלית עם שעון המארח באמצעות chrony ו-ptp_kvm. התצורה הזו נועדה להשיג דיוק של עד 1 אלפית השנייה בהגדרות נתמכות.
סוגי מכונות נתמכים
סוגי המכונות הבאים תומכים בשעה מדויקת:
מערכות הפעלה נתמכות
מערכות ההפעלה הבאות תומכות בשעה מדויקת:
| מערכת הפעלה | גרסאות | תמונות |
|---|---|---|
| CentOS Stream | 9 | centos-stream-9 |
| מערכת הפעלה שמותאמת לקונטיינרים | COS 105 LTS, COS 109 LTS, COS 113 LTS, COS 117 LTS | cos-105-lts, cos-109-lts, cos-113-lts, cos-117-lts |
| Debian | 11 (Bullseye), 12 (Bookworm) | debian-11, debian-12 |
| Fedora Cloud | 39 | fedora-cloud-39 |
| RHEL | 8, 9 | rhel-8-4-sap-ha, rhel-8-6-sap-ha, rhel-8-8-sap-ha, rhel-8-10-sap-ha, rhel-9, rhel-9-0-sap-ha, rhel-9-2-sap-ha, rhel-9-4-sap-ha |
| Rocky Linux | 8, 9 | rocky-linux-8, rocky-linux-8-optimized-gcp, rocky-linux-9-optimized-gcp, rocky-linux-9-optimized-gcp |
| SLES | 15 | sles-15, sles-15-sp2-byos, sles-15-sp2-sap, sles-15-sp3-byos, sles-15-sp3-sap, sles-15-sp4-byos, sles-15-sp4-sap, sles-15-sp5-byos, sles-15-sp5-sap |
| Ubuntu | 22.04 LTS (Jammy Jellyfish), 24.04 LTS (Noble Numbat) | ubuntu-2204-lts, ubuntu-2404-lts-amd64 |
| Ubuntu Pro | 2004 | ubuntu-pro-2004-lts, ubuntu-pro-2004-lts-amd64 |
אזורים נתמכים
סנכרון מדויק של השעה נתמך בכל Google Cloud האזורים והאזורים הציבוריים הרגילים עבור סוגי מכונות ומערכות הפעלה נתמכים.
הגדרת סנכרון מדויק של השעה
כדי להגדיר סנכרון מדויק של השעה במכונות הווירטואליות של הפרויקט, צריך לבצע את המשימות הבאות לכל מכונה וירטואלית:
- מגדירים את
chronyכך שישתמש ב-ptp-kvmכמקור הזמן שלו. - מגדירים את Google Cloud Ops Agent לאיסוף ולניתוח נתונים.
אחרי שתסיימו את שתי המשימות, תוגדר סנכרון מדויק של הזמן במכונות הווירטואליות בפרויקט.
ב-GitHub אפשר לראות סקריפט לדוגמה שיוצר מכונת VM ומשלים את שתי המשימות כדי להגדיר סנכרון מדויק של השעה.
הגדרה של chrony לשימוש ב-ptp-kvm
כדי להגדיר את chrony כך שישתמש ב-ptp-kvm כמקור הזמן שלו, מריצים את הסקריפט הבא בכל אחת מהמכונות הווירטואליות של פרויקט Google Cloud :
הגדרת Google Cloud סוכן תפעול במכונה הווירטואלית
כדי להגדיר את Google Cloud Ops Agent לאיסוף ולניתוח נתונים, מריצים את הסקריפט הבא בכל מכונה וירטואלית של Google Cloud הפרויקט:
הגדרת מעקב אחר סנכרון הזמן
כדי להגדיר מעקב אחר סנכרון הזמן במכונות ה-VM של פרויקט Google Cloud, מריצים את הסקריפט להגדרת ה-Logging ולוח הבקרה של פרויקטGoogle Cloud . הסקריפט הזה עוזר לכם לבצע את המשימות הבאות בפרויקט Google Cloud :
- הוא מגדיר הרשאות מתאימות בחשבון השירות שמשויך לפרויקט של מכונת ה-VM Google Cloud .
- הכלי יוצר מדד מבוסס-יומן שמשמש
chronyכדי לוודא ש השעונים במכונה הווירטואלית ובשרת המארח שלה מסונכרנים. - נוצר לוח בקרה למדידת יכולת המעקב של השעון במכונה הווירטואלית לפי UTC, על ידי שילוב של המדדים הבאים:
- הדיוק של השעון במארח של המכונה הווירטואלית ביחס ל-UTC, שזמין בתורGoogle Cloud מדד,
instance/clock_accuracy/ptp_kvm/nanosecond_accuracy. - המדדים
chronyמודדים את רמת הדיוק של השעון במכונה הווירטואלית ביחס לשעון במארח.
- הדיוק של השעון במארח של המכונה הווירטואלית ביחס ל-UTC, שזמין בתורGoogle Cloud מדד,
כדי לבצע את המשימות הקודמות, מריצים את הסקריפט הבא:
אחרי שהסקריפט מסיים לפעול, אפשר להשתמש בלוח הבקרה שהוא יצר כדי לראות את נתוני הדיוק של השעון במכונות הווירטואליות של הפרויקט.
המאמרים הבאים
- כדי לראות קוד לדוגמה מלא להגדרת זמן מדויק, כולל דוגמאות של Google Kubernetes Engine, אפשר לעבור אל מאגר הדוגמאות.
- מידע על הגדרת סנכרון זמן לצמתים של Google Kubernetes Engine זמין במאמר התאמה אישית של הגדרות המערכת של הצמתים.
- בודקים את האפשרויות הזמינות להגדרת סנכרון הזמן של המכונה הווירטואלית.