Hinzufügen eines Datenträgers zu einem virtuellen Linux-Computer
Gilt für: ✔️ Linux-VMs ✔️ Flexible Skalierungsgruppen
In diesem Artikel wird gezeigt, wie Sie einen persistenten Datenträger an Ihren virtuellen Computer anfügen, um Ihre Daten beizubehalten, auch wenn der virtuelle Computer aufgrund einer Wartung oder Größenänderung neu bereitgestellt wird.
Anfügen eines neuen Datenträgers an einen virtuellen Computer
Wenn Sie einen neuen, leeren Datenträger für Ihren virtuellen Computer hinzufügen möchten, verwenden Sie den Befehl az vm disk attach mit dem --new
-Parameter. Wenn Ihr virtueller Computer in einer Verfügbarkeitszone ist, wird der Datenträger automatisch in derselben Zone wie der virtuelle Computer erstellt. Weitere Informationen finden Sie in der Overview of Availability Zones (Übersicht über Verfügbarkeitszonen). Das folgende Beispiel erstellt einen Datenträger mit dem Namen myDataDisk mit einer Größe von 50GB:
az vm disk attach \
-g myResourceGroup \
--vm-name myVM \
--name myDataDisk \
--new \
--size-gb 50
Geringere Latenz
In ausgewählten Regionen wurde die Wartezeit beim Anfügen von Datenträgern reduziert, sodass Sie eine Verbesserung von bis zu 15 % feststellen können. Dies ist nützlich, wenn Sie geplante/ungeplante Failover zwischen virtuellen Computern ausführen, Ihre Workload skalieren oder eine zustandsbehaftete Workload mit umfassender Skalierung wie Azure Kubernetes Service ausführen. Diese Verbesserung ist jedoch auf den expliziten Befehl zum Anfügen von Datenträgern beschränkt: az vm disk attach
. Sie stellen keine Leistungsverbesserung fest, wenn Sie einen Befehl aufrufen, der möglicherweise implizit einen Anfügevorgang ausführt, z. B. az vm update
. Sie müssen keine anderen Aktionen ausführen, als den expliziten Anfügebefehl aufzurufen, um von dieser Verbesserung zu profitieren.
Geringere Wartezeit ist derzeit in jeder öffentlichen Region verfügbar, außer in den folgenden:
- Kanada, Mitte
- USA (Mitte)
- East US
- USA (Ost) 2
- USA Süd Mitte
- USA, Westen 2
- Deutschland, Norden
- Jio Indien, Westen
- Nordeuropa
- Europa, Westen
Anfügen eines vorhandenen Datenträgers
Um einen vorhandenen Datenträger anzufügen, suchen Sie die Datenträger-ID, und übergeben Sie die ID an den Befehl az vm disk attach. Das folgende Beispiel fragt einen Datenträger mit dem Namen MyDataDisk in MyResourceGroup ab, und fügt ihn dann dem virtuellen Computer mit dem Namen myVM hinzu:
diskId=$(az disk show -g myResourceGroup -n myDataDisk --query 'id' -o tsv)
az vm disk attach -g myResourceGroup --vm-name myVM --name $diskId
Formatieren und Einbinden des Datenträgers
Sie benötigen SSH für Ihren virtuellen Computer, um den neuen Datenträger zu partitionieren, zu formatieren und bereitzustellen, damit er von Ihrem virtuellen Linux-Computer verwendet werden kann. Weitere Informationen finden Sie unter Verwenden von SSH mit Linux auf Azure. Im folgenden Beispiel wird eine Verbindung mit einem virtuellen Computer mit der öffentlichen IP-Adresse 10.123.123.25 und dem Benutzernamen azureuser hergestellt:
ssh azureuser@10.123.123.25
Suchen des Datenträgers
Nachdem Sie eine Verbindung mit Ihrer VM hergestellt haben, müssen Sie den Datenträger suchen. In diesem Beispiel wird lsblk
zum Auflisten der Datenträger verwendet.
lsblk -o NAME,HCTL,SIZE,MOUNTPOINT | grep -i "sd"
Die Ausgabe sieht in etwa wie das folgende Beispiel aus:
sda 0:0:0:0 30G
├─sda1 29.9G /
├─sda14 4M
└─sda15 106M /boot/efi
sdb 1:0:1:0 14G
└─sdb1 14G /mnt
sdc 3:0:0:0 50G
Hier ist sdc
der gewünschte Datenträger, da seine Größe 50G beträgt. Wenn Sie mehrere Datenträger hinzufügen und nicht nur basierend auf der Größe feststellen können, um welchen Datenträger es sich handelt, können Sie im Portal zur VM-Seite navigieren, dort auf Datenträger klicken und unter Datenträger die LUN für den Datenträgerüberprüfen. Vergleichen Sie die LUN aus dem Portal mit der letzten Nummer des HTCL-Teils der Ausgabe, bei dem es sich um die LUN handelt. Eine weitere Möglichkeit besteht darin, den Inhalt des Verzeichnisses /dev/disk/azure/scsi1
aufzulisten:
ls -l /dev/disk/azure/scsi1
Die Ausgabe sollte ungefähr wie das folgende Beispiel aussehen:
lrwxrwxrwx 1 root root 12 Mar 28 19:41 lun0 -> ../../../sdc
Formatieren des Datenträgers
Formatieren Sie den Datenträger mit parted
. Wenn der Datenträger eine Größe von 2 TiB (Tebibyte) oder mehr aufweist, müssen Sie die GPT-Partitionierung verwenden. Bei einer Größe von weniger als 2 TiB können Sie entweder die MBR- oder die GPT-Partitionierung verwenden.
Hinweis
Es wird empfohlen, die neueste Version von parted
zu verwenden, die für Ihre Distribution verfügbar ist.
Wenn der Datenträger 2 TiB (Tebibytes) oder größer ist, müssen Sie die GPT-Partitionierung verwenden. Wenn der Datenträger kleiner als 2 TiB ist, können Sie entweder die MBR- oder die GPT-Partitionierung verwenden.
Im folgenden Beispiel wird parted
für /dev/sdc
verwendet. Dort befindet sich auf den meisten virtuellen Computern normalerweise der erste Datenträger. Ersetzen Sie sdc
durch die richtige Option für Ihren Datenträger. Außerdem wird für die Formatierung das XFS-Dateisystem verwendet.
sudo parted /dev/sdc --script mklabel gpt mkpart xfspart xfs 0% 100%
sudo partprobe /dev/sdc
sudo mkfs.xfs /dev/sdc1
Verwenden Sie das Hilfsprogramm partprobe
, um sicherzustellen, dass der Kernel die neue Partition und das neue Dateisystem erkennt. Wenn partprobe
nicht verwendet wird, können die Befehle „blkid“ oder „lslbk“ die UUID für das neue Dateisystem nicht sofort zurückgeben.
Einbinden des Datenträgers
Erstellen Sie jetzt mit mkdir
ein Verzeichnis zum Bereitstellen des neuen Dateisystems. Im folgenden Beispiel wird ein Verzeichnis unter /datadrive
erstellt:
sudo mkdir /datadrive
Verwenden Sie mount
, um anschließend das Dateisystem bereitzustellen. Im folgenden Beispiel wird die /dev/sdc1
-Partition am Einbindungspunkt /datadrive
eingebunden:
sudo mount /dev/sdc1 /datadrive
Beibehalten der Bereitstellung
Um sicherzustellen, dass das Laufwerk nach einem Neustart automatisch wieder eingebunden wird, muss es der Datei /etc/fstab
hinzugefügt werden. Außerdem wird dringend empfohlen, den UUID (Universally Unique Identifier, universell eindeutiger Bezeichner) in /etc/fstab
zu verwenden, um auf das Laufwerk und nicht auf den Gerätenamen zu verweisen (z. B. /dev/sdc1). Wenn das Betriebssystem während des Starts einen Datenträgerfehler erkennt, wird durch den UUID verhindert, dass an einem bestimmten Ort der falsche Datenträger bereitgestellt wird. Die verbleibenden Datenträger werden dann diesen Geräte-IDs zugewiesen. Verwenden Sie das Hilfsprogramm blkid
, um den UUID des neuen Laufwerks herauszufinden:
sudo blkid
Die Ausgabe sieht etwa folgendermaßen aus:
/dev/sda1: LABEL="cloudimg-rootfs" UUID="11111111-1b1b-1c1c-1d1d-1e1e1e1e1e1e" TYPE="ext4" PARTUUID="1a1b1c1d-11aa-1234-1a1a1a1a1a1a"
/dev/sda15: LABEL="UEFI" UUID="BCD7-96A6" TYPE="vfat" PARTUUID="1e1g1cg1h-11aa-1234-1u1u1a1a1u1u"
/dev/sdb1: UUID="22222222-2b2b-2c2c-2d2d-2e2e2e2e2e2e" TYPE="ext4" TYPE="ext4" PARTUUID="1a2b3c4d-01"
/dev/sda14: PARTUUID="2e2g2cg2h-11aa-1234-1u1u1a1a1u1u"
/dev/sdc1: UUID="33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e" TYPE="xfs" PARTLABEL="xfspart" PARTUUID="c1c2c3c4-1234-cdef-asdf3456ghjk"
Hinweis
Eine fehlerhafte Bearbeitung der Datei /etc/fstab
könnte zu einem nicht startfähigen System führen. Wenn Sie sich nicht sicher sind, helfen Ihnen die Informationen zur richtigen Bearbeitung dieser Datei in der Dokumentation weiter. Außerdem wird empfohlen, ein Backup der Datei /etc/fstab
zu erstellen, bevor Sie sie bearbeiten.
Öffnen Sie als Nächstes die Datei /etc/fstab
in einem Text-Editor. Fügen Sie am Ende der Datei eine Zeile hinzu, und verwenden Sie dabei den UUID-Wert für das /dev/sdc1
-Gerät, das in den vorherigen Schritten erstellt wurde, und den Bereitstellungspunkt von /datadrive
. Im Beispiel in diesem Artikel würde die neue Zeile wie folgt aussehen:
UUID=33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e /datadrive xfs defaults,nofail 1 2
Wenn Sie mit der Bearbeitung der Datei fertig sind, speichern Sie die Datei, und schließen Sie den Editor.
Alternativ können Sie den folgenden Befehl ausführen, um den Datenträger der Datei /etc/fstab
hinzuzufügen:
echo "UUID=33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e /datadrive xfs defaults,nofail 1 2" >> /etc/fstab
Hinweis
Wenn Sie später einen Datenträger entfernen, ohne „fstab“ zu bearbeiten, kann der Start des virtuellen Computers fehlschlagen. Die meisten Verteilungen stellen entweder die „fstab“-Optionen nofail und/oder nobootwait zur Verfügung. Mit diesen Optionen kann ein System auch dann starten, wenn der Datenträger beim Start nicht bereitgestellt wird. Weitere Informationen zu diesen Parametern finden Sie in der Dokumentation zu Ihrer Distribution.
Die nofail-Option stellt sicher, dass der virtuelle Computer gestartet wird, selbst wenn das Dateisystem beschädigt oder der Datenträger zur Startzeit nicht vorhanden ist. Ohne diese Option können Verhalten auftreten, die unter Cannot SSH to Linux VM due to FSTAB errors (Aufgrund von FSTAB-Fehler keine SSH-Verbindung mit Linux-VM möglich) beschrieben sind.
Die serielle Konsole für Azure-VMs kann für den Konsolenzugriff auf Ihren virtuellen Computer verwendet werden, wenn die Änderung von „fstab“ zu einem Systemstartfehler geführt hat. Weitere Informationen finden Sie in der Dokumentation Serielle Konsole für virtuelle Computer für Linux.
TRIM/UNMAP-Unterstützung für Linux in Azure
Einige Linux-Kernels unterstützen TRIM/UNMAP-Vorgänge, um ungenutzte Blöcke auf dem Datenträger zu verwerfen. Dieses Feature ist in erster Linie nützlich, um Azure darüber zu informieren, dass gelöschte Seiten nicht mehr gültig sind und verworfen werden können. Dieses Feature kann Geld für Datenträger sparen, die basierend auf der Menge des verbrauchten Speichers abgerechnet werden, z. B. nicht verwaltete Standarddatenträger und Datenträgermomentaufnahmen.
Es gibt zwei Methoden, TRIM-Unterstützung auf Ihrem virtuellen Linux-Computer zu aktivieren. Den empfohlenen Ansatz finden Sie wie üblich in Ihrer Distribution:
Verwenden Sie die Bereitstellungsoption
discard
in/etc/fstab
, z.B.:UUID=33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e /datadrive xfs defaults,discard 1 2
In einigen Fällen kann sich die Option
discard
möglicherweise auf die Leistung auswirken. Alternativ können Sie den Befehlfstrim
manuell über die Befehlszeile ausführen oder ihn „crontab“ hinzufügen, um eine regelmäßige Ausführung zu erzielen:
Problembehandlung
Beim Hinzufügen von Datenträgern zu einer Linux-VM können Fehler auftreten, wenn kein Datenträger in LUN 0 vorhanden ist. Wenn Sie einen Datenträger manuell mit dem Befehl az vm disk attach -new
hinzufügen und eine LUN (--lun
) angeben, statt die entsprechende LUN von Azure Platform bestimmen zu lassen, müssen Sie sicherstellen, dass in LUN 0 bereits ein Datenträger vorhanden ist/vorhanden sein wird.
Das folgende Beispiel zeigt einen Codeausschnitt der Ausgabe von lsscsi
:
[5:0:0:0] disk Msft Virtual Disk 1.0 /dev/sdc
[5:0:0:1] disk Msft Virtual Disk 1.0 /dev/sdd
Die zwei Datenträger sind in LUN 0 und LUN 1 vorhanden (die erste Spalte in der lsscsi
-Ausgabe enthält [host:channel:target:lun]
). Auf beide Datenträger sollte über den virtuellen Computer zugegriffen werden können. Wenn Sie manuell angegeben haben, dass der erste Datenträger zu LUN 1 und der zweite Datenträger zu LUN 2 hinzugefügt werden soll, werden die Datenträger in Ihrem virtuellen Computer möglicherweise nicht richtig angezeigt.
Hinweis
Der host
-Wert von Azure ist in diesen Beispielen 5, aber dies kann je nach Art des gewählten Speichers variieren.
Dieses Datenträgerverhalten ist kein Azure-Problem, sondern auf diese entspricht der Linux-Kernel den SCSI-Spezifikationen. Wenn der Linux-Kernel den SCSI-Bus auf angeschlossene Geräte überprüft, muss ein Gerät in LUN 0 gefunden werden, damit das System die Überprüfung auf weitere Geräte fortsetzt. Daher:
- Überprüfen Sie die Ausgabe von
lsscsi
nach dem Hinzufügen eines Datenträgers, um sicherzustellen, dass in LUN 0 ein Datenträger vorhanden ist. - Wenn der Datenträger nicht richtig in Ihrem virtuellen Computer angezeigt wird, überprüfen Sie, ob ein Datenträger in LUN 0 vorhanden ist.
Nächste Schritte
- Lesen Sie die Empfehlungen unter Optimieren virtueller Linux-Computer in Azure , um sicherzustellen, dass Ihr virtueller Linux-Computer richtig konfiguriert ist.
- Erweitern Sie die Speicherkapazität durch Hinzufügen zusätzlicher Datenträger, und konfigurieren Sie RAID für zusätzliche Leistung.