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

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

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

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

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

    המסוף

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

    gcloud

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

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

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

      התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם.

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

התחברות למכונה הווירטואלית

  1. נכנסים לדף VM instances.

    לדף VM instances

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

פירמוט של דיסק שאינו דיסק אתחול במכונה וירטואלית של Linux

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

     ls -l /dev/disk/by-id/google-*
    

    לדיסקים לא מעוצבים אין קישורי symlink נוספים עם -partN בשם.

     google-extra-scsi-disk -> ../../sdb
     google-instance-2 -> ../../sda
     google-instance-2-part1 -> ../../sda1
     google-instance-2-part14 -> ../../sda14
     google-instance-2-part15 -> ../../sda15
     google-local-nvme-ssd-0 -> ../../nvme0n1
     google-local-nvme-ssd-1 -> ../../nvme0n2
    

    בדוגמה הזו, הדיסק החדש של אחסון מתמיד נוצר עם השם extra-scsi-disk. שם המכשיר של הדיסק החדש הוא sdb.

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

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

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

    הפקודות הבאות מפרמטות את הדיסק כולו ללא טבלת מחיצות.

    • במקרה של ext4, אין צורך להקצות מקום לנפח הבסיסי בדיסק המשני הזה, לכן מציינים -m 0 כדי להשתמש בכל המקום הפנוי בדיסק. משתמשים בפקודה הבאה:

      $ sudo mkfs.ext4 -m 0 -E lazy_itable_init=0,lazy_journal_init=0,discard /dev/DEVICE_NAME
      
    • בשביל xfs, מציינים -s size=4096 כדי להגדיר את גודל הסקטור ל-4096 בייטים לשיפור הביצועים. משתמשים בפקודה הבאה:

      $ sudo mkfs.xfs -s size=4096 /dev/DEVICE_NAME
      

      מחליפים את DEVICE_NAME בשם המכשיר של הדיסק שאתם מפרמטים. לדוגמה, אם נשתמש בפלט לדוגמה מהשלב הראשון, נשתמש ב-sdb כשם המכשיר.

טעינת הדיסק

  1. יוצרים ספרייה שתשמש כנקודת העיגון של הדיסק החדש במכונה הווירטואלית. אפשר להשתמש בכל ספרייה. בדוגמה הבאה נוצרת ספרייה מתחת ל-/mnt/disks/.

    $ sudo mkdir -p /mnt/disks/MOUNT_DIR
    

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

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

    $ sudo mount -o discard,defaults /dev/DEVICE_NAME /mnt/disks/MOUNT_DIR
    

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

    • DEVICE_NAME: שם המכשיר של הדיסק שרוצים לטעון.
    • MOUNT_DIR: הספרייה שבה רוצים לטעון את הדיסק.
  3. הגדרת הרשאות קריאה וכתיבה בדיסק. בדוגמה הזו, מעניקים לכל המשתמשים גישת כתיבה לדיסק.

    $ sudo chmod a+w /mnt/disks/MOUNT_DIR
    

    מחליפים את MOUNT_DIR בספרייה שבה טענתם את הדיסק.

הגדרת צירוף אוטומטי בהפעלה מחדש של מכונת VM

מוסיפים את הדיסק לקובץ /etc/fstab כדי שהדיסק יותקן מחדש באופן אוטומטי כשהמכונה הווירטואלית תופעל מחדש. במערכות הפעלה של Linux, ‏ שם המכשיר יכול להשתנות בכל הפעלה מחדש, אבל ה-UUID של המכשיר תמיד מצביע על אותו נפח, גם כשמעבירים דיסקים בין מערכות. לכן, מומלץ להשתמש ב-UUID של המכשיר במקום בשם המכשיר כדי להגדיר טעינה אוטומטית בהפעלה מחדש של מכונת ה-VM.

  1. יוצרים גיבוי של קובץ /etc/fstab הנוכחי.

    $ sudo cp /etc/fstab /etc/fstab.backup
    
  2. משתמשים בפקודה blkid כדי לראות את ה-UUID של הדיסק.

    $ sudo blkid /dev/DEVICE_NAME
    
    /dev/DEVICE_NAME: UUID="a9e1c14b-f06a-47eb-adb7-622226fee060" BLOCK_SIZE="4096"
    TYPE="ext4" PARTUUID="593b3b75-108f-bd41-823d-b7e87d2a04d1"
    

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

    • DEVICE_NAME: שם המכשיר של הדיסק שרוצים לטעון אוטומטית. אם יצרתם טבלת מחיצות בדיסק, מציינים את המחיצה שרוצים לטעון על ידי הוספת הסיומת לשם המכשיר. לדוגמה, אם sdb הוא שם המכשיר של הדיסק, sdb1 יכול להיות שם המחיצה.
  3. פותחים את הקובץ /etc/fstab בכלי לעריכת טקסט ויוצרים רשומה שכוללת את ה-UUID. לדוגמה:

    UUID=UUID_VALUE /mnt/disks/MOUNT_DIR FILE_SYSTEM_TYPE discard,MOUNT_OPTION 0 2
    

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

    • UUID_VALUE: ה-UUID של הדיסק, שמופיע בפלט של השלב הקודם
    • MOUNT_DIR: הספרייה שבה הרכבתם את הדיסק
    • FILE_SYSTEM_TYPE: סוג מערכת הקבצים. לדוגמה, ext2,‏ ext3,‏ ext4 או xfs.
    • MOUNT_OPTION: מציין מה מערכת ההפעלה עושה אם היא לא מצליחה לטעון את הדיסק לאחסון מתמיד של תחום בזמן ההפעלה. ערכים תקינים מפורטים בשדה הרביעי במסמכי העזרה של Linux fstab. כדי לאפשר למערכת לבצע אתחול גם אם הדיסק לא זמין, משתמשים באפשרות nofail mount.
  4. כדי לוודא שהרשומות של /etc/fstab נכונות, משתמשים בפקודה cat:

    $ cat /etc/fstab
    
    UUID=6B33-A686 /boot/efi vfat defaults 0 0
    UUID=UUID_VALUE /mnt/disks/MOUNT_DIR FILE_SYSTEM_TYPE discard,MOUNT_OPTION 0 2
    
    

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