Praktik terbaik: Menggunakan nama perangkat tetap di VM Linux


Dokumen ini menjelaskan cara menggunakan penamaan perangkat tetap di VM Linux Anda.

Untuk VM yang menggunakan sistem operasi Linux, nama perangkat, misalnya /dev/sda, dapat berubah setelah Anda melakukan prosedur berikut:

  • Memulai dan menghentikan VM
  • Melepaskan dan memasang kembali disk
  • Mengubah jenis mesin

Perubahan nama perangkat ini terjadi karena nama perangkat ditetapkan dari rentang yang tersedia setelah VM dimulai atau perangkat dipasang. Melepaskan perangkat atau menghentikan VM akan membebaskan nama perangkat. Saat perangkat dipasang ulang atau VM dimulai ulang, nama perangkat baru akan ditetapkan dari rentang yang tersedia. Kernel Linux tidak menjamin pengurutan perangkat saat mulai ulang.

Perubahan nama perangkat dapat menyebabkan aplikasi atau skrip yang bergantung pada nama perangkat asli tidak berfungsi dengan baik atau dapat menyebabkan VM tidak di-booting setelah dimulai ulang.

Sebaiknya gunakan penamaan perangkat persisten saat merujuk pada disk dan partisi pada VM Linux Anda untuk menghindari masalah ini. Anda juga dapat menggunakan symlink.

Sebelum memulai

  • Tinjau pengelolaan perangkat untuk sistem operasi Linux Anda:
  • Siapkan autentikasi, jika Anda belum melakukannya. Autentikasi adalah proses verifikasi identitas Anda untuk akses ke layanan dan API Google Cloud. Untuk menjalankan kode atau contoh dari lingkungan pengembangan lokal, Anda dapat melakukan autentikasi ke Compute Engine sebagai berikut.

    Pilih tab untuk melihat bagaimana Anda berencana menggunakan contoh di halaman ini:

    Konsol

    Saat menggunakan Konsol Google Cloud untuk mengakses API dan layanan Google Cloud, Anda tidak perlu menyiapkan autentikasi.

    gcloud

    1. Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:

      gcloud init
    2. Menetapkan region dan zona default.

Menggunakan penamaan perangkat tetap

Untuk mengonfigurasi nama perangkat persisten, tetapkan nama direktori pemasangan untuk perangkat disk dalam file fstab. Ada tiga cara untuk mengonfigurasi nama perangkat persisten.

  • Dengan menggunakan label. Opsi ini mengharuskan sistem file mendukung label dan Anda menambahkan label ke partisi disk.
  • Dengan menggunakan partisi atau UUID disk. UUID dihasilkan jika disk dibuat dengan tabel partisi, dan UUID bersifat unik untuk setiap partisi.
  • Dengan menggunakan ID persistent disk (/dev/disk/by-id) untuk Persistent Disk atau Google Cloud Hyperdisk, atau symlink, yang didasarkan pada nama resource disk.

Sebaiknya gunakan UUID partisi atau symlink untuk VM Linux.

UUID partisi

Untuk menemukan UUID disk, lakukan langkah-langkah berikut:

  1. Hubungkan ke VM Anda.
  2. Jika tidak tahu nama perangkat {i>disk<i}, Anda dapat menemukan nama perangkat {i>disk <i}menggunakan symlink.

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

    Outputnya mirip dengan hal berikut ini:

      lrwxrwxrwx 1 root root  9 Oct 23 15:58 /dev/disk/by-id/google-my-vm -> ../../sda
      lrwxrwxrwx 1 root root 10 Oct 23 15:58 /dev/disk/by-id/google-my-vm-part1 -> ../../sda1
      lrwxrwxrwx 1 root root 11 Oct 23 15:58 /dev/disk/by-id/google-my-vm-part15 -> ../../sda15
      lrwxrwxrwx 1 root root  9 Oct 23 15:58 /dev/disk/by-id/google-my-vm-app-data -> ../../nvme0n1
      

  3. Ambil UUID partisi untuk disk dengan menjalankan salah satu perintah berikut:

    • blkid

      sudo  blkid -s UUID
      

      Outputnya mirip dengan hal berikut ini:

      /dev/sda1: UUID="4f570f2d-fffe-4c7d-8d8f-af347af7612a"
      /dev/sda15: UUID="E0B2-DFAF"
      /dev/nvme0n1: UUID="9e617251-6a92-45ff-ba40-700a9bdeb03e"
      
    • ls -l

      sudo ls -l /dev/disk/by-uuid/
      

      Outputnya mirip dengan hal berikut ini:

      lrwxrwxrwx 1 root root 10 Sep 22 18:12 4f570f2d-fffe-4c7d-8d8f-af347af7612a -> ../../sda1
      lrwxrwxrwx 1 root root 13 Sep 22 18:15 9e617251-6a92-45ff-ba40-700a9bdeb03e -> ../../nvme0n1
      lrwxrwxrwx 1 root root 11 Sep 22 18:12 E0B2-DFAF -> ../../sda15
      
  4. Tambahkan entri untuk UUID perangkat Anda di file /etc/fstab.

    UUID=9e617251-6a92-45ff-ba40-700a9bdeb03e /data ext4 defaults 0 0
    

    Dalam contoh ini, /data adalah direktori pemasangan dan ext4 adalah jenis sistem file.

  5. Pastikan perangkat telah terpasang dengan benar dengan menjalankan mount -av.

    sudo mount -av

    Jika perangkat berhasil dipasang, outputnya akan mirip dengan berikut:

    /                           : ignored
    /boot/efi                : already mounted
    mount: /data does not contain SELinux labels.
    You just mounted an file system that supports labels which does not
    contain labels, onto an SELinux box. It is likely that confine
    applications will generate AVC messages and not be allowed access to
    this filesystem.  For more details see restorecon(8) and mount(8).
    /data                    : successfully mounted
    

ID persistent disk

Untuk menemukan nama perangkat disk menggunakan ID persistent disk, atau symlink, selesaikan langkah-langkah berikut:

  1. Hubungkan ke VM Anda.
  2. Ambil ID pada disk dengan menjalankan perintah berikut:

    sudo  ls -lh /dev/disk/by-id/google-*

    Outputnya mirip dengan hal berikut ini:

    lrwxrwxrwx. 1 root root  9 May 16 17:34 google-disk-2 -> ../../sdb
    lrwxrwxrwx. 1 root root  9 May 16 09:09 google-persistent-disk-0 -> ../../sda
    lrwxrwxrwx. 1 root root 10 May 16 09:09 google-persistent-disk-0-part1 -> ../../sda1
    lrwxrwxrwx. 1 root root 10 May 16 09:09 google-persistent-disk-0-part2 -> ../../sda2
    

    Untuk disk NVME, outputnya mirip dengan berikut ini:

    lrwxrwxrwx 1 root root 13 Jun  1 10:27 google-disk-3 -> ../../nvme0n2
    lrwxrwxrwx 1 root root 13 Jun  1 10:25 google-t2a -> ../../nvme0n1
    lrwxrwxrwx 1 root root 15 Jun  1 10:25 google-t2a-part1 -> ../../nvme0n1p1
    lrwxrwxrwx 1 root root 16 Jun  1 10:25 google-t2a-part15 -> ../../nvme0n1p15
    
  3. Tambahkan symlink ke file /etc/fstab.

    /dev/disk/by-id/google-disk-2 /data ext4 defaults 0 0
    
  4. Pastikan perangkat telah terpasang dengan benar dengan menjalankan mount -av.

    sudo mount -av

    Jika perangkat berhasil dipasang, outputnya akan mirip dengan berikut:

    /                           : ignored
    /boot/efi                : already mounted
    mount: /data does not contain SELinux labels.
    You just mounted an file system that supports labels which does
    not contain labels, onto an SELinux box. It is likely that confine
    applications will generate AVC messages and not be allowed access to this
    file system.  For more details see restorecon(8) and mount(8).
    /data                    : successfully mounted