אם המכונה הווירטואלית (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
-
התקינו את ה-CLI של Google Cloud. אחר כך, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:
gcloud initאם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
- הגדרת אזור ותחום כברירת מחדל
-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
אם אתם משתמשים במעטפת מקומית, צריך ליצור פרטי כניסה לאימות מקומי עבור חשבון המשתמש:
gcloud auth application-default login
אם אתם משתמשים ב-Cloud Shell, אין צורך לבצע את הפעולה הזו.
אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו ש נכנסתם ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
Terraform
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של Terraform שבדף הזה, מתקינים ומפעילים את ה-CLI של gcloud, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש.
מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
REST
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.
התקינו את ה-CLI של Google Cloud.
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Google Cloud .
התפקידים וההרשאות הנדרשים
כדי לקבל את ההרשאה שדרושה לשינוי הגודל של דיסק מתמשך, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בפרויקט:
- Compute Instance Admin (v1) (
roles/compute.instanceAdmin.v1) -
כדי להתחבר למכונה וירטואלית שיכולה לפעול כחשבון שירות: משתמש בחשבון שירות (v1) (
roles/iam.serviceAccountUser)
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
התפקיד המוגדר מראש הזה כולל את ההרשאה compute.disks.update, שנדרשת כדי לשנות את הגודל של דיסק קשיח קבוע.
יכול להיות שתוכלו לקבל את ההרשאה הזו גם בתפקידים בהתאמה אישית או בתפקידים אחרים שמוגדרים מראש.
הקטנת הגודל של דיסק
אי אפשר להקטין את הגודל של דיסק מתמשך. צריך להחליף את הכונן בכונן חדש וקטן יותר. כדי לעשות זאת, יוצרים דיסק ריק עם גודל קטן יותר, ואז מעתיקים את התוכן מהדיסק המקורי לדיסק החדש. אחר כך תוכלו להשתמש בדיסק החדש במקום בדיסק המקורי.
כדי להחליף דיסק בדיסק קטן יותר, פועלים לפי השלבים הבאים:
- יוצרים דיסק ריק של אחסון מתמיד ומציינים את הגודל הרצוי. מוודאים שהדיסק החדש גדול מספיק כדי להכיל את הנתונים מהדיסק המקורי.
- מצרפים את שני הדיסקים לאותה מכונה. הוראות מפורטות מופיעות במאמר צירוף דיסק שאינו דיסק אתחול למכונה וירטואלית.
- מפרמטים את הדיסק החדש ומעלים אותו. הוראות למקרים של Linux ושל Windows.
- מעתיקים את הנתונים מהדיסק המקורי לדיסק החדש באמצעות כלי עזר שזמינים למערכת ההפעלה. לדוגמה, ב-Linux,
אפשר להשתמש ב-
rsyncאו ב-dd. במקרים של מופעי Windows, אפשר להשתמש ב-robocopy. - מוודאים שבדיסק החדש יש את כל הנתונים והוא פועל כצפוי.
- כדי להשתמש בדיסק החדש, צריך לעדכן את האפליקציה או את מערכת ההפעלה.
- אחרי שמוודאים שההעברה הצליחה, אפשר לנתק ולמחוק את הדיסק המקורי הגדול יותר.
מגבלות גודל של נפחי אחסון ב-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
כדי להגדיל את הגודל של דיסק הפעלה או דיסק שאינו דיסק הפעלה, פועלים לפי ההוראות הבאות:
המסוף
נכנסים לדף Disks במסוף Google Cloud .
ברשימת הדיסקים בפרויקט, לוחצים על שם הדיסק שרוצים לשנות את הגודל שלו.
בדף הפרטים של הדיסק, לוחצים על עריכה. יכול להיות שתצטרכו ללחוץ על התפריט More actions ואז על Edit.
בשדה גודל, מזינים את הגודל החדש של הדיסק. אפשר לשנות את הגודל של דיסקים עם טבלאות מחיצות MBR רק עד 2 TB.
לוחצים על שמירה כדי להחיל את השינויים על הדיסק.
גודל הדיסק החדש מוצג ברשימת הדיסקים.
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.
אם כוללים את הפרמטר size יחד עם הפרמטר image או snapshot, הערך של size צריך להיות שווה לגודל התמונה או הצילום או גדול ממנו.
אם לא מציינים את הפרמטרים image ו-snapshot, אפשר להגדיר את הפרמטר size לערך שקטן מגודל הדיסק הקיים. אם תעשו את זה, Terraform ישמיד את הדיסק ויצור דיסק חדש של אחסון מתמיד (persistent disk) ריק.
דיסק אחסון מתמיד אזורי
כדי לשנות את הגודל של דיסק לאחסון מתמיד אזורי, אפשר להשתמש במשאב google_compute_region_disk ובפרמטר size.
אם כוללים את הפרמטר 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
נכנסים לדף VM instances במסוף Google Cloud .
מאתרים את המופע שאליו מצורף הדיסק ששיניתם את הגודל שלו. לוחצים על SSH. הדפדפן פותח חיבור טרמינל למופע.
משתמשים בפקודות
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.- דיסק אתחול: מחיצת
בודקים את סוג המחיצה:
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, מערכת ההפעלה תבצע מחדש את חלוקת הדיסק כדי לפנות מקום נוסף שיהיה זמין למערכת ההפעלה. אם אין לכם דיסקים נוספים לשנות, אפשר לדלג לשלב האחרון.אם בחרתם שלא להשתמש באפשרות התיקון האוטומטי, או אם היא לא זמינה, תוכלו לעיין במידע על הדיסק שאתם רוצים לחלק מחדש:
sudo parted -l /dev/DEVICE_NAME
מחפשים את השדה Partition Table. אם הערך הוא
msdos, סוג המחיצה בדיסק הוא MBR. כלומר, הגודל המקסימלי של דיסק כזה יהיה 2TB.בדיסק אתחול, משנים את הגודל של מחיצת הבסיס ומערכת הקבצים בדיסק. בדוגמה הזו, ההנחה היא שתמונת המכונה הווירטואלית לא תומכת בחלוקה אוטומטית של מחיצת הבסיס ובשינוי הגודל של מערכת הקבצים.
משנים את הגודל של מחיצת הבסיס באמצעות
parted. לדוגמה, הפקודות הבאות מרחיבות את מחיצה 1 במכשיר לגודל המקסימלי האפשרי:פותחים את
partedבמכשיר:sudo parted /dev/DEVICE_NAME
מחליפים את
DEVICE_NAMEבשם המכשיר של דיסק האתחול, לדוגמה,nvme0n1בשורת הפקודה, מזינים:
(parted) resizepartבפרומפט
Partition number?, מזינים:1
בפרומפט
Warning: Partition /dev/DEVICE_NAMEp1 is being used. Are you sure you want to continue?, מזינים:Yes
בהנחיה
End?, מזינים100%
בפרומפט
(parted), מזינים:(parted) quit
בודקים את טבלת המחיצות החדשה באמצעות
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הרחבת מערכת הקבצים:
אם אתם משתמשים ב-
ext4, אתם צריכים להשתמש בפקודהresize2fs:sudo resize2fs /dev/PARTITION_NAME
מחליפים את
PARTITION_NAMEבשם המחיצה של דיסק האתחול, לדוגמה,nvme0n1p1.אם אתם משתמשים ב-
xfs, אתם צריכים להשתמש בפקודהxfs_growfs:sudo xfs_growfs -d /
אם אתם משתמשים ב-btrfs, צריך להשתמש בפקודה
btrfs:sudo btrfs filesystem resize max /
בדיסק נתונים שאינו דיסק אתחול, משנים את הגודל של מערכת הקבצים בדיסק.
אם אתם משתמשים ב-
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.
משתמשים בפקודה
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.
נכנסים לדף VM instances במסוף Google Cloud .
מוצאים את המופע עם הדיסק שגודלו שונה. לוחצים על הלחצן RDP של המופע. בדפדפן נפתח חיבור RDP למופע.
לוחצים לחיצה ימנית על לחצן התחל של Windows ובוחרים באפשרות ניהול דיסקים כדי לפתוח את הכלי ניהול דיסקים.
כדי להציג את סוג המחיצה של הדיסקים, מריצים את הפקודה הבאה ב-PowerShell:
Get-Disk
בעמודה Partition Style (סגנון חלוקה למחיצות), אם הערך הוא MBR, אז סוג המחיצה בדיסק הוא MBR. כלומר, הגודל המקסימלי של דיסק כזה יהיה 2 TB.
מרעננים את הכלי ניהול הדיסק כדי שיזהה את הנפח הנוסף בדיסק. בחלק העליון של החלון ניהול דיסקים, לוחצים על פעולה ובוחרים באפשרות רענון.
בדיסק ששיניתם את הגודל שלו, לוחצים לחיצה ימנית על המחיצה המפורמטת ובוחרים באפשרות הרחבת עוצמת הקול.
פועלים לפי ההוראות באשף הרחבת נפח האחסון כדי להרחיב את המחיצה הקיימת כך שתכלול את נפח האחסון הנוסף. אם המחיצה הקיימת מעוצבת ב-NTFS, גודל המחיצה המקסימלי מוגבל על ידי הגדרות גודל האשכול שלה.
אחרי שמסיימים את האשף להרחבת נפח האחסון ופורמט נפח האחסון, בודקים את העמודה סטטוס ברשימת הדיסקים המצורפים כדי לוודא שהסטטוס של הדיסק החדש הוא תקין.
לא צריך להפעיל מחדש את המופע אחרי שמסיימים את התהליך הזה. אפשר להתחיל להשתמש בנפח האחסון הנוסף.