Rozšíření virtuálních pevných disků na virtuálním počítači s Linuxem
Platí pro: ✔️ Flexibilní škálovací sady virtuálních počítačů s Linuxem ✔️
Tento článek popisuje rozšíření disků operačního systému a datových disků pro virtuální počítač s Linuxem. Můžete přidat datové disky , které zajistí více místa v úložišti, a můžete také rozšířit stávající datový disk. Výchozí velikost virtuálního pevného disku pro operační systém (OS) je obvykle 30 GB na virtuálním počítači s Linuxem v Azure. Tento článek popisuje rozšíření disků operačního systému nebo datových disků. Velikost prokládání svazků nejde rozšířit.
Disk s operačním systémem má maximální kapacitu 4 095 GiB. Mnoho operačních systémů je však ve výchozím nastavení rozděleno na hlavní spouštěcí záznam (MBR). MBR omezuje využitelnou velikost na 2 TiB. Pokud potřebujete více než 2 TiB, zvažte připojení datových disků pro datové úložiště. Pokud potřebujete ukládat data na disk s operačním systémem a vyžadovat další místo, převeďte je na tabulku oddílů GUID (GPT).
Upozorňující
Vždy se ujistěte, že je váš systém souborů v dobrém stavu, typ tabulky oddílů disku (GPT nebo MBR) bude podporovat novou velikost a před provedením operací rozšíření disku se ujistěte, že se vaše data zálohuje. Další informace najdete v rychlém startu azure Backup.
Identifikace objektu datového disku Azure v rámci operačního systému
Když na virtuálním počítači existuje několik datových disků, může být při rozšiřování datového disku obtížné propojit logické jednotky Azure se zařízeními s Linuxem. Pokud disk s operačním systémem potřebuje rozšíření, je jasně označený na webu Azure Portal jako disk s operačním systémem.
Začněte tím, df
že pomocí příkazu identifikujete vztah mezi využitím disku, přípojným bodem a zařízením.
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
Vidíme například, že /opt/db/data
systém souborů je téměř plný a nachází se v oddílu /dev/sdd1
. Výstup df
ukazuje cestu zařízení, zda je disk připojený pomocí cesty zařízení nebo (upřednostňovaného) UUID v fstab. Poznamenejte si také sloupec Typ označující formát systému souborů. Formát je důležitý později.
Nyní vyhledejte logickou jednotku, která koreluje s /dev/sdd
prozkoumáním obsahu /dev/disk/azure/scsi1
. Výstup následujícího ls
příkazu ukazuje, že zařízení známé jako /dev/sdd
v operačním systému Linux se při prohlížení na webu Azure Portal nachází na logické jednotce 1.
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
Rozšíření spravovaného disku Azure
Rozšíření bez výpadků
Spravované disky můžete rozšířit bez uvolnění virtuálního počítače. Nastavení mezipaměti hostitele disku se nezmění, jestli datový disk můžete rozbalit bez uvolnění virtuálního počítače.
Tato funkce má následující omezení:
- Podporuje se jenom u datových disků.
- Pokud je disk HDD úrovně Standard, SSD úrovně Standard nebo SSD úrovně Premium 4 TiB nebo menší, uvolněte virtuální počítač a odpojte ho před rozšířením nad rámec 4 TiB. Pokud je některý z těchto typů disků již větší než 4 TiB, můžete ho rozbalit bez uvolnění virtuálního počítače a odpojení disku. To neplatí pro disky SSD úrovně Premium v2 nebo Ultra.
- Nepodporuje se pro sdílené disky.
- Nainstalujte a použijte jednu z těchto akcí:
- Nejnovější Azure CLI
- Nejnovější modul Azure PowerShellu
- Azure Portal
- Nebo šablona Azure Resource Manageru s verzí rozhraní API, která je
2021-04-01
nebo novější.
- Na některých klasických virtuálních počítačích není k dispozici. Pomocí tohoto skriptu získáte seznam klasických skladových položek virtuálních počítačů, které podporují rozšiřování bez výpadků.
Rozšíření s diskem Úrovně Ultra a SSD úrovně Premium v2
Rozšíření disků Úrovně Ultra a disků SSD úrovně Premium v2 má následující další omezení:
- Disk nelze rozšířit, když se na daném disku vyskytuje také kopie dat na pozadí, například když se disk hydratuje ze snímků.
- Virtuální počítač, který používá řadiče NVMe pro disky Úrovně Ultra nebo disky SSD úrovně Premium v2, nemůžete rozšířit bez výpadků.
Důležité
Počkejte až deset minut, než se správná velikost projeví na virtuálních počítačích s Windows a virtuálních počítačích s Linuxem. U virtuálních počítačů s Linuxem musíte provést funkci opětovného prohledání Linuxu pro virtuální počítač s Windows, která nemá úlohu, musíte provést funkci opětovného prohledání Windows. Okamžitě můžete znovu prohledat, ale pokud je to do deseti minut, budete možná muset znovu prohledat, aby se zobrazila správná velikost.
Regionální dostupnost
Změna velikosti disků Úrovně Ultra a disků SSD úrovně Premium v2 je aktuálně dostupná ve všech podporovaných oblastech Ssd úrovně Premium v2 a Ultra s výjimkou následujících:
- USA – západ 2
Rozbalení spravovaného disku Azure
Pomocí příkazu az login se ujistěte, že máte nainstalované nejnovější rozhraní příkazového řádku Azure a jste přihlášeni k účtu Azure.
Tento článek vyžaduje existující virtuální počítač v Azure s alespoň jedním připojeným a připraveným datovým diskem. Pokud ještě nemáte virtuální počítač, který můžete použít, přečtěte si téma Vytvoření a příprava virtuálního počítače s datovými disky.
V následujících ukázkách nahraďte ukázkové názvy parametrů, jako jsou myResourceGroup a myVM , vlastními hodnotami.
Důležité
Pokud disk splňuje požadavky v rozbalení bez výpadků, můžete přeskočit krok 1 a 3.
Zmenšování stávajícího disku není podporováno a může vést ke ztrátě dat.
Po rozbalení disků je potřeba rozšířit svazek v operačním systému, abyste mohli využít větší disk.
Operace na virtuálních pevných discích nejde provést se spuštěným virtuálním počítačem. Zrušte přidělení virtuálního počítače pomocí příkazu az vm deallocate. Následující příklad uvolní virtuální počítač myVM ve skupině prostředků myResourceGroup:
az vm deallocate --resource-group myResourceGroup --name myVM
Poznámka:
Virtuální počítač musí být uvolněn, aby se virtuální pevný disk rozbalil. Zastavení virtuálního
az vm stop
počítače nevyvolá výpočetní prostředky. Pokud chcete uvolnit výpočetní prostředky, použijteaz vm deallocate
.Zobrazte seznam spravovaných disků ve skupině prostředků pomocí příkazu az disk list. Následující příklad zobrazí seznam spravovaných disků ve skupině prostředků myResourceGroup:
az disk list \ --resource-group myResourceGroup \ --query '[*].{Name:name,size:diskSizeGB,Tier:sku.tier}' \ --output table
Rozbalte požadovaný disk pomocí příkazu az disk update. Následující příklad rozbalí spravovaný disk s názvem myDataDisk na 200 GB:
az disk update \ --resource-group myResourceGroup \ --name myDataDisk \ --size-gb 200
Poznámka:
Při rozbalení spravovaného disku se aktualizovaná velikost zaokrouhlí nahoru na nejbližší velikost spravovaného disku. Tabulku dostupných velikostí a úrovní spravovaných disků najdete v tématu Vysvětlení fakturace služby Azure Disk Storage.
Spusťte virtuální počítač pomocí příkazu az vm start. Následující příklad spustí virtuální počítač myVM ve skupině prostředků myResourceGroup:
az vm start --resource-group myResourceGroup --name myVM
Rozšíření oddílu disku a systému souborů
Poznámka:
I když existuje mnoho nástrojů, které se dají použít k provádění změny velikosti oddílů, nástroje podrobně popsané ve zbývající části tohoto dokumentu jsou stejné nástroje používané určitými automatizovanými procesy, jako je cloud-init. Jak je popsáno zde, nástroj s balíčkem gdisk
poskytuje univerzální kompatibilitu s disky GPT (GUID Partition Table), protože starší verze některých nástrojů, growpart
jako fdisk
například nepodporují GPT.
Zjištění změněné velikosti disku
Pokud došlo k rozšíření datového disku bez výpadků pomocí výše uvedeného postupu, velikost hlášeného disku se nezmění, dokud se zařízení znovu nenaskenuje, což se obvykle děje pouze během procesu spouštění. Toto opětovné prohledání lze volat na vyžádání pomocí následujícího postupu. V tomto příkladu zjistíme použití metod v tomto dokumentu, že datový disk je aktuálně /dev/sda
a byl změněn z 256 GiB na 512 GiB.
Identifikace aktuálně rozpoznané velikosti na prvním řádku výstupu z
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
1
Vložte znak do souboru pro opětovné prohledání tohoto zařízení. Všimněte si odkazu na sda v příkladu. Identifikátor disku by se změnil, pokud došlo ke změně velikosti jiného diskového zařízení.echo 1 | sudo tee /sys/class/block/sda/device/rescan
Ověřte, že je teď rozpoznána nová velikost disku.
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
Zbývající část tohoto článku používá disk s operačním systémem pro příklady postupu pro zvětšení velikosti svazku na úrovni operačního systému. Pokud je rozbalený disk datový disk, použijte předchozí pokyny k identifikaci datového diskového zařízení a podle těchto pokynů nahraďte datové diskové zařízení (například /dev/sda
), čísla oddílů, názvy svazků, přípojné body a formáty systému souborů podle potřeby.
Všechny pokyny k operačnímu systému Linux by měly být považovány za obecné a můžou se vztahovat na jakoukoli distribuci, ale obecně odpovídají konvencím pojmenovaného vydavatele marketplace. Odkazujte na dokumenty Red Hatu pro požadavky na balíček na libovolnou distribuci na základě Red Hatu nebo deklarujte kompatibilitu Red Hatu.
Zvětšení velikosti disku s operačním systémem
Následující pokyny platí pro schválené linuxové distribuce.
Poznámka:
Než budete pokračovat, vytvořte úplnou záložní kopii vašeho virtuálního počítače nebo alespoň pořiďte snímek disku s operačním systémem.
Na Ubuntu 16.x a novějším se kořenový oddíl disku s operačním systémem a systém souborů automaticky rozšíří, aby využíval veškeré volné souvislé místo na kořenovém disku cloud-init za předpokladu, že pro operaci změny velikosti je k dispozici malá část volného místa. V tomto případě je posloupnost jednoduše
- Zvětšete velikost disku s operačním systémem, jak je popsáno výše.
- Restartujte virtuální počítač a pak přejděte k virtuálnímu počítači pomocí kořenového uživatelského účtu.
- Ověřte, že disk s operačním systémem teď zobrazuje zvýšenou velikost systému souborů.
Jak je znázorněno v následujícím příkladu, změnil se disk s operačním systémem z portálu na 100 GB. Systém souborů /dev/sda1 připojený teď / zobrazuje 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:~#
Rozšíření bez výpadků – podpora SKU klasického virtuálního počítače
Pokud používáte skladovou položku klasického virtuálního počítače, nemusí podporovat rozšíření disků bez výpadků.
Pomocí následujícího skriptu PowerShellu určete, které skladové položky virtuálních počítačů jsou k dispozici:
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
}
}
}