GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Logical Volume Manager (LVM) im Vergleich zur Standardpartitionierung unter Linux

Die Speicherkapazität von Servern wird seit Jahrzehnten über Laufwerksgrößen und Partitionskonfigurationen verwaltet. Offensichtlich funktionieren diese Strategien gut und sind zuverlässig. Es gibt jedoch viele Vorteile, die Speicherverwaltung auf lokalen Servern zu überdenken. Dieser Artikel vergleicht die Standardspeicherverwaltung und -partitionierung mit dem Logical Volume Manager (LVM). Es demonstriert auch einige grundlegende Befehle für jeden Ansatz.

Traditionelle Speicherverwaltung

Ich verwende den Begriff herkömmliche Speicherverwaltung um den Vorgang des Partitionierens, Formatierens und Bereitstellens von Speicherkapazität von einem einfachen Festplattenlaufwerk zu beschreiben. Ich stelle dieser Standardpartitionierung eine alternative Methode namens Logical Volume Manager oder LVM gegenüber.

Der Speicherplatz wird normalerweise basierend auf der maximalen Kapazität einzelner Festplattenlaufwerke verwaltet. Das Ergebnis ist, dass ein Systemadministrator, wenn er über Speicher nachdenkt, dies basierend auf jedem Laufwerk tut. Wenn ein Server beispielsweise drei Festplatten mit jeweils 1 TB hat, betrachtet der Systemadministrator den Speicher wörtlich, Ich habe drei 1-TB-Laufwerke, mit denen ich arbeiten kann .

Sehen wir uns kurz die herkömmliche Speicherverwaltung an. Hier ist ein Beispielszenario:

1. Installieren Sie ein neues Festplattenlaufwerk

Kaufen Sie ein Festplattenlaufwerk mit einem Terabyte (1 TB) und installieren Sie es dann physisch im Server.

2. Partitionieren Sie das Laufwerk

Verwenden Sie fdisk oder gparted um eine oder mehrere Partitionen zu erstellen. Es ist wichtig zu beachten, dass die Partitionen nicht mehr als die gesamte Festplattenkapazität von 1 TB verbrauchen können.

Beispiel fdisk Befehl:

# fdisk /dev/sdb

Ich werde die Syntax für fdisk nicht behandeln in diesem Artikel, aber nehme an, ich habe eine einzelne Partition erstellt, die die gesamte 1-TB-Festplatte verbraucht. Die Partition ist /dev/sdb1 .

Zeigen Sie die Kapazität mithilfe von /proc/partitions an und lsblk Inhalt:

# cat /proc/partitions
# lsblk

3. Erstellen Sie ein Dateisystem

Erstellen Sie ein Dateisystem auf der neuen Partition, indem Sie mkfs verwenden Befehl. Sie könnten ext4 verwenden oder das standardmäßige XFS von RHEL Dateisystem.

# mkfs.ext4 /dev/sdb1

Während XFS die Standardeinstellung von Red Hat ist, ist es möglicherweise nicht so flexibel, wenn es mit LVM kombiniert wird wie ext4 . XFS Dateisysteme können leicht erweitert, aber nicht reduziert werden. Ich werde diese Idee gegen Ende des Artikels weiter ausführen.

4. Erstellen Sie einen Einhängepunkt

Der Rest dieses Prozesses ist relativ normal. Erstellen Sie zunächst ein Verzeichnis, das als Einhängepunkt dient. Hängen Sie die Partition als Nächstes manuell am Einhängepunkt ein.

# mkdir /newstorage
# mount /dev/sdb1 /newstorage

5. Bestätigen Sie die Speicherkapazität

Verwenden Sie den du Befehl, um zu bestätigen, dass der Speicherplatz zugänglich ist und die erwartete Größe hat.

# du -h /newstorage

Hinweis :Das -h Option zeigt die Ausgabe von du an in Kapazitätsbegriffen, die für Menschen leicht verständlich sind, wie GB oder TB.

6. Konfigurieren Sie den Speicherplatz, der beim Booten gemountet werden soll

Bearbeiten Sie /etc/fstab Datei zum Mounten des Dateisystems beim Booten. Wenn Sie eine Erinnerung an /etc/fstab benötigen , lesen Sie Tyler Carrigans Artikel Eine Einführung in die Linux /etc/fstab-Datei hier auf Enable Sysadmin.

Logical Volume Manager (LVM)

Herkömmliche Speicherkapazität basiert auf der individuellen Festplattenkapazität. LVM verwendet ein anderes Konzept. Der Speicherplatz wird verwaltet, indem die Kapazität der verfügbaren Laufwerke kombiniert oder gepoolt wird. Bei herkömmlichem Speicher werden drei 1-TB-Festplatten einzeln behandelt. Bei LVM werden dieselben drei Festplatten als aggregierte Speicherkapazität von 3 TB betrachtet. Dies wird erreicht, indem die Speicherfestplatten als Physische Volumes gekennzeichnet werden (PV) oder von LVM nutzbare Speicherkapazität. Die PVs werden dann zu einer oder mehreren Volume Groups hinzugefügt (VGs). Die VGs werden in ein oder mehrere logische Volumes gecarvt (LVs), die dann wie herkömmliche Partitionen behandelt werden.

Quelle :Überblick über die Red Hat LVM-Architektur

1. Installieren Sie ein neues Festplattenlaufwerk

Offensichtlich muss ein Speichermedium verfügbar sein. Wie wir oben gesehen haben, müssen Sie ein Laufwerk physisch im Server installieren.

2. Physische Volumes zuweisen

Physical Volumes (PV) sind Festplatten oder Partitionen, die LVM als potenzielle Speicherkapazität zur Verfügung stehen. Sie haben Kennungen und Metadaten, die jedes PV beschreiben. Interessanterweise müssen PVs im Gegensatz zu RAID nicht die gleiche Größe haben oder auf Festplatten mit der gleichen Geschwindigkeit liegen. Sie können Laufwerkstypen mischen und anpassen, um PVs zu erstellen. Legen Sie zum Implementieren von LVM zunächst ein Laufwerk als physisches Volume fest.

Befehl zum Erstellen eines PV:

# pvcreate /dev/sdb1
# pvcreate /dev/sdc

Diese beiden Befehlsbeispiele unterscheiden sich geringfügig. Der erste Befehl bezeichnet die Partition 1 auf Speicherplatte b als PV. Der zweite Befehl legt die Gesamtkapazität der Speicherfestplatte c fest als PV.

PV-Leistung und Zusatzinformationen anzeigen:

# pvdisplay

Dieser Befehl zeigt alle auf dem Server konfigurierten physischen Volumes an.

3. Volumengruppen verwalten

Sobald eine oder mehrere Festplatten für LVM als physische Volumes verfügbar sind, wird die Speicherkapazität in Volume Groups (VGs) zusammengefasst. Es kann mehr als eine VG auf einem Server geben und Festplatten können Mitglieder von mehr als einer VG sein (aber PVs selbst können nur Mitglieder einer VG sein).

Verwenden Sie den vgcreate Befehl zum Erstellen einer neuen Volume-Gruppe. Der VG muss mindestens ein Mitglied angehören. Die Befehlssyntax lautet:

vgcreate name-of-new-VG PV-members

Verwenden Sie den folgenden Befehl, um eine Volume-Gruppe mit dem Namen vg00 zu erstellen mit /dev/sdb1 und /dev/sdc als Mitglieder:

# vgcreate vg00 /dev/sdb1 /dev/sdc

Zeigt Informationen für eine VG mit dem Namen vg00 an :

# vgdisplay vg00

4. Logische Volumes verwalten

Das VG kann in ein oder mehrere Logical Volumes (LVs) unterteilt werden. Diese Logical Volumes werden dann so verwendet, als wären sie herkömmliche Partitionen. Die VG hat eine Gesamtkapazität, und dann wird ein Teil dieser Kapazität einem logischen Volumen zugewiesen.

Die lvcreate Befehl schnitzt Speicherkapazität von einer VG. Es gibt einige Optionen, die Sie beachten sollten.

lvcreate-Optionen
Option Beschreibung
-n Name des LV - z. sales-lv
-L Größe in G oder T - z. 10G
-q Leise, unterdrückt die Befehlsausgabe
-v Ausführlicher Modus mit zusätzlichen Details

Die Syntax für lvcreate Befehl lautet wie folgt:

lvcreate -L size -n lvname vgname

Hier ist der Befehl zum Erstellen einer 10 Logisches GB-Volume mit dem Namen sales-lv geschnitzt aus dem vg00 Volumengruppe:

# lvcreate -L 10G -n sales-lv vg00

Wie Sie sich erinnern, haben wir die vg00 erstellt Datenträgergruppe aus zwei physischen Datenträgern, /dev/sdb1 und /dev/sdc . Zusammenfassend haben wir also die Kapazität von /dev/sdb1 kombiniert und /dev/sdc in vg00 , dann ein logisches Volume mit dem Namen sales-lv gecarvt aus diesem aggregierten Speicherplatz.

Sie können das lvdisplay verwenden Befehl, um die Konfiguration des logischen Volumes anzuzeigen.

# lvdisplay /dev/vg00/sales-lv

5. Wenden Sie ein Dateisystem an und setzen Sie einen Einhängepunkt

Sobald das LV erstellt ist, wird es wie jede andere Partition verwaltet. Es benötigt ein Dateisystem und einen Einhängepunkt, genau wie wir es oben im Abschnitt zur Standardpartitionsverwaltung konfiguriert haben.

  1. Führen Sie mkfs.ex4 aus Befehl auf dem LV.
  2. Erstellen Sie einen Einhängepunkt mit mkdir.
  3. Laden Sie das Volume manuell mit dem mount Befehl oder bearbeiten Sie /etc/fstab Datei, um das Volume automatisch zu mounten, wenn das System hochfährt.
  4. Verwenden Sie den df -h Befehl, um zu überprüfen, ob die Speicherkapazität verfügbar ist.

[Das könnte Ihnen auch gefallen: Einführung in den Logical Volume Manager]

Skalierungskapazität

In diesem Stadium haben wir die Konfiguration von LVM gesehen, aber wir konnten die vielen Vorteile noch nicht wirklich erkennen. Einer der Vorteile von LVM-Konfigurationen ist die Möglichkeit, die Speicherkapazität einfach und schnell zu skalieren. Normalerweise müssen Systemadministratoren natürlich skalieren (Kapazität erhöhen). Beachten Sie, dass Sie mit LVM auch die Speicherkapazität herunterskalieren können. Das heißt, wenn die Speicherkapazität überlastet ist (Sie haben viel mehr Speicher als nötig konfiguriert), können Sie sie verkleinern. Ich werde beide Szenarien in diesem Abschnitt behandeln.

Beginnen wir mit der Erhöhung der Kapazität.

Kapazität erhöhen

Sie können dem Logical Volume Speicherkapazität hinzufügen. Dies ist nützlich, wenn die Benutzer mehr Speicherplatz verbrauchen, als Sie erwartet haben. Der Prozess ist ziemlich logisch:

  1. Fügen Sie eine Festplatte hinzu und konfigurieren Sie sie als PV.
  2. Einer VG hinzufügen.
  3. Fügen Sie die Kapazität zum LV hinzu und erweitern Sie dann das Dateisystem.

1. Installieren Sie eine Speicherfestplatte und konfigurieren Sie sie dann als PV

Um die Kapazität zu erhöhen, installieren Sie eine neue Festplatte und konfigurieren Sie sie wie oben beschrieben als PV. Wenn bereits ein Datenträger mit freiem Speicherplatz verfügbar ist, können Sie diesen natürlich auch verwenden.

Hier ist eine Erinnerung an den Befehl zum Erstellen eines PV:

# pvcreate /dev/sdb2

In diesem Fall bestimme ich Partition 2 auf der Festplatte /dev/sdb als neues PV.

2. Platz zur VG hinzufügen

Sobald die neue Kapazität für LVM bestimmt ist, können Sie sie der VG hinzufügen und so die Größe des Pools erhöhen.

Führen Sie diesen Befehl aus, um einer vorhandenen VG ein neues PV hinzuzufügen:

# vgextend vg00 /dev/sdb2

Jetzt ist der Speicherpool größer. Der nächste Schritt besteht darin, die erhöhte Kapazität dem spezifischen Logical Volume hinzuzufügen. Sie können einen beliebigen oder den gesamten PV-Speicherplatz, den Sie gerade dem Pool hinzugefügt haben, dem vorhandenen LV zuweisen.

3. Platz zum LV hinzufügen

Fügen Sie als Nächstes einen Teil oder den gesamten neuen VG-Speicherplatz dem LV hinzu, das erweitert werden muss.

Führen Sie lvextend aus Befehl zum Erweitern des LV auf eine bestimmte Größe:

# lvextend -L3T /dev/vg00/sales-lv

Führen Sie lvextend aus Befehl zum Hinzufügen von 1 GB Speicherplatz zur vorhandenen Größe:

# lvextend -L+1G /dev/vg00/sales-lv

4. Erweitern Sie das Dateisystem, um die Speicherkapazität verfügbar zu machen

Erweitern Sie schließlich das Dateisystem. Sowohl ext4 und XFS unterstützen diese Fähigkeit, also ist jedes Dateisystem in Ordnung.

Unmounten Sie das Dateisystem mit umount Befehl:

# umount /newstorage

Hier ist der grundlegende Befehl für ext4 :

# resize2fs /dev/vg00/sales-lv 3T

Kapazität reduzieren

Das Reduzieren des Speicherplatzes ist eine weniger häufige Aufgabe, aber es ist erwähnenswert. Der Vorgang erfolgt in umgekehrter Reihenfolge wie beim Erweitern des Speichers.

Hinweis :XFS Dateisysteme werden nicht wirklich geschrumpft. Sichern Sie stattdessen den Inhalt und stellen Sie ihn dann auf einem neu angepassten LV wieder her. Sie können den xfsdump verwenden Dienstprogramm, um dies zu erreichen. Die ext4 Dateisystem reduziert werden. Das ist das Dateisystem, auf das ich mich in diesem Abschnitt konzentriere. Wie wir oben bei der Erweiterung des Dateisystems gesehen haben, muss das Volume ausgehängt werden. Der genaue Befehl hängt von Ihrem LV-Namen ab.

# umount /dev/vg00/sales-lv

1. Dateisystem verkleinern

Als nächstes verwenden Sie resize2fs Befehl zum Verringern der Dateisystemgröße. Es wird empfohlen, fsck auszuführen auf ext4 Dateisysteme, bevor Sie sie verkleinern. Es wird außerdem empfohlen, die Daten auf dem LV zu sichern, falls etwas Unerwartetes passiert.

Hier ist ein Beispiel für das Verkleinern eines ext4 Dateisystem:

# resize2fs /dev/vg00/sales-lv 3T

Hinweis :Sie können ein Dateisystem nicht auf eine Größe verkleinern, die kleiner ist als die darauf gespeicherte Datenmenge.

2. LV reduzieren

Verwenden Sie den lvreduce Befehl zum Verkleinern des dem LV zugewiesenen Speicherplatzes. Dies gibt die potenzielle Speicherkapazität an die VG zurück.

# lvreduce -L 2T vg00/sales-lv

Es ist wichtig zu erkennen, dass der obige Befehl das sales-lv setzt bei 2T . Das tut es nicht Entfernen Sie zwei Terabyte aus dem vorhandenen LV. Es konfiguriert den LV auf zwei Terabyte. Es ist möglich, lvreduce mitzuteilen um eine Menge Speicherplatz von der vorhandenen Kapazität abzuziehen, indem Sie einen sehr ähnlichen Befehl verwenden:

# lvreduce -L -2T vg00/sales-lv

In diesem Fall habe ich einen - hinzugefügt (Bindestrich) vor dem 2T Größe, die angibt, dass ich diese Menge an Speicherplatz vom vorhandenen sales-lv abziehen möchte Kapazität. Der Unterschied zwischen den beiden Befehlen ist klein, aber wichtig.

Sie haben nun die zurückgegebene Kapazität an die VG zur Nutzung in einer anderen LV. Sie können die zuvor besprochenen Erweiterungsbefehle verwenden, um diese Kapazität neu zuzuweisen. Die VG kann auch verkleinert werden.

Flexibilität

Kapazität kann mit LVM auch einfach neu zugewiesen werden. Sie können die Kapazität in einer VG reduzieren und zu einer anderen hinzufügen. Dies wird erreicht, indem das Dateisystem verkleinert und dann die LV aus der VG entfernt wird. Angenommen, Sie haben einen Server mit 10 TB Kapazität. Mit den obigen Prozessen haben Sie zwei LVs mit jeweils 5 TB erstellt. Nach ein paar Wochen stellen Sie fest, dass Sie stattdessen LVs von 7 TB und 3 TB hätten erstellen sollen. Sie können 2 TB Kapazität aus einer der Volumengruppen entfernen und diese Kapazität dann der anderen VG hinzufügen. Dies ist weitaus flexibler als die herkömmliche Partitionierung.

LVM unterstützt auch RAID-Konfigurationen, Spiegelung und andere erweiterte Einstellungen, die es zu einer noch attraktiveren Lösung machen. Tyler Carrigans Artikel „Creating Logical Volumes in Linux with LVM“ enthält einige gute Informationen zum Striping und Mirroring von logischen Volumes.

[ Möchten Sie Ihre Fähigkeiten als Systemadministrator testen? Machen Sie noch heute einen Kompetenztest. ] 

Abschluss

Logical Volume Manager ist eine großartige Möglichkeit, Ihre Speicheranforderungen flexibler zu gestalten, und es ist wirklich nicht viel komplizierter als die herkömmliche Laufwerksverwaltung. Auf der Website von Red Hat gibt es eine großartige Dokumentation, und die offiziellen Schulungskurse decken sie auch sehr effektiv ab.

Eines der Dinge, die ich an LVM schätze, ist die logische Befehlsstruktur. Die meisten Verwaltungsbefehle sind verwandt und daher relativ leicht zu merken. Der Punkt der folgenden Tabelle ist nicht um die Befehle zusammenzufassen, sondern damit Sie bemerken, dass die Befehle alle sehr ähnlich und daher benutzerfreundlich sind:

Ähnliche Befehle werden verwendet, um LVM-Komponenten zu verwalten
Befehl Beschreibung
pvcreate Physischen Datenträger erstellen
pvdisplay Informationen zu physischen Volumes anzeigen
pvs Informationen zu physischen Volumes anzeigen
pvremove Physischen Datenträger entfernen
vgcreate Volumengruppe erstellen
vganzeige Datenträgergruppeninformationen anzeigen
vgs Datenträgergruppeninformationen anzeigen
vgremove Volumengruppe entfernen
vgextend/vgreduce Volumengruppe erweitern oder reduzieren
lvcreate Logisches Volume erstellen
lvdisplay Informationen zum logischen Volume anzeigen
lvs Informationen zum logischen Volume anzeigen
lventfernen Logisches Volume entfernen
lvextend/lvextend Erweitern oder reduzieren Sie das logische Volumen

Wenn Sie das nächste Mal einen lokalen Dateiserver einrichten, sollten Sie die Verwendung von LVM anstelle herkömmlicher Speicherverwaltungstechniken in Betracht ziehen. Sie können sich Monate oder Jahre später bedanken, wenn Sie die Speicherkapazität des Servers anpassen müssen.


Linux
  1. So erstellen Sie ein Dateisystem auf einer Linux-Partition oder einem logischen Volume

  2. So erstellen Sie ein physisches Volume unter Linux mit LVM

  3. Logische Volumes unter Linux mit LVM erstellen

  4. So reduzieren Sie ein LVM-Volume unter Ubuntu

  5. Intel Matrix Storage Manager vs. Linux-Software-RAID

So verwalten Sie Speicher unter Linux mit LVM

So erstellen Sie eine Volumengruppe in Linux mit LVM

So ändern Sie die Größe eines logischen Volumes mit 5 einfachen LVM-Befehlen

Sicherung und Wiederherstellung von LVM-Snapshots unter Linux

Verwaltung logischer Volumes unter Linux erklärt

Was sind die Vorteile des Logical Volume Managers