שינוי הגודל של דיסק אחסון מתמיד

אם המכונה הווירטואלית (VM) של Compute Engine זקוקה לשטח אחסון נוסף או למגבלות ביצועים מוגדלות, אפשר להגדיל את הגודל של Persistent Disk. אפשר להגדיל את גודל הדיסק בכל שלב, גם אם הדיסק מחובר למכונה וירטואלית פעילה וגם אם לא.

בדף הזה מוסבר איך לשנות את הגודל של Persistent Disk. כדי להגדיל את הנפח של Google Cloud Hyperdisk, אפשר לעיין במאמר בנושא שינוי הגודל והביצועים המוקצים של נפח Hyperdisk.

כשיוצרים תמונת Linux בהתאמה אישית, תמונת Windows בהתאמה אישית או תמונת Fedora CoreOS, צריך להגדיל ידנית את הגודל של הדיסקים של האתחול ושל הדיסקים שלא מיועדים לאתחול. אם אתם משתמשים בתמונה ציבורית (חוץ מתמונות של Fedora CoreOS),‏ Compute Engine משנה את הגודל של דיסקי האתחול באופן אוטומטי.

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

‫Compute Engine מנהל את החומרה שמאחורי דיסקים קבועים, כך שאתם יכולים להוסיף דיסקים ולשנות את הגודל שלהם בלי לטפל בפסי הסתרה או ביתירות.

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

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

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

    המסוף

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

    gcloud

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

      gcloud init

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

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

    כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של Terraform שבדף הזה, מתקינים ומפעילים את ה-CLI של gcloud, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש.

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

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

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

      gcloud auth application-default login

      אם אתם משתמשים ב-Cloud Shell, אין צורך לבצע את הפעולה הזו.

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

    מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

    REST

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

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

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

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

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

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

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

התפקיד המוגדר מראש הזה כולל את ההרשאה compute.disks.update, שנדרשת כדי לשנות את הגודל של דיסק קשיח קבוע.

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

הקטנת הגודל של דיסק

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

כדי להחליף דיסק בדיסק קטן יותר, פועלים לפי השלבים הבאים:

  1. יוצרים דיסק ריק של אחסון מתמיד ומציינים את הגודל הרצוי. מוודאים שהדיסק החדש גדול מספיק כדי להכיל את הנתונים מהדיסק המקורי.
  2. מצרפים את שני הדיסקים לאותה מכונה. הוראות מפורטות מופיעות במאמר צירוף דיסק שאינו דיסק אתחול למכונה וירטואלית.
  3. מפרמטים את הדיסק החדש ומעלים אותו. הוראות למקרים של Linux ושל Windows.
  4. מעתיקים את הנתונים מהדיסק המקורי לדיסק החדש באמצעות כלי עזר שזמינים למערכת ההפעלה. לדוגמה, ב-Linux, אפשר להשתמש ב-rsync או ב-dd. במקרים של מופעי Windows, אפשר להשתמש ב-robocopy.
  5. מוודאים שבדיסק החדש יש את כל הנתונים והוא פועל כצפוי.
  6. כדי להשתמש בדיסק החדש, צריך לעדכן את האפליקציה או את מערכת ההפעלה.
  7. אחרי שמוודאים שההעברה הצליחה, אפשר לנתק ולמחוק את הדיסק המקורי הגדול יותר.
תחויבו על הדיסק המקורי עד שתמחקו אותו.

מגבלות גודל של נפחי אחסון ב-Persistent Disk

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

סוג הדיסק גודל מינימלי גודל מקסימלי ברירת מחדל של גודל
דיסק אחסון מתמיד מאוזן אזורי: ‎10 GiB
אזורי: ‎10 GiB
‫64 TiB ‫100 GiB
דיסק אחסון מתמיד (persistent disk) שמבוסס על ביצועים (SSD) אזורי: ‎10 GiB
אזורי: ‎10 GiB
‫64 TiB ‫100 GiB
Standard Persistent Disk אזורי: 10 GiB
אזורי: 200 GiB
‫64 TiB ‫500 GiB
אחסון מתמיד (persistent disk) קיצוני ‫500 GiB ‫64 TiB ‫1 TiB

הגדלת הנפח של כונן Persistent Disk

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

המסוף

  1. נכנסים לדף Disks במסוף Google Cloud .

    לפתיחת הדף Disks

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

  3. בדף הפרטים של הדיסק, לוחצים על עריכה. יכול להיות שתצטרכו ללחוץ על התפריט More actions ואז על Edit.

  4. בשדה גודל, מזינים את הגודל החדש של הדיסק. אפשר לשנות את הגודל של דיסקים עם טבלאות מחיצות MBR רק עד 2 TB.

  5. לוחצים על שמירה כדי להחיל את השינויים על הדיסק.

גודל הדיסק החדש מוצג ברשימת הדיסקים.

gcloud

משתמשים בפקודה gcloud compute disks resize ומציינים את הדגל --size עם הגודל החדש של הדיסק, בגיביבייט (GiB).

gcloud compute disks resize DISK_NAME \
    --size DISK_SIZE \
    --zone=ZONE

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

  • DISK_NAME: שם הדיסק שמשנים את הגודל שלו.
  • DISK_SIZE: הגודל החדש של הדיסק בגיביבייט (GiB). אפשר לשנות את הגודל של דיסקים עם טבלאות מחיצות MBR רק עד 2 TB.
  • ZONE: בדיסקים לאחסון מתמיד של תחום, מציינים את התחום שבו הדיסק נמצא.

    במקום זאת, כדי להשתמש באחסון מתמיד אזורי, משתמשים בדגל --region=REGION ומציינים את האזור שבו נמצא האחסון המתמיד האזורי.

Terraform

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

דיסק אזורי

כדי לשנות את הגודל של דיסק לאחסון מתמיד, אפשר להשתמש במשאב google_compute_disk ובפרמטר size.

# Using pd-standard because it's the default for Compute Engine

resource "google_compute_disk" "default" {
  name = "disk-data"
  type = "pd-standard"
  zone = "us-west1-a"
  size = "5"
}

אם כוללים את הפרמטר size יחד עם הפרמטר image או snapshot, הערך של size צריך להיות שווה לגודל התמונה או הצילום או גדול ממנו.

אם לא מציינים את הפרמטרים image ו-snapshot, אפשר להגדיר את הפרמטר size לערך שקטן מגודל הדיסק הקיים. אם תעשו את זה, Terraform ישמיד את הדיסק ויצור דיסק חדש של אחסון מתמיד (persistent disk) ריק.

דיסק אחסון מתמיד אזורי

כדי לשנות את הגודל של דיסק לאחסון מתמיד אזורי, אפשר להשתמש במשאב google_compute_region_disk ובפרמטר size.

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"]
}

אם כוללים את הפרמטר size יחד עם הפרמטר image או snapshot, הערך של size צריך להיות שווה לגודל התמונה או הצילום או גדול ממנו.

אם לא מציינים את הפרמטרים image ו-snapshot, אפשר להגדיר את הפרמטר size לערך שקטן מגודל הדיסק הקיים. אם עושים את זה, Terraform משמיד את הדיסק ויוצר דיסק חדש ריק של RegionalPersistent.

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

REST

כדי לשנות את הגודל של Persistent Disk, צריך ליצור בקשת POST אל ה-method‏ compute.disks.resize.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME/resize
{
  "sizeGb": "DISK_SIZE"
}

כדי לשנות את הגודל של Regional Persistent Disk, צריך ליצור בקשת POST אל ה-method‏ compute.regionDisks.resize.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/disks/DISK_NAME/resize
{
   "sizeGb": "DISK_SIZE"
}

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

  • PROJECT_ID: מזהה הפרויקט.
  • ZONE: לדיסק אחסון מתמיד (persistent disk) אזורי: האזור שבו הדיסק ממוקם.
  • REGION: בדיסק אחסון מתמיד אזורי: האזור שבו הדיסק ממוקם.
  • DISK_NAME: שם הדיסק שרוצים לשנות את הגודל שלו.
  • DISK_SIZE: הגודל החדש של הדיסק בגיביבייט (GiB). אפשר לשנות את הגודל של דיסקים עם טבלאות חלוקה למחיצות מסוג MBR רק עד 2 TB.

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

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

  • דיסקים לאתחול: אם אתם משתמשים באימג' מותאם אישית של Linux, באימג' מותאם אישית של Windows או באימג' של Fedora CoreOS, אתם צריכים לשנות את הגודל של מחיצת הבסיס ומערכת הקבצים באופן ידני. במקרים של מכונות עם תמונות ציבוריות (למעט תמונות של Fedora CoreOS), מערכת Compute Engine משנה את הגודל של מחיצת השורש ומערכת הקבצים באופן אוטומטי אחרי שמגדילים את הגודל של דיסק האתחול, ואין צורך להפעיל מחדש את המכונה.

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

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

מכונות Linux

  1. נכנסים לדף VM instances במסוף Google Cloud .

    כניסה לדף VM instances

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

  3. משתמשים בפקודות df ו-lsblk כדי להציג את הגודל של מערכת הקבצים ולמצוא את שמות המכשירים של הדיסקים.

    $ sudo df -Th
    
    Filesystem      Type      Size  Used Avail Use% Mounted on
    udev            devtmpfs  3.9G     0  3.9G   0% /dev
    /dev/nvme0n1p1  ext4      9.7G  2.0G  7.2G  22% /
    /dev/nvme0n1p15 vfat      124M   12M  113M  10% /boot/efi
    /dev/nvme0n2    ext4       98G   24K   98G   1% /mnt/disks/data
    
    
    $ sudo lsblk
    
    NAME        MAJ:MIN   RM  SIZE RO TYPE MOUNTPOINT
    nvme0n1      259:0    0   20G  0 disk
    ├─nvme0n1p1  259:5    0  9.9G  0 part /
    ├─nvme0n1p14 259:6    0    3M  0 part
    └─nvme0n1p15 259:7    0  124M  0 part /boot/efi
    nvme0n2      259:4    0  100G  0 disk /mnt/disks/data
    
    

    הדוגמה הזו כוללת את הדיסקים הבאים:

    • דיסק אתחול: מחיצת /dev/nvme0n1p1 נמצאת בדיסק אתחול שגודלו שונה ל-20GB. טבלת המחיצות ומערכת הקבצים מספקות למערכת ההפעלה רק 9.9GB.
    • דיסק נתונים שאינו דיסק אתחול: לדיסק הנתונים /dev/nvme0n2 שאינו דיסק אתחול אין טבלת מחיצות, אבל מערכת הקבצים בדיסק הזה מספקת 100GB למערכת ההפעלה. ספריית ההרכבה של הדיסק הזה היא /mnt/disks/data.

    שימו לב לעמודה Type בפלט הפקודה df, שבה מצוין אם הדיסק משתמש במערכת קבצים מסוג ext4 או xfs.

  4. בודקים את סוג המחיצה:

    sudo parted -l
    

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

    Warning: Not all of the space available to /dev/nvme0n1 appears to be
    used, you can fix the GPT to use all of the space (an extra 20971520
    blocks) or continue with the current setting?
    Fix/Ignore?
    

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

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

    sudo parted -l /dev/DEVICE_NAME
    

    מחפשים את השדה Partition Table. אם הערך הוא msdos, סוג המחיצה בדיסק הוא MBR. כלומר, הגודל המקסימלי של דיסק כזה יהיה 2TB.

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

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

      1. פותחים את parted במכשיר:

        sudo parted /dev/DEVICE_NAME
        

        מחליפים את DEVICE_NAME בשם המכשיר של דיסק האתחול, לדוגמה, nvme0n1

      2. בשורת הפקודה, מזינים:

        (parted) resizepart
        
      3. בפרומפט Partition number?, מזינים:

        1
        
      4. בפרומפט Warning: Partition /dev/DEVICE_NAMEp1 is being used. Are you sure you want to continue?, מזינים:

        Yes
        
      5. בהנחיה End?, מזינים

        100%
        
      6. בפרומפט (parted), מזינים:

        (parted) quit
        
    2. בודקים את טבלת המחיצות החדשה באמצעות parted -l.

      sudo parted -l /dev/DEVICE_NAME
      
      Model: nvme_card-pd (nvme)
      Disk /dev/DEVICE_NAME: 21.5GB
      Sector size (logical/physical): 512B/512B
      Partition Table: gpt
      Disk Flags:
      
      Number  Start   End     Size    File system  Name  Flags
      14      1049kB  4194kB  3146kB                     bios_grub
      15      4194kB  134MB   130MB   fat16              boot, esp
      1       134MB   21.5GB  21.3GB  ext4
      
    3. הרחבת מערכת הקבצים:

      • אם אתם משתמשים ב-ext4, אתם צריכים להשתמש בפקודה resize2fs:

        sudo resize2fs /dev/PARTITION_NAME
        

        מחליפים את PARTITION_NAME בשם המחיצה של דיסק האתחול, לדוגמה, nvme0n1p1.

      • אם אתם משתמשים ב-xfs, אתם צריכים להשתמש בפקודה xfs_growfs:

        sudo xfs_growfs -d /
        
      • אם אתם משתמשים ב-btrfs, צריך להשתמש בפקודה btrfs:

        sudo btrfs filesystem resize max /
        
  7. בדיסק נתונים שאינו דיסק אתחול, משנים את הגודל של מערכת הקבצים בדיסק.

    • אם אתם משתמשים ב-ext4, אתם יכולים להשתמש בפקודה resize2fs כדי להרחיב את מערכת הקבצים:

      sudo resize2fs /dev/PARTITION_NAME
      

      מחליפים את PARTITION_NAME בשם המחיצה של דיסק הנתונים. בדוגמה הזו, שם המחיצה הוא /dev/nvme0n2p1.

    • אם אתם משתמשים ב-xfs, משתמשים בפקודה xfs_growfs כדי להרחיב את מערכת הקבצים:

      sudo xfs_growfs MOUNT_DIR
      
    • אם אתם משתמשים ב-btrfs, צריך להשתמש בפקודה btrfs כדי להרחיב את מערכת הקבצים:

      sudo btrfs filesystem resize max MOUNT_DIR
      

      מחליפים את MOUNT_DIR בנקודת הטעינה של המכשיר. ניתן למצוא את נקודת הטעינה המופיעה בעמודה MOUNTPOINT בפלט של הפקודה lsblk.

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

    df -h /dev/PARTITION_NAME
    
    Filesystem       Size  Used  Avail    Use%     Mounted on
    /dev/nvme0n2p1   118G  70M   118G     1%     /mnt/disks/data
    

מכונות וירטואליות של Windows

אפשר להשתמש בכלי Windows Disk Management כדי לשנות את הגודל של מחיצות במופע של Windows.

  1. נכנסים לדף VM instances במסוף Google Cloud .

    כניסה לדף VM instances

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

  3. לוחצים לחיצה ימנית על לחצן התחל של Windows ובוחרים באפשרות ניהול דיסקים כדי לפתוח את הכלי ניהול דיסקים.

    בחירת הכלי 'ניהול דיסקים' של Windows מתוך תפריט הלחיצה הימנית על לחצן ההתחלה של Windows.

  4. כדי להציג את סוג המחיצה של הדיסקים, מריצים את הפקודה הבאה ב-PowerShell:

    Get-Disk
    

    בעמודה Partition Style (סגנון חלוקה למחיצות), אם הערך הוא MBR, אז סוג המחיצה בדיסק הוא MBR. כלומר, הגודל המקסימלי של דיסק כזה יהיה 2 TB.

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

    לוחצים על תפריט הפעולות ובוחרים באפשרות 'רענון' כדי לעדכן את פרטי הדיסק בכלי לניהול הדיסק.

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

    ללחוץ לחיצה ימנית על החלק המפורמט של הדיסק ולבחור באפשרות 'הרחבת עוצמת הקול'.

  7. פועלים לפי ההוראות באשף הרחבת נפח האחסון כדי להרחיב את המחיצה הקיימת כך שתכלול את נפח האחסון הנוסף. אם המחיצה הקיימת מעוצבת ב-NTFS, גודל המחיצה המקסימלי מוגבל על ידי הגדרות גודל האשכול שלה.

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

    בודקים את רשימת הדיסקים שמזוהים על ידי Windows ומוודאים שהסטטוס של המכונה הוא Online (באינטרנט) ו-Healthy (תקין).

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

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