Linux VM'de sanal sabit diskleri genişletme

Dikkat

Bu makalede, Kullanım Süresi Sonu (EOL) durumuna yakın bir Linux dağıtımı olan CentOS'a başvuruda bulunur. Lütfen kullanımınızı göz önünde bulundurun ve uygun şekilde planlayın. Daha fazla bilgi için bkz . CentOS Kullanım Süresi Sonu kılavuzu.

Şunlar için geçerlidir: ✔️ Linux VM'leri ✔️ Esnek ölçek kümeleri

Bu makalede, Linux sanal makinesi (VM) için yönetilen disklerin nasıl genişletildiği açıklanır. Ek depolama alanı sağlamak için veri diskleri ekleyebilir ve var olan bir veri disklerini de genişletebilirsiniz. İşletim sistemi (OS) için varsayılan sanal sabit disk boyutu genellikle Azure'daki bir Linux VM'de 30 GB'tır. Bu makale, işletim sistemi disklerini veya veri disklerini genişletmeyi kapsar. Şeritli birimlerin boyutunu genişletemezsiniz.

İşletim sistemi diskinin kapasitesi en fazla 4.095 GiB'dir. Ancak, birçok işletim sistemi varsayılan olarak ana önyükleme kaydı (MBR) ile bölümlenir. MBR, kullanılabilir boyutu 2 TiB ile sınırlar. 2 TiB'den fazlasına ihtiyacınız varsa veri diskleri oluşturup ekleyin ve bunları veri depolama için kullanın. İşletim sistemi diskinde veri depolamanız ve ek alan gerektirmeniz gerekiyorsa, bunu GUID Bölümleme Tablosu'na (GPT) dönüştürün.

Uyarı

Dosya sisteminizin iyi durumda olduğundan, disk bölümleme tablo türünüzün (GPT veya MBR) yeni boyutu desteklediğinden ve disk genişletme işlemlerini gerçekleştirmeden önce verilerinizin yedeklendiğinden emin olun. Daha fazla bilgi için bkz . Azure Backup hızlı başlangıcı.

İşletim sistemi içindeki Azure veri diski nesnesini tanımlama

VM'de birden çok veri diski bulunduğunda bir veri diskini genişletme durumunda, Azure LUN'larını Linux cihazlarıyla ilişkilendirmek zor olabilir. İşletim sistemi diskinin genişletilmesi gerekiyorsa, Azure portalında işletim sistemi diski olarak açıkça etiketlenir.

komutuyla disk kullanımı, bağlama noktası ve cihaz arasındaki ilişkiyi df belirleyerek başlayın.

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

Burada, örneğin /opt/db/data dosya sisteminin neredeyse dolu olduğunu ve bölümde bulunduğunu /dev/sdd1 görebiliriz. çıkışı df , diskin cihaz yoluna mı yoksa fstab'daki (tercih edilen) UUID'ye mi bağlı olduğuna bakılmaksızın cihaz yolunu gösterir. Ayrıca, dosya sisteminin biçimini gösteren Tür sütununu da not alın. Bu daha sonra önemlidir.

Şimdi içeriğini inceleyerek bağıntılı /dev/sdd LUN'u /dev/disk/azure/scsi1bulun. Aşağıdaki ls komutun çıktısı, Linux işletim sistemi içinde olarak /dev/sdd bilinen cihazın Azure portalına bakarken LUN1'de bulunduğunu gösterir.

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

Azure Yönetilen Diski genişletme

Kapalı kalma süresi olmadan genişletme

Vm'nizi serbest bırakmadan yönetilen disklerinizi genişletebilirsiniz. Vm'nizi serbest bırakmadan bir veri diskini genişletip genişletemeyeceğiniz diskinizin ana bilgisayar önbelleği ayarı değişmez.

Bu özellik aşağıdaki sınırlamalara sahiptir:

  • Yalnızca veri diskleri için desteklenir.
  • Disk 4 TiB veya daha küçükse, VM'nizi serbest bırakmanız ve diski 4 TiB'nin ötesine genişletmeden önce ayırmanız gerekir. Disk 4 TiB'den büyükse, VM'yi serbest bırakmadan ve diski ayırmadan diski genişletebilirsiniz.
  • Ultra diskler veya Premium SSD v2 diskler için desteklenmez.
  • Paylaşılan diskler için desteklenmez.
  • Aşağıdakilerden birini yükleyin ve kullanın:
  • Bazı klasik VM'lerde kullanılamaz. Kapalı kalma süresi olmadan genişletmeyi destekleyen klasik VM SKU'larının listesini almak için bu betiği kullanın.

Azure Yönetilen Disk'i genişletme

En son Azure CLI'yi yüklediğinizden ve az login kullanarak bir Azure hesabında oturum açtığınızdan emin olun.

Bu makale, Azure'da en az bir veri diski takılı ve hazırlanmış bir VM gerektirir. Kullanabileceğiniz bir VM'niz yoksa bkz . Veri diskleriyle VM oluşturma ve hazırlama.

Aşağıdaki örneklerde, myResourceGroup ve myVM gibi örnek parametre adlarını kendi değerlerinizle değiştirin.

Önemli

Diskiniz Kapalı kalma süresi olmadan genişletme'deki gereksinimleri karşılıyorsa 1. ve 3. adımı atlayabilirsiniz.

  1. Sanal sabit disklerdeki işlemler VM çalışırken gerçekleştirilemez. az vm deallocate komutunu kullanarak sanal makinenizi serbest bırakın. Aşağıdaki örnekte myResourceGroup adlı kaynak grubunda myVM adlı VM serbest bırakılır:

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

    Not

    Sanal sabit diski genişletmek için VM'nin serbest bırakılması gerekir. VM'nin durdurulması az vm stop işlem kaynaklarını serbest bırakmaz. İşlem kaynaklarını serbest bırakmak için kullanın az vm deallocate.

  2. Az disk list içeren bir kaynak grubundaki yönetilen disklerin listesini görüntüleyin. Aşağıdaki örnek, myResourceGroup adlı kaynak grubundaki yönetilen disklerin listesini görüntüler:

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

    az disk update ile gerekli diski genişletin. Aşağıdaki örnek, myDataDisk adlı yönetilen diski 200 GB'a genişletir:

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

    Not

    Yönetilen diski genişlettiğiniz zaman, güncelleştirilmiş boyut en yakın yönetilen disk boyutuna yuvarlanmış olur. Kullanılabilir yönetilen disk boyutlarının ve katmanlarının tablosu için bkz. Azure Yönetilen Diskler Genel Bakış - Fiyatlandırma ve Faturalama.

  3. az vm start ile VM'nizi başlatın. Aşağıdaki örnek myResourceGroup adlı kaynak grubunda myVM adlı VM'yi başlatır:

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

Disk bölümünü ve dosya sistemini genişletme

Not

Bölüm yeniden boyutlandırmasını gerçekleştirmek için kullanılabilecek birçok araç olsa da, bu belgenin geri kalanında ayrıntılı olarak yer alan araçlar, cloud-init gibi belirli otomatik işlemler tarafından kullanılan araçlarla aynıdır. Burada açıklandığı gibi, growpart paketine gdisk sahip araç GUID Bölümleme Tablosu (GPT) diskleriyle evrensel uyumluluk sağlar, çünkü gibi fdisk bazı araçların eski sürümleri GPT'yi desteklemez.

Değiştirilen disk boyutunu algılama

Veri diski daha önce bahsedilen yordam kullanılarak kapalı kalma süresi olmadan genişletildiyse, cihaz yeniden taranana kadar disk boyutu değiştirilmez ve bu normalde yalnızca önyükleme işlemi sırasında gerçekleşir. Bu yeniden tarama aşağıdaki yordamla isteğe bağlı olarak çağrılabilir. Bu örnekte, bu belgedeki yöntemleri kullanarak veri diskinin şu anda /dev/sda olduğunu ve 256 GiB'den 512 GiB'ye yeniden boyutlandırıldığını tespit ettik.

  1. Çıktının ilk satırında şu anda tanınan boyutu belirleme 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. Bu cihaz için yeniden tarama dosyasına bir 1 karakter ekleyin. Sda başvurusuna dikkat edin; farklı bir disk cihazı yeniden boyutlandırıldıysa bu durum değişebilir.

    echo 1 | sudo tee /sys/class/block/sda/device/rescan
    
  3. Yeni disk boyutunun tanındığını doğrulayın

    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
    

Bu makalenin geri kalanında, işletim sistemi düzeyinde bir birimin boyutunu artırma yordamının örnekleri için işletim sistemi diski kullanılır. Genişletilmiş disk bir veri diskiyse, veri diski cihazını tanımlamak için önceki yönergeleri kullanın ve bu yönergeleri, gerektiğinde veri diski cihazını (örneğin /dev/sda), bölüm numaralarını, birim adlarını, bağlama noktalarını ve dosya sistemi biçimlerini değiştirerek bir kılavuz olarak izleyin.

Tüm Linux işletim sistemi yönergeleri genel olarak görüntülenmelidir ve herhangi bir dağıtımda geçerli olabilir, ancak genellikle adlandırılmış market yayımcısının kurallarıyla eşleşir. Red Hat uyumluluğu talep eden CentOS ve Oracle gibi herhangi bir dağıtımda paket gereksinimleri için Red Hat belgelerine başvurun.

İşletim sistemi diskinin boyutunu artırma

Aşağıdaki yönergeler desteklenen Linux dağıtımları için geçerlidir.

Not

Devam etmeden önce VM'nizin tam yedek kopyasını oluşturun veya en azından işletim sistemi diskinizin anlık görüntüsünü alın.

Ubuntu 16.x ve daha yeni sürümlerde, yeniden boyutlandırma işlemi için küçük bir miktar boş alan olması koşuluyla işletim sistemi diskinin ve dosya sistemlerinin kök bölümü, kök diskteki tüm boş bitişik alanın cloud-init tarafından kullanılması için otomatik olarak genişletilecektir. Bu durumda sıra yalnızca

  1. daha önce ayrıntılı olarak açıklandığı gibi işletim sistemi diskinin boyutunu artırın
  2. VM'yi yeniden başlatın ve ardından kök kullanıcı hesabını kullanarak VM'ye erişin.
  3. İşletim sistemi diskinin artık daha yüksek bir dosya sistemi boyutu görüntülediğini doğrulayın.

Aşağıdaki örnekte gösterildiği gibi, işletim sistemi diski portaldan 100 GB'a yeniden boyutlandırılmıştır. Üzerine bağlanmış / /dev/sda1 dosya sistemi artık 97 GB görüntülüyor.

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:~#

Kapalı kalma süresi olmadan genişletme klasik VM SKU desteği

Klasik vm SKU'su kullanıyorsanız, kapalı kalma süresi olmadan disklerin genişletilmesi desteklenmeyebilir.

Hangi VM SKU'larıyla kullanılabilir olduğunu belirlemek için aşağıdaki PowerShell betiğini kullanın:

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
       }
   }
}