Google Cloud Hyperdisk הוא אפשרות לאחסון בלוקים ברשת שמוצעת ב-GKE. אתם יכולים להשתמש באפשרות האחסון הזו באשכולות GKE באופן דומה לשימוש בנפחים אחרים של Persistent Disk ב-Compute Engine, עם גמישות נוספת להתאמת הביצועים לעומס העבודה שלכם. בהשוואה לאחסון ב-Persistent Disk, ב-Hyperdisk יש קצב העברת נתונים ומספר מקסימלי של פעולות קלט/פלט לשנייה (IOPS) גבוהים בהרבה. בניגוד לנפחי Persistent Disk שבהם הביצועים משותפים לכל הנפחים שמחוברים לצומת, ב-Hyperdisk אפשר לציין ולכוונן את רמת הביצועים של כל נפח Hyperdisk.
אפשר לבחור מבין האפשרויות הבאות של Hyperdisk ב-GKE:
| אפשרות אחסון | מצב הפעולה של GKE | תיאור |
|---|---|---|
| Hyperdisk Balanced | Autopilot Standard |
האפשרות הכי מתאימה לרוב עומסי העבודה. האפשרות הזו מתאימה לפריסה של רוב האפליקציות הארגוניות והאפליקציות של הענף הכלכלי, וגם של מסדי נתונים ושרתי אינטרנט. |
| Hyperdisk Throughput | Autopilot Standard |
אופטימיזציה לקצב העברת נתונים גבוה ומשתלם. האפשרות הזו מתאימה אם אתם רוצים להרחיב אופקית בהתאם לעומס (scale out) של ניתוח נתונים (לדוגמה, Hadoop או Kafka) ועומסי עבודה שרגישים לעלויות ומתמקדים בנפח העיבוד. |
| Hyperdisk Extreme | Autopilot Standard |
אופטימיזציה לביצועי IOPS. האפשרות הזו מתאימה לפריסת עומסי עבודה עם ביצועים גבוהים, כמו מערכות לניהול מסדי נתונים. |
| Hyperdisk ML | Autopilot Standard |
התאמה לעומסי עבודה של אימון והסקת מסקנות ב-AI/ML שצריכים לטעון במהירות משקלי מודלים. האפשרות הזו מתאימה לעומסי עבודה של AI או למידת מכונה שדורשים קצב העברת נתונים גבוה לקריאה. זו האפשרות הכי טובה כדי לצמצם את זמן חוסר הפעילות של משאבי GPU/TPU בזמן טעינת הנתונים. |
| Hyperdisk Balanced High Availability | Autopilot Standard |
רמת ביצועים דומה ל-Hyperdisk Balanced, שעוזרת להפחית את העלויות באמצעות רפליקציה סינכרונית בשני אזורים באותו מחוז. האפשרות הזו מתאימה לעומסי עבודה שדורשים זמינות גבוהה, או לעומסי עבודה שדורשים מכמה צמתים באזור לכתוב בו-זמנית לאותו דיסק. |
יתרונות
- עם Hyperdisk, הביצועים של עומסי העבודה עם שמירת מצב (stateful) שאתם פורסים צפויים יותר.
- באמצעות Hyperdisk, אתם יכולים להקצות, לנהל ולהתאים את עומסי העבודה שלכם עם שמירת מצב (stateful) ב-GKE, בלי העלות והמורכבות של ניהול רשת אזור אחסון (SAN) מקומית.
- נפח האחסון של Hyperdisk מחולק למחיצות וזמין לצומתי GKE כנפחים נפרדים. אמצעי האחסון של Hyperdisk מנותקים מהצמתים, כך שאפשר לצרף, לנתק ולהעביר אמצעי אחסון בין צמתים. הנתונים שמאוחסנים בנפחי Hyperdisk נשמרים גם אחרי הפעלה מחדש ומחיקה של צמתים. אפשר גם להוסיף כמה אמצעי אחסון ב-Hyperdisk לצומת GKE אחד.
תמחור
אתם מחויבים על הקיבולת הכוללת שהוקצתה לנפחי Hyperdisk עד שאתם מוחקים אותם. החיוב הוא לפי GiB לחודש. בנוסף, תחויבו על:
- ב-Hyperdisk Balanced, החיוב החודשי על הקצאת משאבים לפי קצב ה-IOPS והקצאת משאבים לפי התפוקה שנקבעה (ב-MiB לשנייה) הוא מעבר לערכי הבסיס של 3,000 IOPS ותפוקה של 140 MiB לשנייה.
- ב-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 עם מאגרי אחסון.
- מגבלות ספציפיות ל-Hyperdisk Balanced HA:
- אי אפשר להשתמש ב-Hyperdisk Balanced HA במצב
ReadOnlyManyשל Kubernetes. - Hyperdisk Balanced HA לא תומך בתמונות מצב אם אמצעי האחסון נמצא במצב גישה
ReadWriteMany. - אפשר גם לעיין בקטע מגבלות במאמרי העזרה של Compute Engine בנושא דיסקים אזוריים.
- אי אפשר להשתמש ב-Hyperdisk Balanced HA במצב
- למידע נוסף, קראו את הקטע הגבלות ומגבלות במאמרי העזרה של 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 יחיד שתומך בכמה דורות של מכונות וירטואליות, וזה נחוץ כשמשתמשים ב-ComputeClasses בהתאמה אישית כדי להגדיר חלופות לקיבולת של כמה סדרות. בסדרות חדשות יותר של מכונות, כמו C4, C4D ו-N4, יש תמיכה רק ב-Hyperdisk, ובסדרות ישנות יותר, כמו N2 ו-N2D, יש תמיכה ב-Persistent Disk. לכן, StorageClass שמוצמד לסוג דיסק אחד יכול למנוע מפודים עם שמירת מצב (stateful) לעבור בין דורות של מכונות במקרה של מחסור במשאב של תחום מוגדר. בעזרת בחירה אוטומטית של סוג הדיסק, אתם יכולים להקצות סדרות מכונות שתואמות ל-Hyperdisk, כמו C4, C3 ו-N4, ולחזור ל-Persistent Disk בסדרות מכונות כמו N2D או 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 יוצר נפח שמשתמש בסוג דיסק ספציפי, 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 שמשתמשים בסוגי מכונות של Compute, ודאו שסוג המכונה של הצומת נתמך ב-Hyperdisk וגם נתמך בסוג המכונה של Compute.
בדוגמה הבאה אפשר לראות איך מציינים את המאפיין nodeSelector כדי לשלוט בתזמון של Pod באשכולות Autopilot עם סוג המחשוב Performance, כשמשתמשים ב-Hyperdisk Balanced.
cloud.google.com/compute-class: "Performance"
cloud.google.com/machine-family: "c3"
מידע נוסף זמין במאמר בחירת מחלקות Compute לפודים של Autopilot.
תכנון רמת הביצועים של אמצעי האחסון ב-Hyperdisk
כדי לתכנן את רמת הביצועים המתאימה לנפחי Hyperdisk, כדאי להשתמש בשיקולים הבאים.
Hyperdisk Balanced
ב-Hyperdisk Balanced, אפשר להקצות קיבולת בנפרד מהקצב ומה-IOPS. כדי להקצות משאבים לפי התפוקה שנקבעה או לפי IOPS, בוחרים את הרמה של נפח נתון. לכל אמצעי אחסון יש בידוד מלא של קצב העברת הנתונים – כל אמצעי אחסון יכול להשתמש בכל קצב העברת הנתונים או קיבולת ה-IOPS שצוינו לאותו אמצעי אחסון. עם זאת, קצב הנתונים או IOPS מוגבלים בסופו של דבר על ידי המגבלות לכל מכונה וירטואלית שאליה מחוברים אמצעי האחסון. למידע נוסף על המגבלות האלה, קראו את המאמר ביצועים שהוקצו ל-Hyperdisk Balanced במסמכי התיעוד של Compute Engine.
גם פעולות קריאה וגם פעולות כתיבה נספרות במגבלת קצב העברת הנתונים וה-IOPS שהוקצו לנפח Hyperdisk Balanced. קצב העברת הנתונים או ה-IOPS שהוקצו והמגבלות המקסימליות חלים על הסכום הכולל של פעולות הקריאה והכתיבה.
אם קצב הנתונים הכולל או מספר פעולות הקלט/פלט לשנייה (IOPS) שהוקצו לנפח אחד או יותר של Hyperdisk חורגים מקצב הנתונים הכולל או ממספר פעולות הקלט/פלט לשנייה שזמינים ברמת המכונה הווירטואלית, הביצועים מוגבלים לרמת הביצועים של המכונה.
Hyperdisk Throughput
ב-Hyperdisk Throughput אפשר להקצות קיבולת בנפרד מהתפוקה. כדי להקצות משאבים לפי התפוקה שנקבעה, בוחרים את הרמה לנפח נתון. לכל אמצעי אחסון יש בידוד מלא של קצב העברת הנתונים – כל אחד מקבל את קצב העברת הנתונים שהוקצה לו. עם זאת, קצב העברת הנתונים מוגבל בסופו של דבר על ידי המגבלות לכל מכונה וירטואלית שאליה מחוברים אמצעי האחסון. למידע נוסף על המגבלות האלה, קראו את המאמר מידע על ביצועים שהוקצו במסמכי התיעוד של Compute Engine. גם פעולות קריאה וגם פעולות כתיבה נספרות במגבלת ה-throughput שהוקצתה לנפח Hyperdisk Throughput. הקצב שהוקצה והמגבלות המקסימליות חלים על הסכום הכולל של קצב הקריאה והכתיבה.
כשמגדירים StorageClass, קצב העברת הנתונים שהוקצה לנפחי Hyperdisk Throughput צריך לעמוד בכללים הבאים:
- לפחות 10 MiB/s לכל TiB של קיבולת, ולא יותר מ-90 MiB/s לכל TiB של קיבולת, בהתאם לסוג המכונה.
- עד 600 MiB/s לכל אמצעי אחסון, בהתאם לסוג המכונה.
אם קצב העיבוד הכולל שהוקצה לנפח אחד או יותר של Hyperdisk Throughput חורג מקצב העיבוד הכולל שזמין ברמת המכונה הווירטואלית, קצב העיבוד מוגבל לרמת קצב העיבוד של המכונה.
Hyperdisk Extreme
ב-Hyperdisk Extreme אפשר להקצות קיבולת בנפרד מרמת ה-IOPS. כדי להקצות את רמת ה-IOPS, מציינים את מגבלת ה-IOPS לנפח נתון. לכל אמצעי אחסון יש בידוד מלא ברמת ה-IOPS – כל אחד מקבל את רמת ה-IOPS שהוקצתה לו. עם זאת, בסופו של דבר מספר פעולות ה-IOPS מוגבל על ידי המגבלות לכל מכונה וירטואלית שאליה מחוברים אמצעי האחסון. למידע נוסף על המגבלות האלה, קראו את המאמר מידע על ביצועים שהוקצו במסמכי התיעוד של Compute Engine.
גם פעולות קריאה וגם פעולות כתיבה נכללות במגבלת ה-IOPS שהוקצתה לנפח Hyperdisk Extreme. ה-IOPS שהוקצו והמגבלות המקסימליות שמפורטות במאמר הזה חלים על סך כל ה-IOPS לקריאה ולכתיבה.
כשמגדירים StorageClass, מספר פעולות ה-IOPS שמוקצות לנפחי Hyperdisk Extreme לא יכול להיות יותר מ-350,000, בהתאם לסוג המכונה.
אם המספר הכולל של פעולות ה-IOPS שהוקצו לנפח אחד או יותר של Hyperdisk Extreme חורג מהמספר הכולל של פעולות ה-IOPS שזמינות ברמת המכונה הווירטואלית, הביצועים מוגבלים לרמת ה-IOPS של המכונה. אם יש כמה נפחי Hyperdisk ו-Persistent Disk שמחוברים לאותו VM ומבקשים IOPS בו-זמנית, והמגבלות של ה-VM מוצו, לכל נפח יש רמת IOPS פרופורציונלית לחלק שלו בסך ה-IOPS שהוקצה בכל נפחי Hyperdisk Extreme המחוברים.
Hyperdisk ML
ב-Hyperdisk ML אפשר להקצות קיבולת בנפרד מהביצועים. כדי להקצות ביצועים, בוחרים את רמת קצב הנתונים לנפח נתון. לכל אמצעי אחסון יש בידוד ביצועים מלא – כל אחד מקבל את הביצועים שהוקצו לו.
כשמצרפים אמצעי אחסון אחד לכמה מכונות, הקצאת המשאבים לפי התפוקה שנקבעה מתבצעת באופן דינמי בין המכונות. עם זאת, קצב העברת הנתונים מוגבל בסופו של דבר על ידי המגבלות לכל מכונה וירטואלית שאליה מחוברים אמצעי האחסון.
גם פעולות קריאה וגם פעולות כתיבה נכללות במגבלות הקצב של נפח Hyperdisk ML במצב READ-WRITE-SINGLE. הקצב שהוקצה והמגבלות המקסימליות חלים על הקצב הכולל של הקריאה והכתיבה.
קצב העברת הנתונים שהוקצה לנפחי Hyperdisk ML חייב לעמוד בכללים הבאים:
- מינימום: הערך הגבוה מבין (0.12 MBps * גודל הדיסק) ב-GiB או 400 MBps.
- מקסימום: (1,600 MBps * גודל הדיסק) ב-GiB, אבל לא יותר מ-1.2 TBps.
- אם אמצעי האחסון מחובר ליותר מ-20 מכונות במצב
READ-ONLY-MANY, ערך התפוקה צריך להיות לפחות 100MBps כפול מספר המכונות המחוברות.
אם קצב העיבוד הכולל שהוקצה לנפח אחד או יותר של Hyperdisk ML חורג מקצב העיבוד הכולל שזמין ברמת המכונה, הביצועים יוגבלו לביצועים ברמת המכונה.
Hyperdisk Balanced HA
ב-Hyperdisk Balanced High Availability, אפשר להקצות קיבולת בנפרד מנפח העיבוד ומ-IOPS. כדי להקצות משאבים לפי התפוקה שנקבעה או לפי ה-IOPS, בוחרים את רמת התפוקה וה-IOPS לנפח נתון. לכל אמצעי אחסון יש בידוד מלא של קצב העברת הנתונים – כל אמצעי אחסון יכול להשתמש בכל קצב העברת הנתונים או קיבולת ה-IOPS שצוינו לאותו אמצעי אחסון. עם זאת, קצב הנתונים או ה-IOPS מוגבלים בסופו של דבר על ידי המגבלות לכל מכונה וירטואלית שאליה מחוברים אמצעי האחסון. מידע נוסף על המגבלות האלה זמין במאמר מידע על Google Cloud Hyperdisk במסמכי התיעוד של Compute Engine.
גם פעולות קריאה וגם פעולות כתיבה נספרות במגבלת ה-Throughput וה-IOPS שמוקצית לנפח Hyperdisk Balanced High Availability. הקצאת המשאבים לפי התפוקה שנקבעה או ה-IOPS והמגבלות המקסימליות חלים על המספר הכולל של פעולות הקריאה והכתיבה.
אם קצב הנתונים הכולל או מספר פעולות הקלט/פלט לשנייה (IOPS) שהוקצו לנפח אחד או יותר של Hyperdisk חורגים מקצב הנתונים הכולל או ממספר פעולות הקלט/פלט לשנייה (IOPS) שזמינים ברמת המכונה הווירטואלית, הביצועים מוגבלים לביצועים ברמת המכונה.
המאמרים הבאים
- יצירת מחלקת אחסון ל-Hyperdisk Balanced, Throughput, Extreme או Balanced High Availability.
- יצירת מחלקת אחסון ל-Hyperdisk ML.
- איך מעבירים אמצעי אחסון של Persistent Disk ל-Hyperdisk
- שינוי קנה המידה של ביצועי האחסון באמצעות Hyperdisk ב-GKE
- אופטימיזציה של הביצועים והעלות של האחסון באמצעות Hyperdisk Storage Pool.