Aracılığıyla paylaş


Linux sanal makinesinde sanal sabit diskleri genişletme

Ş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. Daha fazla 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 depolama için veri diskleri eklemeyi göz önünde bulundurun. İşletim sistemi diskinde veri depolamanız gerekiyorsa ve fazladan alan 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

Bir veri diskini genişletirken, VM'de birden çok veri diski bulunduğunda, 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 yolu kullanılarak mı yoksa fstab'daki (tercih edilen) UUID kullanılarak mı bağlandığını cihaz yolunu gösterir. Ayrıca, dosya sisteminin biçimini gösteren Tür sütununu da not alın. Biçim 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.
  • Standart HDD, Standart SSD veya Premium SSD disk 4 TiB veya daha azsa, VM'nizi serbest bırakabilirsiniz ve diski 4 TiB'ın ötesine genişletmeden önce ayırabilirsiniz. Bu disk türlerinden biri zaten 4 TiB'den büyükse, VM'yi serbest bırakmadan ve diski ayırmadan genişletebilirsiniz. Bu, Premium SSD v2 veya Ultra Diskler için geçerli değildir.
  • 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.

Ultra Disk ve Premium SSD v2 için Önizleme

Önemli

Ultra Diskler ve Premium SSD v2 diskleri için kapalı kalma süresi olmadan genişletme şu anda ÖNIZLEME aşamasındadır. Beta veya önizleme aşamasında olan ya da başka bir şekilde henüz genel kullanıma sunulmamış olan Azure özelliklerinde geçerli olan yasal koşullar için bkz. Microsoft Azure Önizlemeleri için Ek Kullanım Koşulları.

Önizlemede aşağıdaki ek sınırlamalar vardır:

Bölgesel kullanılabilirlik

Ultra Diskleri ve Premium SSD v2 disklerini yeniden boyutlandırma şu anda aşağıdaki bölgelerde önizleme olarak kullanılabilir:

  • Doğu Avustralya
  • Güney Brezilya
  • Orta Kanada
  • Orta Hindistan
  • Central US
  • Doğu ABD 2
  • Orta Fransa
  • Doğu Japonya
  • Güney Kore - Orta
  • Kuzey Avrupa
  • Güneydoğu Asya

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.

Mevcut diskin küçültülmesi desteklenmez ve veri kaybına yol açabilir.

Diskleri genişletdikten sonra, daha büyük disklerden yararlanmak için işletim sistemindeki birimi genişletmeniz gerekir.

  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

Daha önce bahsedilen yordam kullanılarak veri diski kapalı kalma süresi olmadan genişletildiyse, bildirilen disk boyutu cihaz yeniden taranana kadar değişmez 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ı bulduk.

  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. Örnekteki sda başvurusuna dikkat edin. Farklı bir disk cihazı yeniden boyutlandırılırsa disk tanımlayıcısı değişir.

    echo 1 | sudo tee /sys/class/block/sda/device/rescan
    
  3. Yeni disk boyutunun artık 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 tabanlı herhangi bir dağıtımda veya Red Hat uyumluluğunu talep ederek 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 boş alan olması koşuluyla işletim sistemi diskinin ve dosya sistemlerinin kök bölümü, cloud-init tarafından kök diskteki tüm boş bitişik alanı kullanacak şekilde otomatik olarak genişletilir. Bu durumda, sıra basitçe

  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ıldı. Ü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
       }
   }
}