שינוי סוג הדיסק

כדי לשנות את הסוג, המיקום או הפרויקט של דיסק, צריך ליצור דיסק חדש. במסמך הזה נסביר איך לבצע את השינויים הבאים בדיסק, כי אי אפשר לשנות את המאפיינים האלה בדיסק קיים:

  • לשנות את הסוג של דיסק, לדוגמה, לשנות נפח אחסון מסוג Hyperdisk Throughput לנפח אחסון מסוג Hyperdisk Balanced.
  • שינוי סוג ההצפנה של הדיסק, לדוגמה, שינוי ההצפנה של הדיסק משימוש במפתחות שנוצרו על ידי Google לשימוש במפתחות הצפנה בניהול הלקוח (CMEK).
  • העברה של דיסק לתוך מאגר Hyperdisk או הוצאה שלו ממנו.
  • העברת דיסק לאזור או לאזור זמינות אחרים.
  • העברת דיסק לפרויקט אחר.

כדי לבצע את אחת מהמשימות שצוינו למעלה, פועלים לפי השלבים הבאים:

  1. יוצרים קובץ snapshot של הדיסק הקיים.
  2. יוצרים דיסק חדש מהסוג הנכון או בתוך Storage Pool (שנקרא מיקום), ומשתמשים ב-snapshot כמקור הנתונים של הדיסק.
  3. אחרי שמוודאים שהדיסק החדש תקין, אפשר למחוק את הדיסק המקורי.

לפני שמתחילים

  • כדי למקם את נפחי ה-Hyperdisk החדשים ב-Hyperdisk Storage Pool או ב-Hyperdisk Exapool, צריך לעיין במגבלות על יצירת דיסקים ב-Hyperdisk pool.

  • אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות. אימות הוא התהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Google Cloud . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים הבאות:

    צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:

    המסוף

    כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים ולממשקי ה-API של Google Cloud , לא צריך להגדיר אימות.

    gcloud

    1. התקינו את ה-CLI של Google Cloud. אחר כך, מאתחלים את ה-CLI של Google Cloud באמצעות הפקודה הבאה:

      gcloud init

      אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

  • הגדרת אזור ותחום כברירת מחדל.
  • REST

    כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.

      התקינו את ה-CLI של Google Cloud.

      אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

    מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Google Cloud .

תפקידים והרשאות נדרשים

כדי לקבל את ההרשאות שדרושות לשינוי סוג הדיסק, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בפרויקט:

להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

התפקידים המוגדרים מראש האלה כוללים את ההרשאות שנדרשות לשינוי סוג הדיסק. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:

ההרשאות הנדרשות

כדי לשנות את סוג הדיסק, נדרשות ההרשאות הבאות:

  • כדי ליצור snapshot של הדיסק:
    • compute.snapshots.create בפרויקט
    • compute.disks.createSnapshot בדיסק
  • כדי ליצור דיסק חדש: ‫compute.disks.create בפרויקט
  • כדי ליצור דיסק חדש מקובץ snapshot רגיל או מקובץ snapshot של ארכיון:
    • ‫compute.disks.create בפרויקט שבו רוצים ליצור את הדיסק
    • compute.snapshots.useReadOnly בתמונת המצב
  • כדי ליצור דיסק במאגר:
    • compute.storagePools.use בפרויקט
    • compute.disks.create בפרויקט
  • כדי לצרף דיסק למכונה וירטואלית:
    • ‫compute.instances.attachDisk במכונה הווירטואלית
    • ‫compute.disks.use בנפח שרוצים לצרף למכונה הווירטואלית
  • כדי למחוק דיסק: ‫compute.disks.delete בפרויקט

יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.

שינוי הסוג, המיקום, הפרויקט או המיקום של דיסק

כדי לבצע את המשימות הבאות בדיסק, צריך ליצור קובץ snapshot של הדיסק ואז ליצור דיסק חדש מקובץ ה-snapshot:

  • העברת נפח של Persistent Disk ל-Hyperdisk
  • יצירה מחדש של דיסק בתוך מאגר או מחוץ לו
  • העברת דיסק לפרויקט אחר
  • העברת דיסק לאזור או לאזור זמינות אחר

כדי להעביר דיסק לפרויקט אחר, צריך להשתמש ב-Google Cloud CLI או ב-REST. אי אפשר להשתמש במסוף Google Cloud .

המסוף

  1. הכנה ליצירת קובץ snapshot של דיסק:

    חשוב: אם השהיתם את האפליקציות לפני יצירת תמונת מצב, אל תפעילו מחדש את עומסי העבודה עד שמקור תמונת המצב יגיע למצב UPLOADING.

    מידע נוסף זמין בטבלה שבמאמר יצירה ידנית של קובצי snapshot שתואמים לאפליקציה.

  2. יוצרים קובץ snapshot של הדיסק הקיים.

  3. אופציונלי: כדי ליצור Hyperdisks חדשים במאגר, צריך ליצור מאגר אחסון, אם אין כזה.
  4. נכנסים לדף Disks.

    לפתיחת הדף Disks
  5. לוחצים על + Create Disk.
  6. בקטע Disk Type, בוחרים באפשרות Hyperdisk Extreme,‏ Hyperdisk Throughput או Hyperdisk Balanced.

    אופציונלי: כדי להשתמש במאגר, צריך לבחור באפשרות Hyperdisk Balanced או Hyperdisk Throughput.

  7. בשדה Disk source type, בוחרים באפשרות Snapshot ואז בוחרים את שם קובץ ה-snapshot שרוצים לשחזר.
  8. מציינים את הגודל (Size) של הדיסק החדש ב-GiB. המספר הזה צריך להיות גדול או שווה לדיסק המקור המקורי של התמונה.
  9. אופציונלי: אם משנים את סוג הדיסק, משנים את ברירות המחדל:

    • ‫Hyperdisk Balanced: משנים את הערך של Provisioned IOPS ואת הערך של Provisioned throughput.
    • ‫Hyperdisk Extreme: משנים את הערך של Provisioned IOPS (תפוקת קלט/פלט שהוקצתה).
    • Hyperdisk Throughput: משנים את הערך של קצב העברת נתונים שהוקצה.
  10. אופציונלי: כדי ליצור את הדיסק החדש במאגר:

    1. בקטע מאגר אחסון, בוחרים באפשרות הפעלת מאגר אחסון.
    2. בוחרים את שם המאגר שבו רוצים ליצור את הדיסק.

      ברשימה מופיעות רק מאגרי כתובות שקיימים באזור שנבחר.

  11. לוחצים על Create כדי ליצור את הדיסק החדש.
  12. אחרי שיוצרים את הדיסק, אפשר לצרף את הדיסק לכל מכונת חישוב שפועלת או מושבתת.

gcloud

  1. הכנות ליצירת קובץ snapshot של דיסק:

    חשוב: אם משהים את האפליקציות לפני שיוצרים קובץ snapshot, צריך להמשיך את עומסי העבודה רק אחרי שמשאב ה-snapshot מגיע לסטטוס UPLOADING.

    מידע נוסף זמין בטבלה שבמאמר יצירה ידנית של קובצי snapshot עקביים של אפליקציות.

  2. יוצרים קובץ snapshot של הדיסק הקיים.

  3. כדי ליצור נפח Hyperdisk מה-snapshot, משתמשים בפקודה disks create.

    gcloud compute disks create DISK_NAME \
     --project=DISK_PROJECT \
     --zone=ZONE \
     --storage-pool=STORAGE_POOL_NAME \
     --size=SIZE \
     --source-snapshot=projects/SNAPSHOT_PROJECT/global/snapshots/SNAPSHOT_NAME \
     --type=DISK_TYPE \
     --provisioned-iops=PROVISIONED_IOPS \
     --provisioned-throughput=PROVISIONED_THROUGHPUT
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫DISK_PROJECT: הפרויקט שבו רוצים ליצור את הדיסק.
    • ‫DISK_NAME: שם ייחודי לדיסק. אתם יכולים לספק רשימה של שמות דיסקים שמופרדים באמצעות רווחים כדי ליצור כמה דיסקים עם אותם מאפיינים.
    • ‫ZONE: האזור שבו רוצים ליצור את הדיסק. אם רוצים ליצור את הדיסק במאגר, צריך לציין את התחום שבו המאגר נמצא. צריך לציין את הערך הזה בפורמט region-zone, לדוגמה us-central1-a.
    • ‫STORAGE_POOL_NAME: אופציונלי: שם המאגר שבו רוצים ליצור את הדיסק. אם לא כוללים את הפרמטר הזה, נוצר Hyperdisk עצמאי.
    • ‫SIZE: אופציונלי: הקיבולת שהוקצתה לדיסק החדש. הגודל חייב להיות גדול או שווה לגודל של Persistent Disk המקור. הערך חייב להיות מספר שלם שאחריו יחידת גודל של GB ל-gibibyte או TB ל-tebibyte. אם לא מציינים גודל, ערך ברירת המחדל הוא 100GB.
    • ‫SNAPSHOT_PROJECT: השם של הפרויקט שמכיל את קובץ ה-snapshot של המקור שיצרתם מהדיסק המקורי.
    • ‫SNAPSHOT_NAME: השם של קובץ ה-snapshot שיצרתם מהדיסק המקורי.
    • ‫DISK_TYPE: סוג הדיסק שרוצים ליצור. אם יוצרים דיסק במאגר, הערך הזה צריך להתאים לסוג המאגר, hyperdisk-balanced או hyperdisk-throughput.
    • ‫PROVISIONED_IOPS: אופציונלי: מספר ה-IOPS להקצאה לדיסק. אפשר להשתמש בפרמטר הזה רק כשיוצרים דיסק מסוג Hyperdisk Balanced או Hyperdisk Extreme.
    • ‫PROVISIONED_THROUGHPUT: אופציונלי: בדיסקים מסוג Hyperdisk Balanced ו-Hyperdisk Throughput, קצב העברת הנתונים במגה-בייט (MB) לשנייה שיוקצה לדיסק. הערך חייב להיות מספר שלם חיובי.
  4. אחרי שיוצרים את הדיסק, אפשר לצרף אותו לכל מופע פעיל או מופסק של Compute.

REST

  1. הכנות ליצירת קובץ snapshot של דיסק:

    חשוב: אם משהים את האפליקציות לפני שיוצרים קובץ snapshot, צריך להמשיך את עומסי העבודה רק אחרי שמשאב ה-snapshot מגיע לסטטוס UPLOADING.

    מידע נוסף זמין בטבלה שבמאמר בנושא יצירה ידנית של תמונות מצב עקביות של אפליקציות.

  2. יוצרים קובץ snapshot של הדיסק הקיים.

    .
  3. יוצרים בקשת POST אל ה-method‏ disks.insert. צריך לכלול את המאפיינים name,‏ sizeGb,‏ type ו-sourceSnapshot.

    POST https://compute.googleapis.com/compute/v1/projects/DISK_PROJECT/zones/ZONE/disks
    {
       "name": "DISK_NAME",
       "sizeGb": "DISK_SIZE",
       "type": "https://compute.googleapis.com/compute/v1/projects/DISK_PROJECT/zones/ZONE/diskTypes/DISK_TYPE",
       "sourceSnapshot": "projects/SNAPSHOT_PROJECT/global/snapshots/SNAPSHOT_NAME",
       "provisionedIops": "IOPS_LIMIT",
       "provisionedThroughput": "THROUGHPUT_LIMIT",
       "accessMode": "DISK_ACCESS_MODE"
    }
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫DISK_PROJECT: הפרויקט שבו יוצרים את הדיסק
    • ‫ZONE: האזור שבו נמצאים המכונה והדיסק החדש
    • ‫DISK_NAME: השם של הדיסק החדש
    • ‫DISK_SIZE: אופציונלי. הגודל של הדיסק החדש. הערך חייב להיות מספר שלם ואחריו יחידת גודל של GB לגיביבייט או TB לטביבייט.
    • ‫DISK_TYPE: סוג הדיסק. כדי ליצור נפח Hyperdisk, משתמשים באחד מהערכים הבאים: hyperdisk-balanced,‏ hyperdisk-extreme,‏ hyperdisk-ml או hyperdisk-throughput.
    • ‫SNAPSHOT_PROJECT: שם הפרויקט שמכיל את קובץ ה-snapshot שיצרתם מהדיסק המקורי.
    • ‫SNAPSHOT_NAME: השם של קובץ ה-snapshot שיצרתם מהדיסק המקורי.
    • ‫IOPS_LIMIT: אופציונלי: ב-Hyperdisk Balanced וב-Hyperdisk Extreme, זה מספר פעולות הקלט/פלט לשנייה שהדיסק יכול לטפל בהן.
    • ‫THROUGHPUT_LIMIT: אופציונלי: לנפחי Hyperdisk Balanced,‏ Hyperdisk ML או Hyperdisk Throughput, זהו מספר שלם שמייצג את קצב הנתונים שהדיסק יכול לטפל בו, שנמדד ב-MiB לשנייה.
    • DISK_ACCESS_MODE: איך מכונות Compute יכולות לגשת לנתונים בדיסק. הערכים הנתמכים הם:

      • ‫READ_WRITE_SINGLE, לגישת קריאה וכתיבה ממופע אחד. זה ערך ברירת המחדל.
      • ‫READ_WRITE_MANY, לגישת קריאה וכתיבה ממספר מכונות.
      • ‫READ_ONLY_MANY, לגישת קריאה בלבד מכמה מכונות.

      אפשר להגדיר את מצב הגישה לסוגי הדיסקים הבאים:

  4. אופציונלי: משתמשים ב- method‏ compute.disks.get כדי לראות תיאור של הדיסק.

  5. אחרי שיוצרים את הדיסק, אפשר לצרף אותו לכל מופע פעיל או מופסק של Compute.

שינוי דיסק אזורי ל-Hyperdisk אזורי

כדי לשנות דיסק אזורי קיים ל-Hyperdisk אזורי, צריך ליצור נפח חדש של Hyperdisk Balanced High Availability מדיסק המקור. הסיבה לכך היא ש-Hyperdisk Balanced High Availability הוא ה-Hyperdisk האזורי היחיד שנתמך.

הדרך ליצור נפח Hyperdisk Balanced High Availability מדיסק אזורי תלויה בסוג הדיסק האזורי:

  • בנפחי Hyperdisk Balanced, כולל דיסקים של נתונים ודיסקים לטעינת מערכת ההפעלה, ובנפחי Hyperdisk Extreme, יוצרים נפח Hyperdisk Balanced High Availability באמצעות שכפול דיסק המקור.

  • כדי לשנות את הגודל של אמצעי אחסון מסוג Hyperdisk ML,‏ Hyperdisk Throughput ו-Persistent Disk, פועלים לפי ההוראות בקטע הזה.

    כדי ליצור נפח אחסון מסוג Hyperdisk Balanced High Availability מסוגי הדיסקים שצוינו למעלה, צריך ליצור נפח אחסון מסוג Hyperdisk Balanced High Availability מתוך ה-snapshot של הדיסק האזורי.

אפשר להשתמש במסוף Google Cloud , ב-CLI של gcloud, בספק Terraform ל- Google Cloudאו ב-REST.

המסוף

  1. הכנות ליצירת קובץ snapshot של דיסק:

    חשוב: אם משהים את האפליקציות לפני שיוצרים קובץ snapshot, צריך להמשיך את עומסי העבודה רק אחרי שמשאב ה-snapshot מגיע לסטטוס UPLOADING.

    מידע נוסף זמין בטבלה שבמאמר בנושא יצירה ידנית של תמונות מצב עקביות של אפליקציות.

  2. יוצרים קובץ snapshot של הדיסק הקיים.

  3. נכנסים לדף Disks.

    לפתיחת הדף Disks
  4. לוחצים על ‎+ Create Disk.
  5. מציינים שם לדיסק.
  6. בשדה מיקום, בוחרים באפשרות אזורי.
  7. בשדות Region ו-Zone, מציינים את האזור הראשי של הדיסק.

    הדיסק צריך להיות באותו אזור שבו נמצאת המכונה שאתם מתכננים לצרף אותו אליה.

  8. מציינים את האזור המשני בשדה Replica zone.
  9. בשדה Disk source type, בוחרים באפשרות Snapshot ואז בוחרים את שם קובץ ה-snapshot שרוצים לשחזר.
  10. בקטע Disk Type, בוחרים באפשרות Hyperdisk Balanced High Availability.

    אם סוג הדיסק Hyperdisk Balanced High Availability לא מופיע ברשימה, יכול להיות שתצטרכו לבחור אזור שבו מוצעים דיסקים מסוג Hyperdisk Balanced High Availability.

  11. מציינים את הגודל (Size) של הדיסק החדש ב-GiB. המספר הזה צריך להיות גדול או שווה לדיסק המקור המקורי של התמונה.
  12. אופציונלי: משנים את ערכי ברירת המחדל של Provisioned IOPS ו-הקצאת משאבים לפי התפוקה שנקבעה לדיסק החדש:

  13. לוחצים על Create כדי ליצור את הדיסק החדש.
  14. אחרי שיוצרים את הדיסק, אפשר לצרף את הדיסק לכל מכונת חישוב שפועלת או מושבתת.

gcloud

  1. הכנה ליצירת קובץ snapshot של דיסק:

    חשוב: אם אתם משהים את האפליקציות לפני שאתם יוצרים קובץ snapshot, המשיכו את עומסי העבודה רק אחרי שמשאב ה-snapshot מגיע לסטטוס UPLOADING.

    מידע נוסף זמין בטבלה שבמאמר בנושא יצירה ידנית של תמונות מצב עקביות של אפליקציות.

  2. יוצרים קובץ snapshot של הדיסק הקיים.

  3. כדי ליצור דיסק Hyperdisk Balanced High Availability מה-snapshot, משתמשים בפקודה disks create.

    gcloud compute disks create DISK_NAME \
     --size=SIZE \
     --type=hyperdisk-balanced-high-availability \
     --source-snapshot=SNAPSHOT_NAME \
     --provisioned-iops=PROVISIONED_IOPS \
     --provisioned-throughput=PROVISIONED_THROUGHPUT \
     --region=REGION \
     --replica-zones=ZONE1,ZONE2
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫DISK_NAME: שם ייחודי לדיסק.
    • ‫SIZE: אופציונלי: הקיבולת שהוקצתה לדיסק החדש. הגודל צריך להיות גדול או שווה לגודל דיסק המקור. הערך חייב להיות מספר שלם ואחריו יחידת הגודל GB בשביל gibibyte, או TB בשביל tebibyte.
    • ‫SNAPSHOT_NAME: השם של קובץ ה-snapshot שיצרתם מהדיסק המקורי.
    • ‫PROVISIONED_IOPS: אופציונלי: מספר פעולות הקלט/פלט לשנייה (IOPS) שיוקצו לדיסק.
    • ‫PROVISIONED_THROUGHPUT: אופציונלי: קצב העברת הנתונים במגה-בייט (MB) לשנייה שצריך להקצות לדיסק.
    • ‫REGION: האזור שבו נמצא הדיסק האזורי, לדוגמה: europe-west1
    • ‫ZONE1,ZONE2: האזורים בתוך המחוז שבהם נמצאים שני עותקי הדיסק, לדוגמה: europe-west1-b,europe-west1-c

Terraform

כדי ליצור נפח אחסון מסוג Hyperdisk Balanced High Availability, אפשר להשתמש במשאב google_compute_region_disk, כמו בדוגמה הבאה, אבל צריך לשנות את סוג הדיסק מ-pd-ssd ל-hyperdisk-balanced-high-availability.

resource "google_compute_region_disk" "regiondisk" {
  name                      = "region-disk-name"
  snapshot                  = google_compute_snapshot.snapdisk.id
  type                      = "pd-ssd"
  region                    = "us-central1"
  physical_block_size_bytes = 4096
  size                      = 11

  replica_zones = ["us-central1-a", "us-central1-f"]
}

כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.

REST

כדי ליצור נפח Hyperdisk Balanced High Availability, שולחים בקשת POST אל ה-method‏ compute.regionDisks.insert.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/disks
{
  "name": "DISK_NAME",
  "sourceSnapshot": "SNAPSHOT_NAME",
  "region": "projects/PROJECT_ID/regions/REGION",
  "replicaZones": [
    "projects/PROJECT_ID/zones/ZONE1",
    "projects/PROJECT_ID/zones/ZONE2"
  ],
  "sizeGb": "DISK_SIZE",
  "type": "projects/PROJECT_ID/regions/REGION/diskTypes/hyperdisk-balanced-high-availability"
}

מחליפים את מה שכתוב בשדות הבאים:

  • ‫PROJECT_ID: מזהה הפרויקט
  • ‫REGION: האזור שבו נמצא הדיסק האזורי, לדוגמה: europe-west1
  • ‫DISK_NAME: השם של הדיסק החדש
  • ‫SNAPSHOT_NAME: השם של קובץ ה-snapshot שיצרתם מהדיסק המקורי.
  • ‫ZONE1,ZONE2: האזורים שבהם הרפליקות של הדיסק החדש צריכות להיות ממוקמות, לדוגמה: europe-west1-b,europe-west1-c
  • ‫DISK_SIZE: הגודל של הדיסק החדש ב-GiB

איך מאפשרים למכונה הווירטואלית לגשת לדיסק החדש

אחרי שיוצרים את הדיסק, צריך לצרף את הדיסק או לצרף את הדיסק האזורי למכונה של Compute Engine כדי להשתמש בו.

הדיסק החדש שיצרתם הוא לא דיסק ריק, ולכן אחרי שמצרפים אותו למכונה, צריך רק לטעון אותו כדי שיהיה זמין למערכת ההפעלה.

מידע על אופן הרכבת הדיסק זמין במאמרים הבאים:

הסרת הדיסק המקורי

אחרי שמאמתים את הדיסק החדש, אפשר:

המאמרים הבאים