Freigeben über


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:
  • 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.

  1. 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 Sie az vm deallocate, um Computerressourcen freizugeben.

  2. 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.

  3. 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.

  1. 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
    
  2. 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
    
  3. Ü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.

  1. Erhöhen Sie die Größe des Betriebssystemdatenträgers, wie zuvor beschrieben.
  2. Starten Sie die VM neu, und greifen Sie dann mithilfe des Root-Benutzerkontos auf sie zu.
  3. 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
       }
   }
}