Google Cloud Hyperdisk היא אפשרות לאחסון בלוקים ברשת שמוצעת ב-GKE. אפשר להשתמש באפשרות האחסון הזו באשכולות GKE באופן דומה לשימוש בנפחי אחסון אחרים של Persistent Disk ב-Compute Engine, עם גמישות נוספת לשיפור הביצועים של עומס העבודה. בהשוואה לאחסון ב-Persistent Disk, Hyperdisk מספקת מספר גבוה משמעותית של פעולות קלט/פלט מקסימליות לשנייה (IOPS) וקצב העברת נתונים גבוה יותר. בניגוד לנפחי Persistent Disk שבהם הביצועים משותפים בין כל הנפחים שמצורפים לצומת, ב-Hyperdisk אפשר לציין ולכוון את רמת הביצועים של כל נפח Hyperdisk.
אפשר לבחור מבין האפשרויות הבאות של Hyperdisk ב-GKE:
| אפשרות אחסון | מצב הפעולה של GKE | תיאור |
|---|---|---|
| Hyperdisk Balanced | טייס אוטומטי רגיל |
ההתאמה הכי טובה לרוב עומסי העבודה. זו אפשרות טובה לפריסת רוב האפליקציות הארגוניות והעסקיות, וגם מסדי נתונים ושרתי אינטרנט. |
| Hyperdisk Throughput | טייס אוטומטי רגיל |
אופטימיזציה לשיפור היעילות בעלויות ולשיפור התפוקה. האפשרות הזו מתאימה לתרחישי שימוש שבהם נדרש ניתוח נתונים בהרחבת קיבולת (לדוגמה, Hadoop או Kafka) ועומסי עבודה רגישים לעלויות שמתמקדים בנפח נתונים. |
| Hyperdisk Extreme | טייס אוטומטי רגיל |
אופטימיזציה לביצועים של פעולות קלט/פלט בשנייה (IOPS). זו אפשרות טובה אם אתם פורסים עומסי עבודה עם ביצועים גבוהים, כמו מערכות לניהול מסדי נתונים. |
| Hyperdisk ML | טייס אוטומטי רגיל |
הוא מותאם לעומסי עבודה של אימון AI/ML והסקת מסקנות שדורשים טעינה מהירה של משקלי המודל. אפשר להשתמש באפשרות הזו לעומסי עבודה של AI/ML עם דרישות גבוהות של קצב העברת נתונים מקסימלי לקריאה. זו האפשרות הכי טובה לצמצום מצב חוסר הפעילות של משאבי GPU/TPU בזמן טעינת נתונים. |
| Hyperdisk Balanced High Availability | טייס אוטומטי רגיל |
רמת ביצועים דומה ל-Hyperdisk Balanced, שעוזרת להפחית עלויות באמצעות שכפול סינכרוני בשני אזורים באזור. משתמשים באפשרות הזו כדי ליצור עומסי עבודה שנדרשת בהם זמינות גבוהה, או עומסי עבודה שנדרשים בהם כמה צמתים באזור כדי לכתוב בו-זמנית לאותו דיסק. |
יתרונות
- עם Hyperdisk, הביצועים של עומסי עבודה עם שמירת מצב שאתם פורסים צפויים יותר.
- עם Hyperdisk, אתם יכולים להקצות, לנהל ולשנות את גודל עומסי העבודה עם שמירת מצב ב-GKE, בלי העלות והמורכבות של ניהול רשת אזורית לאחסון (SAN) מקומית.
- קיבולת האחסון של Hyperdisk מחולקת למחיצות וזמינה לצמתים של GKE כנפחים נפרדים. הנפחים של Hyperdisk מנותקים מהצמתים, כך שאפשר לצרף, לנתק ולהעביר נפחים בין צמתים. הנתונים שמאוחסנים בווליומים של Hyperdisk נשמרים גם אחרי הפעלה מחדש של הצומת ומחיקה. אפשר גם להוסיף כמה נפחי Hyperdisk לצומת GKE יחיד.
תמחור
אתם מחויבים על הקיבולת הכוללת שהוקצתה לנפחי Hyperdisk עד שתמחקו אותם. החיוב הוא לפי GiB לחודש. בנוסף, תקבלו חיוב על הפריטים הבאים:
- ב-Hyperdisk Balanced, יש תעריף חודשי ל-IOPS ולתפוקה (ב-MiB/s) שסופקו מעבר לערכי הבסיס של 3,000 IOPS ו-140 MiB/s תפוקה.
- ב-Hyperdisk Extreme, החיוב הוא חודשי על סמך ה-IOPS שהוקצו.
- ב-Hyperdisk Throughput, החיוב הוא חודשי על סמך התפוקה שהוקצתה (ב-MiB/s).
למידע על מחירים, אפשר לעיין במאמר בנושא תמחור של דיסקים במסמכי התיעוד של Compute Engine.
מגבלות
- אחרי שיוצרים את אמצעי האחסון, אפשר לשנות רק את ההגדרות הבאות באמצעות Compute Engine API:
- קצב העברת נתונים: נפחי Hyperdisk Throughput ו-Hyperdisk Balanced
- IOPS: נפחי Hyperdisk Extreme ו-Hyperdisk Balanced
- אפשר לצרף נפחי Hyperdisk רק לסוגים ספציפיים של אינסטנסים. לא ניתן לצרף נפחים לקריאה בלבד.
- הגבלות ספציפיות ל-Hyperdisk ML:
- אי אפשר להשתמש ב-Hyperdisk ML כדי ליצור דיסקים לאתחול.
- אי אפשר להשתמש ב-Hyperdisk ML במצב ריבוי כתיבה.
- Hyperdisk ML לא תומך ב-Storage Pools.
- מגבלות ספציפיות ל-Hyperdisk Balanced HA:
- אי אפשר להשתמש ב-Hyperdisk Balanced HA במצב Kubernetes
ReadOnlyMany. - Hyperdisk Balanced HA לא תומך בתמונות מצב אם אמצעי האחסון נמצא במצב גישה
ReadWriteMany. - אפשר גם לעיין בקטע מגבלות במאמר בנושא דיסקים אזוריים במסמכי התיעוד של Compute Engine.
- אי אפשר להשתמש ב-Hyperdisk Balanced HA במצב Kubernetes
- מידע נוסף זמין בקטע Restrictions and Limitations במסמכי התיעוד של Compute Engine.
תזמון צמתים נתמך
אתם יכולים לתזמן באופן אוטומטי עומסי עבודה (workloads) מבוססי Hyperdisk לצמתים נתמכים עם StorageClass מותאם אישית. כדי להפעיל את ההתנהגות הזו, יוצרים את StorageClass עם הפרמטר use-allowed-disk-topology: "true". כדי להשתמש בתכונה הזו, הגרסה של האשכול ושל מאגרי הצמתים צריכה להיות 1.34.1-gke.2541000 ואילך. לא ניתן לתזמן נפחי אחסון שהוקצו באמצעות StorageClass הזה ב-nodepools בגרסאות נמוכות יותר.
בדוגמה הבאה מוצג StorageClass עם התכונה הזו.
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: hyperdisk-balanced-compatible-scheduling
provisioner: pd.csi.storage.gke.io
volumeBindingMode: WaitForFirstConsumer
allowVolumeExpansion: true
parameters:
type: hyperdisk-balanced
use-allowed-disk-topology: "true"
בחירה אוטומטית של סוג הדיסק
GKE יכול לבחור את סוג הדיסק המתאים לעומסי העבודה שלכם על סמך סוג המכונה של הצומת שבו הם מתוזמנים. הגישה הזו מאפשרת ליצור StorageClass יחיד שתומך באשכולות עם דורות ישנים יותר של מכונות וירטואליות, כשעוברים לטכנולוגיית מחשוב חדשה יותר. הגישה הזו גם מאפשרת הקצאה של Hyperdisk במופעים חדשים יותר ותואמים (כמו C3 או C4), ומעבר חזרה ל-Persistent Disk בדורות ישנים יותר.
כדי להפעיל בחירה אוטומטית של דיסקים, הגרסה של האשכול צריכה להיות 1.35.0-gke.2232000 ומעלה, עם הפרמטר type שמוגדר ל-dynamic ב-StorageClass. אפשר להגדיר את האפשרויות הספציפיות של הדיסק באמצעות הפרמטרים הבאים:
| פרמטר | תיאור | ברירת מחדל |
|---|---|---|
type |
חובה. מגדירים את הערך dynamic כדי להפעיל בחירה חכמה של דיסקים. |
לא רלוונטי |
use-allowed-disk-topology |
מומלץ. אם true, GKE מוודא שה-Pods מתוזמנים רק בצמתים שתומכים בסוג הדיסק שנבחר. |
false |
hyperdisk-type |
סוג ה-Hyperdisk לשימוש בצמתים נתמכים (כמו hyperdisk-balanced). |
hyperdisk-balanced |
pd-type |
סוג ה-Persistent Disk שבו יש להשתמש כגיבוי בצמתים אחרים (כמו pd-balanced). |
pd-balanced |
disk-type-preference |
ההגדרה הזו מבטלת את העדפת ברירת המחדל ל-hyperdisk-type כשצומת תומך בשתי האפשרויות. |
hyperdisk-type |
הערה: עדיין אפשר להשתמש בפרמטרים רגילים של אחסון בלוקים. GKE מחיל רק את ההגדרות שרלוונטיות לסוג הדיסק שנבחר כשהוא יוצר את אמצעי האחסון.
ב-StorageClass הבא מוצג אופן ההגדרה של בחירה דינמית של סוג הדיסק, שנותנת עדיפות ל-hyperdisk-balanced בצמתים נתמכים ומשתמשת אוטומטית ב-pd-balanced בצמתים אחרים.
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: dynamic-volume
provisioner: pd.csi.storage.gke.io
volumeBindingMode: WaitForFirstConsumer
allowVolumeExpansion: true
parameters:
type: dynamic
pd-type: pd-balanced
hyperdisk-type: hyperdisk-balanced
use-allowed-disk-topology: "true"
# The parameters below only apply to the hyperdisk-type and are ignored if
# the pd-type is selected.
provisioned-throughput-on-create: "250Mi"
provisioned-iops-on-create: "3000"
Hyperdisk וסוגי מחשוב ב-Autopilot
אם רוצים להשתמש ב-Hyperdisk באשכולות של Autopilot שמשתמשים בסוגי מחשוב, צריך לוודא שסוג המכונה של הצומת נתמך על ידי Hyperdisk וגם נתמך על ידי סוג המחשוב.
בדוגמה הבאה אפשר לראות איך מציינים את המאפיין nodeSelector כדי לשלוט בתזמון של Pod באשכולות של Autopilot עם מחלקת מחשוב Performance, כשמשתמשים ב-Hyperdisk Balanced.
cloud.google.com/compute-class: "Performance"
cloud.google.com/machine-famility: "c3"
מידע נוסף זמין במאמר בחירת מחלקות מחשוב ל-Pods של Autopilot.
תכנון רמת הביצועים של נפחי Hyperdisk
ההמלצות הבאות יעזרו לכם לתכנן את רמת הביצועים המתאימה לנפחי Hyperdisk.
Hyperdisk Balanced
עם Hyperdisk Balanced, אתם יכולים להקצות קיבולת בנפרד מתפוקה ומ-IOPS. כדי להקצות נפח אחסון או IOPS, בוחרים את הרמה של נפח אחסון מסוים. לכל נפח יש בידוד מלא של קצב העברת הנתונים – כל נפח יכול להשתמש בכל קצב העברת הנתונים או קיבולת ה-IOPS שצוינו עבור הנפח הזה. עם זאת, התפוקה או מספר פעולות הקלט/פלט בשנייה מוגבלים בסופו של דבר על ידי מגבלות לכל מופע במכונה הווירטואלית שאליה מצורפים הנפחים. מידע נוסף על המגבלות האלה זמין במאמר ביצועים מוקצים של Hyperdisk Balanced במאמרי העזרה של Compute Engine.
גם פעולות קריאה וגם פעולות כתיבה נכללות בחישוב של התפוקה והמגבלה של פעולות קלט/פלט בשנייה שהוקצו לנפח Hyperdisk Balanced. התפוקה או ה-IOPS שהוקצו והמגבלות המקסימליות חלות על הסכום הכולל של פעולות קריאה וכתיבה.
אם נפח הנתונים הכולל או מספר פעולות הקלט/פלט בשנייה (IOPS) שהוקצו לנפח אחד או יותר של Hyperdisk חורגים מנפח הנתונים הכולל או ממספר פעולות הקלט/פלט בשנייה שזמינים ברמת המכונה הווירטואלית, הביצועים מוגבלים לרמת הביצועים של המכונה הווירטואלית.
Hyperdisk Throughput
עם Hyperdisk Throughput, אתם יכולים להקצות קיבולת בנפרד מרוחב הפס. כדי להקצות נפח אחסון, בוחרים את הרמה של נפח אחסון מסוים. לכל נפח יש בידוד מלא של קצב העברת הנתונים – כל נפח מקבל את קצב העברת הנתונים שהוקצה לו. עם זאת, קצב העברת הנתונים מוגבל בסופו של דבר על ידי המגבלות לכל מופע במכונת ה-VM שאליה הכרכים מצורפים. למידע נוסף על המגבלות האלה, אפשר לעיין במאמר מידע על ביצועים שהוקצו במאמרי העזרה של Compute Engine. גם פעולות קריאה וגם פעולות כתיבה נספרות במסגרת מגבלת התפוקה שהוקצתה לנפח של Hyperdisk Throughput. התפוקה שהוקצתה והמגבלות המקסימליות חלות על הסכום הכולל של תפוקת הקריאה והכתיבה.
כשמגדירים StorageClass, נפח האחסון שהוקצה לנפחי Hyperdisk Throughput צריך לעמוד בכללים הבאים:
- לפחות 10 MiB/s לכל TiB של קיבולת, ולא יותר מ-90 MiB/s לכל TiB של קיבולת, בהתאם לסוג המכונה.
- עד 600 MiB/s לכל נפח, בהתאם לסוג המכונה.
אם התפוקה הכוללת שהוקצתה לנפח אחד או יותר של Hyperdisk Throughput חורגת מהתפוקה הכוללת שזמינה ברמת מכונת ה-VM, התפוקה מוגבלת לרמת התפוקה של המכונה.
Hyperdisk Extreme
עם Hyperdisk Extreme, אתם יכולים להקצות קיבולת בנפרד מרמת ה-IOPS. כדי להקצות את רמת ה-IOPS, מציינים את מכסת ה-IOPS עבור נפח אחסון נתון. לכל נפח יש בידוד מלא ברמת IOPS – כל נפח מקבל את רמת ה-IOPS שהוקצתה לו. עם זאת, מספר ה-IOPS מוגבל בסופו של דבר על ידי מגבלות לכל מכונה במכונת ה-VM שאליה מחוברים אמצעי האחסון. למידע נוסף על המגבלות האלה, אפשר לעיין במאמר מידע על ביצועים שהוקצו במאמרי העזרה של Compute Engine.
גם פעולות קריאה וגם פעולות כתיבה נכללות במגבלת ה-IOPS שהוקצתה לנפח Hyperdisk Extreme. ה-IOPS שהוקצה והמגבלות המקסימליות שמפורטות במסמך הזה חלים על סך ה-IOPS של קריאה וכתיבה.
כשמגדירים StorageClass, מספר ה-IOPS שהוקצה לנפחי Hyperdisk Extreme לא יכול להיות יותר מ-350,000 IOPS, בהתאם לסוג המכונה.
אם סך ה-IOPS שהוקצה לנפח אחד או יותר של Hyperdisk Extreme חורג מסך ה-IOPS שזמין ברמת המכונה הווירטואלית, הביצועים מוגבלים לרמת ה-IOPS של המכונה. אם יש כמה אמצעי אחסון מסוג Hyperdisk ו-Persistent Disk שמצורפים לאותה מכונה וירטואלית ומבקשים IOPS בו-זמנית, והמכונה הווירטואלית הגיעה למגבלות שלה, אז לכל אמצעי אחסון יש רמת IOPS שפרופורציונלית לחלק שלו ב-IOPS הכולל שהוקצה לכל אמצעי האחסון מסוג Hyperdisk Extreme שמצורפים.
Hyperdisk ML
עם Hyperdisk ML, אתם יכולים להקצות קיבולת בנפרד מהביצועים. כדי להקצות ביצועים, בוחרים את רמת התפוקה לנפח נתון. לכל נפח יש בידוד מלא של הביצועים – כל נפח מקבל את הביצועים שהוקצו לו.
כשנפח אחד מצורף לכמה מופעים, התפוקה שהוקצתה תתחלק באופן דינמי בין המופעים. עם זאת, קצב העברת הנתונים מוגבל בסופו של דבר על ידי מגבלות לכל מכונה במכונת ה-VM שאליה הכרכים מצורפים.
גם פעולות קריאה וגם פעולות כתיבה נכללות במגבלות התפוקה שהוקצו לנפח Hyperdisk ML במצב READ-WRITE-SINGLE. התפוקה שהוקצתה והמגבלות המקסימליות חלות על התפוקה הכוללת של קריאה וכתיבה.
התפוקה שהוקצתה לנפחי Hyperdisk ML צריכה לעמוד בכללים הבאים:
- מינימום: הגדול מבין (0.12 MBps * גודל הדיסק) ב-GiB או 400 MBps.
- מקסימום: (1,600 MBps * גודל הדיסק) ב-GiB, אבל לא יותר מ-1.2 TBps.
- אם אמצעי האחסון מצורף ליותר מ-20 מופעים במצב
READ-ONLY-MANY, ערך התפוקה צריך להיות לפחות 100 MBps * מספר המופעים המצורפים.
אם התפוקה הכוללת שהוקצתה לנפחי Hyperdisk ML חורגת מהתפוקה הכוללת שזמינה ברמת המופע, הביצועים יהיו מוגבלים לביצועים ברמת המופע.
Hyperdisk Balanced HA
עם Hyperdisk Balanced High Availability, אתם יכולים להקצות קיבולת בנפרד מרוחב הפס ומ-IOPS. כדי להקצות נפח נתונים או IOPS, בוחרים את הרמה של נפח הנתונים ושל ה-IOPS עבור נפח נתונים נתון. לכל נפח יש בידוד מלא של קצב העברת הנתונים – כל נפח יכול להשתמש בכל קצב העברת הנתונים או קיבולת ה-IOPS שצוינו עבור הנפח הזה. עם זאת, התפוקה או מספר פעולות הקלט/פלט בשנייה מוגבלים בסופו של דבר על ידי מגבלות לכל מופע במכונה הווירטואלית שאליה מצורפים הנפחים. מידע נוסף על המגבלות האלה זמין במאמר מידע על Google Cloud Hyperdisk במאמרי העזרה של Compute Engine.
גם פעולות קריאה וגם פעולות כתיבה נספרות במסגרת מגבלת התפוקה ומגבלת ה-IOPS שהוקצו לנפח אחסון של Hyperdisk Balanced High Availability. התפוקה או מספר פעולות הקלט/פלט (IOPS) שהוקצו, והמגבלות המקסימליות חלות על הסכום הכולל של פעולות הקריאה והכתיבה.
אם נפח הנתונים הכולל או מספר פעולות הקלט/פלט בשנייה (IOPS) שהוקצו לנפח אחד או יותר של Hyperdisk חורגים מנפח הנתונים הכולל או ממספר פעולות הקלט/פלט בשנייה שזמינים ברמת המכונה הווירטואלית, הביצועים מוגבלים לביצועים ברמת המכונה הווירטואלית.
המאמרים הבאים
- יוצרים סוג אחסון (storage class) ל-Hyperdisk Balanced, Throughput, Extreme או Balanced High Availability.
- יצירת סוג אחסון ל-Hyperdisk ML
- איך מעבירים נפחי Persistent Disk ל-Hyperdisk
- איך משפרים את ביצועי האחסון באמצעות Hyperdisk ב-GKE
- אופטימיזציה של הביצועים והעלויות של האחסון באמצעות מאגרי אחסון של Hyperdisk.