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 במצב
ReadOnlyManyשל Kubernetes. - Hyperdisk Balanced HA לא תומך בתמונות מצב אם עוצמת הקול היא במצב גישה
ReadWriteMany. - אפשר גם לעיין בקטע מגבלות במאמר בנושא דיסקים אזוריים בתיעוד של Compute Engine.
- אי אפשר להשתמש ב-Hyperdisk Balanced HA במצב
- מידע נוסף זמין בקטע Restrictions and Limitations במסמכי התיעוד של Compute Engine.
תזמון צמתים נתמך
אתם יכולים לתזמן באופן אוטומטי עומסי עבודה מבוססי Hyperdisk לצמתים נתמכים באמצעות StorageClass בהתאמה אישית. כדי להפעיל את ההתנהגות הזו, צריך ליצור את ה-StorageClass עם הפרמטר use-allowed-disk-topology: "true". כדי להשתמש בתכונה הזו, האשכולות וקבוצות הצמתים צריכים להיות בגרסה 1.34.1-gke.2541000 ומעלה. לא ניתן לתזמן נפחים שהוקצו באמצעות ה-StorageClass הזה בקבוצות צמתים בגרסאות נמוכות יותר.
בדוגמה הבאה מוצג 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"
בחירה אוטומטית של סוג הדיסק
בגרסה 1.35.3-gke.1290000 ואילך, אפשר לציין את סוגי הדיסקים המועדפים ל-Hyperdisk ול-Persistent Disk ב-StorageClass. GKE בוחר באופן אוטומטי סוג דיסק עבור עומסי העבודה שלכם על סמך סוג המכונה של הצומת. הגישה הזו מאפשרת ליצור StorageClass יחיד שתומך בכמה דורות של מכונות וירטואליות. לדוגמה, אם אתם מעבירים בהדרגה את הצמתים לסדרות מכונות חדשות יותר, אתם יכולים להקצות סדרות מכונות שתואמות ל-Hyperdisk, כמו C3 ו-C4, ולחזור ל-Persistent Disk בסדרות מכונות כמו C2.
כדי להפעיל בחירה אוטומטית של דיסקים, מגדירים את השדה parameters.type ב-StorageClass לערך dynamic. אפשר לציין את סוגי הדיסקים המועדפים באמצעות הפרמטרים הבאים:
| פרמטרים דינמיים של סוג הדיסק | ||
|---|---|---|
hyperdisk-type |
סוג ה-Hyperdisk שבו רוצים להשתמש בצמתים שתומכים ב-Hyperdisk. אם משמיטים את הפרמטר הזה, ערך ברירת המחדל הוא hyperdisk-balanced. |
|
pd-type |
סוג הדיסק לאחסון מתמיד לשימוש בצמתים שתומכים בדיסק לאחסון מתמיד. אם לא מציינים את הפרמטר הזה, ערך ברירת המחדל הוא pd-balanced. |
|
disk-type-preference |
סוג האחסון שבו ייעשה שימוש בצמתים שתומכים גם ב-Hyperdisk וגם ב-Persistent Disk. מציינים אחד מהערכים הבאים:
|
|
אפשר להשתמש בכל אחד מהפרמטרים האחרים של אחסון בלוקים עבור Hyperdisk ו-Persistent Disk ב-StorageClass. כש-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 Compute Classes
אם רוצים להשתמש ב-Hyperdisk באשכולות של Autopilot שמשתמשים בסוגי מחשוב, צריך לוודא שסוג המכונה של הצומת נתמך על ידי Hyperdisk וגם נתמך על ידי סוג המחשוב.
בדוגמה הבאה אפשר לראות איך מציינים את המאפיין nodeSelector כדי לשלוט בתזמון של Pod באשכולות Autopilot עם מחלקת המחשוב Performance, כשמשתמשים ב-Hyperdisk Balanced.
cloud.google.com/compute-class: "Performance"
cloud.google.com/machine-family: "c3"
מידע נוסף זמין במאמר בחירת מחלקות מחשוב עבור רכיבי Autopilot Pod.
תכנון רמת הביצועים של נפחי Hyperdisk
ההמלצות הבאות יעזרו לכם לתכנן את רמת הביצועים הנכונה לנפחי ה-Hyperdisk שלכם.
Hyperdisk Balanced
עם Hyperdisk Balanced, אתם יכולים להקצות קיבולת בנפרד מתפוקה ומ-IOPS. כדי להקצות נפח אחסון או IOPS, בוחרים את הרמה של נפח אחסון מסוים. לכל נפח אחסון יש בידוד מלא של התפוקה – כל נפח יכול להשתמש בכל התפוקה או קיבולת ה-IOPS שצוינו עבורו. עם זאת, התפוקה או ה-IOPS מוגבלים בסופו של דבר על ידי מגבלות לכל מופע במכונה הווירטואלית שאליה מצורפים הנפחים. למידע נוסף על המגבלות האלה, אפשר לעיין במאמר בנושא ביצועים מוקצים של Hyperdisk Balanced במאמרי העזרה של Compute Engine.
גם פעולות קריאה וגם פעולות כתיבה נספרות במסגרת מגבלת התפוקה וה-IOPS שהוקצו לנפח Hyperdisk Balanced. ה-Throughput או ה-IOPS שהוקצו והמגבלות המקסימליות חלים על הסכום הכולל של פעולות קריאה וכתיבה.
אם התפוקה הכוללת או מספר פעולות הקלט/פלט בשנייה (IOPS) שהוקצו לנפח אחד או יותר של Hyperdisk חורגים מהתפוקה הכוללת או ממספר פעולות הקלט/פלט בשנייה שזמינים ברמת המכונה הווירטואלית, הביצועים מוגבלים לרמת הביצועים של המכונה.
Hyperdisk Throughput
עם Hyperdisk Throughput, אתם יכולים להקצות קיבולת בנפרד מרוחב הפס. כדי להקצות נפח אחסון, בוחרים את הרמה של נפח אחסון מסוים. לכל נפח אחסון יש בידוד מלא של קצב העברת הנתונים – כל נפח מקבל את קצב העברת הנתונים שהוקצה לו. עם זאת, קצב העברת הנתונים מוגבל בסופו של דבר על ידי מגבלות לכל מופע במכונת ה-VM שאליה מצורפים אמצעי האחסון. למידע נוסף על המגבלות האלה, אפשר לעיין במאמר מידע על ביצועים שהוקצו במאמרי העזרה של Compute Engine. גם פעולות קריאה וגם פעולות כתיבה נספרות במסגרת מגבלת התפוקה שהוקצתה לנפח Hyperdisk Throughput. ה-Throughput שהוקצה והמגבלות המקסימליות חלים על הסכום הכולל של ה-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, אתם יכולים להקצות קיבולת בנפרד מהביצועים. כדי להקצות ביצועים, בוחרים את רמת התפוקה לנפח נתון. לכל נפח יש בידוד מלא של הביצועים – כל נפח מקבל את הביצועים שהוקצו לו.
כשנפח אחסון אחד מצורף לכמה מכונות, קצב העברת הנתונים שהוקצה יתחלק באופן דינמי בין המכונות. עם זאת, קצב העברת הנתונים מוגבל בסופו של דבר על ידי מגבלות לכל מכונה במכונה הווירטואלית שאליה מצורפים נפחי האחסון.
גם פעולות קריאה וגם פעולות כתיבה נכללות במגבלות של Throughput שהוקצו לנפח Hyperdisk ML במצב READ-WRITE-SINGLE. ה-Throughput שהוקצה והמגבלות המקסימליות חלים על סך ה-Throughput של קריאה וכתיבה.
התפוקה שהוקצתה לנפחי Hyperdisk ML צריכה לעמוד בכללים הבאים:
- מינימום: הגדול מבין (0.12 MBps * disk size) ב-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. כדי להקצות Throughput או IOPS, בוחרים את רמת ה-Throughput וה-IOPS עבור נפח נתון. לכל נפח אחסון יש בידוד מלא של התפוקה – כל נפח יכול להשתמש בכל התפוקה או קיבולת ה-IOPS שצוינו עבורו. עם זאת, התפוקה או ה-IOPS מוגבלים בסופו של דבר על ידי מגבלות לכל מופע במכונה הווירטואלית שאליה מצורפים הנפחים. מידע נוסף על המגבלות האלה זמין במאמר מידע על Cloud de Confiance Hyperdisk במאמרי העזרה של Compute Engine.
גם פעולות קריאה וגם פעולות כתיבה נספרות במסגרת מגבלת ה-IOPS וה-Throughput שהוקצו לנפח אחסון של Hyperdisk Balanced High Availability. מגבלת ה-IOPS או ה-Throughput שהוקצו והמגבלות המקסימליות חלות על הסכום הכולל של פעולות הקריאה והכתיבה.
אם נפח הנתונים הכולל או מספר פעולות הקלט/פלט בשנייה (IOPS) שהוקצו לנפח אחד או יותר של Hyperdisk חורגים מנפח הנתונים הכולל או ממספר פעולות הקלט/פלט בשנייה שזמינים ברמת המכונה הווירטואלית, הביצועים מוגבלים לביצועים ברמת המכונה הווירטואלית.
המאמרים הבאים
- יוצרים סוג אחסון (storage class) ל-Hyperdisk Balanced, Throughput, Extreme או Balanced High Availability.
- יצירת סוג אחסון ל-Hyperdisk ML
- איך מעבירים נפחי אחסון של Persistent Disk ל-Hyperdisk
- שיפור ביצועי האחסון באמצעות Hyperdisk ב-GKE
- אופטימיזציה של ביצועי האחסון והעלויות באמצעות Hyperdisk Storage Pools.