Virtuele harde schijven op een Virtuele Linux-machine uitbreiden

Let op

In dit artikel wordt verwezen naar CentOS, een Linux-distributie die de status End Of Life (EOL) nadert. Houd rekening met uw gebruik en plan dienovereenkomstig. Zie de Richtlijnen voor het einde van de levensduur van CentOS voor meer informatie.

Van toepassing op: ✔️ Flexibele schaalsets voor Linux-VM's ✔️

In dit artikel wordt beschreven hoe u beheerde schijven voor een virtuele Linux-machine (VM) uitbreidt. U kunt gegevensschijven toevoegen om extra opslagruimte te bieden en u kunt ook een bestaande gegevensschijf uitbreiden. De standaardgrootte van de virtuele harde schijf voor het besturingssysteem (OS) is doorgaans 30 GB op een Virtuele Linux-machine in Azure. Dit artikel bevat informatie over het uitbreiden van besturingssysteemschijven of gegevensschijven. U kunt de grootte van gestreepte volumes niet uitbreiden.

Een besturingssysteemschijf heeft een maximale capaciteit van 4095 GiB. Veel besturingssystemen worden echter standaard gepartitioneerd met master boot record (MBR ). MBR beperkt de bruikbare grootte tot 2 TiB. Als u meer dan 2 TiB nodig hebt, maakt en koppelt u gegevensschijven en gebruikt u deze voor gegevensopslag. Als u gegevens op de besturingssysteemschijf wilt opslaan en de extra ruimte nodig hebt, converteert u deze naar GPT (GUID Partition Table).

Waarschuwing

Zorg er altijd voor dat uw bestandssysteem een goede status heeft, het type schijfpartitietabel (GPT of MBR) ondersteunt de nieuwe grootte en zorg ervoor dat er een back-up van uw gegevens wordt gemaakt voordat u schijfuitbreidingsbewerkingen uitvoert. Zie de quickstart voor Azure Backup voor meer informatie.

Azure-gegevensschijfobject binnen het besturingssysteem identificeren

In het geval van het uitbreiden van een gegevensschijf wanneer er verschillende gegevensschijven aanwezig zijn op de virtuele machine, kan het lastig zijn om de Azure-LUN's te koppelen aan de Linux-apparaten. Als de besturingssysteemschijf uitbreiding nodig heeft, wordt deze duidelijk gelabeld in Azure Portal als de besturingssysteemschijf.

Begin met het identificeren van de relatie tussen schijfgebruik, koppelpunt en apparaat, met de df opdracht.

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

Hier ziet u bijvoorbeeld dat het /opt/db/data bestandssysteem bijna vol is en zich op de /dev/sdd1 partitie bevindt. In de uitvoer van df het apparaat wordt het apparaatpad weergegeven, ongeacht of de schijf is gekoppeld via het apparaatpad of de (voorkeurs-) UUID in de fstab. Noteer ook de kolom Type, waarmee de indeling van het bestandssysteem wordt aangegeven. Dit is later belangrijk.

Zoek nu de LUN die correleert /dev/sdd door de inhoud van /dev/disk/azure/scsi1. In de uitvoer van de volgende ls opdracht ziet u dat het apparaat dat bekend staat als /dev/sdd binnen het Linux-besturingssysteem zich op LUN1 bevindt wanneer u in Azure Portal kijkt.

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

Een azure Managed Disk uitvouwen

Uitvouwen zonder uitvaltijd

U kunt uw beheerde schijven uitbreiden zonder de toewijzing van de VM ongedaan te maken. De instelling voor de hostcache van uw schijf verandert niet of u een gegevensschijf wel of niet kunt uitbreiden zonder de toewijzing van de VIRTUELE machine ongedaan te maken.

Deze functie heeft de volgende beperkingen:

  • Alleen ondersteund voor gegevensschijven.
  • Als een schijf 4 TiB of minder is, moet u de toewijzing van uw VM ongedaan maken en de schijf ontkoppelen voordat u deze uitbreidt naar meer dan 4 TiB. Als een schijf al groter is dan 4 TiB, kunt u deze uitbreiden zonder de toewijzing van de VM ongedaan te maken en de schijf te ontkoppelen.
  • Niet ondersteund voor Ultra-schijven of Premium SSD v2-schijven.
  • Niet ondersteund voor gedeelde schijven.
  • Installeer en gebruik een van de volgende opties:
  • Niet beschikbaar op sommige klassieke VM's. Gebruik dit script om een lijst op te halen met klassieke VM-SKU's die ondersteuning bieden voor uitbreiden zonder uitvaltijd.

Azure Managed Disk uitbreiden

Zorg ervoor dat u de nieuwste Azure CLI hebt geïnstalleerd en bent aangemeld bij een Azure-account met behulp van az login.

Voor dit artikel is een bestaande VIRTUELE machine in Azure vereist waarop ten minste één gegevensschijf is gekoppeld en voorbereid. Als u nog geen VM hebt die u kunt gebruiken, raadpleegt u Een virtuele machine maken en voorbereiden met gegevensschijven.

Vervang in de volgende voorbeelden voorbeeldparameternamen, zoals myResourceGroup en myVM , door uw eigen waarden.

Belangrijk

Als uw schijf voldoet aan de vereisten in Uitbreiden zonder uitvaltijd, kunt u stap 1 en 3 overslaan.

  1. Bewerkingen op virtuele harde schijven kunnen niet worden uitgevoerd wanneer de virtuele machine wordt uitgevoerd. Maak de toewijzing van de VM ongedaan met behulp van az vm deallocate. In het volgende voorbeeld wordt de toewijzing van de VIRTUELE machine met de naam myVM in de resourcegroep met de naam myResourceGroup opgeheven:

    az vm deallocate --resource-group myResourceGroup --name myVM
    

    Notitie

    De toewijzing van de virtuele machine moet ongedaan worden gemaakt om de virtuele harde schijf uit te breiden. Als u de VIRTUELE machine stopt, az vm stop worden de rekenresources niet vrijgegeven. Als u rekenresources wilt vrijgeven, gebruikt u az vm deallocate.

  2. Bekijk een lijst met beheerde schijven in een resourcegroep met az disk list. In het volgende voorbeeld ziet u een lijst met beheerde schijven in de resourcegroep met de naam myResourceGroup:

    az disk list \
        --resource-group myResourceGroup \
        --query '[*].{Name:name,Gb:diskSizeGb,Tier:accountType}' \
        --output table
    

    Vouw de vereiste schijf uit met az disk update. In het volgende voorbeeld wordt de beheerde schijf met de naam myDataDisk uitgebreid naar 200 GB:

    az disk update \
        --resource-group myResourceGroup \
        --name myDataDisk \
        --size-gb 200
    

    Notitie

    Wanneer u een beheerde schijf uitvouwt, wordt de bijgewerkte grootte naar boven afgerond op de dichtstbijzijnde beheerde schijfgrootte. Zie Overzicht van Azure Managed Disks - Prijzen en facturering voor een tabel met de beschikbare grootten en lagen van beheerde schijven.

  3. Start uw VM met az vm start. In het volgende voorbeeld wordt de VM met de naam myVM gestart in de resourcegroep met de naam myResourceGroup:

    az vm start --resource-group myResourceGroup --name myVM
    

Een schijfpartitie en bestandssysteem uitvouwen

Notitie

Hoewel er veel hulpprogramma's zijn die kunnen worden gebruikt voor het wijzigen van het formaat van de partitie, zijn de hulpprogramma's die in de rest van dit document worden beschreven, dezelfde hulpprogramma's die worden gebruikt door bepaalde geautomatiseerde processen, zoals cloud-init. Zoals hier beschreven, biedt het growpart hulpprogramma met het gdisk pakket universele compatibiliteit met GPT-schijven (GUID Partition Table), omdat oudere versies van sommige hulpprogramma's zoals fdisk gpt niet ondersteunen.

Een gewijzigde schijfgrootte detecteren

Als een gegevensschijf zonder uitvaltijd is uitgebreid met behulp van de eerder genoemde procedure, wordt de schijfgrootte pas gewijzigd wanneer het apparaat opnieuw wordt gescand, wat normaal gesproken alleen gebeurt tijdens het opstartproces. Deze herscan kan op aanvraag worden aangeroepen met de volgende procedure. In dit voorbeeld hebben we gedetecteerd met behulp van de methoden in dit document dat de gegevensschijf momenteel /dev/sda is en is gewijzigd van 256 GiB naar 512 GiB.

  1. Identificeer de momenteel herkende grootte op de eerste regel uitvoer van 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. Voeg een 1 teken in het bestand opnieuw scannen voor dit apparaat in. Let op de verwijzing naar sda. Dit zou veranderen als een ander schijfapparaat is gewijzigd.

    echo 1 | sudo tee /sys/class/block/sda/device/rescan
    
  3. Controleer of de nieuwe schijfgrootte is herkend

    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
    

In de rest van dit artikel wordt de besturingssysteemschijf gebruikt voor voorbeelden van de procedure voor het vergroten van de grootte van een volume op besturingssysteemniveau. Als de uitgebreide schijf een gegevensschijf is, gebruikt u de vorige richtlijnen voor het identificeren van het gegevensschijfapparaat en volgt u deze instructies als richtlijn, waarbij u het gegevensschijfapparaat (bijvoorbeeld /dev/sda), partitienummers, volumenamen, koppelpunten en bestandssysteemindelingen vervangt, indien nodig.

Alle richtlijnen van het Linux-besturingssysteem moeten worden weergegeven als algemeen en kunnen van toepassing zijn op elke distributie, maar komen in het algemeen overeen met de conventies van de benoemde marketplace-uitgever. Raadpleeg de Red Hat-documenten voor de pakketvereisten voor elke distributie die Red Hat-compatibiliteit claimt, zoals CentOS en Oracle.

De grootte van de besturingssysteemschijf vergroten

De volgende instructies zijn van toepassing op goedgekeurde Linux-distributies.

Notitie

Voordat u verdergaat, maakt u een volledige back-up van uw virtuele machine of maakt u minimaal een momentopname van uw besturingssysteemschijf.

Op Ubuntu 16.x en hoger wordt de hoofdpartitie van de besturingssysteemschijf en bestandssystemen automatisch uitgebreid, zodat alle vrije aaneengesloten ruimte op de hoofdschijf kan worden gebruikt door cloud-init, mits er een klein beetje vrije ruimte is voor de bewerking voor het wijzigen van de grootte. Voor deze situatie is de volgorde gewoon

  1. De grootte van de besturingssysteemschijf vergroten zoals eerder beschreven
  2. Start de VIRTUELE machine opnieuw op en open de VIRTUELE machine met behulp van het hoofdgebruikersaccount .
  3. Controleer of op de besturingssysteemschijf nu een grotere bestandsgrootte wordt weergegeven.

Zoals in het volgende voorbeeld wordt weergegeven, is de grootte van de besturingssysteemschijf gewijzigd van de portal in 100 GB. Het bestandssysteem /dev/sda1 dat is gekoppeld op / nu 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:~#

Ondersteuning voor de klassieke VM-SKU uitbreiden zonder uitvaltijd

Als u een klassieke VM-SKU gebruikt, biedt dit mogelijk geen ondersteuning voor het uitbreiden van schijven zonder downtime.

Gebruik het volgende PowerShell-script om te bepalen met welke VM-SKU's deze beschikbaar is:

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
       }
   }
}