Menambahkan disk ke VM Linux
Berlaku untuk: ✔️ Mesin Virtual 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
- US 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 agar komputer virtual Linux Anda dapat menggunakannya, SSH ke komputer virtual 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 tersambung ke VM, 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 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 /dev/disk/azure/scsi1
konten 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 sistem file. Contoh berikut memasang /dev/sdc1
partisi ke /datadrive
titikpemasangan:
sudo mount /dev/sdc1 /datadrive
Pertahankan dudukan tersebut
Untuk memastikan bahwa drive di-remount secara otomatis setelah boot ulang, drive harus ditambahkan ke /etc/fstab
file. Sangat disarankan juga bahwa 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 /etc/fstab
file secara tidak benar 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 /datadrive
pemasangan . 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
Nanti menghapus disk data tanpa mengedit fstab dapat menyebabkan komputer virtual 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 komputer virtual Linux 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 perintahfstrim
secara manual dari baris perintah, atau menambahkannya ke crontab Anda untuk berjalan secara teratur:
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
- Untuk memastikan VM Linux Anda dikonfigurasi dengan benar, tinjau rekomendasi Optimalkan kinerja mesin Linux Anda.
- Perluas kapasitas penyimpanan Anda dengan menambahkan lebih banyak disk dan mengonfigurasi RAID untuk performa ekstra.