Share via


Virtuele harde schijven uitbreiden op een Linux-VM

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

Dit artikel bevat informatie over het uitbreiden van besturingssysteemschijven en gegevensschijven voor een virtuele Linux-machine (VM). U kunt gegevensschijven toevoegen om meer 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, kunt u overwegen om gegevensschijven te koppelen voor gegevensopslag. Als u wel gegevens op de besturingssysteemschijf moet opslaan en 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

Wanneer u een gegevensschijf uitbreidt en 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. De uitvoer toont het apparaatpad of de schijf is gekoppeld met behulp van df het apparaatpad of de (voorkeurs)UUID in de fstab. Noteer ook de kolom Type, waarmee de indeling van het bestandssysteem wordt aangegeven. De indeling 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 Standard-HDD, Standard SSD of Premium SSD-schijf 4 TiB of minder is, moet u de toewijzing van uw VIRTUELE machine ongedaan maken en de schijf loskoppelen voordat u deze verder uitbreidt dan 4 TiB. Als een van deze schijftypen al groter is dan 4 TiB, kunt u deze uitbreiden zonder de vm te verplaatsen en de schijf los te koppelen. Dit geldt niet voor Premium SSD v2 of Ultra Disks.
  • 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.

Uitbreiden met Ultra Disk en Premium SSD v2

Het uitbreiden van Ultra Disks en Premium SSD v2-schijven heeft de volgende aanvullende beperkingen:

  • U kunt een schijf niet uitbreiden terwijl er ook een achtergrondkopie van gegevens op die schijf optreedt, bijvoorbeeld wanneer een schijf wordt gehydrateerd vanuit momentopnamen.
  • U kunt een virtuele machine die gebruikmaakt van NVMe-controllers niet uitbreiden voor Ultra Disks of Premium SSD v2-schijven zonder uitvaltijd.

Regionale beschikbaarheid

Het wijzigen van de grootte van Ultra Disks en Premium SSD v2-schijven is momenteel beschikbaar in alle Premium SSD v2- en Ultra-ondersteunde regio's, met uitzondering van het volgende:

  • US - west 2
  • Europa -west
  • VS - oost

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.

Het verkleinen van een bestaande schijf wordt niet ondersteund en kan leiden tot gegevensverlies.

Nadat u de schijven hebt uitgebreid, moet u het volume in het besturingssysteem uitbreiden om te profiteren van de grotere schijf.

  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,size:diskSizeGB,Tier:sku.tier}' \
        --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 Facturering voor Azure Disk Storage 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, verandert de gerapporteerde schijfgrootte pas 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 vinden we 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. Noteer de verwijzing naar sda in het voorbeeld. De schijf-id wordt gewijzigd als het formaat van een ander schijfapparaat is gewijzigd.

    echo 1 | sudo tee /sys/class/block/sda/device/rescan
    
  3. Controleer of de nieuwe schijfgrootte nu wordt 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 op basis van Red Hat of het claimen van Red Hat-compatibiliteit.

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 worden de hoofdpartitie van de besturingssysteemschijf en bestandssysteem automatisch uitgebreid om gebruik te maken van alle vrije aaneengesloten ruimte op de hoofdschijf door cloud-init, mits er een klein beetje vrije ruimte is voor de bewerking voor het wijzigen van de grootte. In dit geval is de volgorde simpelweg

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