Linux sanal makinesinde sanal sabit diskleri genişletme
Şunlar için geçerlidir: ✔️ Linux VM'leri ✔️ Esnek ölçek kümeleri
Bu makale, Linux sanal makinesi (VM) için işletim sistemi disklerini ve veri disklerini genişletmeyi kapsar. 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/scsi1
bulun. 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:
- En son Azure CLI
- En son Azure PowerShell modülü
- Azure portalı
- Veya daha yeni bir API sürümüne
2021-04-01
sahip bir Azure Resource Manager şablonu.
- 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 ile genişletme
Ultra Diskler ve Premium SSD v2 disklerinin genişletilmesi aşağıdaki ek sınırlamalara sahiptir:
- Bir diskin anlık görüntülerden nemlendirilmesi gibi bir arka plan veri kopyası da söz konusu diskte gerçekleşirken diski genişletemezsiniz.
- Kapalı kalma süresi olmadan Ultra Diskler veya Premium SSD v2 diskleri için NVMe denetleyicileri kullanan bir VM'i genişletemezsiniz.
Bölgesel kullanılabilirlik
Ultra Diskleri ve Premium SSD v2 disklerini yeniden boyutlandırma şu anda aşağıdakiler dışında tüm Premium SSD v2 ve Ultra desteklenen bölgelerde kullanılabilir:
- ABD Batı 2
- West Europe
- Doğu ABD
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.
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ınaz vm deallocate
.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,size:diskSizeGB,Tier:sku.tier}' \ --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 Disk Depolama faturalamasını anlama.
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.
Çı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
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
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
- daha önce ayrıntılı olarak açıklandığı gibi işletim sistemi diskinin boyutunu artırın
- VM'yi yeniden başlatın ve ardından kök kullanıcı hesabını kullanarak VM'ye erişin.
- İş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
}
}
}