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í:
  • 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ů.

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
  • Západní Evropa
  • USA – východ

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.

  1. 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žijte az vm deallocate.

  2. 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.

  3. 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.

  1. 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
    
  2. 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
    
  3. 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

  1. Zvětšete velikost disku s operačním systémem, jak je popsáno výše.
  2. 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.
  3. 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
       }
   }
}