Menambahkan disk ke VM Linux

Berlaku untuk: ✔️ VM Linux ✔️ Set skala fleksibel

Artikel ini memperlihatkan kepada Anda cara melampirkan disk persisten ke VM sehingga Anda dapat mempertahankan data Anda - bahkan jika VM Anda ditetapkan ulang karena pemeliharaan atau peng mengubah ukuran.

Pasang disk baru ke VM

Jika Anda ingin menambahkan disk data kosong baru di VM Anda, gunakan perintah lampirkan disk az vm dengan --new parameter. Jika VM Anda berada di Availability Zone, disk secara otomatis dibuat di zona yang sama dengan VM. Untuk informasi selengkapnya, lihat Ringkasan Zona Ketersediaan. Contoh berikut membuat disk bernama myDataDisk berukuran 50 Gb:

az vm disk attach \
   -g myResourceGroup \
   --vm-name myVM \
   --name myDataDisk \
   --new \
   --size-gb 50

Latensi yang lebih rendah

Di wilayah tertentu, latensi pelampiran disk telah berkurang sehingga Anda akan melihat peningkatan hingga 15%. Ini berguna jika Anda telah merencanakan/membatalkan rencana failover antar-VM, menskalakan beban kerja, atau menjalankan beban kerja stateful skala tinggi seperti Azure Kubernetes Service. Namun, peningkatan ini hanya berlaku untuk perintah pelampiran disk eksplisit, az vm disk attach. Anda tidak akan melihat peningkatan performa jika menjalankan perintah pelampiran yang implisit, seperti az vm update. Anda tidak perlu mengambil tindakan apa pun selain menjalankan perintah pelampiran eksplisit untuk melihat peningkatan ini.

Penurunan latensi saat ini dapat dirasakan di setiap wilayah publik, kecuali:

  • Kanada Tengah
  • US Tengah
  • AS Timur
  • AS Timur 2
  • AS Tengah Bagian Selatan
  • US Barat 2
  • Jerman Utara
  • JIO India Barat
  • Eropa Utara
  • Eropa Barat

Melampirkan disk yang sudah ada

Untuk melampirkan disk yang ada, temukan ID disk dan berikan ID ke perintah az vm disk attach. Contoh kueri berikut untuk disk bernama myDataDisk di myResourceGroup, lalu melampirkannya ke VM bernama myVM:

diskId=$(az disk show -g myResourceGroup -n myDataDisk --query 'id' -o tsv)

az vm disk attach -g myResourceGroup --vm-name myVM --name $diskId

Memformat dan memasang disk

Untuk mempartisi, memformat, dan memasang disk baru Anda sehingga Linux VM Anda dapat menggunakannya, SSH ke VM Anda. Untuk informasi selengkapnya, lihat Cara menggunakan SSH dengan Linux di Azure. Contoh berikut tersambung ke komputer virtual dengan alamat IP publik 10.123.123.25 dengan nama pengguna azureuser:

ssh azureuser@10.123.123.25

Menemukan disk

Setelah Anda terhubung ke VM Anda, temukan disk. Dalam contoh ini, kami menggunakan lsblk untuk mencantumkan disk.

lsblk -o NAME,HCTL,SIZE,MOUNTPOINT | grep -i "sd"

Outputnya mirip dengan contoh berikut:

sda     0:0:0:0      30G
├─sda1             29.9G /
├─sda14               4M
└─sda15             106M /boot/efi
sdb     1:0:1:0      14G
└─sdb1               14G /mnt
sdc     3:0:0:0      50G

Di sini, sdc adalah disk yang kita inginkan, karena itu adalah 50G. Jika Anda menambahkan beberapa disk, dan tidak yakin disk mana yang didasarkan pada ukuran saja, Anda dapat membuka halaman VM di portal, memilih Disk, dan memeriksa nomor LUN untuk disk di bawah Disk data. Bandingkan nomor LUN dari portal ke angka terakhir dari bagian HTCL output, yaitu LUN. Opsi lain adalah mencantumkan konten /dev/disk/azure/scsi1 direktori:

ls -l /dev/disk/azure/scsi1

Output harus mirip dengan contoh berikut:

lrwxrwxrwx 1 root root 12 Mar 28 19:41 lun0 -> ../../../sdc

Format disk

Format disk dengan parted, jika ukuran disk adalah dua tebibyte (TiB) atau lebih besar maka Anda harus menggunakan partisi GPT, jika di bawah 2TiB, maka Anda dapat menggunakan partisi MBR atau GPT.

Catatan

Disarankan agar Anda menggunakan versi terbaru parted yang tersedia untuk distro Anda. Jika ukuran disk adalah 2 tebibyte (TiB) atau lebih besar, Anda harus menggunakan partisi GPT. Jika ukuran disk di bawah 2 TiB, maka Anda dapat menggunakan partisi MBR atau GPT.

Contoh berikut menggunakan parted pada /dev/sdc, tempat disk data pertama biasanya akan berada di sebagian besar komputer virtual. Ganti sdc dengan opsi yang tepat untuk disk Anda. Kami juga memformatnya menggunakan sistem file XFS .

sudo parted /dev/sdc --script mklabel gpt mkpart xfspart xfs 0% 100%
sudo partprobe /dev/sdc
sudo mkfs.xfs /dev/sdc1

Gunakan utilitas partprobe untuk memastikan kernel mengetahui partisi dan sistem file baru. Kegagalan menggunakan partprobe dapat menyebabkan perintah blkid atau lsblk tidak segera mengembalikan UUID untuk sistem file baru.

Pasang disk

Sekarang, buat direktori untuk memasang sistem file menggunakan mkdir. Contoh berikut membuat direktori di /datadrive :

sudo mkdir /datadrive

Gunakan mount untuk kemudian memasang filesystem. Contoh berikut memasang /dev/sdc1 partisi ke /datadrive titikpemasangan:

sudo mount /dev/sdc1 /datadrive

Pertahankan dudukan tersebut

Untuk memastikan bahwa drive dipasang ulang secara otomatis setelah reboot, drive harus ditambahkan ke /etc/fstab file. Juga sangat disarankan agar UUID (Pengidentifikasi Unik Universal) digunakan /etc/fstab untuk merujuk ke drive daripada hanya nama perangkat (seperti, /dev/sdc1). Jika OS mendeteksi kesalahan disk selama boot, menggunakan UUID menghindari disk yang salah dipasang ke lokasi tertentu. Disk data yang tersisa kemudian akan diberi ID perangkat yang sama. Untuk menemukan UUID drive baru, gunakan utilitas blkid:

sudo blkid

Output terlihat mirip dengan contoh berikut:

/dev/sda1: LABEL="cloudimg-rootfs" UUID="11111111-1b1b-1c1c-1d1d-1e1e1e1e1e1e" TYPE="ext4" PARTUUID="1a1b1c1d-11aa-1234-1a1a1a1a1a1a"
/dev/sda15: LABEL="UEFI" UUID="BCD7-96A6" TYPE="vfat" PARTUUID="1e1g1cg1h-11aa-1234-1u1u1a1a1u1u"
/dev/sdb1: UUID="22222222-2b2b-2c2c-2d2d-2e2e2e2e2e2e" TYPE="ext4" TYPE="ext4" PARTUUID="1a2b3c4d-01"
/dev/sda14: PARTUUID="2e2g2cg2h-11aa-1234-1u1u1a1a1u1u"
/dev/sdc1: UUID="33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e" TYPE="xfs" PARTLABEL="xfspart" PARTUUID="c1c2c3c4-1234-cdef-asdf3456ghjk"

Catatan

Mengedit file secara tidak benar /etc/fstab dapat mengakibatkan sistem yang tidak dapat di-boot. Jika tidak yakin, lihat dokumentasi distribusi untuk informasi tentang cara mengedit file ini dengan tepat. Disarankan juga agar cadangan /etc/fstab file dibuat sebelum pengeditan.

Selanjutnya, buka /etc/fstab file di editor teks. Tambahkan baris ke akhir file, menggunakan nilai UUID untuk /dev/sdc1 perangkat yang dibuat di langkah-langkah sebelumnya, dan titik /datadrivepemasangan . Dengan menggunakan contoh dari artikel ini, baris baru akan terlihat seperti berikut ini:

UUID=33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e   /datadrive   xfs   defaults,nofail   1   2

Setelah selesai mengedit file, simpan dan tutup editor.

Atau, Anda dapat menjalankan perintah berikut untuk menambahkan disk ke /etc/fstab file:

echo "UUID=33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e   /datadrive   xfs   defaults,nofail   1   2" >> /etc/fstab

Catatan

Kemudian menghapus disk data tanpa mengedit fstab dapat menyebabkan VM gagal boot. Sebagian besar distribusi menyediakan opsi fstab nofail dan/atau nobootwait. Opsi ini memungkinkan sistem untuk boot bahkan jika disk gagal dipasang pada waktu boot. Lihat dokumentasi distribusi Anda untuk informasi selengkapnya tentang parameter ini.

Opsi nofail memastikan bahwa komputer virtual dimulai bahkan jika sistem file rusak atau disk tidak ada pada waktu boot. Tanpa opsi ini, Anda mungkin menemukan perilaku seperti yang dijelaskan dalam Tidak Dapat SSH ke Linux VM karena kesalahan FSTAB

Konsol Serial Azure VM dapat digunakan untuk akses konsol ke VM Anda jika memodifikasi fstab telah mengakibatkan kegagalan boot. Detail lebih lanjut tersedia dalam dokumentasi Konsol Serial.

Dukungan TRIM/UNMAP untuk Linux di Azure

Beberapa kernel Linux mendukung operasi TRIM/UNMAP untuk membuang blok yang tidak digunakan pada disk. Fitur ini terutama berguna untuk memberi tahu Azure bahwa halaman yang dihapus tidak lagi valid dan dapat dibuang. Fitur ini dapat menghemat uang pada disk yang ditagih berdasarkan jumlah penyimpanan yang digunakan, seperti disk standar yang tidak dikelola dan rekam jepret disk.

Ada dua cara untuk mengaktifkan dukungan TRIM di komputer virtual Linux Anda. Seperti biasa, periksa distribusi Anda untuk mengetahui pendekatan yang direkomendasikan:

  • discard Gunakan opsi pemasangan di /etc/fstab, misalnya:

    UUID=33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e   /datadrive   xfs   defaults,discard   1   2
    
  • Dalam beberapa kasus, opsi discard mungkin memiliki implikasi performa. Alternatifnya, Anda dapat menjalankan perintah fstrim secara manual dari baris perintah, atau menambahkannya ke crontab Anda untuk berjalan secara teratur:

sudo apt install util-linux
sudo fstrim /datadrive

Pemecahan Masalah

Saat menambahkan disk data ke VM Linux, Anda mungkin mengalami kesalahan jika disk tidak ada di LUN 0. Jika Anda menambahkan disk secara manual menggunakan perintah az vm disk attach -new dan Anda menentukan LUN (--lun) daripada mengizinkan platform Azure menentukan LUN yang sesuai, berhati-hatilah bahwa disk sudah ada/akan ada di LUN 0.

Pertimbangkan contoh berikut yang menunjukkan cuplikan output dari lsscsi:

[5:0:0:0]    disk    Msft     Virtual Disk     1.0   /dev/sdc 
[5:0:0:1]    disk    Msft     Virtual Disk     1.0   /dev/sdd 

Dua disk data ada di LUN 0 dan LUN 1 (kolom pertama dalam lsscsi detail output [host:channel:target:lun]). Kedua disk harus dapat diakses dari dalam VM. Jika Anda secara manual telah menentukan disk pertama yang akan ditambahkan pada LUN 1 dan disk kedua di LUN 2, Anda mungkin tidak melihat disk dengan benar dari dalam VM.

Catatan

Nilai host Azure adalah 5 dalam contoh ini, tetapi ini mungkin berbeda tergantung pada jenis penyimpanan yang Anda pilih.

Perilaku disk ini bukan masalah Azure, tetapi cara kernel Linux mengikuti spesifikasi SCSI. Saat kernel Linux memindai bus SCSI untuk perangkat yang terpasang, perangkat harus ditemukan di LUN 0 agar sistem dapat melanjutkan pemindaian untuk perangkat tambahan. Dengan demikian:

  • Tinjau output lsscsi setelah menambahkan disk data untuk memverifikasi bahwa Anda memiliki disk di LUN 0.
  • Jika disk Anda tidak muncul dengan benar di dalam VM, pastikan disk ada di LUN 0.

Langkah berikutnya