Memperluas hard disk virtual di VM Linux

Perhatian

Artikel ini mereferensikan CentOS, distribusi Linux yang mendekati status End Of Life (EOL). Harap pertimbangkan penggunaan dan rencanakan yang sesuai. Untuk informasi selengkapnya, lihat panduan Akhir Masa Pakai CentOS.

Berlaku untuk: ✔️ Mesin Virtual Linux ✔️ Set skala fleksibel

Artikel ini menjelaskan cara memperluas disk terkelola untuk komputer virtual (VM) Linux. Anda dapat menambahkan disk data untuk menyediakan ruang penyimpanan tambahan, dan juga memperluas disk data yang sudah ada. Ukuran hard disk virtual default untuk sistem operasi (OS) biasanya 30 GB pada VM Linux di Azure. Artikel ini membahas perluasan disk OS atau disk data. Anda tidak dapat memperluas ukuran volume bergaris.

Disk OS memiliki kapasitas maksimum 4.095 GiB. Namun, banyak sistem operasi dipartisi dengan catatan boot master (MBR) secara default. MBR membatasi ukuran yang dapat digunakan hingga 2 TiB. Jika Anda membutuhkan lebih dari 2 TiB, buat dan lampirkan disk data serta gunakan disk tersebut untuk penyimpanan data. Jika Anda perlu menyimpan data pada disk OS dan memerlukan ruang tambahan, konversikan ke GUID Partition Table (GPT).

Peringatan

Selalu pastikan bahwa sistem file Anda dalam keadaan sehat, jenis tabel partisi disk Anda (GPT atau MBR) akan mendukung ukuran baru, dan memastikan data Anda dicadangkan sebelum Anda melakukan operasi ekspansi disk. Untuk informasi selengkapnya, lihat Mulai cepat Azure Backup.

Mengidentifikasi objek disk data Azure dalam sistem operasi

Dalam kasus memperluas disk data ketika ada beberapa disk data yang ada di VM, mungkin sulit untuk menghubungkan Azure LUN ke perangkat Linux. Jika disk OS membutuhkan ekspansi, disk tersebut dilabeli dengan jelas dalam portal Azure sebagai disk OS.

Mulailah dengan mengidentifikasi hubungan antara pemanfaatan disk, titik pemasangan, dan perangkat, dengan df perintah .

df -Th
Filesystem                Type      Size  Used Avail Use% Mounted on
/dev/sda1                 xfs        97G  1.8G   95G   2% /
<truncated>
/dev/sdd1                 ext4       32G   30G  727M  98% /opt/db/data
/dev/sde1                 ext4       32G   49M   30G   1% /opt/db/log

Di sini kita dapat melihat, misalnya, /opt/db/data sistem file hampir penuh, dan terletak di /dev/sdd1 partisi. Output menunjukkan df jalur perangkat terlepas dari apakah disk dipasang oleh jalur perangkat atau UUID (lebih disukai) dalam fstab. Perhatikan juga kolom Jenis, yang menunjukkan format sistem file. Ini penting nanti.

Sekarang temukan LUN yang berkorelasi /dev/sdd dengan dengan memeriksa konten /dev/disk/azure/scsi1. Output perintah berikut ls menunjukkan bahwa perangkat yang dikenal sebagai /dev/sdd dalam OS Linux terletak di LUN1 saat melihat di portal Azure.

sudo ls -alF /dev/disk/azure/scsi1/
total 0
drwxr-xr-x. 2 root root 140 Sep  9 21:54 ./
drwxr-xr-x. 4 root root  80 Sep  9 21:48 ../
lrwxrwxrwx. 1 root root  12 Sep  9 21:48 lun0 -> ../../../sdc
lrwxrwxrwx. 1 root root  12 Sep  9 21:48 lun1 -> ../../../sdd
lrwxrwxrwx. 1 root root  13 Sep  9 21:48 lun1-part1 -> ../../../sdd1
lrwxrwxrwx. 1 root root  12 Sep  9 21:54 lun2 -> ../../../sde
lrwxrwxrwx. 1 root root  13 Sep  9 21:54 lun2-part1 -> ../../../sde1

Memperluas Disk yang Dikelola Azure

Memperluas tanpa waktu henti

Anda dapat memperluas disk terkelola tanpa membatalkan alokasi VM Anda. Pengaturan cache host disk Anda tidak berubah apakah Anda dapat memperluas disk data atau tidak tanpa membatalkan alokasi VM Anda.

Fitur ini memiliki batasan berikut ini:

  • Hanya didukung untuk disk data.
  • Jika disk berukuran 4 TiB atau kurang, Anda harus membatalkan alokasi mesin virtual Anda dan melepaskan disk sebelum melebihi 4 TiB. Jika disk sudah berukuran lebih besar dari 4 TiB, Anda dapat memperluasnya tanpa membatalkan alokasi mesin virtual.
  • Tidak didukung untuk disk Ultra atau disk Premium SSD v2.
  • Tidak didukung untuk disk bersama.
  • Instal dan gunakan:
  • Tidak tersedia di beberapa VM klasik. Gunakan skrip ini untuk mendapatkan daftar SKU VM klasik yang mendukung perluasan tanpa waktu henti.

Perluas Disk Terkelola Azure

Pastikan Anda telah memasang Azure CLI versi dan masuk ke akun Azure menggunakan az login.

Artikel ini memerlukan VM yang sudah ada di Azure dengan setidaknya satu disk data terpasang dan disiapkan. Jika Anda belum memiliki VM yang dapat Anda gunakan, lihat Membuat dan menyiapkan VM dengan disk data.

Dalam contoh berikut, ganti contoh nama parameter seperti myResourceGroup dan myVM dengan nilai Anda sendiri.

Penting

Jika disk Anda memenuhi persyaratan dalam Memperluas tanpa waktu henti, Anda dapat melewati langkah 1 dan 3.

  1. Operasi pada hard disk virtual tidak dapat dilakukan dengan VM yang berjalan. Batalkan alokasi VM Anda dengan az vm deallocate. Contoh berikut membatalkan alokasi VM bernama myVM dalam grup sumber daya bernama myResourceGroup:

    az vm deallocate --resource-group myResourceGroup --name myVM
    

    Catatan

    VM harus dibatalkan alokasinya untuk memperluas hard disk virtual. Menghentikan VM dengan az vm stop tidak merilis sumber daya komputasi. Untuk melepaskan sumber daya komputasi, gunakan az vm deallocate.

  2. Lihat daftar diska terkelola dalam grup sumber daya dengan az disk list. Contoh berikut menampilkan daftar disk terkelola dalam grup sumber daya bernama myResourceGroup:

    az disk list \
        --resource-group myResourceGroup \
        --query '[*].{Name:name,Gb:diskSizeGb,Tier:accountType}' \
        --output table
    

    Perluas disk yang diperlukan dengan az disk update. Contoh berikut memperluas disk terkelola bernama myDataDisk menjadi 200 GB:

    az disk update \
        --resource-group myResourceGroup \
        --name myDataDisk \
        --size-gb 200
    

    Catatan

    Jika Anda memperluas disk terkelola, ukuran yang diperbarui dibulatkan ke atas ke ukuran disk terkelola terdekat. Untuk tabel ukuran dan tingkat disk terkelola yang tersedia, lihat Ringkasan Disk yang Dikelola Azure - Harga dan Tagihan.

  3. Mulai VM Anda dengan az vm start. Contoh berikut ini memulai VM bernama myVM dalam grup sumber daya bernama myResourceGroup:

    az vm start --resource-group myResourceGroup --name myVM
    

Memperluas partisi disk dan filesystem

Catatan

Meskipun ada banyak alat yang dapat digunakan untuk melakukan pengubahan ukuran partisi, alat yang dirinci dalam sisa dokumen ini adalah alat yang sama yang digunakan oleh proses otomatis tertentu seperti cloud-init. Seperti yang dijelaskan di sini, growpart alat dengan gdisk paket menyediakan kompatibilitas universal dengan disk GUID Partition Table (GPT), karena versi lama dari beberapa alat seperti fdisk tidak mendukung GPT.

Mendeteksi ukuran disk yang diubah

Jika disk data diperluas tanpa waktu henti menggunakan prosedur yang disebutkan sebelumnya, ukuran disk tidak akan diubah sampai perangkat dipindai kembali, yang biasanya hanya terjadi selama proses boot. Rescan ini dapat dipanggil sesuai permintaan dengan prosedur berikut. Dalam contoh ini kami telah mendeteksi menggunakan metode dalam dokumen ini bahwa disk data saat /dev/sda ini dan telah diubah ukurannya dari 256 GiB menjadi 512 GiB.

  1. Identifikasi ukuran yang saat ini dikenali pada baris pertama output dari fdisk -l /dev/sda

    sudo fdisk -l /dev/sda
    
    Disk /dev/sda: 256 GiB, 274877906944 bytes, 536870912 sectors
    Disk model: Virtual Disk
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 4096 bytes
    I/O size (minimum/optimal): 4096 bytes / 4096 bytes
    Disklabel type: dos
    Disk identifier: 0x43d10aad
    
    Device     Boot Start       End   Sectors  Size Id Type
    /dev/sda1        2048 536870878 536868831  256G 83 Linux
    
  2. 1 Sisipkan karakter ke dalam file piranti ulang untuk perangkat ini. Perhatikan referensi ke sda, ini akan berubah jika perangkat disk yang berbeda diubah ukurannya.

    echo 1 | sudo tee /sys/class/block/sda/device/rescan
    
  3. Verifikasi bahwa ukuran disk baru telah dikenali

    sudo fdisk -l /dev/sda
    
    Disk /dev/sda: 512 GiB, 549755813888 bytes, 1073741824 sectors
    Disk model: Virtual Disk
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 4096 bytes
    I/O size (minimum/optimal): 4096 bytes / 4096 bytes
    Disklabel type: dos
    Disk identifier: 0x43d10aad
    
    Device     Boot Start       End   Sectors  Size Id Type
    /dev/sda1        2048 536870878 536868831  256G 83 Linux
    

Sisa artikel ini menggunakan disk OS untuk contoh prosedur untuk meningkatkan ukuran volume di tingkat OS. Jika disk yang diperluas adalah disk data, gunakan panduan sebelumnya untuk mengidentifikasi perangkat disk data, dan ikuti instruksi ini sebagai pedoman, mengganti perangkat disk data (misalnya /dev/sda), nomor partisi, nama volume, titik pemasangan, dan format sistem file, seperlunya.

Semua panduan OS Linux harus dilihat sebagai generik dan dapat berlaku pada distribusi apa pun, tetapi umumnya cocok dengan konvensi penerbit marketplace bernama. Referensi dokumen Red Hat untuk persyaratan paket pada distribusi apa pun yang mengklaim kompatibilitas Red Hat, seperti CentOS dan Oracle.

Memperbesar ukuran disk OS

Instruksi berikut berlaku untuk distribusi Linux yang didukung.

Catatan

Sebelum melanjutkan, buat salinan cadangan lengkap VM Anda, atau minimal ambil rekam jepret disk OS Anda.

Pada Ubuntu 16.x dan yang lebih baru, partisi akar disk OS dan sistem file akan secara otomatis diperluas untuk memanfaatkan semua ruang kosong yang bersebelahan pada disk akar oleh cloud-init, asalkan ada sedikit ruang kosong untuk operasi pengubahan ukuran. Untuk keadaan ini urutannya sederhana

  1. Tingkatkan ukuran disk OS seperti yang dirinci sebelumnya
  2. Mulai ulang VM, lalu akses VM menggunakan akun pengguna root .
  3. Verifikasi bahwa disk OS sekarang menampilkan ukuran sistem file yang ditingkatkan.

Seperti yang ditunjukkan dalam contoh berikut, disk OS telah diubah ukurannya dari portal menjadi 100 GB. Sistem file /dev/sda1 yang dipasang di / sekarang menampilkan 97 GB.

df -Th
Filesystem     Type      Size  Used Avail Use% Mounted on
udev           devtmpfs  314M     0  314M   0% /dev
tmpfs          tmpfs      65M  2.3M   63M   4% /run
/dev/sda1      ext4       97G  1.8G   95G   2% /
tmpfs          tmpfs     324M     0  324M   0% /dev/shm
tmpfs          tmpfs     5.0M     0  5.0M   0% /run/lock
tmpfs          tmpfs     324M     0  324M   0% /sys/fs/cgroup
/dev/sda15     vfat      105M  3.6M  101M   4% /boot/efi
/dev/sdb1      ext4       20G   44M   19G   1% /mnt
tmpfs          tmpfs      65M     0   65M   0% /run/user/1000
user@ubuntu:~#

Memperluas tanpa dukungan SKU VM klasik downtime

Jika Anda menggunakan SKU VM klasik, mungkin tidak mendukung perluasan disk tanpa waktu henti.

Gunakan skrip PowerShell berikut untuk menentukan SKU VM mana yang tersedia dengannya:

Connect-AzAccount
$subscriptionId="yourSubID"
$location="desiredRegion"
Set-AzContext -Subscription $subscriptionId
$vmSizes=Get-AzComputeResourceSku -Location $location | where{$_.ResourceType -eq 'virtualMachines'}

foreach($vmSize in $vmSizes){
    foreach($capability in $vmSize.Capabilities)
    {
       if(($capability.Name -eq "EphemeralOSDiskSupported" -and $capability.Value -eq "True") -or ($capability.Name -eq "PremiumIO" -and $capability.Value -eq "True") -or ($capability.Name -eq "HyperVGenerations" -and $capability.Value -match "V2"))
        {
            $vmSize.Name
       }
   }
}