Rozšíření virtuálních pevných disků na virtuálním počítači s Linuxem

Upozornění

Tento článek odkazuje na CentOS, linuxovou distribuci, která se blíží stavu Konec životnosti (EOL). Zvažte své použití a odpovídajícím způsobem naplánujte. Další informace najdete v doprovodných materiálech CentOS End Of Life.

Platí pro: ✔️ Flexibilní škálovací sady virtuálních počítačů s Linuxem ✔️

Tento článek popisuje, jak rozšířit spravované disky pro virtuální počítač s Linuxem. Můžete přidat datové disky , které poskytují další prostor úložiště, 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, vytvořte a připojte datové disky a použijte je pro ukládání dat. 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

V případě rozšíření datového disku v případě, že na virtuálním počítači existuje několik datových disků, může být 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í bez ohledu na to, jestli je disk připojený cestou zařízení nebo (upřednostňovaným) identifikátorem UUID v nástroji fstab. Poznamenejte si také sloupec Typ označující formát systému souborů. To 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 má disk 4 TiB nebo méně, měli byste před jeho rozšířením nad 4 TiB virtuální počítač uvolnit a disk odpojit. Pokud je disk už větší než 4 TiB, můžete ho rozšířit bez nutnosti uvolnění virtuálního počítače a odpojení disku.
  • Disky Úrovně Ultra nebo disky SSD úrovně Premium verze 2 se nepodporují.
  • 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ů.

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.

  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,Gb:diskSizeGb,Tier:accountType}' \
        --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 Přehled Azure Spravované disky – Ceny a fakturace.

  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 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 jsme zjistili 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, to by se změnilo, 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 byla 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 Hat týkající se požadavků na balíček pro všechny distribuce, které deklarují kompatibilitu Red Hatu, jako je CentOS a Oracle.

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.

V Ubuntu 16.x a novějších verzích se kořenový oddíl disku s operačním systémem a systémem souborů automaticky rozšíří tak, aby využíval veškerý volný souvislý prostor na kořenovém disku prostřednictvím cloud-init za předpokladu, že je k dispozici malý kousek volného místa pro operaci změny velikosti. Pro tuto situaci 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, disk s operačním systémem se změnil 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
       }
   }
}