אתם יכולים להשתמש בנפחי Google Cloud Hyperdisk וPersistent Disk כדיסקי אתחול ודיסקי נתונים עבור מכונות Compute Engine.
במאמר הזה מוסבר איך לבצע את הפעולות הבאות:
כדי להמיר דיסק לסוג אחר של דיסק אחסון מתמיד או Hyperdisk, צריך ליצור דיסק חדש שמכיל את הנתונים של הדיסק המקורי. בהתאם לסוג הדיסק החדש שתבחרו, תוכלו ליהנות מההטבות הבאות:
- אם בוחרים סוג דיסק מהיר יותר, אפשר להגיע לרמות ביצועים גבוהות יותר
- הפחתת עלויות אם בוחרים סוג דיסק חסכוני יותר
אתם יכולים להגדיר אם Compute Engine ימחק את דיסקי האתחול או את דיסקי הנתונים של מכונת מחשוב כשאתם מוחקים את המכונה. תחויבו על דיסק עד שתמחקו אותו, גם אם הוא לא מחובר לאף מכונה. כדי לצמצם את העלויות, אפשר להפעיל מחיקה אוטומטית של דיסקים שלא תצטרכו אחרי שמכונה מצורפת נמחקת.
אפשר לעדכן את מצב הגישה של נפח Hyperdisk כדי להפעיל או להשבית את הגישה לנפח ממספר מכונות Compute Engine.
כדי לשנות את הגודל של נפח Hyperdisk או Persistent Disk, אפשר לעיין במאמרים שינוי הגודל או הביצועים המוקצים של נפח Hyperdisk ושינוי הגודל של Persistent Disk.
שינוי הסוג של נפח אחסון של Persistent Disk
לפעמים צריך לשנות את הסוג של נפח מסוים של Persistent Disk כדי לעמוד בדרישות הביצועים או התמחור. לדוגמה, יכול להיות שתרצו לשנות את דיסק הנתונים של עומס עבודה מדיסק מתמיד רגיל לדיסק מתמיד מאוזן.
אי אפשר לשנות ישירות את הסוג של נפח אחסון קיים של Persistent Disk. צריך ליצור snapshot של הדיסק הקיים ואז להשתמש ב-snapshot הזה כדי ליצור דיסק מהסוג החדש.
כדי לשנות נפח של דיסק לאחסון מתמיד (דיסק המקור) לסוג אחר של דיסק לאחסון מתמיד (הדיסק החדש), צריך לבצע את התהליך הבא:
אם דיסק המקור מחובר למופע של Compute, מפסיקים את המופע.
יוצרים קובץ snapshot של דיסק המקור.
יוצרים את הדיסק החדש מקובץ ה-snapshot של דיסק המקור.
כדי להתחיל להשתמש בדיסק החדש, מנתקים את דיסק המקור מהמופע ומצרפים את הדיסק החדש שיצרתם.
אם דיסק המקור הוא דיסק אתחול:
אם דיסק המקור הוא לא דיסק אתחול:
מוודאים שהדיסק החדש פועל כמו שצריך.
אחרי שבודקים את הדיסק החדש, אפשר למחוק את התמונה ולמחוק את דיסק המקור. תמשיכו לשלם על דיסק המקור ועל התמונה עד שתמחקו אותם.
שינוי ההגדרה של מחיקה אוטומטית של דיסק
כדי למנוע אובדן נתונים בטעות, אתם יכולים לקבוע אם Compute Engine ימחק באופן אוטומטי את הכרכים של Google Cloud Hyperdisk או Persistent Disk שמצורפים למופע כשאתם מוחקים את המופע. דיסקים מקומיים מסוג SSD תמיד נמחקים עם המכונה.
ההתנהגות הזו נקבעת על ידי המאפיין autoDelete של כל נפח של Google Cloud Hyperdisk או Persistent Disk שמצורף למופע.
כדי לשמור נפח אחסון ספציפי כשמוחקים את המופע, מגדירים את המאפיין autoDelete של נפח האחסון לערך false. לעומת זאת, כדי למחוק את אמצעי האחסון כשמוחקים את המופע, מגדירים את המאפיין autoDelete לערך true.
אי אפשר למחוק דיסק באופן אוטומטי אם הדיסק מחובר למופע במצב קריאה בלבד.
המסוף
נכנסים לדף VM instances במסוף Google Cloud .
בוחרים את המכונה שמשויכים אליה הדיסקים.
לוחצים על שם המכונה. יופיע הדף VM instance details.
לוחצים על עריכה.
כדי לעדכן את הגדרת המחיקה האוטומטית של הדיסקים, בקטע Storage (אחסון), פועלים לפי השלבים הבאים:
- בקטע Boot disk, בוחרים את Deletion Rule של דיסק האתחול.
- לכל דיסק נוסף שמצורף למופע, מחפשים את הדיסק בקטע Additional disks (דיסקים נוספים) ופועלים לפי השלבים הבאים:
- לוחצים על עריכת הדיסק. נפתחת החלונית Existing disk (דיסק קיים).
- בקטע Attachment mode (מצב צירוף), מגדירים את Deletion Rule (כלל מחיקה) של הדיסק. כדי לשמור את ההגדרה של הדיסק ולסגור את החלונית, לוחצים על שמירה.
כדי לשמור את השינויים, לוחצים על שמירה.
gcloud
מגדירים את מצב המחיקה האוטומטית של דיסק באמצעות הפקודה gcloud compute instances set-disk-auto-delete.
כדי לשמור את הדיסק כשמוחקים את המכונה, מציינים את הדגל --no-auto-delete. כדי למחוק את הדיסק, מציינים את הדגל --auto-delete.
אם למופע מצורפים כמה דיסקים, צריך להריץ את הפקודה לכל דיסק שמצורף למופע.
gcloud compute instances set-disk-auto-delete INSTANCE_NAME \ AUTO_DELETE_SETTING \ --disk DISK_NAME
מחליפים את מה שכתוב בשדות הבאים:
-
INSTANCE_NAME: השם של המכונה. AUTO_DELETE_SETTING: האם למחוק את הדיסק באופן אוטומטי. מציינים--no-auto-deleteכדי לשמור את הדיסק אחרי מחיקת מכונת החישוב, ו---auto-deleteכדי למחוק את הדיסק בו-זמנית עם המכונה.-
DISK_NAME: שם הדיסק.
המשך
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Goהוראות ההגדרה שבמדריך למתחילים של Compute Engine באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Compute Engine Go API.
כדי לבצע אימות ב-Compute Engine, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Java
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Javaהוראות ההגדרה שבמדריך למתחילים של Compute Engine באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Compute Engine Java API.
כדי לבצע אימות ב-Compute Engine, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Node.js
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Node.jsהוראות ההגדרה שבמדריך למתחילים של Compute Engine באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Compute Engine Node.js API.
כדי לבצע אימות ב-Compute Engine, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Python
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Pythonהוראות ההגדרה שבמדריך למתחילים של Compute Engine באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Compute Engine Python API.
כדי לבצע אימות ב-Compute Engine, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
REST
כדי להגדיר את מצב המחיקה האוטומטית באמצעות ה-API, שולחים בקשת POST אל ה-method instances.setDiskAutoDelete. משתמשים בפרמטר autoDelete כדי לציין אם למחוק את הדיסק.
אם יש כמה דיסקים שמצורפים למופע, צריך לשלוח בקשה לכל דיסק שמצורף למופע.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/setDiskAutoDelete?deviceName=DISK_NAME,autoDelete=AUTO_DELETE_OPTION
מחליפים את מה שכתוב בשדות הבאים:
PROJECT_ID: מזהה הפרויקט.-
ZONE: האזור שבו נמצאים המכונה והדיסק. -
INSTANCE_NAME: השם של המכונה -
DISK_NAME: השם של הדיסק שמצורף למכונה. -
AUTO_DELETE_OPTION: האם למחוק את הדיסק באופן אוטומטי כשמוחקים את המכונה. כדי למחוק את הדיסק, מגדירים את הערך ל-true. מגדירים את הערךfalseכדי לשמור את הדיסק אחרי מחיקת המכונה.
מצב גישה לנפחי Hyperdisk
כדי לשתף נפח Hyperdisk בין כמה מופעים ולתת לכל מופע גישה בו-זמנית לנפח לקריאה בלבד או לקריאה וכתיבה, צריך להגדיר את מצב הגישה של הנפח לקריאה בלבד או למצב מרובה כותבים, בהתאמה.
לעומת זאת, כדי לבצע פעולות מסוימות, כמו יצירת תמונה, בנפח Hyperdisk שנמצא במצב קריאה בלבד או במצב מרובה כותבים, צריך להגדיר את מצב הגישה שלו ככותב יחיד.
בקטע הזה נסביר איך מגדירים את מצב הגישה לדיסק.
מידע נוסף על שיתוף דיסקים זמין במאמר בנושא שיתוף דיסקים בין מופעים.
מגבלות על שינויים במצב הגישה
אי אפשר להגדיר את מצב הגישה של דיסק אלא אם מנתקים את הדיסק מכל המכונות.
נפחי אחסון מסוג Hyperdisk Throughput תומכים רק במצב של כתיבה יחידה, ואי אפשר להגדיר את מצב הגישה לנפח אחסון מסוג Hyperdisk Throughput.
בנפחי אחסון מסוג Hyperdisk Balanced, Hyperdisk Extreme ו-Hyperdisk Balanced High Availability, אפשר רק להפעיל או להשבית את מצב ריבוי הכתיבה. אי אפשר להגדיר את מצב הגישה לקריאה בלבד.
בנפחי Hyperdisk ML, אפשר להגדיר את מצב הגישה רק לקריאה בלבד. כרכים של Hyperdisk ML לא תומכים במצב של כמה כותבים.
אי אפשר לשנות את מצב הגישה של נפח Hyperdisk ML אחרי שמגדירים אותו לקריאה בלבד.
תפקידים והרשאות נדרשים
כדי לקבל את ההרשאה שדרושה להגדרת מצב הגישה לדיסק, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בפרויקט:
- מנהל מכונות של Compute (גרסה 1) (
roles/compute.instanceAdmin.v1) -
כדי להתחבר למכונה וירטואלית שיכולה לפעול כחשבון שירות: משתמש בחשבון שירות (v1) (
roles/iam.serviceAccountUser)
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
התפקיד המוגדר מראש הזה כולל את ההרשאה compute.disks.update, שנדרשת כדי להגדיר את מצב הגישה לדיסק.
יכול להיות שתוכלו לקבל את ההרשאה הזו גם בתפקידים בהתאמה אישית או בתפקידים אחרים שמוגדרים מראש.
הגדרת מצב הגישה של נפח Hyperdisk
לפני שמגדירים את מצב הגישה של דיסק, צריך לנתק את הדיסק מכל המופעים.
אפשר להגדיר את מצב הגישה באמצעות מסוף Google Cloud , Google Cloud CLI או REST.
המסוף
נכנסים לדף Disks במסוף Google Cloud .
ברשימת הדיסקים בפרויקט, לוחצים על השם של נפח Hyperdisk שרוצים לשנות.
בדף הפרטים של הדיסק, לוחצים על עריכה.
בשדה מצב גישה, בוחרים את מצב הגישה הרצוי:
- כדי להפעיל מצב קריאה בלבד, בוחרים באפשרות קריאה בלבד של כמה מכונות וירטואליות.
- כדי להפעיל מצב של כמה מכונות וירטואליות עם הרשאות קריאה וכתיבה, בוחרים באפשרות כמה מכונות וירטואליות עם הרשאות קריאה וכתיבה.
- (ברירת מחדל) כדי להפעיל מצב של כותב יחיד, בוחרים באפשרות Single VM read-write (קריאה וכתיבה במכונה וירטואלית יחידה).
כדי להחיל את השינויים, לוחצים על שמירה.
gcloud
מריצים את הפקודה disks update ומציינים את מצב הגישה באמצעות הדגל --access-mode.
gcloud compute disks update DISK_NAME \ --access-mode=DISK_ACCESS_MODE
מחליפים את מה שכתוב בשדות הבאים:
- DISK_NAME: השם של נפח ה-Hyperdisk שמשנים.
- DISK_ACCESS_MODE: איך מופעים יכולים לגשת לנתונים בדיסק.
הערכים הנתמכים הם:
-
READ_ONLY_MANY, לגישת קריאה בלבד מכמה מקרים. -
READ_WRITE_MANY, לגישת קריאה וכתיבה מכמה מופעים. - (ברירת מחדל)
READ_WRITE_SINGLE, לגישת קריאה וכתיבה ממופע אחד.
-
REST
יוצרים בקשת PATCH אל ה-method compute.disks.update.
בגוף הבקשה, מגדירים את מצב הגישה על ידי הכללת הפרמטר accessMode.
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME/update
{
"accessMode": "DISK_ACCESS_MODE"
}
מחליפים את מה שכתוב בשדות הבאים:
PROJECT_ID: מזהה הפרויקט.-
ZONE: האזור שבו נמצא נפח האחסון של Hyperdisk. -
DISK_NAME: השם של נפח ה-Hyperdisk שרוצים לשנות. DISK_ACCESS_MODE: איך מופעים יכולים לגשת לנתונים בדיסק. הערכים הנתמכים הם:-
READ_ONLY_MANY, לגישת קריאה בלבד מכמה מקרים. -
READ_WRITE_MANY, לגישת קריאה וכתיבה מכמה מופעים. -
READ_WRITE_SINGLE, למצב של כתיבה על ידי משתמש יחיד, כלומר גישת קריאה-כתיבה ממופע אחד.
-
פתרון בעיות
כדי למצוא שיטות לאבחון ולפתרון בעיות שקשורות לדיסקים מלאים ולשינוי גודל הדיסק, ראו פתרון בעיות שקשורות לדיסקים מלאים ולשינוי גודל הדיסק.
המאמרים הבאים
- כדי למנוע אובדן נתונים לא מכוון, מומלץ ללמוד איך מגבים את הדיסקים באופן קבוע באמצעות תמונות מצב.
- משתמשים בדיסקים לאחסון מתמיד אזורי לרפליקציה סינכרונית בין שני אזורים.
- הרכבת דיסק RAM במכונה.