פתרון בעיות שקשורות לנפחי אחסון של 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 דקות), פנו לתמיכה.

חריגה מהמכסה

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

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