פתרון בעיות שקשורות לנפחי אחסון של Managed Lustre

בדף הזה מפורטים שלבים לפתרון בעיות ושגיאות נפוצות שמתרחשות במהלך השימוש במנהל התקן ה-CSI של Google Cloud Managed Lustre ב-Google Kubernetes Engine.

לפני שמבצעים את השלבים לפתרון בעיות שמופיעים בקטע הזה, כדאי לעיין במגבלות כשמתחברים ל-Managed Lustre מ-GKE.

עדכון הקיבולת המינימלית של המופע

התפוסה המינימלית למכונות Managed Lustre עודכנה ל-9,000GiB. כדי ליצור מכונות וירטואליות בנפח 9,000GiB באמצעות מנהל ההתקן של Managed Lustre CSI, צריך לשדרג את גרסת האשכול לגרסה 1.34.0-gke.2285000 ומעלה.

רמת הביצועים שגויה במכונות Lustre עם הקצאת משאבים דינמית

כשמבצעים הקצאה דינמית של מופע Lustre, יצירת המופע נכשלת עם שגיאת InvalidArgument עבור PerUnitStorageThroughput, ללא קשר לערך perUnitStorageThroughput שצוין בבקשת ה-API. הבעיה הזו משפיעה על גרסאות GKE 1.33 לפני 1.33.4-gke.1036000.

פתרון עקיף:

משדרגים את אשכול GKE לגרסה ‎1.33.4-gke.1036000 ואילך. אם אתם משתמשים בערוץ היציב, יכול להיות שגרסה חדשה יותר עדיין לא זמינה. במקרה כזה, אפשר לבחור באופן ידני גרסה מערוצי ההפצה הרגילים או המהירים שכוללת את התיקון.

יציאות תקשורת של Managed Lustre

הדרייבר של Managed Lustre CSI משתמש ביציאות שונות לתקשורת עם מכונות Managed Lustre, בהתאם לגרסת אשכול GKE ולהגדרות הקיימות של Managed Lustre.

  • יציאת ברירת המחדל (988): באשכולות GKE חדשים שמופעלת בהם גרסה 1.33.2-gke.4780000 ומעלה, מנהל ההתקן משתמש ביציאה 988 לתקשורת עם Lustre כברירת מחדל.

  • יציאה מדור קודם (6988): הדרייבר משתמש ביציאה 6988 בתרחישים הבאים:

    • גרסאות קודמות של GKE: אם אשכול GKE פועל בגרסה קודמת לגרסה 1.33.2-gke.4780000, צריך להשתמש בדגל --enable-legacy-lustre-port כשמפעילים את מנהל ההתקן של CSI. הפעלת הדגל הזה מאפשרת לעקוף בעיה של התנגשות יציאות עם gke-metadata-server בצמתים של GKE.
    • מכונות Managed Lustre קיימות עם תמיכה ב-GKE: אם אתם מתחברים למכונת Managed Lustre קיימת שנוצרה עם הדגל --gke-support-enabled, אתם צריכים לכלול את --enable-legacy-lustre-port כשמפעילים את מנהל ה-CSI, ללא קשר לגרסת האשכול. בלי הדגל הזה, לא תהיה אפשרות לטעון את מכונת Lustre הקיימת באשכול GKE.

    מידע נוסף על הפעלת מנהל התקן CSI עם יציאה מדור קודם זמין במאמר בנושא יציאות תקשורת של Lustre.

שאילתות ביומן

כדי לבדוק את היומנים, מריצים את השאילתה הבאה ב-Logs Explorer.

כדי להחזיר יומנים של שרת הצומת של מנהל ההתקן של Managed Lustre CSI:

resource.type="k8s_container"
resource.labels.pod_name=~"lustre-csi-node*"

פתרון בעיות בהקצאת נפח אחסון

אם ה-PersistentVolumeClaim ‏ (PVC) נשאר במצב Pending ולא נוצר PersistentVolume ‏ (PV) אחרי 20-30 דקות, יכול להיות שהתרחשה שגיאה.

  1. בודקים את האירועים של ה-PVC:

    kubectl describe pvc PVC_NAME
    
  2. אם השגיאה מצביעה על בעיות בהגדרות או על ארגומנטים לא תקינים, צריך לוודא שהפרמטרים של StorageClass תקינים.

  3. יוצרים מחדש את ה-PVC.

  4. אם הבעיה נמשכת, אפשר לפנות אל Cloud Customer Care.

פתרון בעיות בהרכבת נפח אחסון

אחרי שה-Pod מתוזמן לצומת, אמצעי האחסון מותקן. אם הפעולה נכשלת, בודקים את אירועי ה-Pod ואת יומני kubelet.

kubectl describe pod POD_NAME

בעיות בהפעלת מנהל התקן CSI

תסמין:

MountVolume.MountDevice failed for volume "yyy" : kubernetes.io/csi: attacher.MountDevice failed to create newCsiDriverClient: driver name lustre.csi.storage.gke.io not found in the list of registered CSI drivers

או

MountVolume.SetUp failed for volume "yyy" : kubernetes.io/csi: mounter.SetUpAt failed to get CSI client: driver name lustre.csi.storage.gke.io not found in the list of registered CSI drivers

הגורם: דרייבר ה-CSI לא מופעל או שהוא עדיין לא פועל.

פתרון:

  1. מוודאים שדרייבר ה-CSI מופעל.
  2. אם בוצע לאחרונה שינוי בגודל האשכול או שדרוג שלו, צריך להמתין כמה דקות עד שהדרייבר יפעל.
  3. אם השגיאה נמשכת, בודקים ביומנים lustre-csi-node אם מופיעה השגיאה 'הפעולה לא מורשית'. ההודעה הזו מציינת שהגרסה של הצומת ישנה מדי ואין בה תמיכה ב-Managed Lustre. כדי לפתור את הבעיה, צריך לשדרג את מאגר הצמתים לגרסה 1.33.2-gke.1111000 ואילך.
  4. אם ביומנים מופיעה ההודעה LNET_PORT mismatch, צריך לשדרג את מאגר הצמתים כדי לוודא שמודולי ליבת Lustre תואמים מותקנים.

נקודת העיגון כבר קיימת

תסמין:

MountVolume.MountDevice failed for volume "yyy" : rpc error: code = AlreadyExists
desc = A mountpoint with the same lustre filesystem name "yyy" already exists on
node "yyy". Please mount different lustre filesystems

הגורם: לא ניתן לטעון כמה אמצעי אחסון מכמה מופעים שונים של Managed Lustre עם אותו שם של מערכת קבצים בצומת יחיד.

פתרון: צריך להשתמש בשם ייחודי של מערכת קבצים לכל מופע של Managed Lustre.

הטעינה נכשלה: אין קובץ או ספרייה בשם הזה

תסמין:

MountVolume.MountDevice failed for volume "yyy" : rpc error: code = Internal desc = Could not mount ... failed: No such file or directory

הגורם: שם מערכת הקבצים שצוין שגוי או לא קיים.

פתרון: מוודאים ש-fs_name בהגדרות של StorageClass או PV תואם למכונה של Managed Lustre.

הטעינה נכשלה: נתוני קלט או פלט שגויים

תסמין:

MountVolume.MountDevice failed for volume "yyy" : rpc error: code = Internal desc = Could not mount ... failed: Input/output error

הסיבה: האשכול לא יכול להתחבר למופע Managed Lustre.

פתרון:

  1. מאמתים את כתובת ה-IP של מופע Managed Lustre.
  2. מוודאים שקלאסטר ה-GKE ומופע Managed Lustre נמצאים באותה רשת VPC או שהם מחוברים בצורה נכונה.

שגיאות פנימיות

התסמין: rpc error: code = Internal desc = ...

פתרון: אם השגיאה נמשכת, צריך לפנות אל Cloud Customer Care.

פתרון בעיות בביטול הניתוק של אמצעי אחסון

תסמין:

UnmountVolume.TearDown failed for volume "yyy" : rpc error: code = Internal desc = ...

פתרון:

  1. מבצעים מחיקה מאולצת של ה-Pod:

    kubectl delete pod POD_NAME --force
    
  2. אם הבעיה נמשכת, אפשר לפנות אל Cloud Customer Care.

פתרון בעיות במחיקת נפח אחסון

אם ה-PV נשאר במצב Released (שוחרר) למשך תקופה ממושכת (לדוגמה, יותר משעה) אחרי מחיקת ה-PVC, צריך לפנות אל Cloud Customer Care.

פתרון בעיות שקשורות להרחבת נפח

PVC תקוע ב-ExternalExpanding

תסמין: הסטטוס של ה-PVC לא משתנה ל-Resizing, ובאירועים מוצג ExternalExpanding.

הסיבה: יכול להיות שהשדה allowVolumeExpansion חסר או שהערך שלו הוא false.

פתרון: מוודאים של-StorageClass יש allowVolumeExpansion: true.

kubectl get storageclass STORAGE_CLASS_NAME -o yaml

ההרחבה נכשלה: ארגומנט לא חוקי

התסמין: VolumeResizeFailed: rpc error: code = InvalidArgument ...

הסיבה: הגודל המבוקש לא תקין (לדוגמה, הוא לא כפולה של גודל השלב או שהוא חורג מהמגבלות).

פתרון: צריך לבדוק את טווח הקיבולת התקין ולעדכן את ה-PVC עם גודל תקין.

ההרחבה נכשלת: שגיאה פנימית

התסמין: VolumeResizeFailed ... rpc error: code = Internal

פתרון: מנסים שוב להרחיב את נפח האחסון על ידי החלה מחדש של ה-PVC. אם הניסיון נכשל שוב ושוב, צריך לפנות אל Cloud Customer Care.

המועד האחרון חלף

תיאור הבעיה: VolumeResizeFailed עם DEADLINE_EXCEEDED.

הגורם: הפעולה נמשכת יותר זמן מהצפוי, אבל יכול להיות שהיא עדיין בתהליך.

פתרון: ממתינים לסיום הפעולה. הכלי לשינוי הגודל ינסה שוב באופן אוטומטי. אם הוא נתקע למשך זמן רב (למשל, יותר מ-90 דקות), פנו לתמיכה.

חריגה מהמכסה

הסימפטום: ההרחבה נכשלת בגלל מגבלות המכסה.

פתרון: צריך לבקש להגדיל את המכסה או לבקש להגדיל את הקיבולת בשיעור קטן יותר.