בסקירה הכללית הזו מוסבר על מנהל התקן ה-CSI של Cloud Storage FUSE לטעינת קטגוריות של Cloud Storage כמערכות קבצים מקומיות ב-Google Kubernetes Engine (GKE). התכונה הזו שימושית במיוחד לעומסי עבודה של למידת מכונה שצריך לאחסן בהם נתוני אימון, מודלים ונקודות ביקורת ב-Cloud Storage.
הסקירה הכללית הזו מיועדת למפתחים ולמדעני נתונים שרוצים לגשת לנתוני אימון, למשקלים של מודלים של הסקה ולנקודות ביקורת שאוחסנו ב-Cloud Storage, או לאחסן בהם נתונים כאלה, מתוך אפליקציות Kubernetes שלהם.
לפני שקוראים את הדף הזה, חשוב להכיר את Kubernetes, GKE ו-Cloud Storage.
איך זה עובד
מנהל ההתקן משתמש בתקן Container Storage Interface (CSI) כדי לאפשר לאפליקציות שפועלות ב-Pods לגשת בצורה חלקה לקטגוריות של Cloud Storage, כאילו הן מערכות קבצים שנטענו. המשמעות היא שאתם יכולים להתייחס לדליים שלכם ב-Cloud Storage כמקור נתונים מתמשך וניתן להרחבה עבור אפליקציות Kubernetes, בלי שתצטרכו לבצע הגדרות מורכבות או שינויים בקוד.
מנהל התקן ה-CSI של Cloud Storage FUSE מספק חוויה מנוהלת לחלוטין שמבוססת על תוסף ה-CSI של Google Cloud Storage FUSE בקוד פתוח. מנהל התקן ה-CSI מאפשר להשתמש ב-Kubernetes API כדי לצרוך נפחי אחסון באמצעות קטגוריות אחסון קיימות ב-Cloud Storage. האפליקציות יכולות להעלות ולהוריד אובייקטים באמצעות סמנטיקה של מערכת קבצים של Cloud Storage FUSE.
Filesystem in Userspace (FUSE) הוא ממשק שמשמש לייצוא מערכת קבצים לליבת לינוקס. Cloud Storage FUSE מאפשר לטעון קטגוריות של Cloud Storage כמערכת קבצים, כך שאפליקציות יכולות לגשת לאובייקטים בקטגוריה באמצעות פעולות נפוצות של קלט/פלט של קבצים (לדוגמה, פתיחה, קריאה, כתיבה וסגירה) במקום להשתמש בממשקי API ספציפיים לענן.
הדרייבר תומך באופן מובנה בדרכים הבאות להגדרת נפחי אחסון שמגובים ב-Cloud Storage:
- CSI ephemeral volumes (כרכים זמניים של CSI): מציינים את הקטגוריה של Cloud Storage בשורה עם הגדרת ה-Pod. אם אתם רוצים ממשק יעיל שמבוסס על Pod ולא דורש ניסיון קודם בנפחי אחסון קבועים של Kubernetes, אתם יכולים להשתמש בנפחי אחסון זמניים של CSI. כדי להשתמש באפשרות הזו, אפשר לעיין במאמר בנושא טעינת קטגוריות של Cloud Storage כנפחים זמניים של CSI.
- PersistentVolumes: אתם יוצרים משאב PersistentVolume שמפנה לקטגוריה של Cloud Storage, באמצעות הקצאת משאבים סטטית. לאחר מכן, ה-Pod יכול להפנות אל PersistentVolumeClaim שמשויך ל-PersistentVolume הזה. אפשר להשתמש באפשרות הזו אם אתם כבר מכירים את נפחי האחסון המתמיד ורוצים עקביות עם הפריסות הקיימות שלכם שמסתמכות על סוג המשאב הזה. כדי להשתמש באפשרות הזו, אפשר לעיין במאמר בנושא הוספת קטגוריות של Cloud Storage כנפחי אחסון קבועים.
תרחישים לדוגמה
מנהל התקן ה-CSI של Cloud Storage FUSE מתאים לתרחישים כמו:
AI ולמידת מכונה
- אימון: אפשר להשתמש במנהל התקן ה-CSI של Cloud Storage FUSE כדי לקרוא נתוני אימון ומודלים שמורים של נקודות ביקורת באמצעות Cloud Storage כמקור האמת. לדוגמה, כשמאמנים מודל ב-GKE באמצעות PyTorch, JAX או TensorFlow, מנהל ההתקן יכול לספק גישה למערכי נתוני אימון שמאוחסנים בקטגוריות של Cloud Storage.
- הסקת מסקנות: אתם יכולים להפעיל מודלים של למידת מכונה להסקת מסקנות שמסיקים תוצאות מקבצים שמאוחסנים ב-Cloud Storage. אפשר להשתמש ב-Cloud Storage FUSE CSI כדי לטעון מראש משקלים של מודלים שמאוחסנים ב-Cloud Storage. בנוסף, אפשר להשתמש בהורדה מקבילה עם מטמון קבצים כדי להאיץ את הקריאה של קבצים גדולים מ-Cloud Storage להורדות מרובות-הליכים. אתם יכולים להשתמש בתכונה הזו כדי לשפר את זמני טעינת המודלים, במיוחד כשמדובר בקריאות בגודל של יותר מ-1GB.
צינורות עיבוד נתונים לניתוח נתונים
אתם יכולים להשתמש במנהל התקן ה-CSI של Cloud Storage FUSE כדי לייעל את משימות עיבוד הנתונים, ולאפשר לאפליקציות לגשת ישירות למערכי נתונים גדולים שמאוחסנים ב-Cloud Storage ולנתח אותם. לדוגמה, משימת Spark שפועלת ב-GKE יכולה להשתמש במנהל ההתקן של CSI כדי לעבד נתונים שמאוחסנים ב-Cloud Storage בלי להוריד אותם קודם.
יתרונות
השימוש בדרייבר CSI מאפשר לכם ליהנות מהיתרונות הבאים:
- הגדרה פשוטה: מנהל התקן ה-CSI של Cloud Storage FUSE נפרס ומנוהל אוטומטית באשכולות Standard ו-Autopilot. שימוש באמצעי אחסון זמניים של CSI מפשט את ההגדרה והניהול של אמצעי האחסון. הסיבה לכך היא שאין צורך באובייקטים PersistentVolumeClaim ו-PersistentVolume.
- אבטחה: למנהל התקן ה-CSI של Cloud Storage FUSE לא נדרשת גישה עם הרשאות מיוחדות. כך אפשר למזער את הסיכונים שקשורים לגישה עם הרשאות מיוחדות ולשפר את רמת האבטחה. אתם יכולים להשתמש באיחוד שירותי אימות הזהות של עומסי עבודה ב-GKE כדי לנהל את האימות, וכך לקבל שליטה מדויקת על הגישה של ה-Pods לאובייקטים ב-Cloud Storage.
- ביצועים: כדי לשפר את הביצועים של עומסי עבודה של AI/ML, אפשר להשתמש בפרופילים מוגדרים מראש של Cloud Storage FUSE לאימון, להצגה ולנקודות ביקורת, כדי לכוונן אוטומטית את הביצועים בהתאם לעומס העבודה ולתצורת הצומת. בנוסף, מנהל ההתקן Cloud Storage FUSE CSI משפר את הביצועים באמצעות תכונות כמו קובץ עזר לאינטראקציות אופטימליות, הורדות מקבילות לגישה לנתונים מהירה יותר ושמירת מטא-נתונים וקבצים במטמון כדי לשפר את ביצועי הקריאה ולהפחית את זמן האחזור. מידע נוסף על התכונות האלה
- ניידות וגמישות: מנהל התקן ה-CSI של Cloud Storage FUSE מאפשר לכם להשתמש בסמנטיקה סטנדרטית של מערכת קבצים כדי לטעון קטגוריות של Cloud Storage ולגשת אליהן.
השימוש ב-Vertex AI מספק ממשק מוכר שמשפר את הניידות של עומסי עבודה של ML, ומונע את הצורך לבצע שינויים נרחבים בקוד או באפליקציה.
הדרייבר נתמך בכל המאיצים שזמינים ב-GKE, כולל מעבדי GPU ו-TPU. מנהל התקן ה-CSI של Cloud Storage FUSE תומך במצבי הגישה
ReadWriteMany,ReadOnlyManyו-ReadWriteOnce. אפשר להשתמש בנפחים של Cloud Storage FUSE בקונטיינרים של init. - יכולת ניהול: מנהל התקן מאפשר להריץ את Cloud Storage FUSE ברקע בלי צורך להתקין או לנהל אותו. אפשר גם לראות תובנות לגבי מדדים של Cloud Storage FUSE, כולל שימוש במערכת הקבצים, ב-Cloud Storage ובמטמון הקבצים.
אפשרויות ותכונות לכוונון הביצועים
לדרייבר Cloud Storage FUSE CSI יש כמה אפשרויות לכוונון הביצועים ותכונות לאופטימיזציה של הגישה של ה-Pods לנתונים שמאוחסנים בקטגוריות של Cloud Storage.
לדוגמה, אם מפעילים שמירת קבצים במטמון ומשנים את מספר הבקשות המקבילות, אפשר לקצר משמעותית את הזמן שנדרש לטעינת נתוני האימון, וכך לקצר את זמני האימון.
Native sidecar: מנהל התקן ה-CSI של Cloud Storage FUSE מצרף קונטיינר sidecar לפודים כדי לנהל אינטראקציות עם Cloud Storage. ה-sidecar מטפל בהרכבה ובאינטראקציה עם Cloud Storage, ומאפשר לאפליקציות שלכם לגשת לנתונים בצורה חלקה. כדי לשפר את הביצועים, אפשר להגדיר משאבים כמו מעבד (CPU) וזיכרון עבור קונטיינר ה-sidecar, או לשנות הגדרות שקשורות לשמירת נתונים במטמון ולמאגר זמני. קונטיינר ה-sidecar של מנהל התקן ה-CSI של Cloud Storage FUSE ו-Istio יכולים להתקיים יחד ולפעול בו-זמנית ב-Pod.
הורדה מקבילית: החל מגרסה GKE 1.30.3-gke.1571000 ו-Cloud Storage FUSE v.2.4.0 עם מטמון קבצים מופעל, אפשר להשתמש בתכונה הורדה מקבילית כדי להאיץ קריאה של קבצים גדולים מ-Cloud Storage להורדות מרובות-הליכי משנה. אתם יכולים להשתמש בתכונה הזו כדי לשפר את זמני הטעינה של המודלים, במיוחד כשמדובר בקריאות בגודל של יותר מ-1GB (לדוגמה, עד פי שניים מהר יותר כשמטעינים את Llama 2 70B).
תמיכה בשמירת מטא-נתונים במטמון: מנהל התקן ה-CSI של Cloud Storage FUSE משפר את הביצועים על ידי שמירת מטא-נתונים של קבצים במטמון, כמו גודל ושעת שינוי. ה-CSI driver מפעיל את stat cache הזה כברירת מחדל ומקצר את זמן האחזור על ידי אחסון המידע באופן מקומי במקום לבקש אותו שוב ושוב מ-Cloud Storage. אתם יכולים להגדיר את הגודל המקסימלי של המטמון ואת משך הזמן שבו הנתונים יישארו במטמון. באמצעות כוונון מדויק של מטמון המטא-נתונים, אפשר לצמצם את מספר קריאות ה-API אל Google Cloud Storage, לשפר את הביצועים והיעילות של האפליקציה על ידי מזעור תעבורת הרשת והחביון.
תמיכה בשמירת קבצים במטמון: אפשר להשתמש במנהל התקן ה-CSI של Cloud Storage FUSE עם שמירת קבצים במטמון כדי לשפר את ביצועי הקריאה של אפליקציות שמטפלות בקבצים קטנים מקטגוריות של Cloud Storage. תכונת מטמון הקבצים של Cloud Storage FUSE היא מטמון קריאה מבוסס-לקוח, שמאפשר להגיש קריאות חוזרות של קבצים מהר יותר מאחסון המטמון שתבחרו. אתם יכולים לבחור מתוך מגוון אפשרויות אחסון למטמון הקריאה, כולל SSD מקומי, אחסון מבוסס דיסק מתמיד ודיסק RAM, בהתאם לצרכים שלכם מבחינת מחיר וביצועים.
תמיכה בהפעלה מחדש של צמתים: החל מגרסה 1.33.1-gke.1959000 של GKE, קובצי Pod שמשתמשים בנפחי CSI של Cloud Storage FUSE יכולים להתאושש אוטומטית אחרי הפעלה מחדש של צומת GKE. אם ה-Pod נמצא בצומת שבו ההשבתה ההדרגתית של הצומת מופעלת, הוא צריך להיות מנוהל על ידי בקר (כמו Job או Deployment) שמחליף את ה-Pods שנכשלו. בינתיים, אפשר להפעיל מחדש באופן אוטומטי תרמילים עצמאיים בצמתים שלא מופעל בהם כיבוי צומת הדרגתי. בגרסאות GKE שקודמות ל-1.33.1-gke.1959000, אי אפשר לשחזר את ה-Pods וצריך לפרוס אותם מחדש. השבתה מסודרת של צומת מופעלת כברירת מחדל רק במכונות וירטואליות שניתנות להפסקת פעולה, במכונות וירטואליות מסוג Spot, במכונות וירטואליות מסוג Confidential, במכונות וירטואליות עם GPU, במכונות וירטואליות עם TPU ובמשפחות המכונות Z3, C4 ו-C3 Metal.
לשיטות מומלצות לשיפור הביצועים, אפשר לעיין במאמר אופטימיזציה של מנהל התקן ה-CSI של Cloud Storage FUSE לביצועים ב-GKE.
מגבלות
ל-CSI driver יש את המגבלות הבאות:
- מערכת הקבצים Cloud Storage FUSE שונה ממערכת קבצים של POSIX בביצועים, בזמינות, בהרשאות הגישה ובסמנטיקה.
- מנהל התקן ה-CSI של Cloud Storage FUSE לא נתמך ב-GKE Sandbox.
- מנהל התקן ה-CSI של Cloud Storage FUSE לא תומך בתמונות מצב של נפח אחסון, בשכפול נפח אחסון או בהרחבת נפח אחסון.
- גישה אחידה ברמת הקטגוריה נדרשת לעומסי עבודה של קריאה וכתיבה כשמשתמשים באיחוד שירותי אימות הזהות של עומסי עבודה ב-GKE.
- אפשר לעיין בבעיות מוכרות בפרויקט GitHub של מנהל התקן ה-CSI של Cloud Storage FUSE.
- אפשר לעיין בבעיות הפתוחות בפרויקט Cloud Storage FUSE CSI driver GitHub.
- בגרסאות GKE מוקדמות יותר מ-
1.33.3-gke.1226000, מנהל התקן ה-CSI של Cloud Storage FUSE לא תומך ב-Pods שפועלים ברשת המארח (hostNetwork: true) בגלל מגבלות של איחוד זהויות של עומסי עבודה ל-GKE. עם זאת, באשכולות GKE רגילים עם גרסה1.33.3-gke.1226000ואילך, הפודים ברשת המארחת שמשתמשים במנהל התקן ה-CSI של Cloud Storage FUSE יכולים להשתמש בחשבון השירות שלהם ב-Kubernetes כדי לבצע אימות. מידע נוסף זמין במאמר בנושא הגדרת גישה ל-Pods עם רשת מארחת. - בגרסאות של אשכול GKE שקודמות לגרסה 1.32.3-gke.1099000, יש מגבלה מחמירה על הגודל של מחרוזות JSON מוצפנות
mountOption. השילוב של שם הקטגוריה, אפשרויות ההרכבה שסופקו על ידי המשתמש וה-mountOptionsשסופק על ידי מנהל ההתקן צריך להיות קצר מ-500 תווים. הגדלנו את הסף של הודעת JSON ל-5,000 בייט בגרסאות של אשכול GKE 1.32.3-gke.1099000 ואילך.
דרישות
כדי להשתמש במנהל התקן ה-CSI של Cloud Storage FUSE, האשכולות צריכים לעמוד בדרישות הבאות לגבי גרסת GKE:
- להשתמש באשכולות Linux שמריצים GKE בגרסה 1.24 ואילך.
- הפעלתם את איחוד זהויות של עומסי עבודה ל-GKE ואת שרת המטא-נתונים של GKE.
- משתמשים בגרסה העדכנית של Google Cloud CLI.
כדי להשתמש בתכונות ספציפיות של מנהל התקן ה-CSI של Cloud Storage FUSE, צריך גם לעמוד בדרישות שמפורטות במאגר של מנהל התקן ה-CSI של Cloud Storage FUSE.
המאמרים הבאים
- איך מתכוננים לשימוש ב-Cloud Storage FUSE CSI ל-GKE
- פתרון בעיות ב-Cloud Storage FUSE
- אופטימיזציה של Cloud Storage FUSE לביצועים