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:
- De nieuwste Azure CLI
- De nieuwste Azure PowerShell-module
- Azure Portal
- Of een Azure Resource Manager-sjabloon met een API-versie die of hoger is
2021-04-01
.
- 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.
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 uaz vm deallocate
.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.
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.
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
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
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
- De grootte van de besturingssysteemschijf vergroten zoals eerder beschreven
- Start de VIRTUELE machine opnieuw op en open de VIRTUELE machine met behulp van het hoofdgebruikersaccount .
- 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
}
}
}