Erweitern von virtuellen Festplatten auf Linux-VMs
Gilt für: ✔️ Linux-VMs ✔️ Flexible Skalierungsgruppen
Dieser Artikel befasst sich mit der Erweiterung von Datenträgern für Betriebssystem und Daten für eine Linux-VM. Sie können Datenträger hinzufügen, um mehr Speicherplatz zur Verfügung zu stellen, und Sie können auch einen vorhandenen Datenträger für Daten erweitern. Die Standardgröße der virtuellen Festplatte für das Betriebssystem beträgt normalerweise 30 GB auf einem virtuellen Linux-Computer in Azure. Dieser Artikel befasst sich mit dem Erweitern von Betriebssystemdatenträgern oder Datenträgern. Sie können die Größe von Volumes mit Bereichsstreifen nicht erweitern.
Ein Betriebssystem-Datenträger weist eine maximale Kapazität von 4.095 GiB auf. Viele Betriebssysteme werden jedoch standardmäßig mit einem Master Boot Record (MBR) partitioniert. Der MBR beschränkt die nutzbare Größe auf 2 TiB. Wenn Sie mehr als 2 TiB benötigen, sollten Sie das Anfügen von Datenträgern für die Datenspeicherung in Betracht ziehen. Wenn Sie Daten auf dem Betriebssystemdatenträger speichern müssen und zusätzlichen Speicherplatz benötigen, konvertieren Sie ihn in GPT (GUID Partition Table, GUID-Partitionstabelle).
Warnung
Achten Sie immer darauf, dass sich Ihr Dateisystem in einem fehlerfreien Zustand befindet und dass die Partitionstabelle des Datenträgers (GPT oder MBR) die neue Größe unterstützt. Vergewissern Sie sich außerdem, dass Ihre Daten gesichert wurden, bevor Sie Vorgänge zur Erweiterung von Datenträgern ausführen. Weitere Informationen finden Sie im Schnellstart zu Azure Backup.
Identifizieren des Azure-Datenträgerobjekts im Betriebssystem
Wenn mehrere Datenträger auf der VM vorhanden sind, kann es beim Erweitern eines Datenträgers schwierig sein, die Azure-LUNs mit den Linux-Geräten zu verknüpfen. Wenn der Betriebssystemdatenträger erweitert werden muss, wird er im Azure-Portal eindeutig als Betriebssystemdatenträger bezeichnet.
Identifizieren Sie zunächst die Beziehung zwischen Datenträgerauslastung, Bereitstellungspunkt und Gerät mit dem Befehl df
.
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 ist beispielsweise zu erkennen, dass das Dateisystem /opt/db/data
fast voll ist und sich auf der Partition /dev/sdd1
befindet. Die Ausgabe von df
zeigt den Gerätepfad unabhängig davon an, ob der Datenträger über den Gerätepfad oder den UUID (bevorzugt) in „fstab“ eingebunden ist. Beachten Sie auch die Spalte „Typ“, die das Format des Dateisystems angibt. Das Format ist später wichtig.
Suchen Sie nun die entsprechende LUN für /dev/sdd
, indem Sie den Inhalt von /dev/disk/azure/scsi1
untersuchen. Die Ausgabe des folgenden Befehls ls
zeigt im Azure-Portal, dass sich das im Linux-Betriebssystem als /dev/sdd
bekannte Gerät unter LUN1 befindet.
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
Erweitern eines verwalteten Azure-Datenträgers
Erweiterung ohne Ausfallzeit
Sie können die Größe Ihrer verwalteten Datenträger erweitern, ohne die Zuordnung Ihrer VM aufzuheben. Die Hostcacheeinstellung Ihres Datenträgers ändert nichts daran, ob Sie einen Datenträger erweitern können, ohne die Zuordnung der VM aufzuheben.
Für diese Funktion gelten folgende Einschränkungen:
- Wird nur für Datenfestplatten unterstützt.
- Wenn die Größe eines HDD Standard-, SSD Standard- oder SSD Premium-Datenträgers 4 TiB oder weniger beträgt, heben Sie die Zuordnung Ihrer VM auf, und trennen Sie den Datenträger, bevor Sie ihn auf über 4 TiB erweitern. Wenn einer dieser Datenträgertypen bereits größer als 4 TiB ist, können Sie ihn erweitern, ohne die Zuordnung der VM aufzuheben und den Datenträger zu trennen. Das gilt nicht für SSD Premium v2 oder Ultra Disks.
- Nicht unterstützt für freigegebene Datenträger.
- Installieren und Verwenden Sie entweder:
- Die aktuelle Azure CLI
- Das aktuelle Azure PowerShell-Modul
- Das Azure-Portal
- Oder eine Azure Resource Manager-Vorlage mit API-Version
2021-04-01
oder höher.
- Auf einigen klassischen VMs nicht verfügbar. Verwenden Sie dieses Skript, um eine Liste der klassischen VM-SKUs abzurufen, die das Erweitern ohne Downtime unterstützen.
Erweitern mit Ultra Disk und SSD Premium v2
Die Erweiterung von Ultra Disks und SSD Premium v2-Datenträgern hat die folgenden zusätzlichen Einschränkungen:
- Sie können einen Datenträger nicht erweitern, während eine Hintergrundkopie von Daten auch auf diesem Datenträger auftritt, z. B. wenn ein Datenträger aus Momentaufnahmen aufgefüllt wird.
- Sie können einen virtuellen Computer nicht erweitern, der NVMe-Controller für Ultra Disks oder SSD Premium v2-Datenträger ohne Ausfallzeiten verwendet.
Wichtig
Es kann bis zu zehn Minuten dauern, bis die richtige Größe in Windows-VMs und Linux-VMs widergespiegelt wird. Für Linux-VMs müssen Sie eine Linux-Funktion zum erneuten Einlesen ausführen. Für Windows-VMs ohne Workload müssen Sie eine Windows-Funktion zum erneuten Einlesen ausführen. Sie können das erneute Einlesen sofort ausführen, aber wenn es innerhalb von 10 Minuten erfolgt, müssen Sie den Vorgang zum Einlesen eventuell wiederholen, damit die richtige Größe angezeigt wird.
Regionale Verfügbarkeit
Das Ändern der Größe von Ultra Disks- und Premium SSD v2-Datenträgern ist derzeit in allen unterstützten Premium SSD v2- und Ultra-Regionen mit Ausnahme der folgenden Regionen verfügbar:
- USA, Westen 2
Erweitern eines verwalteten Azure-Datenträgers
Überprüfen Sie, ob Sie die neueste Version der Azure CLI installiert haben und mit az login bei einem Azure-Konto angemeldet sind.
Für diesen Artikel ist ein vorhandener virtueller Computer in Azure mit mindestens einem angefügten und vorbereiteten Datenträger erforderlich. Wenn Sie noch nicht über einen virtuellen Computer verfügen, den Sie verwenden können, finden Sie entsprechende Informationen unter Erstellen und Vorbereiten eines virtuellen Computers mit Datenträgern.
Ersetzen Sie in den folgenden Beispielen die Beispielparameternamen wie myResourceGroup und myVM durch Ihre eigenen Werte.
Wichtig
Wenn Ihr Datenträger die in Erweiterung ohne Ausfallzeit genannten Anforderungen erfüllt, können Sie Schritt 1 und 3 überspringen.
Das Verkleinern eines vorhandenen Datenträgers wird nicht unterstützt und kann zu Datenverlusten führen.
Nachdem Sie die Datenträger erweitert haben, müssen Sie das Volume im Betriebssystem erweitern, um den größeren Datenträger nutzen zu können.
Vorgänge auf virtuellen Festplatten können nicht durchgeführt werden, wenn die VM ausgeführt wird. Heben Sie die Zuordnung der VM mit az vm deallocate auf. Im folgenden Beispiel wird die Zuordnung für die VM myVM in der Ressourcengruppe myResourceGroup aufgehoben:
az vm deallocate --resource-group myResourceGroup --name myVM
Hinweis
Die VM muss aufgehoben werden, um die virtuelle Festplatte zu erweitern. Durch Beenden der VM mit
az vm stop
werden die Computerressourcen nicht freigegeben. Verwenden Sieaz vm deallocate
, um Computerressourcen freizugeben.Sie überprüfen die Liste der verwalteten Datenträger in einer Ressourcengruppe mit az disk list. Im folgenden Beispiel wird eine Liste mit verwalteten Datenträgern in der Ressourcengruppe myResourceGroup aufgelistet:
az disk list \ --resource-group myResourceGroup \ --query '[*].{Name:name,size:diskSizeGB,Tier:sku.tier}' \ --output table
Sie erweitern den erforderlichen Datenträger mit az disk update. Im folgenden Beispiel wird der verwaltete Datenträger myDataDisk auf 200 GB erweitert:
az disk update \ --resource-group myResourceGroup \ --name myDataDisk \ --size-gb 200
Hinweis
Wenn Sie einen verwalteten Datenträger erweitern, wird die aktualisierte Größe auf die nächste Größe für verwaltete Datenträger aufgerundet. Eine Tabelle mit den verfügbaren Größen und Ebenen für verwaltete Datenträger finden Sie unter Grundlegendes zur Azure Disk Storage-Abrechnung.
Starten Sie den virtuellen Computer mit az vm start. Im folgenden Beispiel wird die VM myVM in der Ressourcengruppe myResourceGroup gestartet:
az vm start --resource-group myResourceGroup --name myVM
Erweitern einer Datenträgerpartition und des Dateisystems
Hinweis
Es gibt viele geeignete Tools für die Änderung der Partitionsgröße. Die im restlichen Dokument beschriebenen Tools sind die gleichen Tools, die von bestimmten automatisierten Prozessen wie cloud-init verwendet werden. Wie hier beschrieben, bietet das growpart
-Tool mit dem gdisk
-Paket universelle Kompatibilität mit GPT-Datenträgern (GUID Partition Table), da ältere Versionen einiger Tools wie fdisk
GPT nicht unterstützt haben.
Erkennen einer geänderten Datenträgergröße
Wenn ein Datenträger mit der zuvor genannten Prozedur ohne Downtime erweitert wurde, wird die gemeldete Datenträgergröße erst geändert, wenn das Gerät erneut überprüft wird. Dies geschieht normalerweise nur während des Startvorgangs. Diese erneute Überprüfung kann bei Bedarf mit dem folgenden Verfahren aufgerufen werden. In diesem Beispiel haben wir mithilfe der Methoden in diesem Dokument festgestellt, dass der Datenträger aktuell /dev/sda
ist und seine Größe von 256 GiB in 512 GiB geändert wurde.
Ermitteln Sie die aktuell erkannte Größe in der ersten Ausgabezeile von
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
Fügen Sie das Zeichen
1
in die Datei für die erneute Überprüfung für dieses Gerät ein. Beachten Sie den Verweis auf sda im Beispiel. Der Datenträgerbezeichner ändert sich, wenn die Größe eines anderen Datenträgergeräts geändert wird.echo 1 | sudo tee /sys/class/block/sda/device/rescan
Überprüfen Sie, ob die neue Datenträgergröße jetzt erkannt wird.
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
Der Rest dieses Artikels verwendet den Betriebssystemdatenträger für die Beispiele des Verfahrens zum Erhöhen der Größe eines Volumes auf Betriebssystemebene. Wenn es sich bei dem erweiterten Datenträger um einen Datenträger für Daten handelt, verwenden Sie die vorherige Anleitung zur Identifizierung des Datenträgergeräts, und befolgen Sie diese Anweisungen als Richtlinie, indem Sie das Datenträgergerät (z. B. /dev/sda
), Partitionsnummern, Volumenamen, Bereitstellungspunkte und Dateisystemformate nach Bedarf ersetzen.
Alle Anleitungen zu Linux-Betriebssystemen sollten als allgemein betrachtet werden und können für jede Distribution gelten, entsprechen aber im Allgemeinen den Konventionen des genannten Marketplace-Herausgebers. In den Red Hat-Dokumenten finden Sie die Paketanforderungen für alle Distributionen auf Red Hat-Basis oder mit Red Hat-Kompatibilität.
Heraufsetzen der Größe des Betriebssystem-Datenträgers
Die folgenden Anweisungen betreffen unterstützte Linux-Distributionen.
Hinweis
Bevor Sie fortfahren, erstellen Sie eine vollständige Sicherungskopie Ihrer VM oder zumindest eine Momentaufnahme Ihres Betriebssystemdatenträgers.
Unter Ubuntu 16.x und neueren Versionen werden die Stammpartition des Betriebssystemdatenträgers und Dateisysteme durch cloud-init automatisch erweitert, sodass der gesamte freie zusammenhängende Speicherplatz auf dem Stammdatenträger genutzt wird, vorausgesetzt, es ist ein geringer freier Speicherplatz für die Größenänderung vorhanden. In diesem Fall ist die Sequenz einfach.
- Erhöhen Sie die Größe des Betriebssystemdatenträgers, wie zuvor beschrieben.
- Starten Sie die VM neu, und greifen Sie dann mithilfe des Root-Benutzerkontos auf sie zu.
- Vergewissern Sie sich, dass der Betriebssystem-Datenträger jetzt ein größeres Dateisystem anzeigt.
Wie im folgenden Beispiel gezeigt, wurde der Betriebssystem-Datenträger im Portal auf 100 GB vergrößert. Das auf / eingebundene Dateisystem /dev/sda1 zeigt jetzt 97 GB an.
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:~#
Unterstützung für die Erweiterung der klassischen VM-SKU ohne Downtime
Wenn Sie eine klassische VM-SKU verwenden, wird das Erweitern von Datenträgern ohne Downtime möglicherweise nicht unterstützt.
Verwenden Sie das folgende PowerShell-Skript, um zu bestimmen, welche VM-SKUs verfügbar sind:
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
}
}
}