לפני שמתחילים
- אם רוצים לרשום ביומן את הפלט של היציאה הטורית ב-Cloud Logging, כדאי לעיין במידע על Cloud Logging.
-
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא תהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Google Cloud . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים הבאות:
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
המסוף
כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים ולממשקי ה-API, לא צריך להגדיר אימות. Google Cloud
gcloud
-
התקינו את ה-CLI של Google Cloud. אחר כך, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:
gcloud initאם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
- הגדרת אזור ותחום כברירת מחדל
REST
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.
התקינו את ה-CLI של Google Cloud.
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Google Cloud .
תגובה לשגיאת ליבה קריטית
תגובה לשגיאת ליבה קריטית יכולה לקרות כשהליבה לא מצליחה לטעון מודולים בצורה תקינה, שנדרשים להפעלה של מערכת ההפעלה של האורח.initramfs
סוג אחר של פאניקה בקרנל יכול להתרחש במצב שבו הקרנל לא יודע איך לטפל בבקשה מסוימת, והוא מגן על עצמו על ידי עצירה. יכול להיות שתתרחש תגובה לשגיאת ליבה קריטית במכונה וירטואלית של Compute Engine שמריצה RedHat, SUSE, CentOS או Ubuntu.
הודעות שגיאה נפוצות
לפניכם כמה מהאירועים הנפוצים ביותר של תגובה לשגיאת ליבה קריטית לעיון:
Kernel panic - not syncing: hung_task: blocked tasks
Kernel Panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
Kernel panic - not syncing: NMI: Not continuing
Kernel panic - not syncing: out of memory. panic_on_oom is selected
Kernel panic - not syncing: Fatal Machine check
גורמים נפוצים
יכולות להיות כמה סיבות לשגיאת Kernel Panic. אלה כמה מהסיבות הנפוצות:
- הרשומה שקשורה לקובץ
initramfsשמתאים לליבה לא קיימת בקובץgrub.cfg. - קובץ
initramfsלא נוצר בספרייה/bootבמהלך התקנת ליבת המערכת. - קובץ ה-
initramfsנוצר באופן חלקי בלבד או שהוא פגום.
תסמינים
כשחווים פאניקה בקרנל במכונת VM, סימפטום נפוץ הוא שהקרנל לא מאפשר להתחבר ל-VM, גם כשמשתמשים במסוף הטורי.
כדאי לבדוק את היומנים של המסוף הטורי כדי לזהות את ליבת המערכת (kernel) שנטענה על ידי מערכת ההפעלה של האורח. לדוגמה:
[ 0.000000] Initializing cgroup subsys cpu [ 0.000000] Initializing cgroup subsys cpuacct [ 0.000000] Linux version 3.10.0-1160.95.1.el7.x86_64 (mockbuild@x86-vm-42.build.eng.bos.redhat.com) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) ) #1 SMP Thu Aug 10 10:46:21 EDT 2023
בדוגמה הבאה מוצג אירוע של תגובה לשגיאת ליבה קריטית בגלל בעיות ב-initramfs:
[ 1.520840] No filesystem could mount root, tried: [ 1.520840] [ 1.521964] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) [ 1.523495] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 3.10.0-1160.95.1.el7.x86_64 #1 [ 1.524932] Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/11/2022 [ 1.526901] Call Trace: [ 1.527421] dump_stack+0x41/0x60 [ 1.527978] panic+0xe7/0x2ac [ 1.528578] mount_block_root+0x2be/0x2e6 [ 1.529693] ? do_early_param+0x95/0x95 [ 1.530441] prepare_namespace+0x135/0x16b [ 1.531237] kernel_init_freeable+0x203/0x22d [ 1.532081] ? rest_init+0xaa/0xaa [ 1.532808] kernel_init+0xa/0x103 [ 1.533395] ret_from_fork+0x35/0x40 [ 1.535229] Kernel Offset: 0x23a00000 from 0xffffffff81000000
פתרון השגיאה 'תגובה לשגיאת ליבה קריטית'
כדי לפתור את שגיאת Kernel Panic, מבצעים את השלבים הבאים:
מתחברים למסוף הטורי ונכנסים ל-VM ממסוף Google Cloud .
לוחצים על איפוס עבור מכונה וירטואלית במסוף Google Cloud .
אחרי שמסך הפתיחה של GRUB מופיע, בוחרים את ליבת המערכת או את ליבת החילוץ שפעלו קודם, ואז מפעילים את המערכת. כתוצאה מכך, המכונה הווירטואלית תופעל עם ליבת מערכת ההפעלה שנבחרה.

כשהמכונה הווירטואלית נגישה, אפשר ליזום חיבור SSH למכונה הווירטואלית.
מזהים את הגורם לבעיה ופועלים בהתאם.
לדוגמה, אם הקובץ
initramfsחסר או פגום, מבצעים את השלבים הבאים:יוצרים את הקובץ
initramfsשמתאים לליבה המקורית באמצעות הפקודהdracut:dracut -f /boot/initramfs-KERNEL_VERSION.img KERNEL_VERSION
מחליפים את
KERNEL_VERSIONבגרסת הליבה הנוכחית של המכונה הווירטואלית. לדוגמה,3.10.0-1160.95.1.el7.x86_64.מעדכנים את הקובץ
grub2.cfgבאמצעות הפקודהgrub2-mkconfig, לדוגמה:grub2-mkconfig -o /boot/grub2/grub.cfg
אחרי שקובץ
initramfsנוצר, אפשר להפעיל מחדש את ה-VM בלי שגיאות.