בדף הזה מתוארות בעיות נפוצות שאתם עשויים להיתקל בהן כשמשנים את הגודל של דיסק קשיח קבוע או כשהדיסק הקשיח הקבוע מלא, ומוסבר איך לפתור כל אחת מהבעיות.
לפני שמתחילים
- תמיד יוצרים קובץ snapshot של הדיסק לפני שמבצעים פעולות לפתרון בעיות, כדי לוודא שהנתונים מגובים.
-
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא תהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Google Cloud . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים הבאות:
-
התקינו את ה-CLI של Google Cloud. אחר כך, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:
gcloud initאם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
- הגדרת אזור ותחום כברירת מחדל
-
שגיאה של הגבלת קצב כשמשנים דיסק
בהמשך מפורטות שגיאות נפוצות שעשויות להתרחש כשמנסים לשנות את הדיסק הקשיח המתמשך של Extreme או את ה-Hyperdisk של Google Cloud. יכול להיות שהשגיאות האלה יופיעו בכמה מקומות, למשל בפלט של המסוף הטורי או ביומני האפליקציה.
Disk cannot be resized due to being rate limited.
Cannot update provisioned iops due to being rate limited.
Cannot update provisioned throughput due to being rate limited.
כדאי לעיין במגבלות הזמן הבאות לשינוי דיסקים:
- אפשר לשנות את הגודל של נפח אחסון מסוג Extreme Persistent Disk או Hyperdisk Throughput רק פעם אחת בפרק זמן של 6 שעות.
- אפשר לשנות את הגודל של נפח Hyperdisk Extreme רק פעם אחת בתקופה של 4 שעות.
- אפשר לשנות את ה-IOPS או את קצב העברת הנתונים שהוקצו לנפח אחסון מסוג Hyperdisk רק פעם אחת בתקופה של 4 שעות.
כדי לפתור את השגיאות האלה, צריך לחכות את פרק הזמן הנדרש מאז השינוי האחרון לפני שמנסים לשנות את הדיסקים שוב.
שגיאות שקשורות לנפח הדיסק
בקטעים הבאים מתוארות שגיאות נפוצות שקשורות לקיבולת הדיסק ומוסבר איך לפתור אותן.
דיסקים מלאים
ריכזנו כאן כמה שגיאות נפוצות שאתם עשויים להיתקל בהן כשנפח הדיסק הקבוע שלכם מגיע לקיבולת המלאה. יכול להיות שהשגיאות האלה יופיעו בכמה מקומות, כמו בפלט של המסוף הסדרתי או ביומני האפליקציות.
No space left on device
Not enough storage is available to process this command
Error: There isn't enough space on the disk.
כדי לפתור את הבעיה:
יוצרים קובץ snapshot של הדיסק.
כדי לפנות מקום, מוחקים מהדיסק קבצים שלא צריך.
אם נדרש יותר מקום בדיסק אחרי הפעולה הזו, משנים את הגודל של הדיסק.
מכונה וירטואלית שלא ניתן לגשת אליה בגלל דיסק אתחול מלא
אם דיסק האתחול של המכונה הווירטואלית מלא, יכול להיות שלא תצליחו לגשת אליה. התרחיש הזה יכול להיות קשה לזיהוי, כי לא תמיד ברור מתי בעיות הקישוריות קשורות לדיסק אתחול מלא. בהמשך מפורטות דוגמאות לשגיאות נפוצות שעשויות להתרחש אם אתם לא מצליחים לגשת ל-VM מ-Google Cloud CLI או באמצעות RDP כי דיסק האתחול מלא:
Network error: Software caused connection abort
Your Remote Desktop Services session has ended. The connection was lost because the remote computer is running low on memory or disk space.
ERROR: (gcloud.compute.ssh) Could not SSH into the instance. It is possible that your SSH key has not propagated to the instance yet. Try running this command again. If you still cannot connect, verify that the firewall and instance are set to accept ssh traffic.
You cannot connect to the VM instance because of an unexpected error. Wait a few moments and then try again.
No space left on device
ERROR Exception calling the response handler. [Errno 2] No usable temporary directory found in ['/tmp', '/var/tmp', '/usr/tmp', '/']...
כדי לפתור את הבעיות שצוינו למעלה, צריך:
מוודאים שנכשלתם להתחבר ל-VM בגלל שדיסק האתחול מלא:
במכונות וירטואליות של Linux, בודקים את הפלט של היציאה הטורית:
gcloud compute instances tail-serial-port-output VM_NAME
אם דיסק האתחול מלא, הפלט יכיל את ההודעה
No space left on device.במכונות וירטואליות של Windows, משתמשים בעמדת שליטה מיוחדת לניהול (SAC):
אחרי שפותחים ערוץ של שורת פקודה ב-SAC, מריצים את הפקודה הבאה כדי לבדוק את השטח הפנוי:
wmic logicaldisk get caption,freespace,size
אם עדיין לא עשיתם זאת, צרו snapshot של דיסק האתחול של המכונה הווירטואלית.
מנסים להפעיל מחדש את ה-VM.
אם עדיין אין לכם גישה למכונה הווירטואלית, צריך לבצע את הפעולות הבאות:
מפסיקים את ה-VM:
gcloud compute instances stop VM_NAME
מחליפים את
VM_NAMEבשם של המכונה הווירטואלית.הגדלת הגודל של דיסק האתחול:
gcloud compute disks resize BOOT_DISK_NAME --size DISK_SIZE
מחליפים את מה שכתוב בשדות הבאים:
-
BOOT_DISK_NAME: השם של דיסק האתחול של המכונה הווירטואלית -
DISK_SIZE: הגודל החדש והגדול יותר של דיסק האתחול, בגיגה-בייט
לדוגמה, כדי לשנות את הגודל של דיסק בשם
example-disk-1ל-6GB, מריצים את הפקודה הבאה:gcloud compute disks resize example-disk-1 --size=6GB
-
מפעילים את ה-VM:
gcloud compute instances start VM_NAME
מנסים שוב להתחבר ל-VM באמצעות SSH. אם עדיין אין לכם גישה למכונה הווירטואלית, אפשר לבצע אחת מהפעולות הבאות:
יוצרים דיסק חדש מקובץ snapshot. מידע נוסף זמין במאמר בנושא שחזור של מכונה וירטואלית שלא ניתן לגשת אליה או של דיסק אתחול מלא.
במכונות וירטואליות של Linux בלבד, מפעילים את המכונה הווירטואלית באופן זמני במצב חילוץ באמצעות כלי החילוץ של GCE בקוד פתוח. לאחר מכן, מבצעים את השלבים במאמר בנושא בעיות במערכת הקבצים.
בעיות במערכת הקבצים
בקטעים הבאים מפורטות בעיות נפוצות במערכת הקבצים ומוסבר איך לפתור אותן.
שינוי הגודל של מערכת הקבצים
אחרי שמשנים את הגודל של דיסק האתחול של מכונה וירטואלית, רוב המכונות הווירטואליות משנות את הגודל של מערכת קבצי הבסיס ומפעילות מחדש את המכונה הווירטואלית. עם זאת, יכול להיות שתצטרכו לשנות את הגודל של מערכת הקבצים באופן ידני עבור חלק מסוגי התמונות של מכונות וירטואליות. אם המכונה הווירטואלית לא תומכת בשינוי גודל אוטומטי של מערכת קבצים בסיסית, או אם שיניתם את הגודל של דיסק קבוע של נתונים (לא דיסק אתחול), אתם צריכים לשנות את הגודל של מערכת הקבצים והמחיצות באופן ידני.
כדי לבדוק אם מערכת קבצי הבסיס התרחבה באופן אוטומטי אחרי שינוי הגודל של דיסק האתחול של מכונת ה-VM:
כדי לבדוק אם הגודל של דיסק האתחול של המכונה הווירטואלית שונה, אפשר להשתמש באחת מהשיטות הבאות:
בודקים את הפלט של היציאה הטורית. מחפשים שורה שמציינת שגודל מחיצת הבסיס שונה.
לדוגמה, במכונות וירטואליות עם תמונות של Debian, אם שינוי הגודל האוטומטי הצליח, יומני המסוף כוללים את השורה
... expand-root.sh[..]: Resizing ext4 filesystem on /dev/sda1.אם אתם מצליחים להתחבר למכונה וירטואלית של Linux באמצעות SSH, מריצים את הפקודה
df -hכדי לבדוק אם יש מקום פנוי בדיסק.לדוגמה, הפלט הזה מראה שמערכת קבצים בסיסית מלאה ב-92%:
Filesystem Size Used Avail Use% Mounted on udev 63G 0 63G 0% /dev tmpfs 13G 1.4M 13G 1% /run /dev/sda1 339G 315G 24G 92% /
אם המכונה הווירטואלית לא שינתה את הגודל של מערכת קבצי הבסיס, צריך לשנות את הגודל של מערכת הקבצים והמחיצות באופן ידני.
מגבלה של Storage Spaces Direct (S2D)
כשמשתמשים ב-Storage Spaces Direct (S2D), אי אפשר להגדיל את הקיבולת על ידי שינוי הגודל של דיסקים קבועים בסיסיים. אם משנים את הגודל של הדיסקים ברמת החומרה, S2D לא יזהה את המקום הנוסף, ויכול להיות שלא תהיה גישה לנתונים. כדי להגדיל את הקיבולת, מוסיפים שרתים או כוננים במקום לשנות את הגודל של דיסקים קבועים קיימים.
כדי לבדוק אם הדיסק מוגדר כחלק מאשכול S2D או ממאגר אחסון, מבצעים את השלבים הבאים:
נכנסים לדף VM instances במסוף Google Cloud .
לצד המופע שבו הדיסק שונה, לוחצים על הלחצן RDP. בדפדפן נפתח חיבור RDP למופע.
לוחצים לחיצה ימנית על הלחצן התחל של Windows ובוחרים באפשרות ניהול דיסקים כדי לפתוח את הכלי ניהול דיסקים. לדוגמה, בצילום המסך הבא אפשר לראות שבדיסק 1 יש מחיצה מוגנת של Storage Spaces:
אפשר גם להריץ את אחת מפקודות PowerShell הבאות כדי למצוא דיסקים קשיחים קבועים שמשויכים להגדרת S2D.
Get-Disk | Where-Object Model -eq "Storage Space"
Get-PhysicalDisk | Where-Object {$_.ObjectId -like "*Spaces*"}