Freigeben über


Konfigurieren von LVM auf einer Linux-VM in Azure

In diesem Dokument wird erläutert, wie Sie logischen Volume-Manager (LVM) auf Ihrem virtuellen Azure-Computer konfigurieren. LVM kann auf dem Betriebssystemdatenträger oder auf Datenträgern in Azure-VMs verwendet werden. Standardmäßig sind die meisten Cloudimages jedoch nicht auf dem Betriebssystemdatenträger konfiguriert. Die folgenden Schritte konzentrieren sich auf die Konfiguration von LVM für Ihre Datenträger.

Lineare und gestreifte logische Volumen

LVM kann verwendet werden, um eine Reihe von physischen Datenträgern in einem einzigen Speichervolume zu kombinieren. Standardmäßig erstellt LVM in der Regel lineare logische Volumes, was bedeutet, dass der physische Speicher miteinander verkettet wird. In diesem Fall werden Lese-/Schreibvorgänge in der Regel nur an einen einzelnen Datenträger gesendet. Im Gegensatz dazu können wir auch gestreifte logische Volumes erstellen, bei denen Lese- und Schreibvorgänge auf mehrere Datenträger verteilt werden, die in der Volumegruppe enthalten sind (ähnlich wie RAID0). Aus Leistungsgründen ist es wahrscheinlich, dass Sie Ihre logischen Volumes entfernen möchten, damit Lese- und Schreibvorgänge alle angefügten Datenträger verwenden.

In diesem Dokument wird beschrieben, wie Sie mehrere Datenträger in einer einzelnen Volumegruppe kombinieren und dann ein gestreiftes logisches Volume erstellen. Die folgenden Schritte sind generalisiert, um mit den meisten Verteilungen zu arbeiten. In den meisten Fällen unterscheiden sich die Dienstprogramme und Workflows für die Verwaltung von LVM in Azure grundsätzlich nicht von anderen Umgebungen. Wenden Sie sich wie gewohnt auch an Ihren Linux-Anbieter, um Dokumentation und bewährte Methoden für die Verwendung von LVM mit Ihrer speziellen Verteilung zu erhalten.

Anfügen von Datenträgern

Man möchte in der Regel mit zwei oder mehr leeren Datenträgern beginnen, wenn LVM verwendet wird. Basierend auf Ihren E/A-Anforderungen können Sie Datenträger anfügen, die in unserem Standardspeicher gespeichert sind, mit bis zu 500 I/O-Operationen pro Sekunde pro Datenträger oder in unserem Premiumspeicher mit bis zu 5000 I/O-Operationen pro Sekunde pro Datenträger. In diesem Artikel wird nicht ausführlich beschrieben, wie Sie Datenträger auf einem virtuellen Linux-Computer bereitstellen und anfügen. Ausführliche Anweisungen zum Anfügen eines leeren Datenträgers an einen virtuellen Linux-Computer auf Azure finden Sie im Microsoft Azure-Artikel Anfügen eines Datenträgers.

Installieren der LVM-Dienstprogramme

  • Ubuntu

    sudo apt-get update
    sudo apt-get install lvm2
    
  • RHEL, CentOS & Oracle Linux

    sudo yum install lvm2
    
  • SLES 12 und openSUSE

    sudo zypper install lvm2
    
  • SLES 11

    sudo zypper install lvm2
    

    Auf SLES11 müssen Sie auch /etc/sysconfig/lvm bearbeiten und LVM_ACTIVATED_ON_DISCOVERED auf "aktivieren" festlegen:

    LVM_ACTIVATED_ON_DISCOVERED="enable" 
    

Konfigurieren von LVM

In diesem Leitfaden wird davon ausgegangen, dass Sie drei Datenträger angefügt haben, auf die wir als /dev/sdc, /dev/sdd und /dev/sdeverweisen. Diese Pfade stimmen möglicherweise nicht mit den Datenträgerpfadnamen in Ihrem virtuellen Computer überein. Sie können "sudo fdisk -l" oder einen ähnlichen Befehl ausführen, um die verfügbaren Datenträger auflisten zu können.

  1. Vorbereiten der physischen Speichereinheiten

    sudo pvcreate /dev/sd[cde]
    Physical volume "/dev/sdc" successfully created
    Physical volume "/dev/sdd" successfully created
    Physical volume "/dev/sde" successfully created
    
  2. Erstellen Sie eine Volume-Gruppe. In diesem Beispiel nennen wir die Volumengruppe data-vg01:

    sudo vgcreate data-vg01 /dev/sd[cde]
    Volume group "data-vg01" successfully created
    
  3. Erstellen Sie die logischen Volumes. Der folgende Befehl erstellt ein einzelnes logisches Volume namens data-lv01, um die gesamte Volumegruppe zu umfassen. Beachten Sie jedoch, dass es auch möglich ist, mehrere logische Volumes in der Volumegruppe zu erstellen.

    sudo lvcreate --extents 100%FREE --stripes 3 --name data-lv01 data-vg01
    Logical volume "data-lv01" created.
    
  4. Formatieren des logischen Volumens

    sudo mkfs -t ext4 /dev/data-vg01/data-lv01
    

    Hinweis

    Verwenden Sie bei SLES11 -t ext3 anstelle von ext4. SLES11 unterstützt nur schreibgeschützten Zugriff auf ext4-Dateisysteme.

Hinzufügen des neuen Dateisystems zu /etc/fstab

Wichtig

Eine fehlerhafte Bearbeitung der Datei /etc/fstab könnte zu einem nicht startfähigen System führen. Wenn Sie sich nicht sicher sind, sollten Sie in der Dokumentation nachsehen, wie diese Datei richtig bearbeitet wird. Außerdem wird empfohlen, ein Backup der Datei /etc/fstab zu erstellen, bevor Sie sie bearbeiten.

  1. Erstellen Sie den gewünschten Bereitstellungspunkt für Ihr neues Dateisystem, z. B.:

    sudo mkdir /data
    
  2. Lokalisieren Sie den logischen Volumepfad

    lvdisplay
    --- Logical volume ---
    LV Path                /dev/data-vg01/data-lv01
    ....
    
  3. Öffnen Sie /etc/fstab in einem Text-Editor, und fügen Sie einen Eintrag für das neue Dateisystem hinzu, z. B.:

    /dev/data-vg01/data-lv01  /data  ext4  defaults  0  2
    

    Speichern Sie /etc/fstab und schließen Sie es dann.

  4. Testen Sie, dass der /etc/fstab Eintrag korrekt ist:

    sudo mount -a
    

    Wenn dieser Befehl zu einer Fehlermeldung führt, überprüfen Sie die Syntax in der /etc/fstab Datei.

    Führen Sie als Nächstes den Befehl mount aus, um sicherzustellen, dass das Dateisystem eingehängt ist.

    mount
    ......
    /dev/mapper/data--vg01-data--lv01 on /data type ext4 (rw)
    
  5. Optionale Failsafe-Startparameter in /etc/fstab

    Viele Verteilungen enthalten entweder die Mount-Parameter nobootwait oder nofail, die der /etc/fstab-Datei hinzugefügt werden können. Diese Parameter ermöglichen Fehler beim Mounten eines bestimmten Dateisystems und ermöglichen es dem Linux-System, weiterhin zu booten, auch wenn es nicht in der Lage ist, das RAID-Dateisystem ordnungsgemäß zu mounten. Weitere Informationen zu diesen Parametern finden Sie in der Dokumentation Ihrer Verteilung.

    Beispiel (Ubuntu):

    /dev/data-vg01/data-lv01  /data  ext4  defaults,nobootwait  0  2
    

TRIM/UNMAP-Unterstützung

Einige Linux-Kernels unterstützen TRIM/UNMAP-Vorgänge, um ungenutzte Blöcke auf dem Datenträger zu verwerfen. Diese Vorgänge sind in erster Linie im Standardspeicher nützlich, um Azure darüber zu informieren, dass gelöschte Seiten nicht mehr gültig sind und verworfen werden können. Das Verwerfen von Seiten kann Kosten sparen, wenn Sie große Dateien erstellen und diese dann löschen.

Es gibt zwei Methoden, TRIM-Unterstützung auf Ihrem virtuellen Linux-Computer zu aktivieren. Wie üblich, konsultieren Sie Ihre Distribution für den empfohlenen Ansatz.

  • Verwenden Sie die Option discard zum Einbinden in /etc/fstab, zum Beispiel:

    /dev/data-vg01/data-lv01  /data  ext4  defaults,discard  0  2
    
  • In einigen Fällen kann die option discard Leistungsauswirkungen haben. Alternativ können Sie den Befehl fstrim manuell über die Befehlszeile ausführen oder ihn „crontab“ hinzufügen, um eine regelmäßige Ausführung zu erzielen:

    Ubuntu

    # sudo apt-get install util-linux
    # sudo fstrim /datadrive
    

    RHEL, CentOS & Oracle Linux

    # sudo yum install util-linux
    # sudo fstrim /datadrive