Administration des Logical Volume Manager
LVM-Administratorhandbuch
Ausgabe 1
Zusammenfassung
Einführung
1. Über dieses Handbuch
2. Zielgruppe
3. Software-Versionen
Software | Beschreibung |
---|---|
RHEL 6
|
bezieht sich auf RHEL 6 oder höher
|
GFS2
|
bezieht sich auf GFS2 für RHEL 6 und höher
|
4. Verwandte Dokumentation
- Installationshandbuch — Liefert Informationen bezüglich der Installation von Red Hat Enterprise Linux 6.
- Deployment-Handbuch — Liefert Informationen zum Einsatz, der Konfiguration und der Administration von Red Hat Enterprise Linux 6.
- Handbuch zur Speicheradministration — Liefert Informationen über die effiziente Verwaltung von Speichergeräten und Dateisystemen auf Red Hat Enterprise Linux 6.
- Überblick über das Hochverfügbarkeits-Add-On — Liefert einen umfassenden Überblick über das Hochverfügbarkeits-Add-On.
- Cluster-Administration — Liefert Informationen zur Installation, Konfiguration und Verwaltung des Red Hat Hochverfügbarkeits-Add-Ons.
- Global File System: Konfiguration und Administration — Liefert Informationen zur Installation, Konfiguration und Wartung des Red Hat GFS2 (Red Hat Global File System 2), das Teil des Resilient-Storage-Add-On ist.
- DM-Multipath — Liefert Informationen zur Verwendung des Device-Mapper Multipath-Features von Red Hat Enterprise Linux 6.
- Lastverteilungs-Administration — Liefert Informationen zur Konfiguration von Hochleistungssystemen und -diensten mit dem Red Hat Lastverteilungs-Add-On, einer Gruppe integrierter Software-Komponenten, die Linux Virtual Server (LVS) bereitstellen, um IP-Lasten über eine Gruppe realer Server zu verteilen.
- Release Notes — Liefert Informationen über die jeweils aktuelle Release der Red Hat Produkte.
5. Wir freuen uns auf Ihr Feedback!
Logical_Volume_Manager_Administration(EN)-6 (2011-05-19-15:20)
.
Kapitel 1. Der LVM Logical Volume Manager
1.1. Neue und veränderte Features
1.1.1. Neue und veränderte Features für Red Hat Enterprise Linux 6.0
- Mithilfe der
mirror_image_fault_policy
undmirror_log_fault_policy
-Parameter imactivation
-Abschnitt derlvm.conf
-Datei können Sie definieren, wie ein gespiegelter logischer Datenträger sich bei einem Ausfall des Gerätes verhalten soll. Ist dieser Parameter aufremove
gesetzt, versucht das System, das fehlerhafte Gerät zu entfernen und ohne es weiterzuarbeiten. Ist dieser Parameter aufallocate
gesetzt, versucht das System, das fehlerhafte Gerät zu entfernen und Speicherplatz auf einem neuen Gerät als Ersatz für das ausgefallene Gerät zuzuweisen; diese Richtlinie verhält sich wie dieremove
-Richtlinie, falls kein passendes Gerät als Ersatz zugewiesen werden kann. Weitere Informationen über die Richtlinien beim Ausfall von LVM-Mirrors finden Sie in Abschnitt 4.4.3.1, »Ausfallrichtlinie für gespiegelte logische Datenträger«. - In der Red Hat Enterprise Linux 6 Release wurde der Linux I/O-Stapel verbessert, um herstellerspezifische I/O-Grenzen zu verarbeiten. Dies ermöglicht es Speicherverwaltungs-Tools wie LVM, die Datenverteilung und den -zugriff zu optimieren. Diese Unterstützung kann deaktiviert werden, indem Sie die Standardwerte von
data_alignment_detection
unddata_alignment_offset_detection
in derlvm.conf
-Datei ändern, allerdings wird davon abgeraten, diese Unterstützung zu deaktivieren.Informationen über Datenausrichtung in LVM sowie Informationen über das Ändern der Standardwerte fürdata_alignment_detection
unddata_alignment_offset_detection
finden Sie in der Inline-Dokumentation der/etc/lvm/lvm.conf
-Datei, die zudem in Anhang B, Die LVM-Konfigurationsdateien dokumentiert ist. Allgemeine Informationen über Unterstützung für den I/O-Stapel und I/O-Grenzen in Red Hat Enterprise Linux 6 finden Sie im Handbuch zur Speicherverwaltung. - In Red Hat Enterprise Linux 6 bietet der Device Mapper direkte Unterstützung für
udev
-Integration. Dies synchronisiert den Device Mapper mit sämtlichenudev
-Prozessen im Zusammenhang mit Device-Mapper-Geräten, einschließlich LVM-Geräten. Für Informationen über Device-Mapper-Unterstützung für denudev
-Gerätemanager werfen Sie bitte einen Blick auf Abschnitt A.3, »Device-Mapper-Unterstützung für den udev-Gerätemanager«. - In der Red Hat Enterprise Linux 6 Release können Sie den
lvconvert --repair
-Befehl verwenden, um ein Spiegelgerät nach Plattenausfall zu reparieren. Dadurch wird das Spiegelgerät wieder auf einen konsistenten Zustand gebracht. Informationen über denlvconvert --repair
-Befehl finden Sie in Abschnitt 4.4.3.3, »Gespiegelte Datenträger reparieren«. - Ab der Red Hat Enterprise Linux 6 Release können Sie die
--merge
-Option deslvconvert
-Befehls verwenden, um einen Snapshot wieder mit dem ursprünglichen Datenträger zusammenzuführen. Informationen über das Zusammenführen von Snapshots finden Sie in Abschnitt 4.4.5, »Snapshot-Datenträger zusammenführen«. - Ab der Red Hat Enterprise Linux 6 Release können Sie den
--splitmirrors
-Parameter deslvconvert
-Befehls verwenden, um ein redundantes Image eines gespiegelten logischen Datenträgers abzutrennen und einen neuen logischen Datenträger zu bilden. Weitere Informationen über die Verwendung dieser Option finden Sie in Abschnitt 4.4.3.2, »Abtrennen eines redundanten Images von einem gespiegelten logischen Datenträger«. - Sie können nun ein Mirror-Protokoll für einen gespiegelten logischen Datenträger anlegen, das selbst wiederum gespiegelt ist, indem Sie beim Erstellen des gespiegelten logischen Datenträgers den
--mirrorlog mirrored
-Parameter deslvcreate
-Befehls verwenden. Weitere Informationen zur Verwendung dieser Option finden Sie in Abschnitt 4.4.3, »Gespiegelte Datenträger erstellen«.
1.1.2. Neue und veränderte Features für Red Hat Enterprise Linux 6.1
- Die Red Hat Enterprise Linux 6.1 Release unterstützt die Erstellung eines logischen Snapshot-Datenträgers von gespiegelten logischen Datenträgern. Sie erstellen einen Snapshot eines gespiegelten Datenträgers genau so, wie Sie auch einen Snapshot eines linearen oder gestripten logischen Datenträgers erstellen würden. Weitere Informationen zur Erstellung von Snapshot-Datenträgern finden Sie in Abschnitt 4.4.4, »Snapshot-Datenträger erstellen«.
- Beim Erweitern eines LVM-Datenträgers können Sie die
--alloc cling
-Option deslvextend
-Befehls verwenden, um diecling
-Zuweisungsrichtlinie zu spezifizieren. Diese Richtlinie wählt Speicherplatz auf denselben physischen Datenträgern, auf denen sich das letzte Segment des vorhandenen logischen Datenträgers befindet. Falls die physischen Datenträger nicht ausreichend Platz bieten und eine Liste mit Tags in derlvm.conf
-Datei definiert ist, überprüft LVM, ob diese Tags mit den physischen Datenträgern verknüpft sind und versucht, diese physischen Datenträger-Tags zwischen den vorhandenen und den neuen Extents abzugleichen.Weitere Informationen über das Erweitern von gespiegelten LVM-Datenträgern mit der--alloc cling
-Option deslvextend
-Befehls finden Sie unter Abschnitt 4.4.12.2, »Erweitern eines logischen Datenträgers mit dercling
-Zuweisungsrichtlinie«. - Sie können nun mehrere
--addtag
und--deltag
-Parameter innerhalb eines einzigenpvchange
-,vgchange
- oderlvchange
-Befehls spezifizieren. Für Informationen über das Hinzufügen und Entfernen von Objekt-Tags, siehe Abschnitt C.1, »Hinzufügen und Entfernen von Objekt-Tags«. - Die Liste der zulässigen Zeichen in LVM-Objekt-Tags wurde erweitert, so dass Tags nun auch die Zeichen "/", "=", "!", ":", "#", und "&" enthalten können. Für Informationen über LVM-Objekt-Tags, siehe Anhang C, LVM Objekt-Tags.
- Sie können nun RAID0 (Striping) und RAID1 (Mirroring) auf einem einzigen logischen Datenträger kombinieren. Wenn Sie beim Erstellen eines logischen Datenträgers gleichzeitig die Anzahl der Mirrors (
--mirrors X
) sowie die Anzahl der Stripes (--stripes Y
) angeben, wird dadurch ein Mirror-Gerät erstellt, dessen zugrunde liegenden Geräte gestriped sind. Für weitere Informationen über das Erstellen gespiegelter logischer Datenträger, siehe Abschnitt 4.4.3, »Gespiegelte Datenträger erstellen«. - Ab der Red Hat Enterprise Linux 6.1 Release können Sie, um eine konsistente Datensicherung eines geclusterten logischen Datenträgers durchzuführen, den Datenträger exklusiv aktivieren und dann den Snapshot erstellen. Weitere Informationen über das Aktivieren von logischen Datenträgern exklusiv auf einem Knoten finden Sie in Abschnitt 4.7, »Logische Datenträger auf einzelnen Knoten in einem Cluster aktivieren«.
1.2. Logische Datenträger
- Flexible KapazitätBei der Verwendung logischer Datenträger können sich Dateisysteme über mehrere Platten erstrecken, da Platten und Partitionen in einem einzelnen logischen Datenträger vereinigt werden können.
- Speicher-Pools, deren Größe verändert werden kannMithilfe einfacher Software-Befehle können Sie logische Datenträger erweitern oder deren Größe verringern, ohne die zugrunde liegenden Plattengeräte neu zu formatieren oder neu zu partitionieren.
- Online-DatenumzugUm neuere, schnellere oder robustere Speicher-Subsysteme einzusetzen, können Sie Daten verschieben, während Ihr System aktiv ist. Daten können auf Platten neu angeordnet werden, während die Platten verwendet werden. So können Sie eine Platte leeren, die im laufenden Betrieb ausgetauscht werden kann, bevor Sie diese entfernen.
- Bequeme Benennung von GerätenLogische Speicherdatenträger können in benutzerdefinierten Gruppen verwaltet werden, die Sie nach Belieben benennen können.
- Platten-StripingSie können einen logischen Datenträger erstellen, der Daten zwischen zwei oder mehreren Platten verteilt (striped). Dies kann den Datendurchsatz drastisch erhöhen.
- Datenträger zur SpiegelungLogische Datenträger bieten einen bequemen Weg zur Konfiguration eines Mirrors für Ihre Daten.
- Datenträger-SnapshotsIndem Sie logische Datenträger verwenden, können Sie Geräte-Snapshots für konsistente Sicherungen aufnehmen oder die Auswirkungen von Änderungen testen, ohne die tatsächlichen Daten zu gefährden.
1.3. Überblick über die LVM-Architektur
- flexible Kapazität
- effizienterer Metadatenspeicher
- besseres Wiederherstellungsformat
- neues ASCII-Metadatenformat
- atomische Änderungen an Metadaten
- redundante Kopien von Metadaten
vgconvert
vom LVM1-Format in das LVM2-Format konvertieren. Werfen Sie einen Blick auf die Handbuchseite (8) von vgconvert
für Informationen zur Konvertierung des Formats von LVM-Metadaten.

Abbildung 1.1. Komponenten von logischen LVM-Datenträgern
1.4. Der Clustered Logical Volume Manager (CLVM)
- Erfordert nur ein Knoten Ihres Systems Zugriff auf den Speicher, den Sie als logische Datenträger konfigurieren, so können Sie LVM ohne die CLVM-Erweiterungen einsetzen und die mit diesem Knoten erzeugten logischen Datenträger sind alle lokal für diesen Knoten.
- Falls Sie ein geclustertes System zur Ausfallsicherheit verwenden, in dem zu jeder Zeit nur ein Knoten aktiv ist, der auf den Speicher zugreift, sollten Sie High Availability Logical Volume Management Agents (HA-LVM) einsetzen. Weitere Informationen über HA-LVM finden Sie im Handbuch Konfiguration und Verwaltung eines Red Hat Cluster.
- Falls mehr als ein Knoten in Ihrem Cluster Zugriff auf den Speicher benötigt, der somit also von den aktiven Knoten gemeinsam verwendet wird, müssen Sie CLVM einsetzen. CLVM ermöglicht einem Benutzer die Konfiguration von logischen Datenträgern auf gemeinsam genutztem Speicher, indem der Zugriff auf den physischen Speicher während der Konfiguration des logischen Datenträgers gesperrt wird, und verwendet geclusterte Dienste zur Sperrung, um den gemeinsam verwendeten Speicher zu verwalten.
clvmd
-Daemons laufen. Der clvmd
-Daemon ist die Haupt-Cluster-Erweiterung für LVM. Der clmvd
-Daemon läuft auf jedem Cluster-Computer und verteilt Aktualisierungen zu LVM-Metadaten in einem Cluster und gibt daher dieselbe Darstellung der logischen Datenträger an jeden Cluster-Computer weiter. Weitere Informationen über die Installation und die Verwaltung des Hochverfügbarkeits-Add-Ons finden Sie im Handbuch Konfiguration und Verwaltung eines Red Hat Clusters.
clvmd
beim Booten mitgestartet wird, können Sie den chkconfig ... on
-Befehl für den clvmd
-Dienst ausführen, und zwar wie folgt:
# chkconfig clvmd on
clvmd
-Daemon noch nicht gestartet ist, können Sie den service ... start
-Befehl auf dem clvmd
-Dienst ausführen, und zwar wie folgt:
# service clvmd start
Warnung

Abbildung 1.2. CLVM-Überblick
Anmerkung
lvm.conf
-Datei zur clusterweiten Sperrung. Sie finden Informationen über die Konfiguration der lvm.conf
-Datei zur Unterstützung von Cluster-Sperrung in der lvm.conf
-Datei selbst. Informationen über dielvm.conf
-Datei finden Sie in Anhang B, Die LVM-Konfigurationsdateien.
1.5. Dokumentüberblick
- Kapitel 2, LVM-Komponenten beschreibt die Komponenten, aus denen ein logischer LVM-Datenträger besteht.
- Kapitel 3, Überblick über die LVM-Administration liefert einen Überblick über die grundlegenden Schritte zur Konfiguration von logischen LVM-Datenträgern, unabhängig davon, ob Sie die Kommandozeilenbefehle (CLI) für LVM oder das Graphical User Interface (GUI) für LVM verwenden.
- Kapitel 4, LVM-Administration mit CLI-Befehlen fasst die individuellen administrativen Aufgaben zusammen, die Sie mit den LVM CLI-Befehlen zur Erstellung und Wartung von logischen Datenträgern verwenden können.
- Kapitel 5, Konfigurationsbeispiele für LVM liefert eine Vielzahl an LVM-Konfigurationsbeispielen.
- Kapitel 6, Suche und Bereinigung von LVM-Fehlern liefert Anweisungen zur Fehlerbehebung von einer Vielzahl von LVM-Problemen.
- Kapitel 7, LVM-Administration mit dem LVM-GUI fasst die Funktionsweise des LVM-GUI zusammen.
- Anhang A, Der Device-Mapper beschreibt den Device Mapper, den LVM zur Zuordnung von logischen und physischen Datenträgern verwendet.
- Anhang B, Die LVM-Konfigurationsdateien beschreibt die Konfigurationsdateien von LVM.
- Anhang C, LVM Objekt-Tags beschreibt die LVM-Objekt-Tags und Host-Tags.
- Anhang D, Metadaten einer LVM-Datenträgergruppe beschreibt die Metadaten der LVM-Datenträgergruppe und beinhaltet ein Beispielexemplar von Metadaten für eine LVM-Datenträgergruppe.
Kapitel 2. LVM-Komponenten
2.1. Physische Datenträger
2.1.1. Aufbau eines physischen LVM-Datenträgers
Anmerkung

Abbildung 2.1. Aufbau eines physischen Datenträgers
2.1.2. Mehrere Partitionen auf einer Platte
- Einfachere VerwaltungEs ist einfacher, den Überblick über Hardware in einem System zu behalten, wenn jede reale Platte nur einmal erscheint. Dies trifft besonders beim Ausfall einer Platte zu. Zusätzlich können mehrere physische Datenträger auf einer einzelnen Platte Warnungen des Kernels beim Starten bezüglich unbekannter Partitionstypen hervorrufen.
- Striping-LeistungLVM kann nicht ermitteln, dass sich zwei physische Datenträger auf derselben physischen Platte befinden. Falls Sie einen logischen Striped-Datenträger erstellen, während sich zwei physische Datenträger auf derselben physischen Platte befinden, könnten sich die Stripes in unterschiedlichen Partitionen auf derselben Platte befinden. Dies würde zu einem Leistungsabfall anstatt zu einer Leistungssteigerung führen.
2.2. Datenträgergruppen
2.3. Logische LVM-Datenträger
2.3.1. Lineare Datenträger

Abbildung 2.2. Extent-Zuweisung
VG1
mit einer Größe der physischen Extents von 4 MB. Diese Datenträgergruppe umfasst 2 physische Datenträger namens PV1
und PV2
. Die physischen Datenträger sind in 4 MB Einheiten aufgeteilt, da dies die Größe der Extents ist. In diesem Beispiel ist PV1
100 Extents groß (400 MB) und PV2
200 Extents (800 MB) groß. Sie können einen linearen Datenträger mit einer Größe von 1 bis 300 Extents (4 MB bis 1200 MB) erstellen. In diesem Beispiel ist der lineare Datenträger mit der Bezeichnung LV1
300 Extents groß.

Abbildung 2.3. Linearer Datenträger mit ungleichen physischen Datenträgern
LV1
, 250 Extents groß (1.000 MB) und LV2
, 50 Extents groß (200 MB).

Abbildung 2.4. Mehrere logische Datenträger
2.3.2. Logische Striped-Datenträger
- der erste Daten-Stripe wird auf PV1 geschrieben
- der zweite Daten-Stripe wird auf PV2 geschrieben
- der dritte Daten-Stripe wird auf PV3 geschrieben
- der vierte Daten-Stripe wird auf PV1 geschrieben

Abbildung 2.5. Daten über drei PVs hinweg stripen
2.3.3. Gespiegelte logische Datenträger

Abbildung 2.6. Gespiegelter logischer Datenträger
2.3.4. Snapshot-Datenträger
Anmerkung
Anmerkung
Anmerkung
/usr
, weniger Speicherplatz als ein langlebiger Snapshot eines Datenträgers mit einer größeren Anzahl von Schreibvorgängen, wie z.B. /home
.
- Typischerweise wird ein Snapshot erstellt, wenn Sie eine Sicherung eines logischen Datenträgers durchführen müssen, ohne das laufende System anzuhalten, welches die Daten ständig aktualisiert.
- Sie können den Befehl
fsck
auf einem Snapshot-Dateisystem ausführen, um die Integrität des Dateisystems zu überprüfen und zu ermitteln, ob das originale Dateisystem eine Reparatur des Dateisystems erfordert. - Da der Snapshot lesbar/schreibbar ist, können Sie Applikationen mit Produktionsdaten testen, indem Sie einen Snapshot erstellen und Tests für diesen Snapshot ausführen, wobei die tatsächlichen Daten unberührt bleiben.
- Sie können LVM-Datenträger zur Verwendung mit Red Hat Virtualisierung erstellen. LVM-Snapshots können dazu verwendet werden, um Snapshots virtueller Gast-Images zu erstellen. Diese Snapshots bieten einen bequemen Weg zur Änderung vorhandener Gäste oder zur Erstellung neuer Gäste mit minimalem zusätzlichen Speicher. Weitere Informationen über das Erstellen von LVM-Snapshots virtueller Gäste finden Sie im Red Hat Enterprise Linux Virtualisierungshandbuch.
--merge
-Option des lvconvert
-Befehls verwenden, um einen Snapshot wieder mit dem originalen Datenträger zusammenzuführen. Ein Anwendungsfall dieses Features ist ein Zurücksetzen des Systems, falls Sie Daten verloren haben oder aus anderen Gründen das System auf einen früheren Stand zurückversetzen müssen. Nach dem Zusammenführen mit dem Snapshot-Datenträger besitzt der daraus entstandene logische Datenträger den Namen, die Minor-Nummer und die UUID des originalen Datenträgers, und der Snapshot wird gelöscht. Weitere Informationen über die Verwendung dieser Option finden Sie in Abschnitt 4.4.5, »Snapshot-Datenträger zusammenführen«.
Kapitel 3. Überblick über die LVM-Administration
3.1. LVM-Datenträger in einem Cluster erstellen
lvm.conf
-Datei zur clusterweiten Sperrung. Sie finden Informationen über die Konfiguration der lvm.conf
-Datei zur Unterstützung von Cluster-Sperrung in der lvm.conf
-Datei selbst. Informationen über dielvm.conf
-Datei finden Sie in Anhang B, Die LVM-Konfigurationsdateien.
Warnung
3.2. Überblick über die Erstellung eines logischen Datenträgers
- Initialisieren Sie die Partitionen, die Sie als physische Datenträger für den LVM-Datenträger verwenden werden (dies kennzeichnet diese).
- Erstellen Sie einen Datenträgergruppe.
- Erstellen Sie einen logischen Datenträger.
Anmerkung
- Erstellen Sie mit dem Befehl
mkfs.gfs2
ein GFS2-Dateisystem auf dem logischen Datenträger. - Erstellen Sie mit dem Befehl
mkdir
einen neuen Einhängepunkt. Erstellen Sie in einem Cluster-System die Einhängepunkte auf allen Knoten im Cluster. - Hängen Sie das Dateisystem ein. Sie sollten ggf. für jedes System eine Zeile zur
fstab
-Datei hinzufügen.
3.3. Vergrößern eines Dateisystems auf einem logischen Datenträger
- Erstellen Sie einen neuen physischen Datenträger.
- Erweitern Sie die Datenträgergruppe, die den logischen Datenträger enthält mit dem Dateisystem, das Sie vergrößern, um den neuen physischen Datenträger einzubinden.
- Erweitern Sie den logischen Datenträger, der den neuen physischen Datenträger einbinden soll.
- Vergrößern Sie das Dateisystem.
3.4. Backup eines logischen Datenträgers
lvm.conf
deaktiviert wird. Standardmäßig wird die Sicherung der Metadaten in /etc/lvm/backup
und die Sicherung der Metadaten-Archive in /etc/lvm/archive
gespeichert. Die Dauer der Speicherung von Metadaten-Archiven in /etc/lvm/archive
und die Anzahl der Dateien, die gespeichert werden sollen, werden durch Parameter festgelegt, die Sie in der Datei lvm.conf
setzen können. Ein tägliches Backup des Systems sollte den Inhalt des Verzeichnisses /etc/lvm
umfassen.
vgcfgbackup
in der Datei /etc/lvm/backup
sichern. Mithilfe des Befehls vgcfgrestore
können Sie die Metadaten wiederherstellen. Die Befehle vgcfgbackup
und vgcfgrestore
werden in Abschnitt 4.3.12, »Metadaten von Datenträgergruppen sichern« beschrieben.
3.5. Protokollierung
- Standard-Ausgabefehler
- syslog
- Protokolldatei
- externe Protokollierung
/etc/lvm/lvm.conf
gesetzt, wie in Anhang B, Die LVM-Konfigurationsdateien beschrieben.
Kapitel 4. LVM-Administration mit CLI-Befehlen
Anmerkung
clvmd
-Daemon läuft. Weitere Informationen diesbezüglich finden Sie in Abschnitt 3.1, »LVM-Datenträger in einem Cluster erstellen«.
4.1. Verwendung von CLI-Befehlen
--units
in einem Befehl angegeben, weist die Kleinschreibung darauf hin, dass Einheiten ein Vielfaches von 1.024 sind, während die Großschreibung verdeutlicht, dass es sich um Einheiten mit einem Vielfachen von 1.000 handelt.
lvol0
in einer Datenträgergruppe mit der Bezeichnung vg0
kann als vg0/lvol0
angegeben werden. Wo eine Liste von Datenträgergruppen erforderlich ist, jedoch freigelassen wird, wird stattdessen eine Liste aller Datenträgergruppen an die Stelle gesetzt. Wo eine Liste von logischen Datenträgern erforderlich ist, jedoch eine Datenträgergruppe angegeben wird, wird stattdessen eine Liste aller logischen Datenträger in dieser Datenträgergruppe an die Stelle gesetzt. So zeigt beispielsweise der Befehl lvdisplay vg0
alle logischen Datenträger in der Datenträgergruppe vg0
an.
-v
-Parameter, der mehrfach eingegeben werden kann, um die Ausführlichkeit der Ausgabe zu erhöhen. Die folgenden Beispiele zeigen beispielsweise die standardmäßige Ausgabe des Befehls lvcreate
.
# lvcreate -L 50MB new_vg
Rounding up size to full physical extent 52.00 MB
Logical volume "lvol0" created
lvcreate
mit dem Parameter -v
.
# lvcreate -v -L 50MB new_vg
Finding volume group "new_vg"
Rounding up size to full physical extent 52.00 MB
Archiving volume group "new_vg" metadata (seqno 4).
Creating logical volume lvol0
Creating volume group backup "/etc/lvm/backup/new_vg" (seqno 5).
Found volume group "new_vg"
Creating new_vg-lvol0
Loading new_vg-lvol0 table
Resuming new_vg-lvol0 (253:2)
Clearing start of logical volume "lvol0"
Creating volume group backup "/etc/lvm/backup/new_vg" (seqno 5).
Logical volume "lvol0" created
-vv
, -vvv
oder -vvvv
können Sie außerdem umfangreichere Details zur Ausführung des Befehls anzeigen. Der Parameter -vvvv
liefert an dieser Stelle die meisten Informationen. Das folgende Beispiel zeigt lediglich die ersten paar Zeilen der Ausgabe für den Befehl lvcreate
mit dem Parameter -vvvv
.
# lvcreate -vvvv -L 50MB new_vg
#lvmcmdline.c:913 Processing: lvcreate -vvvv -L 50MB new_vg
#lvmcmdline.c:916 O_DIRECT will be used
#config/config.c:864 Setting global/locking_type to 1
#locking/locking.c:138 File-based locking selected.
#config/config.c:841 Setting global/locking_dir to /var/lock/lvm
#activate/activate.c:358 Getting target version for linear
#ioctl/libdm-iface.c:1569 dm version OF [16384]
#ioctl/libdm-iface.c:1569 dm versions OF [16384]
#activate/activate.c:358 Getting target version for striped
#ioctl/libdm-iface.c:1569 dm versions OF [16384]
#config/config.c:864 Setting activation/mirror_region_size to 512
...
--help
eines Befehls können Sie sich den Hilfebildschirm von jedem LVM-CLI-Befehl anzeigen lassen.
Befehlsname --help
man
aus, um die Handbuchseite für einen Befehl anzuzeigen:
man Befehlsname
man lvm
liefert allgemeine Online-Informationen über LVM.
/dev/sdf
, der Teil einer Datenträgergruppe ist, entfernen und feststellen, dass dieser nun unter /dev/sdk
erscheint, wenn Sie ihn wieder einhängen. LVM findet den physischen Datenträger auch weiterhin, da es diesen anhand dessen UUID und nicht dessen Gerätenamen identifiziert. Werfen Sie einen Blick auf Abschnitt 6.4, »Wiederherstellen von Metadaten eines physischen Datenträgers« für Informationen zur Angabe der UUID eines physischen Datenträgers bei dessen Erstellung.
4.2. Administration von physischen Datenträgern
4.2.1. Physische Datenträger erstellen
4.2.1.1. Partitionstyp einstellen
fdisk
oder cfdisk
(oder entsprechenden Befehlen) auf 0x8e gesetzt werden. Für ganze Festplattengeräte muss lediglich die Partitionstabelle gelöscht werden, was alle Daten auf dieser Platte nachhaltig zerstört. Sie können eine bestehende Partitionstabelle entfernen, indem Sie den ersten Sektor mit dem folgenden Befehl mit Nullen überschreiben:
dd if=/dev/zero of=Physischer Datenträger bs=512 count=1
4.2.1.2. Physische Datenträger initialisieren
pvcreate
, um ein Blockgerät zu initialisieren, das als physischer Datenträger verwendet werden soll. Die Initialisierung entspricht einer Formatierung eines Dateisystems.
/dev/sdd1
, /dev/sde1
und /dev/sdf1
, so dass diese als physische LVM-Datenträger verwendet werden können.
pvcreate /dev/sdd1 /dev/sde1 /dev/sdf1
pvcreate
auf der Partition aus. Das folgende Beispiel initialisiert /dev/hdb1
als einen physischen LVM-Datenträger für die spätere Verwendung als Teil eines logischen LVM-Datenträgers.
pvcreate /dev/hdb1
4.2.1.3. Suche nach Blockgeräten
lvmdiskscan
können Sie nach Blockgeräten suchen, die ggf. als physische Datenträger genutzt werden können, wie im folgenden Beispiel gezeigt.
# lvmdiskscan
/dev/ram0 [ 16.00 MB]
/dev/sda [ 17.15 GB]
/dev/root [ 13.69 GB]
/dev/ram [ 16.00 MB]
/dev/sda1 [ 17.14 GB] LVM physical volume
/dev/VolGroup00/LogVol01 [ 512.00 MB]
/dev/ram2 [ 16.00 MB]
/dev/new_vg/lvol0 [ 52.00 MB]
/dev/ram3 [ 16.00 MB]
/dev/pkl_new_vg/sparkie_lv [ 7.14 GB]
/dev/ram4 [ 16.00 MB]
/dev/ram5 [ 16.00 MB]
/dev/ram6 [ 16.00 MB]
/dev/ram7 [ 16.00 MB]
/dev/ram8 [ 16.00 MB]
/dev/ram9 [ 16.00 MB]
/dev/ram10 [ 16.00 MB]
/dev/ram11 [ 16.00 MB]
/dev/ram12 [ 16.00 MB]
/dev/ram13 [ 16.00 MB]
/dev/ram14 [ 16.00 MB]
/dev/ram15 [ 16.00 MB]
/dev/sdb [ 17.15 GB]
/dev/sdb1 [ 17.14 GB] LVM physical volume
/dev/sdc [ 17.15 GB]
/dev/sdc1 [ 17.14 GB] LVM physical volume
/dev/sdd [ 17.15 GB]
/dev/sdd1 [ 17.14 GB] LVM physical volume
7 disks
17 partitions
0 LVM physical volume whole disks
4 LVM physical volumes
4.2.2. Physische Datenträger anzeigen
pvs
, pvdisplay
und pvscan
.
pvs
liefert Informationen zu einem physischen Datenträger in einer konfigurierbaren Form, wobei eine Zeile pro physischem Datenträger angezeigt wird. Der pvs
-Befehl bietet ein hohes Maß an Formatkontrolle und ist nützlich für das Skripting. Werfen Sie einen Blick auf Abschnitt 4.8, »Angepasste Berichterstattung für LVM« für Informationen zur Verwendung des Befehls pvs
zur Anpassung Ihrer Ausgabe.
pvdisplay
bietet eine umfangreiche, mehrzeilige Ausgabe für jeden physischen Datenträger. Er zeigt physische Eigenschaften (Größe, Extents, Datenträgergruppe, etc.) in einem festen Format an.
pvdisplay
für einen einzelnen physischen Datenträger.
# pvdisplay
--- Physical volume ---
PV Name /dev/sdc1
VG Name new_vg
PV Size 17.14 GB / not usable 3.40 MB
Allocatable yes
PE Size (KByte) 4096
Total PE 4388
Free PE 4375
Allocated PE 13
PV UUID Joqlch-yWSj-kuEn-IdwM-01S9-XO8M-mcpsVe
pvscan
sucht alle unterstützten LVM-Blockgeräte im System nach physischen Datenträgern ab.
# pvscan
PV /dev/sdb2 VG vg0 lvm2 [964.00 MB / 0 free]
PV /dev/sdc1 VG vg0 lvm2 [964.00 MB / 428.00 MB free]
PV /dev/sdc2 lvm2 [964.84 MB]
Total: 3 [2.83 GB] / in use: 2 [1.88 GB] / in no VG: 1 [964.84 MB]
lvm.conf
können Sie einen Filter definieren, damit dieser Befehl bestimmte physische Datenträger nicht absucht. Werfen Sie einen Blick auf Abschnitt 4.5, »LVM-Geräte-Scans mit Filtern kontrollieren« für Informationen zur Verwendung von Filtern zur Steuerung, welche Geräte abgesucht werden.
4.2.3. Zuweisung auf einem physischen Datenträger verhindern
pvchange
können Sie die Zuweisung von Extents auf freien Speicherplatz von einem oder mehreren physischen Datenträgern verhindern. Dies ist ggf. bei Festplattenfehlern oder beim Entfernen des physischen Datenträgers notwendig.
/dev/sdk1
.
pvchange -x n /dev/sdk1
-xy
des Befehls pvchange
verwenden, um eine Zuweisung zu gestatten, wenn diese zuvor verweigert wurde.
4.2.4. Größe eines physischen Datenträgers anpassen
pvresize
, um LVM mit der neuen Größe zu aktualisieren. Sie können diesen Befehl ausführen, während LVM den physischen Datenträger verwendet.
4.2.5. Physische Datenträger entfernen
pvremove
entfernen. Durch die Ausführung von pvremove
werden die LVM-Metadaten auf einem leeren physischen Datenträger auf Null gesetzt.
vgreduce
aus der Datenträgergruppe entfernen, wie in Abschnitt 4.3.6, »Physische Datenträger aus einer Datenträgergruppe entfernen« beschrieben.
# pvremove /dev/ram15
Labels on physical volume "/dev/ram15" successfully wiped
4.3. Administration von Datenträgergruppen
4.3.1. Datenträgergruppen erstellen
vgcreate
zur Erstellung einer Datenträgergruppe aus einem oder mehreren physischen Datenträgern. Der Befehl vgcreate
erstellt eine neue Datenträgergruppe mit neuem Namen und fügt dieser mindestens einen physischen Datenträger hinzu.
vg1
, welche die physischen Datenträger /dev/sdd1
und /dev/sde1
beinhaltet.
vgcreate vg1 /dev/sdd1 /dev/sde1
-s
-Option des vgcreate
-Befehls können Sie die Extent-Größe angeben, falls der Standardwert nicht passt. Sie können die Anzahl der physischen oder logischen Datenträger, die die Datenträgergruppe umfassen kann, einschränken, indem Sie die Parameter -p
und -l
des vgcreate
-Befehls verwenden.
normal
Zuweisungsrichtlinie. Sie können den Parameter --alloc
des vgcreate
-Befehls verwenden, um die Zuweisungsrichtlinien auf contiguous
, anywhere
oder cling
zu setzen.
contiguous
-Richtlinie erfordert, dass neue Extents neben existierenden Extents liegen. Falls genügend freie Extents vorhanden sind, um einer Zuweisungsanfrage zu entsprechen, die normal
-Zuweisungsrichtlinie diese jedoch nicht verwenden würde, beansprucht die anywhere
-Zuweisungsrichtlinie diese, indem sie zwei Stripes auf demselben physischen Datenträger platziert. Die cling
-Richtlinie platziert neue Extents auf demselben physischen Datenträger, wie vorhandene Extents in demselben Stripe auf dem logischen Datenträger. Diese Richtlinien können mithilfe des Befehls vgchange
geändert werden.
cling
-Zuweisungsrichtlinie« finden Sie Informationen über die Verwendung der cling
-Richtlinie in Verbindung mit LVM-Tags, um beim Erweitern eines LVM-Datenträgers die zu verwendenden zusätzlichen physischen Datenträger zu spezifizieren.
normal
nur in speziellen Fällen benötigt, in denen Sie unübliche oder nicht standardmäßige Extent-Zuweisungen bestimmen müssen.
/dev
mit dem folgenden Aufbau eingebunden:
/dev/vg/lv/
myvg1
und myvg2
erstellen und jede mit drei logischen Datenträgern mit der Bezeichnung lvo1
, lvo2
und lvo3
, erstellt dies sechs spezielle Gerätedateien:
/dev/myvg1/lv01 /dev/myvg1/lv02 /dev/myvg1/lv03 /dev/myvg2/lv01 /dev/myvg2/lv02 /dev/myvg2/lv03
4.3.2. Datenträgergruppen in einem Cluster erstellen
vgcreate
erstellen, genau wie Sie diese auch auf einem einzelnen Knoten erstellen.
-c n
-Option des vgcreate
-Befehls Datenträgergruppen zu erstellen, die nur für einen Knoten im Cluster sichtbar sind.
vg1
, der die physischen Datenträger /dev/sdd1
und /dev/sde1
enthält.
vgcreate -c n vg1 /dev/sdd1 /dev/sde1
-c
-Option des vgchange
-Befehls können Sie ändern, ob eine vorhandene Datenträgergruppe lokal oder geclustert ist, wie in Abschnitt 4.3.7, »Parameter einer Datenträgergruppe verändern« beschrieben.
vgs
-Befehls können Sie überprüfen, ob eine vorhandene Datenträgergruppe geclustert ist; ist der Datenträger geclustert, wird der c
-Parameter angezeigt. Der folgende Befehl zeigt die Parameter der Datenträgergruppen VolGroup00
und testvg1
an. In diesem Beispiel ist VolGroup00
nicht geclustert, wohingegen testvg1
geclustert ist, wie der c
-Parameter unter der Attr
-Überschrift anzeigt.
[root@doc-07]# vgs
VG #PV #LV #SN Attr VSize VFree
VolGroup00 1 2 0 wz--n- 19.88G 0
testvg1 1 1 0 wz--nc 46.00G 8.00M
vgs
-Befehl finden Sie in Abschnitt 4.3.4, »Datenträgergruppen anzeigen«, Abschnitt 4.8, »Angepasste Berichterstattung für LVM« sowie auf der vgs
-Handbuchseite.
4.3.3. Physische Datenträger zu einer Datenträgergruppe hinzufügen
vgextend
. Der Befehl vgextend
erhöht die Kapazität einer Datenträgergruppe, indem eine oder mehrere freie physische Datenträger hinzugefügt werden.
/dev/sdf1
zur Datenträgergruppe vg1
hinzu.
vgextend vg1 /dev/sdf1
4.3.4. Datenträgergruppen anzeigen
vgs
und vgdisplay
.
vgscan
zeigt auch die Datenträgergruppen an, obwohl sein primärer Zweck das Absuchen aller Platten nach Datenträgergruppen und das Neuerstellen der LVM-Cache-Datei ist. Werfen Sie einen Blick auf Abschnitt 4.3.5, »Platten nach Datenträgergruppen zum Erstellen der Cache-Datei absuchen« für weitere Informationen zum Befehl vgscan
.
vgs
liefert Informationen zu Datenträgergruppen in einer konfigurierbaren Form, wobei eine Zeile pro Datenträgergruppe angezeigt wird. Der vgs
-Befehl bietet ein hohes Maß an Formatkontrolle und ist nützlich für das Skripting. Werfen Sie einen Blick auf Abschnitt 4.8, »Angepasste Berichterstattung für LVM« für Informationen zur Verwendung des Befehls vgs
zur Anpassung Ihrer Ausgabe.
vgdisplay
zeigt die Eigenschaften einer Datenträgergruppe (wie Größe, Extents, Anzahl der physischen Datenträger, etc.) in einem festen Format an. Das folgende Beispiel zeigt die Ausgabe des vgdisplay
-Befehls für die Datenträgergruppe new_vg
. Wenn Sie keine Datenträgergruppe angeben, werden alle vorhandenen Gruppen angezeigt.
# vgdisplay new_vg
--- Volume group ---
VG Name new_vg
System ID
Format lvm2
Metadata Areas 3
Metadata Sequence No 11
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 0
Max PV 0
Cur PV 3
Act PV 3
VG Size 51.42 GB
PE Size 4.00 MB
Total PE 13164
Alloc PE / Size 13 / 52.00 MB
Free PE / Size 13151 / 51.37 GB
VG UUID jxQJ0a-ZKk0-OpMO-0118-nlwO-wwqd-fD5D32
4.3.5. Platten nach Datenträgergruppen zum Erstellen der Cache-Datei absuchen
vgscan
sucht alle unterstützten Plattengeräte im System nach physischen LVM-Datenträgern und Datenträgergruppen ab. Dies erstellt die LVM-Cache-Datei in /etc/lvm/.cache
, welche eine Liste von aktuellen LVM-Geräten unterhält.
vgscan
-Befehl beim Systemstart und zu anderen Zeitpunkten während des LVM-Betriebs automatisch aus, z.B. wenn Sie den vgcreate
-Befehl ausführen oder wenn LVM eine Inkonsistenz entdeckt.
Anmerkung
vgscan
ggf. manuell ausführen, was zur Folge hat, dass neue Geräte für das System sichtbar werden, die zum Zeitpunkt des Systemstarts noch nicht existierten. Dies kann beispielsweise ggf. dann notwendig werden, wenn Sie in einem SAN neue Platten zum System hinzufügen oder eine neue Platte, die als physischer Datenträger gekennzeichnet war, im laufenden Betrieb austauschen.
lvm.conf
können Sie einen Filter definieren, damit dieser Befehl spezielle Geräte nicht absucht. Werfen Sie einen Blick auf Abschnitt 4.5, »LVM-Geräte-Scans mit Filtern kontrollieren« für Informationen zur Verwendung von Filtern zur Kontrolle, welche Geräte abgesucht werden.
vgscan
-Befehls.
# vgscan
Reading all physical volumes. This may take a while...
Found volume group "new_vg" using metadata type lvm2
Found volume group "officevg" using metadata type lvm2
4.3.6. Physische Datenträger aus einer Datenträgergruppe entfernen
vgreduce
, um nicht benutzte physische Datenträger aus einer Datenträgergruppe zu entfernen. Der Befehl vgreduce
verkleinert die Kapazität einer Datenträgergruppe durch Entfernen von einem oder mehreren leeren physischen Datenträgern. Dies setzt die physischen Datenträger frei, die in unterschiedlichen Datenträgergruppen verwendet werden, oder vom System gelöscht werden sollen.
pvdisplay
sicherstellen, dass der physische Datenträger von keinem logischen Datenträger verwendet wird.
# pvdisplay /dev/hda1
-- Physical volume ---
PV Name /dev/hda1
VG Name myvg
PV Size 1.95 GB / NOT usable 4 MB [LVM: 122 KB]
PV# 1
PV Status available
Allocatable yes (but full)
Cur LV 1
PE Size (KByte) 4096
Total PE 499
Free PE 0
Allocated PE 499
PV UUID Sd44tK-9IRw-SrMC-MOkn-76iP-iftz-OVSen7
pvmove
auf einen anderen physischen Datenträger migrieren. Verwenden Sie anschließend den Befehl vgreduce
, um den physischen Datenträger zu entfernen.
/dev/hda1
aus der Datenträgergruppe my_volume_group
.
# vgreduce my_volume_group /dev/hda1
4.3.7. Parameter einer Datenträgergruppe verändern
vgchange
-Befehl wird dazu verwendet, um Datenträgergruppen zu aktivieren bzw. zu deaktivieren, wie in Abschnitt 4.3.8, »Datenträgergruppen aktivieren und deaktivieren« beschrieben. Sie können diesen Befehl auch dazu verwenden, um mehrere Parameter für eine vorhandene Datenträgergruppe zu verändern.
vg00
auf 128.
vgchange -l 128 /dev/vg00
vgchange
(8) für eine Beschreibung der Parameter der Datenträgergruppe, die Sie mit dem Befehl vgchange
ändern können.
4.3.8. Datenträgergruppen aktivieren und deaktivieren
-a
(--available
) des Befehls vgchange
, um eine Datenträgergruppe zu aktivieren, bzw. zu deaktivieren.
my_volume_group
.
vgchange -a n my_volume_group
lvchange
können Sie einzelne logische Datenträger wie unter Abschnitt 4.4.8, »Parameter einer logischen Datenträgergruppe ändern« beschrieben, deaktivieren. Werfen Sie einen Blick auf Abschnitt 4.7, »Logische Datenträger auf einzelnen Knoten in einem Cluster aktivieren« für Informationen zur Aktivierung von logischen Datenträgern auf einzelnen Knoten in einem Cluster.
4.3.9. Datenträgergruppen entfernen
vgremove
, um eine Datenträgergruppe zu entfernen, die keine logischen Datenträger enthält.
# vgremove officevg
Volume group "officevg" successfully removed
4.3.10. Aufteilen einer Datenträgergruppe
vgsplit
, um die physischen Datenträger einer Datenträgergruppe aufzuteilen und eine neue Datenträgergruppe zu erstellen.
pvmove
erzwingen.
smallvg
von der ursprünglichen Datenträgergruppe bigvg
.
# vgsplit bigvg smallvg /dev/ram15
Volume group "smallvg" successfully split from "bigvg"
4.3.11. Datenträgergruppen kombinieren
vgmerge
, um zwei Datenträgergruppen zu einer einzelnen Datenträgergruppe zu kombinieren. Sie können einen inaktiven Quell-Datenträger mit einem aktiven oder einem inaktiven Ziel-Datenträger vereinen, falls die Größe der physischen Extents des Datenträgers gleich ist und die Summe der physischen und logischen Datenträger beider Datenträgergruppen in die Beschränkung der Ziel-Datenträgergruppe passt.
my_vg
mit der aktiven oder inaktiven Datenträgergruppe databases
und gibt dabei umfangreiche Informationen zur Laufzeit aus.
vgmerge -v databases my_vg
4.3.12. Metadaten von Datenträgergruppen sichern
lvm.conf
deaktiviert wird. Standardmäßig wird das Backup der Metadaten in /etc/lvm/backup
und das Backup der Metadaten-Archive in /etc/lvm/archives
gespeichert. Sie können die Metadaten manuell mit dem Befehl vgcfgbackup
in die Datei /etc/lvm/backup
speichern.
vgcfrestore
stellt die Metadaten einer Datenträgergruppe aus dem Archiv für alle physischen Datenträger in der Datenträgergruppe wieder her.
vgcfgrestore
, um Metadaten für physische Datenträger wiederherzustellen.
4.3.13. Datenträgergruppe umbenennen
vgrename
, um eine bestehende Datenträgergruppe umzubenennen.
vg02
in my_volume_group
um.
vgrename /dev/vg02 /dev/my_volume_group
vgrename vg02 my_volume_group
4.3.14. Datenträgergruppe auf ein anderes System verschieben
vgexport
und vgimport
verwenden.
vgexport
wird eine inaktive Datenträgergruppe unzugänglich gemacht, so dass Sie deren physische Datenträger entfernen können. Der Befehl vgimport
macht eine Datenträgergruppe wieder für eine Maschine zugänglich, nachdem sie durch den Befehl vgexport
auf inaktiv gesetzt wurde.
- Stellen Sie sicher, dass keine Benutzer auf Dateien auf den aktiven Datenträgern in der Datenträgergruppe zugreifen und hängen anschließend die logischen Datenträger aus.
- Verwenden Sie den Parameter
-a n
des Befehlsvgchange
, um die Datenträgergruppe als inaktiv zu markieren. Dies verhindert jegliche weitere Aktionen in der Datenträgergruppe. - Verwenden Sie den Befehl
vgexport
, um die Datenträgergruppe zu exportieren. Auf diese Weise wird der Zugriff auf sie von dem System aus, von dem Sie sie entfernen, verhindert.Nachdem Sie die Datenträgergruppe exportiert haben, erscheint der physische Datenträger als eine Datenträgergruppe, die exportiert wird, wenn Sie den Befehlpvscan
ausführen, wie im folgenden Beispiel gezeigt.[root@tng3-1]#
pvscan
PV /dev/sda1 is in exported VG myvg [17.15 GB / 7.15 GB free] PV /dev/sdc1 is in exported VG myvg [17.15 GB / 15.15 GB free] PV /dev/sdd1 is in exported VG myvg [17.15 GB / 15.15 GB free] ...Beim nächsten Herunterfahren des Systems können Sie die Platten, aus denen die Datenträgergruppe besteht, entfernen und an das neue System hängen. - Wenn die Platten an das neue System gehängt werden, verwenden Sie den Befehl
vgimport
, um die Datenträgergruppe zu importieren und so den Zugriff auf sie für das neue System zu ermöglichen. - Aktivieren Sie die Datenträgergruppe mit dem Parameter
-a y
des Befehlsvgchange
. - Hängen Sie das Dateisystem ein, um es für die Verwendung freizugeben.
4.3.15. Verzeichnis für eine Datenträgergruppe neu erstellen
vgmknodes
, um ein Verzeichnis einer Datenträgergruppe und spezielle Dateien für logische Datenträger neu zu erstellen. Dieser Befehl überprüft die speziellen LVM2-Dateien im /dev
-Verzeichnis, die für aktive logische Datenträger benötigt werden. Er erstellt alle speziellen Dateien, die fehlen, und entfernt nicht verwendete Dateien.
vgmknodes
-Befehl in den vgscan
-Befehl mit einbinden, indem Sie den mknodes
-Parameter zusammen mit dem vgscan
-Befehl angeben.
4.4. Administration von logischen Datenträgern
4.4.1. Lineare logische Datenträger erstellen
lvcreate
, um einen logischen Datenträger zu erstellen. Falls Sie keinen Namen für den logischen Datenträger angeben, wird der standardmäßige Name lvol#
verwendet, wobei # die interne Nummer des logischen Datenträgers darstellt.
vg1
.
lvcreate -L 10G vg1
testlv
in der Datenträgergruppe testvg
und erstellt dabei das Blockgerät /dev/testvg/testlv
.
lvcreate -L1500 -n testlv testvg
gfslv
aus den freien Extents in der Datenträgergruppe vg0
.
lvcreate -L 50G -n gfslv vg0
-l
des lvcreate
-Befehls verwenden, um die Größe des logischen Datenträgers in Extents anzugeben. Sie können diesen Parameter außerdem für die Festlegung verwenden, wie viel Prozent der Datenträgergruppe für den logischen Datenträger verwendet werden sollen. Der folgende Befehl erstellt einen logischen Datenträger namens mylv
, der 60% des gesamten Platzes in der Datenträgergruppe testvol
einnimmt.
lvcreate -l 60%VG -n mylv testvg
-l
des lvcreate
-Befehls auch dazu verwenden, um den Prozentsatz des verbleibenden Platzes in einer Datenträgergruppe als Größe des logischen Datenträgers zu bestimmen. Der folgende Befehl erstellt einen logischen Datenträger namens yourlv
, der den gesamten nicht zugewiesenen Platz in der Datenträgergruppe testvol
verwendet.
lvcreate -l 100%FREE -n yourlv testvg
-l
des lvcreate
-Befehls verwenden, um einen logischen Datenträger, der die gesamte logische Datenträgergruppe verwendet, zu erstellen. Eine weitere Möglichkeit, einen logischen Datenträger zu erstellen, der die gesamte Datenträgergruppe verwendet, ist die Verwendung des Befehls vgdisplay
, um die "Total PE" Größe zu finden, und um diese Resultate als Eingabe für den Befehl lvcreate
zu verwenden.
mylv
, der die Datenträgergruppe namens testvg
ausfüllt.
#vgdisplay testvg | grep "Total PE"
Total PE 10230 #lvcreate -l 10230 testvg -n mylv
lvcreate
-Befehlszeile ein. Der folgende Befehl erstellt einen logischen Datenträger namens testlv
in der Datenträgergruppe testvg
, zugewiesen vom physischen Datenträger /dev/sdg1
.
lvcreate -L 1500 -ntestlv testvg /dev/sdg1
/dev/sda1
und den Extents 50 bis 124 des physischen Datenträgers /dev/sdb1
in der Datenträgergruppe testvg
.
lvcreate -l 100 -n testlv testvg /dev/sda1:0-24 /dev/sdb1:50-124
/dev/sda1
und fährt mit der Anordnung des logischen Datenträgers bei Extent 100 fort.
lvcreate -l 100 -n testlv testvg /dev/sda1:0-25:100-
inherit
(Vererbung) und wendet somit dieselbe Richtlinie an wie für die Datenträgergruppe. Diese Richtlinien können mithilfe des Befehls lvchange
geändert werden. Werfen Sie einen Blick auf Abschnitt 4.3.1, »Datenträgergruppen erstellen« für Informationen über Zuweisungsrichtlinien.
4.4.2. Striped-Datenträger erstellen
-i
des Befehls lvcreate
an. Auf diese Weise wird festgelegt, über wie viele physischen Datenträger der logische Datenträger verteilt ("striped") wird. Die Anzahl der Stripes kann die Anzahl der physischen Datenträger in der Datenträgergruppe nicht übersteigen (sofern nicht der Parameter --alloc anywhere
verwendet wird).
gfslv
und wird aus der Datenträgergruppe vg0
heraus erstellt.
lvcreate -L 50G -i2 -I64 -n gfslv vg0
stripelv
trägt und sich in der Datenträgergruppe testvg
befindet. Der Stripe nutzt die Sektoren 0-49 von /dev/sda1
und die Sektoren 50-99 von /dev/sdb1
.
# lvcreate -l 100 -i2 -nstripelv testvg /dev/sda1:0-49 /dev/sdb1:50-99
Using default stripesize 64.00 KB
Logical volume "stripelv" created
4.4.3. Gespiegelte Datenträger erstellen
Anmerkung
lvm.conf
-Datei muss richtig eingestellt sein, um Cluster-Sperren zu aktivieren. Ein Beispiel zur Erstellung eines gespiegelten Datenträgers in einem Cluster finden Sie in Abschnitt 5.5, »Erstellen eines gespiegelten logischen LVM-Datenträgers in einem Cluster«.
-m
des Befehls lvcreate
an. Wird -m1
angegeben, erstellt dies einen Mirror, der aus zwei Kopien des Dateisystems besteht: einem linearen logischen Datenträger plus einer Kopie. In gleicher Weise werden zwei Mirrors durch die Angabe von -m2
erstellt, die aus drei Kopien des Dateisystems bestehen.
mirrorlv
und wird aus der Datenträgergruppe vg0
erstellt:
lvcreate -L 50G -m1 -n mirrorlv vg0
-R
des lvcreate
-Befehls können Sie die Bereichsgröße in MB spezifizieren. Sie können die Standardgröße für Bereiche ändern, indem Sie die mirror_region_size
-Einstellung der lvm.conf
-Datei ändern.
Anmerkung
-R
-Parameter zum lvcreate
-Befehl. Ist Ihre Mirror-Größe beispielsweise 1,5 TB, können Sie -R 2
angeben. Ist Ihre Mirror-Größe 3 TB, können Sie -R 4
angeben. Für eine Mirror-Größe von 5 TB können Sie -R 8
angeben.
lvcreate -m1 -L 2T -R 2 -n mirror vol_group
--mirrorlog core
im Speicher behalten wird. Auf diese Weise wird kein extra Gerät zur Protokollierung benötigt, dies erfordert jedoch eine erneute Synchronisation des gesamten Mirrors bei jedem Neustart.
bigvg
. Der logische Datenträger hat die Bezeichnung ondiskmirvol
und besitzt einen einzelnen Mirror. Er ist 12 MB groß und behält die Protokolldatei des Mirrors im Speicher.
# lvcreate -L 12MB -m1 --mirrorlog core -n ondiskmirvol bigvg
Logical volume "ondiskmirvol" created
--alloc anywhere
-Parameter des vgcreate
-Befehls angeben. Dies kann sich nachteilig auf die Leistung auswirken, erlaubt Ihnen jedoch das Anlegen eines Mirrors, selbst wenn Sie nur über zwei zugrunde liegende Geräte verfügen.
vg0
aus nur zwei Geräten. Dieser Befehl erstellt einen 500 Megabytes großen Datenträger namens mirrorlv
in der vg0
Datenträgergruppe.
lvcreate -L 500M -m1 -n mirrorlv -alloc anywhere vg0
Anmerkung
--mirrorlog mirrored
-Parameter angeben. Der folgende Befehl erstellt einen gespiegelten logischen Datenträger aus der Datenträgergruppe bigvg
. Der logische Datenträger hat die Bezeichnung twologvol
und besitzt einen einzelnen Mirror. Der Datenträger ist 12 MB groß, sein Mirror-Protokoll wird gespiegelt, und jede Protokolldatei wird auf einem separaten Gerät bewahrt.
# lvcreate -L 12MB -m1 --mirrorlog mirrored -n twologvol bigvg
Logical volume "twologvol" created
--alloc anywhere
-Parameter des vgcreate
-Befehls angeben. Dies kann sich nachteilig auf die Leistung auswirken, erlaubt Ihnen jedoch das Anlegen eines redundanten Mirror-Protokolls, selbst wenn Sie nicht über genügend zugrunde liegende Geräte verfügen, um jedes Protokoll auf einem separaten Gerät zu den Mirror-Standbeinen zu platzieren.
nosync
verwenden, um zu signalisieren, dass eine ursprüngliche Synchronisation vom ersten Gerät aus nicht erforderlich ist.
mirrorlv
und wird aus der Datenträgergruppe vg0
heraus erstellt. Das erste Standbein des Mirrors liegt auf dem Gerät /dev/sda1
, das zweite Standbein des Mirrors befindet sich auf dem Gerät /dev/sdb1
und die Protokolldatei des Mirrors ist auf /dev/sdc1
.
lvcreate -L 500M -m1 -n mirrorlv vg0 /dev/sda1 /dev/sdb1 /dev/sdc1
mirrorlv
und wird aus der Datenträgergruppe vg0
heraus erstellt. Das erste Standbein des Mirrors befindet sich auf den Extents 0 bis 499 auf dem Gerät /dev/sda1
, das zweite Standbein des Mirrors befindet sich auf den Extents 0 bis 499 auf dem Gerät /dev/sdb1
und die Protokolldatei des Mirrors fängt auf Extent 0 des Geräts /dev/sdc1
an. Letztere sind 1 MB Extents. Falls irgendwelche der angegebenen Extents bereits zugewiesen wurden, werden sie ignoriert.
lvcreate -L 500M -m1 -n mirrorlv vg0 /dev/sda1:0-499 /dev/sdb1:0-499 /dev/sdc1:0
Anmerkung
--mirrors X
) sowie die Anzahl der Stripes (--stripes Y
) angeben, wird dadurch ein Mirror-Gerät erstellt, dessen zugrunde liegenden Geräte gestriped sind.
4.4.3.1. Ausfallrichtlinie für gespiegelte logische Datenträger
mirror_image_fault_policy
und mirror_log_fault_policy
-Parameter im activation
-Abschnitt der lvm.conf
-Datei können Sie definieren, wie ein gespiegelter logischer Datenträger sich bei einem Ausfall des Gerätes verhalten soll. Ist dieser Parameter auf remove
gesetzt, versucht das System, das fehlerhafte Gerät zu entfernen und ohne es weiterzuarbeiten. Ist dieser Parameter auf allocate
gesetzt, versucht das System, das fehlerhafte Gerät zu entfernen und Speicherplatz auf einem neuen Gerät als Ersatz für das ausgefallene Gerät zuzuweisen; diese Richtlinie verhält sich wie die remove
-Richtlinie, falls kein passendes Gerät als Ersatz zugewiesen werden kann.
mirror_log_fault_policy
-Parameter auf allocate
festgelegt. Der Einsatz dieser Richtlinie für das Protokoll ist schnell und ermöglicht das Beibehalten des Sync-Zustands über Ausfälle und Neustarts hinweg. Wenn Sie diese Richtlinie auf remove
setzen, konvertiert der Mirror beim Ausfall eines Protokollierungsgeräts zur Verwendung eines speicherinternen Protokolls und der Mirror behält seinen Sync-Zustand nicht über Ausfälle und Neustarts hinweg, so dass der gesamte Mirror neu synchronisiert werden muss.
mirror_image_fault_policy
-Parameter auf remove
festgelegt. Mit dieser Richtlinie wird der Mirror beim Ausfall eines Mirror-Images zu einem nicht-gespiegelten Gerät konvertiert, wenn es nur noch eine einzige intakte Kopie gibt. Setzen Sie diese Richtlinie auf allocate
für ein Mirror-Gerät, verlangsamt dies den Prozess, da der Mirror die Geräte neu synchronisieren muss; doch die Mirror-Charakteristiken des Geräts bleiben erhalten.
Anmerkung
mirror_log_fault_policy
-Parameter auf allocate
gesetzt ist, wird in der zweiten Stufe versucht, das ausgefallene Gerät zu ersetzen. Beachten Sie jedoch, dass es keine Garantie dafür gibt, dass in der zweiten Stufe Geräte gewählt werden, die bereits vom Mirror verwendet wurden, jedoch nicht vom Ausfall betroffen waren, wenn andere Geräte zur Verfügung stehen.
4.4.3.2. Abtrennen eines redundanten Images von einem gespiegelten logischen Datenträger
--splitmirrors
-Parameter des lvconvert
-Befehls und geben die Anzahl der abzutrennenden Images an. Sie müssen den --name
-Parameter des Befehls verwenden, um einen Namen für den neu abgetrennten logischen Datenträger zu spezifizieren.
copy
vom gespiegelten logischen Datenträger vg/lv
ab. Der neue logische Datenträger enthält zwei Mirror-Standbeine. In diesem Beispiel entscheidet LVM, welches Gerät abgetrennt werden soll.
lvconvert --splitmirrors 2 --name copy vg/lv
copy
vom gespiegelten logischen Datenträger vg/lv
ab. Der neue logische Datenträger enthält zwei Mirror-Standbeine, bestehend aus den Geräten /dev/sdc1
und /dev/sde1
.
lvconvert --splitmirrors 2 --name copy vg/lv /dev/sd[ce]1
4.4.3.3. Gespiegelte Datenträger reparieren
lvconvert --repair
-Befehl verwenden, um einen Mirror nach einem Plattenausfall zu reparieren. Dies bringt den Mirror wieder auf einen konsistenten Zustand. Der lvconvert --repair
-Befehl ist ein interaktiver Befehl, der Sie dazu auffordert anzugeben, ob das System versuchen soll, jegliche ausgefallenen Geräte zu ersetzen.
- Um die Eingabeaufforderungen zu überspringen und alle ausgefallenen Geräte zu ersetzen, geben Sie die
-y
-Option auf der Befehlszeile an. - Um die Eingabeaufforderungen zu überspringen und keine der ausgefallenen Geräte zu ersetzen, geben Sie die
-f
-Option auf der Befehlszeile an. - Um die Eingabeaufforderungen zu überspringen und dennoch verschiedene Richtlinien zur Platzierung des Mirror-Images und des Mirror-Protokolls zu spezifizieren, geben Sie den
--use-policies
-Parameter an, um die Richtlinien zum Geräteausfall zu verwenden, die von denmirror_log_fault_policy
- undmirror_device_fault_policy
-Parametern in derlvm.conf
-Datei festgelegt sind.
4.4.3.4. Konfigurationen von gespiegelten Datenträgern ändern
lvconvert
von einem gespiegelten Datenträger in einen linearen Datenträger oder von einem linearen Datenträger in einen gespiegelten Datenträger konvertieren. Mit diesem Befehl können Sie auch anderer Parameter eines vorhandenen logischen Datenträgers neu konfigurieren, wie beispielsweise corelog
.
lvconvert
wiederherstellen. Diese Prozedur wird in Abschnitt 6.3, »Wiederherstellung beim Ausfall eines LVM-Mirrors« erläutert.
vg00/lvol1
in einen gespiegelten logischen Datenträger.
lvconvert -m1 vg00/lvol1
vg00/lvol1
in einen logischen linearen Datenträger und entfernt das Standbein des Mirrors.
lvconvert -m0 vg00/lvol1
4.4.4. Snapshot-Datenträger erstellen
-s
des Befehls lvcreate
, um einen Snapshot-Datenträger zu erstellen. Ein Snapshot-Datenträger ist beschreibbar.
Anmerkung
Anmerkung
/dev/vg00/snap
trägt. Dies erstellt einen Snapshot des ursprünglichen logischen Datenträgers mit der Bezeichnung /dev/vg00/lvol1
. Falls der ursprüngliche logische Datenträger ein Dateisystem besitzt, können Sie den logischen Snapshot-Datenträger auf einem beliebigen Verzeichnis einhängen, um auf den Inhalt des Dateisystems zuzugreifen und eine Sicherung durchzuführen, während das ursprüngliche Dateisystem weiterhin aktualisiert wird.
lvcreate --size 100M --snapshot --name snap /dev/vg00/lvol1
lvdisplay
auf den ursprünglichen logischen Datenträgern eine Ausgabe, die eine Liste aller logischen Snapshot-Datenträger und ihrem Status (aktiv oder inaktiv) enthält.
/dev/new_vg/lvol0
, für den der Snapshot-Datenträger /dev/new_vg/newvgsnap
erstellt wurde.
# lvdisplay /dev/new_vg/lvol0
--- Logical volume ---
LV Name /dev/new_vg/lvol0
VG Name new_vg
LV UUID LBy1Tz-sr23-OjsI-LT03-nHLC-y8XW-EhCl78
LV Write Access read/write
LV snapshot status source of
/dev/new_vg/newvgsnap1 [active]
LV Status available
# open 0
LV Size 52.00 MB
Current LE 13
Segments 1
Allocation inherit
Read ahead sectors 0
Block device 253:2
lvs
zeigt standardmäßig den Ursprungsdatenträger und den aktuellen Prozentsatz des Snapshot-Datenträgers und wird für jeden Snapshot-Datenträger benutzt. Das folgende Beispiel zeigt die standardmäßige Ausgabe des Befehls lvs
für ein System, dass den logischen Datenträger /dev/new_vg/lvol0
umfasst, für den der Snapshot-Datenträger /dev/new_vg/newvgsnap
erstellt wurde.
# lvs
LV VG Attr LSize Origin Snap% Move Log Copy%
lvol0 new_vg owi-a- 52.00M
newvgsnap1 new_vg swi-a- 8.00M lvol0 0.20
Anmerkung
lvs
zu überwachen um sicherzustellen, dass er sich nicht auffüllt. Ein Snapshot, der 100% voll ist, ist komplett verloren, da Schreibversuche auf unveränderte Teile des Quelldatenträgers nicht möglich sind, ohne den Snapshot zu korrumpieren.
4.4.5. Snapshot-Datenträger zusammenführen
--merge
-Option des lvconvert
-Befehls verwenden, um einen Snapshot wieder mit dem ursprünglichen Datenträger zusammenzuführen. Wenn weder der ursprüngliche noch der Snapshot-Datenträger geöffnet sind, beginnt die Zusammenführung sofort. Andernfalls beginnt die Zusammenführung, sobald entweder das Original oder der Snapshot aktiviert werden und beide geschlossen sind. Das Zusammenführen eines Snapshots mit einem Original, das nicht geschlossen werden kann, wie z.B. einem Root-Dateisystem, wird verschoben, bis der originale Datenträger das nächste mal aktiviert wird. Beim Zusammenführen erhält der daraus entstehende logische Datenträger den Namen, die Minor-Nummer und die UUID des originalen Datenträgers. Während der Zusammenführung erscheinen Lese- oder Schreibvorgänge auf dem Original, als wenn diese zum Snapshot umgeleitet werden. Nach Abschluss der Zusammenführung wird der Snapshot gelöscht.
vg00/lvol1_snap
mit seinem Original zusammen.
lvconvert --merge vg00/lvol1_snap"
vg00/lvol1
, vg00/lvol2
und vg00/lvol3
alle den Tag @some_tag
. Der folgende Befehl führt diese logischen Snapshot-Datenträger der Reihe nach für alle drei Datenträger zusammen: vg00/lvol1
, dann vg00/lvol2
, dann vg00/lvol3
. Wäre die --background
-Option angegeben, würden alle Zusammenführungen der logischen Datenträger gleichzeitig starten.
lvconvert --merge @some_tag"
lvconvert
(8) für weitere Informationen über den lvconvert --merge
-Befehl.
4.4.6. Persistente Gerätenummern
lvcreate
und lvchange
angeben und folgende Parameter benutzen:
--persistent y --major major --minor minor
fsid
in der exports-Datei das Setzen einer persistenten Gerätenummer innerhalb von LVM überflüssig machen.
4.4.7. Größe von Logischen Datenträger anpassen
lvreduce
, um die Größe eines logischen Datenträgers zu ändern. Ist auf dem logischen Datenträger ein Dateisystem vorhanden, stellen Sie sicher, dass das Dateisystem zuerst verkleinert wird (Sie können auch das LVM-GUI verwenden), so dass der logische Datenträger immer mindestens so groß ist, wie das Dateisystem es erwartet.
lvol1
in der Datenträgergruppe vg00
um 3 logische Extents.
lvreduce -l -3 vg00/lvol1
4.4.8. Parameter einer logischen Datenträgergruppe ändern
lvchange
, um die Parameter eines logischen Datenträgers zu verändern. Werfen Sie einen Blick auf die Handbuchseite (8) des Befehls lvchange
für eine Auflistung der Parameter, die Sie ändern können.
lvchange
können Sie logische Datenträger aktivieren und deaktivieren. Um alle logischen Datenträger in einer Datenträgergruppe gleichzeitig zu aktivieren bzw. zu deaktivieren, verwenden Sie den Befehl vgchange
, wie in Abschnitt 4.3.7, »Parameter einer Datenträgergruppe verändern« beschrieben.
lvol1
in der Datenträgergruppe vg00
in schreibgeschützt.
lvchange -pr vg00/lvol1
4.4.9. Logische Datenträger umbenennen
lvrename
, um einen bestehenden logischen Datenträger umzubenennen.
lvold
in der Datenträgergruppe lvold
in lvnew
um.
lvrename /dev/vg02/lvold /dev/vg02/lvnew
lvrename vg02 lvold lvnew
4.4.10. Logische Datenträger entfernen
lvremove
, um inaktive logische Datenträger zu entfernen. Bevor ein logischer Datenträger entfernt werden kann, muss er ausgehängt werden. In einer Cluster-Umgebung muss ein logischer Datenträger zusätzlich noch deaktiviert werden, bevor er entfernt werden kann.
/dev/testvg/testlv
aus der Datenträgergruppe testvg
. Beachten Sie, dass in diesem Fall der logische Datenträger nicht deaktiviert wurde.
[root@tng3-1 lvm]#lvremove /dev/testvg/testlv
Do you really want to remove active logical volume "testlv"? [y/n]:y
Logical volume "testlv" successfully removed
lvchange -an
deaktivieren, bevor sie ihn entfernen, woraufhin Sie den Prompt, der verifiziert, ob Sie einen aktiven logischen Datenträger entfernen möchten, nicht sehen werden.
4.4.11. Logische Datenträger anzeigen
lvs
, lvdisplay
und lvscan
.
lvs
liefert Informationen zu einem logischen Datenträger in einer konfigurierbaren Form, wobei eine Zeile pro logischem Datenträger angezeigt wird. Der lvs
-Befehl bietet ein hohes Maß an Formatkontrolle und ist nützlich für das Skripting. Werfen Sie einen Blick auf Abschnitt 4.8, »Angepasste Berichterstattung für LVM« für Informationen zur Verwendung des Befehls lvs
zur Anpassung Ihrer Ausgabe.
lvdisplay
zeigt Eigenschaften (wie Größe, Layout und Mapping) in einem festen Format an.
lvol2
in vg00
an. Falls logische Snapshot-Datenträger für diesen originalen logischen Datenträger erstellt wurden, zeigt dieser Befehl auch eine Liste aller logischen Snapshot-Datenträger und ihren Status (aktiv oder inaktiv) an.
lvdisplay -v /dev/vg00/lvol2
lvscan
sucht das System nach allen logischen Datenträgern ab und listet diese auf, wie in folgendem Beispiel.
# lvscan
ACTIVE '/dev/vg0/gfslv' [1.46 GB] inherit
4.4.12. Logische Datenträger vergrößern
lvextend
, um die Größe eines logischen Datenträgers zu erweitern.
/dev/myvg/homevol
auf 12 Gigabytes.
# lvextend -L12G /dev/myvg/homevol
lvextend -- extending logical volume "/dev/myvg/homevol" to 12 GB
lvextend -- doing automatic backup of volume group "myvg"
lvextend -- logical volume "/dev/myvg/homevol" successfully extended
/dev/myvg/homevol
hinzu.
# lvextend -L+1G /dev/myvg/homevol
lvextend -- extending logical volume "/dev/myvg/homevol" to 13 GB
lvextend -- doing automatic backup of volume group "myvg"
lvextend -- logical volume "/dev/myvg/homevol" successfully extended
lvcreate
können Sie mithilfe des Parameters -l
des Befehls lvextend
die Anzahl der Extents angeben, um die der logische Datenträger vergrößert werden soll. Sie können diesen Parameter auch dazu verwenden, um einen Prozentsatz der Datenträgergruppe oder einen Prozentsatz des verbleibenden freien Platzes in der Datenträgergruppe anzugeben. Der folgende Befehl erweitert den logischen Datenträger mit der Bezeichnung testlv
so, dass der gesamte nicht zugewiesene Platz in der Datenträgergruppe myvg
aufgefüllt wird.
[root@tng3-1 ~]# lvextend -l +100%FREE /dev/myvg/testlv
Extending logical volume testlv to 68.59 GB
Logical volume testlv successfully resized
4.4.12.1. Striped-Datenträger vergrößern
vg
vor, die aus zwei zugrunde liegenden physischen Datenträgern besteht, wie mit dem folgenden Befehl vgs
dargestellt.
# vgs
VG #PV #LV #SN Attr VSize VFree
vg 2 0 0 wz--n- 271.31G 271.31G
#lvcreate -n stripe1 -L 271.31G -i 2 vg
Using default stripesize 64.00 KB Rounding up size to full physical extent 271.31 GB Logical volume "stripe1" created #lvs -a -o +devices
LV VG Attr LSize Origin Snap% Move Log Copy% Devices stripe1 vg -wi-a- 271.31G /dev/sda1(0),/dev/sdb1(0)
# vgs
VG #PV #LV #SN Attr VSize VFree
vg 2 1 0 wz--n- 271.31G 0
# vgextend vg /dev/sdc1 Volume group "vg" successfully extended # vgs VG #PV #LV #SN Attr VSize VFree vg 3 1 0 wz--n- 406.97G 135.66G
# lvextend vg/stripe1 -L 406G
Using stripesize of last segment 64.00 KB
Extending logical volume stripe1 to 406.00 GB
Insufficient suitable allocatable extents for logical volume stripe1: 34480
more required
#vgextend vg /dev/sdd1
Volume group "vg" successfully extended #vgs
VG #PV #LV #SN Attr VSize VFree vg 4 1 0 wz--n- 542.62G 271.31G #lvextend vg/stripe1 -L 542G
Using stripesize of last segment 64.00 KB Extending logical volume stripe1 to 542.00 GB Logical volume stripe1 successfully resized
lvextend
fehlschlägt.
#lvextend vg/stripe1 -L 406G
Using stripesize of last segment 64.00 KB Extending logical volume stripe1 to 406.00 GB Insufficient suitable allocatable extents for logical volume stripe1: 34480 more required #lvextend -i1 -l+100%FREE vg/stripe1
4.4.12.2. Erweitern eines logischen Datenträgers mit der cling
-Zuweisungsrichtlinie
--alloc cling
-Option des lvextend
-Befehls verwenden, um die cling
-Zuweisungsrichtlinie zu spezifizieren. Diese Richtlinie wählt Speicherplatz auf denselben physischen Datenträgern, auf denen sich das letzte Segment des vorhandenen logischen Datenträgers befindet. Falls die physischen Datenträger nicht ausreichend Platz bieten und eine Liste mit Tags in der lvm.conf
-Datei definiert ist, überprüft LVM, ob diese Tags mit den physischen Datenträgern verknüpft sind und versucht, diese physischen Datenträger-Tags zwischen den vorhandenen und den neuen Extents abzugleichen.
lvm.conf
-Datei einfügen:
cling_tag_list = [ "@site1", "@site2" ]
lvm.conf
-Datei verändert und enthält nun die folgende Zeile:
cling_tag_list = [ "@A", "@B" ]
taft
erstellt, welche die folgenden physischen Datenträger umfasst: /dev/sdb1
, /dev/sdc1
, /dev/sdd1
, /dev/sde1
, /dev/sdf1
, /dev/sdg1
und /dev/sdh1
. Diesen physischen Datenträgern wurden die Tags A
, B
und C
zugewiesen. Das Beispiel verwendet den C
-Tag zwar nicht, doch veranschaulicht dies, dass LVM die Tags nutzt, um die physischen Datenträger für die Mirror-Standbeine auszuwählen.
[root@taft-03 ~]# pvs -a -o +pv_tags /dev/sd[bcdefgh]1
PV VG Fmt Attr PSize PFree PV Tags
/dev/sdb1 taft lvm2 a- 135.66g 135.66g A
/dev/sdc1 taft lvm2 a- 135.66g 135.66g B
/dev/sdd1 taft lvm2 a- 135.66g 135.66g B
/dev/sde1 taft lvm2 a- 135.66g 135.66g C
/dev/sdf1 taft lvm2 a- 135.66g 135.66g C
/dev/sdg1 taft lvm2 a- 135.66g 135.66g A
/dev/sdh1 taft lvm2 a- 135.66g 135.66g A
taft
.
[root@taft-03 ~]# lvcreate -m 1 -n mirror --nosync -L 100G taft
[root@taft-03 ~]# lvs -a -o +devices
LV VG Attr LSize Log Copy% Devices
mirror taft Mwi-a- 100.00g mirror_mlog 100.00
mirror_mimage_0(0),mirror_mimage_1(0)
[mirror_mimage_0] taft iwi-ao 100.00g /dev/sdb1(0)
[mirror_mimage_1] taft iwi-ao 100.00g /dev/sdc1(0)
[mirror_mlog] taft lwi-ao 4.00m /dev/sdh1(0)
cling
-Zuweisungsrichtlinie verwendet wird um anzugeben, dass die Mirror-Standbeine unter Verwendung eines physischen Datenträgers mit demselben Tag erweitert werden sollen.
[root@taft-03 ~]# lvextend --alloc cling -L +100G taft/mirror
Extending 2 mirror images.
Extending logical volume mirror to 200.00 GiB
Logical volume mirror successfully resized
C
ignoriert wurden.
[root@taft-03 ~]# lvs -a -o +devices
LV VG Attr LSize Log Copy% Devices
mirror taft Mwi-a- 200.00g mirror_mlog 50.16
mirror_mimage_0(0),mirror_mimage_1(0)
[mirror_mimage_0] taft Iwi-ao 200.00g /dev/sdb1(0)
[mirror_mimage_0] taft Iwi-ao 200.00g /dev/sdg1(0)
[mirror_mimage_1] taft Iwi-ao 200.00g /dev/sdc1(0)
[mirror_mimage_1] taft Iwi-ao 200.00g /dev/sdd1(0)
[mirror_mlog] taft lwi-ao 4.00m /dev/sdh1(0)
4.4.13. Logische Datenträger verkleinern
lvreduce
können Sie dann den Datenträger verkleinern. Hängen Sie das Dateisystem nach der Verkleinerung des Datenträgers wieder ein.
Warnung
lvol1
in der Datenträgergruppe vg00
um 3 logische Extents.
lvreduce -l -3 vg00/lvol1
4.5. LVM-Geräte-Scans mit Filtern kontrollieren
vgscan
ausgeführt, um die Blockgeräte auf dem System nach LVM-Labels abzusuchen, und um daraufhin zu ermitteln, welche davon physische Datenträger sind und schließlich die Metadaten zu lesen und eine Liste von Datenträgergruppen zu erstellen. Die Namen der physischen Datenträger werden in der Cache-Datei /etc/lvm/.cache
von jedem Knoten im System gespeichert. Nachfolgende Befehle können diese Datei lesen, um ein erneutes Scannen zu vermeiden.
lvm.conf
einrichten, können Sie kontrollieren, welche Geräte LVM absucht. Die Filter in der lvm.conf
-Datei bestehen aus einer Reihe einfacher regulärer Ausdrücke, die auf die Gerätenamen im /dev
-Verzeichnis anwendet werden um zu entscheiden, ob das jeweils gefundene Blockgerät akzeptiert oder zurückgewiesen werden soll.
a/loop/
beispielsweise a/.*loop.*/
und würde auf /dev/solooperation/lvol1
zutreffen.
filter = [ "a/.*/" ]
filter = [ "r|/dev/cdrom|" ]
filter = [ "a/loop.*/", "r/.*/" ]
filter =[ "a|loop.*|", "a|/dev/hd.*|", "r|.*|" ]
filter = [ "a|^/dev/hda8$|", "r/.*/" ]
lvm.conf
für weitere Informationen zur lvm.conf
-Datei.
4.6. Online-Datenumzug
pvmove
können Sie im laufenden Betrieb des Systems Daten verschieben.
pvmove
teilt die Daten so auf, dass sie in Abschnitte verteilt werden und erstellt einen temporären Mirror, um jeden Abschnitt zu verschieben. Werfen Sie einen Blick auf die Handbuchseite (8) von pvmove
für weitere Informationen zur Anwendung von pvmove
.
/dev/sdc1
auf andere freie physische Datenträger in der Datenträgergruppe:
pvmove /dev/sdc1
MyLV
.
pvmove -n MyLV /dev/sdc1
pvmove
lange dauern kann, sollten Sie diesen ggf. im Hintergrund ausführen, um die Aktualisierung der Fortschrittsanzeige im Vordergrund zu vermeiden. Der folgende Befehl verschiebt alle für den physischen Datenträger /dev/sdc1
zugewiesenen Extents im Hintergrund nach /dev/sdf1
.
pvmove -b /dev/sdc1 /dev/sdf1
pvmove -i5 /dev/sdd1
4.7. Logische Datenträger auf einzelnen Knoten in einem Cluster aktivieren
lvchange -aey
, um einen logischen Datenträger exklusiv auf einem Knoten zu aktivieren. Alternativ können Sie lvchange -aly
verwenden, um logische Datenträger nur auf dem lokalen Knoten zu aktivieren, jedoch nicht ausschließlich. Sie können diese später gleichzeitig auf zusätzlichen Knoten aktivieren.
4.8. Angepasste Berichterstattung für LVM
pvs
, lvs
, und vgs
können Sie präzise und anpassbare Berichte von LVM-Objekten erstellen. Die von diesen Befehlen erstellten Berichte umfassen eine Ausgabezeile für jedes Objekt. Jede Zeile enthält eine sortierte Felderliste von Eigenschaften dieses Objekts. Es gibt fünf Möglichkeiten zur Auswahl der anzuzeigenden Objekte: pro physischem Datenträger, pro Datenträgergruppe, pro logischem Datenträger, pro physischem Datenträgersegment oder pro logischem Datenträgersegment.
- Eine Zusammenfassung der Befehlsparameter, die Sie zur Formatkontrolle des erstellten Berichts verwenden können.
- Eine Liste der Felder, die Sie für jedes LVM-Objekt auswählen können.
- Eine Zusammenfassung der Befehlsparameter, mit denen Sie den erstellten Bericht sortieren können.
- Anweisungen zur Angabe der Einheiten des Berichts.
4.8.1. Formatkontrolle
pvs
, lvs
, oder vgs
verwenden, beeinflusst dies die standardmäßig angezeigten Felder und die Sortierungsreihenfolge. Sie können die Ausgabe dieser Befehle mit den folgenden Parametern steuern:
- Mithilfe des Parameters
-o
können Sie ändern, welche Felder zusätzlich zu den Standardfeldern angezeigt werden sollen. Nachfolgende Ausgabe ist die Standardausgabe für den Befehlpvs
(der Informationen über physische Datenträger anzeigt).#
pvs
PV VG Fmt Attr PSize PFree /dev/sdb1 new_vg lvm2 a- 17.14G 17.14G /dev/sdc1 new_vg lvm2 a- 17.14G 17.09G /dev/sdd1 new_vg lvm2 a- 17.14G 17.14GMit dem folgenden Befehl können Sie nur den Namen und die Größe eines physischen Datenträgers anzeigen.#
pvs -o pv_name,pv_size
PV PSize /dev/sdb1 17.14G /dev/sdc1 17.14G /dev/sdd1 17.14G - Mit dem Pluszeichen (+) können Sie ein Feld zur Ausgabe hinzufügen. Dies wird in Kombination mit dem Parameter "-o" verwendet.Das folgende Beispiel zeigt die UUID des physischen Datenträgers zusätzlich zu den Standardfeldern an.
#
pvs -o +pv_uuid
PV VG Fmt Attr PSize PFree PV UUID /dev/sdb1 new_vg lvm2 a- 17.14G 17.14G onFF2w-1fLC-ughJ-D9eB-M7iv-6XqA-dqGeXY /dev/sdc1 new_vg lvm2 a- 17.14G 17.09G Joqlch-yWSj-kuEn-IdwM-01S9-X08M-mcpsVe /dev/sdd1 new_vg lvm2 a- 17.14G 17.14G yvfvZK-Cf31-j75k-dECm-0RZ3-0dGW-UqkCS - Das Hinzufügen des Parameters
-v
zu einem Befehl umfasst einige zusätzliche Felder. Der Befehlpvs -v
zeigt beispielsweise die FelderDevSize
undPV UUID
zusätzlich zu den Standardfeldern an.#
pvs -v
Scanning for physical volume names PV VG Fmt Attr PSize PFree DevSize PV UUID /dev/sdb1 new_vg lvm2 a- 17.14G 17.14G 17.14G onFF2w-1fLC-ughJ-D9eB-M7iv-6XqA-dqGeXY /dev/sdc1 new_vg lvm2 a- 17.14G 17.09G 17.14G Joqlch-yWSj-kuEn-IdwM-01S9-XO8M-mcpsVe /dev/sdd1 new_vg lvm2 a- 17.14G 17.14G 17.14G yvfvZK-Cf31-j75k-dECm-0RZ3-0dGW-tUqkCS - Der Parameter
--noheadings
unterdrückt die Kopfzeile. Dies kann beim Schreiben von Skripten nützlich sein.Im folgenden Beispiel wird der Parameter--noheadings
in Kombination mit dem Parameterpv_name
verwendet und so eine Liste aller physischen Datenträger generiert.#
pvs --noheadings -o pv_name
/dev/sdb1 /dev/sdc1 /dev/sdd1 - Der Parameter
--separator separator
verwendet separator, um jedes Feld zu trennen.Im folgenden Beispiel werden die standardmäßigen Ausgabefelder des Befehlspvs
mit einem Gleichheitszeichen (=) getrennt.#
pvs --separator =
PV=VG=Fmt=Attr=PSize=PFree /dev/sdb1=new_vg=lvm2=a-=17.14G=17.14G /dev/sdc1=new_vg=lvm2=a-=17.14G=17.09G /dev/sdd1=new_vg=lvm2=a-=17.14G=17.14GUm die Felder bei der Verwendung des Parametersseparator
auszurichten, verwenden Sie den Parameterseparator
in Verbindung mit dem Parameter--aligned
.#
pvs --separator = --aligned
PV =VG =Fmt =Attr=PSize =PFree /dev/sdb1 =new_vg=lvm2=a- =17.14G=17.14G /dev/sdc1 =new_vg=lvm2=a- =17.14G=17.09G /dev/sdd1 =new_vg=lvm2=a- =17.14G=17.14G
-P
der Befehle lvs
oder vgs
verwenden, um Informationen über einen ausgefallenen Datenträger anzuzeigen, der andernfalls nicht in der Ausgabe erscheinen würde. Werfen Sie einen Blick auf Abschnitt 6.2, »Anzeigen von Informationen auf ausgefallenen Geräten« für Informationen zu der Ausgabe, die dieser Parameter erstellt.
pvs
, vgs
und lvs
für eine komplette Liste der Anzeigeparameter.
# vgs -o +pv_name
VG #PV #LV #SN Attr VSize VFree PV
new_vg 3 1 0 wz--n- 51.42G 51.37G /dev/sdc1
new_vg 3 1 0 wz--n- 51.42G 51.37G /dev/sdd1
new_vg 3 1 0 wz--n- 51.42G 51.37G /dev/sdb1
4.8.2. Objektauswahl
pvs
, vgs
und lvs
anzeigen können, auflistet.
pvs
bedeutet name
beispielsweise pv_name
, jedoch wird beim Befehl vgs
name
als vg_name
interpretiert.
pvs -o pv_free
.
# pvs -o +free
PFree
17.14G
17.09G
17.14G
4.8.2.1. Der pvs-Befehl
pvs
zusammen mit dem Feldnamen (wie er in der Kopfanzeige erscheint) und einer Beschreibung des Feldes auf.
Parameter | Kopfzeile | Beschreibung |
---|---|---|
dev_size | DevSize | Die Größe des zugrunde liegenden Geräts, auf dem der physische Datenträger erstellt wurde |
pe_start | 1st PE | Abstand bis zum Anfang des ersten Extents auf dem zugrunde liegenden Gerät |
pv_attr | Attr | Status des physischen Datenträgers: (a)llocatable oder e(x)ported |
pv_fmt | Fmt | Das Format der Metadaten des physischen Datenträgers (lvm2 oder lvm1 ) |
pv_free | PFree | Der verbleibende freie Platz auf dem physischen Datenträger |
pv_name | PV | Der Name des physischen Datenträgers |
pv_pe_alloc_count | Alloc | Anzahl der verwendeten physischen Extents |
pv_pe_count | PE | Anzahl der physischen Extents |
pvseg_size | SSize | Die Segmentgröße des physischen Datenträgers |
pvseg_start | Start | Das physische Anfangs-Extent des physischen Datenträgersegments |
pv_size | PSize | Die Größe des physischen Datenträgers |
pv_tags | PV Tags | An den physischen Datenträger angehängte LVM-Tags |
pv_used | Used | Die Menge an Platz, die derzeit auf dem physischen Datenträger verwendet wird |
pv_uuid | PV UUID | Die UUID des physischen Datenträgers |
pvs
zeigt standardmäßig die folgenden Felder an: pv_name
, vg_name
, pv_fmt
, pv_attr
, pv_size
, pv_free
. Die Anzeige wird nach pv_name
sortiert.
# pvs
PV VG Fmt Attr PSize PFree
/dev/sdb1 new_vg lvm2 a- 17.14G 17.14G
/dev/sdc1 new_vg lvm2 a- 17.14G 17.09G
/dev/sdd1 new_vg lvm2 a- 17.14G 17.13G
-v
zusammen mit dem Befehl pvs
werden die folgenden Felder zu der Standardanzeige hinzugefügt: dev_size
, pv_uuid
.
# pvs -v
Scanning for physical volume names
PV VG Fmt Attr PSize PFree DevSize PV UUID
/dev/sdb1 new_vg lvm2 a- 17.14G 17.14G 17.14G onFF2w-1fLC-ughJ-D9eB-M7iv-6XqA-dqGeXY
/dev/sdc1 new_vg lvm2 a- 17.14G 17.09G 17.14G Joqlch-yWSj-kuEn-IdwM-01S9-XO8M-mcpsVe
/dev/sdd1 new_vg lvm2 a- 17.14G 17.13G 17.14G yvfvZK-Cf31-j75k-dECm-0RZ3-0dGW-tUqkCS
--segments
des Befehls pvs
können Sie Informationen über jedes physische Datenträgersegment anzeigen. Ein Segment ist eine Gruppe von Extents. Eine Segmentanzeige kann nützlich sein, wenn Sie sehen möchten, ob Ihr logischer Datenträger fragmentiert ist.
pvs --segments
zeigt standardmäßig die folgenden Felder an: pv_name
, vg_name
, pv_fmt
, pv_attr
, pv_size
, pv_free
, pvseg_start
, pvseg_size
. Die Anzeige wird innerhalb des physischen Datenträgers nach pv_name
und pvseg_size
sortiert.
# pvs --segments
PV VG Fmt Attr PSize PFree Start SSize
/dev/hda2 VolGroup00 lvm2 a- 37.16G 32.00M 0 1172
/dev/hda2 VolGroup00 lvm2 a- 37.16G 32.00M 1172 16
/dev/hda2 VolGroup00 lvm2 a- 37.16G 32.00M 1188 1
/dev/sda1 vg lvm2 a- 17.14G 16.75G 0 26
/dev/sda1 vg lvm2 a- 17.14G 16.75G 26 24
/dev/sda1 vg lvm2 a- 17.14G 16.75G 50 26
/dev/sda1 vg lvm2 a- 17.14G 16.75G 76 24
/dev/sda1 vg lvm2 a- 17.14G 16.75G 100 26
/dev/sda1 vg lvm2 a- 17.14G 16.75G 126 24
/dev/sda1 vg lvm2 a- 17.14G 16.75G 150 22
/dev/sda1 vg lvm2 a- 17.14G 16.75G 172 4217
/dev/sdb1 vg lvm2 a- 17.14G 17.14G 0 4389
/dev/sdc1 vg lvm2 a- 17.14G 17.14G 0 4389
/dev/sdd1 vg lvm2 a- 17.14G 17.14G 0 4389
/dev/sde1 vg lvm2 a- 17.14G 17.14G 0 4389
/dev/sdf1 vg lvm2 a- 17.14G 17.14G 0 4389
/dev/sdg1 vg lvm2 a- 17.14G 17.14G 0 4389
pvs -a
können Sie nachprüfen, welche Geräte, die von LVM erkannt wurden, nicht als physische LVM-Datenträger initialisiert wurden.
# pvs -a
PV VG Fmt Attr PSize PFree
/dev/VolGroup00/LogVol01 -- 0 0
/dev/new_vg/lvol0 -- 0 0
/dev/ram -- 0 0
/dev/ram0 -- 0 0
/dev/ram2 -- 0 0
/dev/ram3 -- 0 0
/dev/ram4 -- 0 0
/dev/ram5 -- 0 0
/dev/ram6 -- 0 0
/dev/root -- 0 0
/dev/sda -- 0 0
/dev/sdb -- 0 0
/dev/sdb1 new_vg lvm2 a- 17.14G 17.14G
/dev/sdc -- 0 0
/dev/sdc1 new_vg lvm2 a- 17.14G 17.09G
/dev/sdd -- 0 0
/dev/sdd1 new_vg lvm2 a- 17.14G 17.14G
4.8.2.2. Der vgs-Befehl
vgs
zusammen mit dem Feldnamen (wie er in der Kopfanzeige erscheint) und einer Beschreibung des Feldes auf.
Parameter | Kopfzeile | Beschreibung |
---|---|---|
lv_count | #LV | Die Anzahl der logischen Datenträger, die die Datenträgergruppe enthält |
max_lv | MaxLV | Die maximale Anzahl logischer Datenträger, die in der Datenträgergruppe erlaubt sind (0 falls unbegrenzt) |
max_pv | MaxPV | Die maximale Anzahl physischer Datenträger, die in der Datenträgergruppe erlaubt sind (0 falls unbegrenzt) |
pv_count | #PV | Die Anzahl der physischen Datenträger, die die Datenträgergruppe definieren |
snap_count | #SN | Die Anzahl der Snapshots, die die Datenträgergruppe enthält |
vg_attr | Attr | Status der Datenträgergruppe: (w)riteable, (r)eadonly, resi(z)eable, e(x)ported, (p)artial und (c)lustered. |
vg_extent_count | #Ext | Die Anzahl der physischen Extents in der Datenträgergruppe |
vg_extent_size | Ext | Die Größe der physischen Extents in der Datenträgergruppe |
vg_fmt | Fmt | Das Format der Metadaten der Datenträgergruppe (lvm2 or lvm1 ) |
vg_free | VFree | Die Größe des verbleibenden freien Platzes in der Datenträgergruppe |
vg_free_count | Free | Anzahl der freien physischen Extents in der Datenträgergruppe |
vg_name | VG | Der Name der Datenträgergruppe |
vg_seqno | Seq | Die Revisionsnummer der Datenträgergruppe |
vg_size | VSize | Die Größe der Datenträgergruppe |
vg_sysid | SYS ID | LVM1 System-ID |
vg_tags | VG Tags | LVM-Tags, die an die Datenträgergruppe angefügt sind |
vg_uuid | VG UUID | Die UUID der Datenträgergruppe |
vgs
zeigt standardmäßig die folgenden Felder an: vg_name
, pv_count
, lv_count
, snap_count
, vg_attr
, vg_size
, vg_free
. Die Anzeige wird nach vg_name
sortiert.
# vgs
VG #PV #LV #SN Attr VSize VFree
new_vg 3 1 1 wz--n- 51.42G 51.36G
-v
zusammen mit dem Befehl vgs
werden die folgenden Felder zur Standardanzeige hinzugefügt: vg_extent_size
, vg_uuid
.
# vgs -v
Finding all volume groups
Finding volume group "new_vg"
VG Attr Ext #PV #LV #SN VSize VFree VG UUID
new_vg wz--n- 4.00M 3 1 1 51.42G 51.36G jxQJ0a-ZKk0-OpMO-0118-nlwO-wwqd-fD5D32
4.8.2.3. Der lvs-Befehl
lvs
zusammen mit dem Feldnamen (wie er in der Kopfanzeige erscheint) und einer Beschreibung des Feldes auf.
Parameter | Kopfzeile | Beschreibung | ||||||
---|---|---|---|---|---|---|---|---|
| Chunk | Größe einer Einheit in einem Snapshot-Datenträger | ||||||
copy_percent | Copy% | Der Prozentsatz der Synchronisation eines gespiegelten logischen Datenträgers. Dies wird auch verwendet, wenn physische Extents mit dem Befehl pv_move verschoben werden | ||||||
devices | Devices | Die zugrunde liegenden Geräte, aus dem der logische Datenträger besteht: die physischen und logischen Datenträger und der Anfang der physischen und logischen Extents | ||||||
lv_attr | Attr | Der Status des logischen Datenträgers. Die Attribut-Bits des logischen Datenträgers lauten wie folgt:
| ||||||
lv_kernel_major | KMaj | Tatsächliche Major-Gerätenummer des logischen Datenträgers (-1 falls inaktiv) | ||||||
lv_kernel_minor | KMIN | Tatsächliche Minor-Gerätenummer des logischen Datenträgers (-1 falls inaktiv) | ||||||
lv_major | Maj | Die persistente Major-Gerätenummer des logischen Datenträgers (-1, falls nicht angegeben) | ||||||
lv_minor | Min | Die persistente Minor-Gerätenummer des logischen Datenträgers (-1, falls nicht angegeben) | ||||||
lv_name | LV | Der Name des logischen Datenträgers | ||||||
lv_size | LSize | Die Größe des logischen Datenträgers | ||||||
lv_tags | LV Tags | An den logischen Datenträger angehängte LVM-Tags | ||||||
lv_uuid | LV UUID | Die UUID des logischen Datenträgers | ||||||
mirror_log | Log | Gerät, auf dem sich die gespiegelte Protokolldatei befindet | ||||||
modules | Modules | Entsprechendes Kernel Device-Mapper-Ziel, das für die Verwendung dieses logischen Datenträgers benötigt wird | ||||||
move_pv | Move | Physischer Quell-Datenträger eines temporären logischen Datenträgers, der mit dem Befehl pvmove erstellt wurde | ||||||
origin | Origin | Das ursprüngliche Gerät eines Snapshot-Datenträgers | ||||||
| Region | Die Größe des Elements eines gespiegelten logischen Datenträgers | ||||||
seg_count | #Seg | Die Anzahl der Segmente im logischen Datenträger | ||||||
seg_size | SSize | Die Größe der Segmente im logischen Datenträger | ||||||
seg_start | Start | Beginn des Segments auf dem logischen Datenträger | ||||||
seg_tags | Seg Tags | An die Segmente des logischen Datenträger angehängte LVM-Tags | ||||||
segtype | Typ | Der Segmenttyp eines logischen Datenträgers (zum Beispiel: mirror, striped, linear) | ||||||
snap_percent | Snap% | Aktueller Prozentsatz eines Snapshot-Datenträgers, der verwendet wird | ||||||
stripes | #Str | Anzahl der Stripes oder Mirrors auf einem logischen Datenträger | ||||||
| Stripe | Größe einer Einheit des Stripes auf einem logischen Striped-Datenträger |
lvs
zeigt standardmäßig die folgenden Felder an: lv_name
, vg_name
, lv_attr
, lv_size
, origin
, snap_percent
, move_pv
, mirror_log
, copy_percent
. Die Standardanzeige wird innerhalb der Datenträgergruppe nach vg_name
und lv_name
sortiert.
# lvs
LV VG Attr LSize Origin Snap% Move Log Copy%
lvol0 new_vg owi-a- 52.00M
newvgsnap1 new_vg swi-a- 8.00M lvol0 0.20
-v
zusammen mit dem Befehl lvs
werden die folgenden Felder zu der Standardanzeige hinzugefügt: seg_count
, lv_major
, lv_minor
, lv_kernel_major
, lv_kernel_minor
, lv_uuid
.
# lvs -v
Finding all logical volumes
LV VG #Seg Attr LSize Maj Min KMaj KMin Origin Snap% Move Copy% Log LV UUID
lvol0 new_vg 1 owi-a- 52.00M -1 -1 253 3 LBy1Tz-sr23-OjsI-LT03-nHLC-y8XW-EhCl78
newvgsnap1 new_vg 1 swi-a- 8.00M -1 -1 253 5 lvol0 0.20 1ye1OU-1cIu-o79k-20h2-ZGF0-qCJm-CfbsIx
--segments
des Befehls lvs
können Sie Informationen mit standardmäßigen Spalten anzeigen, die die Segmentinformationen hervorheben. Bei der Verwendung des Parameters segments
ist das Präfix seg
optional. Der Befehl lvs --segments
zeigt standardmäßig die folgenden Felder an: lv_name
, vg_name
, lv_attr
, stripes
, segtype
, seg_size
. Die Standardanzeige wird innerhalb der Datenträgergruppe nach vg_name
, lv_name
und innerhalb des logischen Datenträgers nach seg_start
sortiert. Sind die logischen Datenträger fragmentiert, würde die Ausgabe dieses Befehls dies wiedergeben.
# lvs --segments
LV VG Attr #Str Type SSize
LogVol00 VolGroup00 -wi-ao 1 linear 36.62G
LogVol01 VolGroup00 -wi-ao 1 linear 512.00M
lv vg -wi-a- 1 linear 104.00M
lv vg -wi-a- 1 linear 104.00M
lv vg -wi-a- 1 linear 104.00M
lv vg -wi-a- 1 linear 88.00M
-v
mit dem Befehl lvs --segments
verwendet, werden die folgenden Felder zu der Standardanzeige hinzugefügt: seg_start
, stripesize
, chunksize
.
# lvs -v --segments
Finding all logical volumes
LV VG Attr Start SSize #Str Type Stripe Chunk
lvol0 new_vg owi-a- 0 52.00M 1 linear 0 0
newvgsnap1 new_vg swi-a- 0 8.00M 1 linear 0 8.00K
lvs
auf einem System mit einem logischen Datenträger, gefolgt von der Ausgabe des Befehls lvs
zusammen mit dem Parameter segments
.
#lvs
LV VG Attr LSize Origin Snap% Move Log Copy% lvol0 new_vg -wi-a- 52.00M #lvs --segments
LV VG Attr #Str Type SSize lvol0 new_vg -wi-a- 1 linear 52.00M
4.8.3. LVM-Berichte sortieren
lvs
, vgs
oder pvs
intern generiert und gespeichert werden, bevor sie sortiert und Spalten korrekt ausgerichtet werden können. Mithilfe des Parameters --unbuffered
können Sie die unsortierte Ausgabe im Moment der Generierung bereits anzeigen.
-O
von einem beliebigen Befehl zum Erstellen von Berichten, um eine alternative Anordnungsliste der zu sortierenden Spalten anzugeben. Es ist nicht notwendig, diese Felder innerhalb der Ausgabe selbst einzubinden.
pvs
, die den Namen, die Größe und den freien Platz des physischen Datenträgers anzeigt.
# pvs -o pv_name,pv_size,pv_free
PV PSize PFree
/dev/sdb1 17.14G 17.14G
/dev/sdc1 17.14G 17.09G
/dev/sdd1 17.14G 17.14G
# pvs -o pv_name,pv_size,pv_free -O pv_free
PV PSize PFree
/dev/sdc1 17.14G 17.09G
/dev/sdd1 17.14G 17.14G
/dev/sdb1 17.14G 17.14G
# pvs -o pv_name,pv_size -O pv_free
PV PSize
/dev/sdc1 17.14G
/dev/sdd1 17.14G
/dev/sdb1 17.14G
-
Zeichen vor dem Feld ein, das Sie nach dem Parameter -O
eingeben.
# pvs -o pv_name,pv_size,pv_free -O -pv_free
PV PSize PFree
/dev/sdd1 17.14G 17.14G
/dev/sdb1 17.14G 17.14G
/dev/sdc1 17.14G 17.09G
4.8.4. Einheiten angeben
--units
des Befehls zum Erstellen des Berichts, um die Einheit für die Anzeige des LVM-Berichts anzugeben. Sie können (b)ytes, (k)ilobytes, (m)egabytes, (g)igabytes, (t)erabytes, (e)xabytes, (p)etabytes und (h)uman-readable angeben. Die Standardanzeige ist "human-readable", also einfach lesbar. Sie können den Standardwert übergehen, indem Sie den Parameter units
im Abschnitt global
der Datei lvm.conf
setzen.
pvs
in Megabytes anstatt in Gigabytes (Standard) an.
# pvs --units m
PV VG Fmt Attr PSize PFree
/dev/sda1 lvm2 -- 17555.40M 17555.40M
/dev/sdb1 new_vg lvm2 a- 17552.00M 17552.00M
/dev/sdc1 new_vg lvm2 a- 17552.00M 17500.00M
/dev/sdd1 new_vg lvm2 a- 17552.00M 17552.00M
# pvs
PV VG Fmt Attr PSize PFree
/dev/sdb1 new_vg lvm2 a- 17.14G 17.14G
/dev/sdc1 new_vg lvm2 a- 17.14G 17.09G
/dev/sdd1 new_vg lvm2 a- 17.14G 17.14G
# pvs --units G
PV VG Fmt Attr PSize PFree
/dev/sdb1 new_vg lvm2 a- 18.40G 18.40G
/dev/sdc1 new_vg lvm2 a- 18.40G 18.35G
/dev/sdd1 new_vg lvm2 a- 18.40G 18.40G
pvs
als eine Anzahl von Sektoren an.
# pvs --units s
PV VG Fmt Attr PSize PFree
/dev/sdb1 new_vg lvm2 a- 35946496S 35946496S
/dev/sdc1 new_vg lvm2 a- 35946496S 35840000S
/dev/sdd1 new_vg lvm2 a- 35946496S 35946496S
pvs
in Einheiten von 4 Megabytes an.
# pvs --units 4m
PV VG Fmt Attr PSize PFree
/dev/sdb1 new_vg lvm2 a- 4388.00U 4388.00U
/dev/sdc1 new_vg lvm2 a- 4388.00U 4375.00U
/dev/sdd1 new_vg lvm2 a- 4388.00U 4388.00U
Kapitel 5. Konfigurationsbeispiele für LVM
5.1. Erstellen eines logischen LVM-Datenträgers auf drei Platten
new_logical_volume
, der aus den Platten unter /dev/sda1
, /dev/sdb1
und /dev/sdc1
besteht.
5.1.1. Erstellen der physischen Datenträger
Warnung
/dev/sda1
, /dev/sdb1
und /dev/sdc1
.
[root@tng3-1 ~]# pvcreate /dev/sda1 /dev/sdb1 /dev/sdc1
Physical volume "/dev/sda1" successfully created
Physical volume "/dev/sdb1" successfully created
Physical volume "/dev/sdc1" successfully created
5.1.2. Erstellen der Datenträgergruppe
new_vol_group
.
[root@tng3-1 ~]# vgcreate new_vol_group /dev/sda1 /dev/sdb1 /dev/sdc1
Volume group "new_vol_group" successfully created
vgs
verwenden, um die Parameter der neuen Datenträgergruppe anzuzeigen.
[root@tng3-1 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
new_vol_group 3 0 0 wz--n- 51.45G 51.45G
5.1.3. Erstellen des logischen Datenträgers
new_logical_volume
aus der Datenträgergruppe new_vol_group
. Im Rahmen des folgenden Beispiels wird ein logischer Datenträger erstellt, der 2 GB der Datenträgergruppe verwendet.
[root@tng3-1 ~]# lvcreate -L2G -n new_logical_volume new_vol_group
Logical volume "new_logical_volume" created
5.1.4. Erstellen des Dateisystems
[root@tng3-1 ~]#mkfs.gfs2 -plock_nolock -j 1 /dev/new_vol_group/new_logical_volume
This will destroy any data on /dev/new_vol_group/new_logical_volume. Are you sure you want to proceed? [y/n]y
Device: /dev/new_vol_group/new_logical_volume Blocksize: 4096 Filesystem Size: 491460 Journals: 1 Resource Groups: 8 Locking Protocol: lock_nolock Lock Table: Syncing... All Done
[root@tng3-1 ~]#mount /dev/new_vol_group/new_logical_volume /mnt
[root@tng3-1 ~]#df
Filesystem 1K-blocks Used Available Use% Mounted on /dev/new_vol_group/new_logical_volume 1965840 20 1965820 1% /mnt
5.2. Erstellen eines logischen Striped-Datenträgers
striped_logical_volume
, der Daten zwischen den Platten unter /dev/sda1
, /dev/sdb1
und /dev/sdc1
verteilt.
5.2.1. Erstellen der physischen Datenträger
Warnung
/dev/sda1
, /dev/sdb1
und /dev/sdc1
.
[root@tng3-1 ~]# pvcreate /dev/sda1 /dev/sdb1 /dev/sdc1
Physical volume "/dev/sda1" successfully created
Physical volume "/dev/sdb1" successfully created
Physical volume "/dev/sdc1" successfully created
5.2.2. Erstellen der Datenträgergruppe
volgroup01
.
[root@tng3-1 ~]# vgcreate volgroup01 /dev/sda1 /dev/sdb1 /dev/sdc1
Volume group "volgroup01" successfully created
vgs
verwenden, um die Parameter der neuen Datenträgergruppe anzuzeigen.
[root@tng3-1 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
volgroup01 3 0 0 wz--n- 51.45G 51.45G
5.2.3. Erstellen des logischen Datenträgers
striped_logical_volume
aus der Datenträgergruppe volgroup01
. Im Rahmen des folgenden Beispiels wird ein logischer Datenträger mit einer Größe von 2 GB und mit drei Stripes und einer Größe von 4 Kilobytes pro Stripe erstellt.
[root@tng3-1 ~]# lvcreate -i3 -I4 -L2G -nstriped_logical_volume volgroup01
Rounding size (512 extents) up to stripe boundary size (513 extents)
Logical volume "striped_logical_volume" created
5.2.4. Erstellen des Dateisystems
[root@tng3-1 ~]#mkfs.gfs2 -plock_nolock -j 1 /dev/volgroup01/striped_logical_volume
This will destroy any data on /dev/volgroup01/striped_logical_volume. Are you sure you want to proceed? [y/n]y
Device: /dev/volgroup01/striped_logical_volume Blocksize: 4096 Filesystem Size: 492484 Journals: 1 Resource Groups: 8 Locking Protocol: lock_nolock Lock Table: Syncing... All Done
[root@tng3-1 ~]#mount /dev/volgroup01/striped_logical_volume /mnt
[root@tng3-1 ~]#df
Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/VolGroup00-LogVol00 13902624 1656776 11528232 13% / /dev/hda1 101086 10787 85080 12% /boot tmpfs 127880 0 127880 0% /dev/shm /dev/volgroup01/striped_logical_volume 1969936 20 1969916 1% /mnt
5.3. Aufteilen einer Datenträgergruppe
mylv
aus der Datenträgergruppe myvol
geschaffen, welche wiederum aus den drei physischen Datenträgern /dev/sda1
, /dev/sdb1
und /dev/sdc1
besteht.
myvg
aus /dev/sda1
und /dev/sdb1
. Eine zweite Datenträgergruppe yourvg
besteht aus /dev/sdc1
.
5.3.1. Ermitteln von freiem Speicherplatz
pvscan
können Sie ermitteln, wie viel freier Speicherplatz derzeit in der Datenträgergruppe zur Verfügung steht.
[root@tng3-1 ~]# pvscan
PV /dev/sda1 VG myvg lvm2 [17.15 GB / 0 free]
PV /dev/sdb1 VG myvg lvm2 [17.15 GB / 12.15 GB free]
PV /dev/sdc1 VG myvg lvm2 [17.15 GB / 15.80 GB free]
Total: 3 [51.45 GB] / in use: 3 [51.45 GB] / in no VG: 0 [0 ]
5.3.2. Verschieben der Daten
/dev/sdc1
mit dem Befehl pvmove
nach /dev/sdb1
verschieben. pvmove
kann bei der Ausführung einige Zeit in Anspruch nehmen.
[root@tng3-1 ~]# pvmove /dev/sdc1 /dev/sdb1
/dev/sdc1: Moved: 14.7%
/dev/sdc1: Moved: 30.3%
/dev/sdc1: Moved: 45.7%
/dev/sdc1: Moved: 61.0%
/dev/sdc1: Moved: 76.6%
/dev/sdc1: Moved: 92.2%
/dev/sdc1: Moved: 100.0%
/dev/sdc1
frei ist.
[root@tng3-1 ~]# pvscan
PV /dev/sda1 VG myvg lvm2 [17.15 GB / 0 free]
PV /dev/sdb1 VG myvg lvm2 [17.15 GB / 10.80 GB free]
PV /dev/sdc1 VG myvg lvm2 [17.15 GB / 17.15 GB free]
Total: 3 [51.45 GB] / in use: 3 [51.45 GB] / in no VG: 0 [0 ]
5.3.3. Aufteilen der Datenträgergruppe
yourvg
zu erstellen, verwenden Sie zur Aufteilung der Datenträgergruppe myvg
den Befehl vgsplit
.
lvchange
oder vgchange
können Sie den logischen Datenträger deaktivieren. Der folgende Befehl deaktiviert den logischen Datenträger mylv
und trennt die Datenträgergruppe yourvg
von der Datenträgergruppe myvg
, indem es den physischen Datenträger /dev/sdc1
in die neue Datenträgergruppe yourvg
verschiebt.
[root@tng3-1 ~]#lvchange -a n /dev/myvg/mylv
[root@tng3-1 ~]#vgsplit myvg yourvg /dev/sdc1
Volume group "yourvg" successfully split from "myvg"
vgs
können Sie die Parameter der beiden Datenträgergruppen ansehen.
[root@tng3-1 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
myvg 2 1 0 wz--n- 34.30G 10.80G
yourvg 1 0 0 wz--n- 17.15G 17.15G
5.3.4. Erstellen des neuen logischen Datenträgers
yourlv
erstellen.
[root@tng3-1 ~]# lvcreate -L5G -n yourlv yourvg
Logical volume "yourlv" created
5.3.5. Erstellen eines Dateisystems und Einhängen des neuen logischen Datenträgers
[root@tng3-1 ~]#mkfs.gfs2 -plock_nolock -j 1 /dev/yourvg/yourlv
This will destroy any data on /dev/yourvg/yourlv. Are you sure you want to proceed? [y/n]y
Device: /dev/yourvg/yourlv Blocksize: 4096 Filesystem Size: 1277816 Journals: 1 Resource Groups: 20 Locking Protocol: lock_nolock Lock Table: Syncing... All Done [root@tng3-1 ~]#mount /dev/yourvg/yourlv /mnt
5.3.6. Aktivieren und Einhängen des originalen logischen Datenträgers
mylv
deaktivieren mussten, müssen Sie ihn wieder aktivieren, bevor Sie ihn einhängen können.
root@tng3-1 ~]#lvchange -a y mylv
[root@tng3-1 ~]#mount /dev/myvg/mylv /mnt
[root@tng3-1 ~]#df
Filesystem 1K-blocks Used Available Use% Mounted on /dev/yourvg/yourlv 24507776 32 24507744 1% /mnt /dev/myvg/mylv 24507776 32 24507744 1% /mnt
5.4. Entfernen einer Platte aus einem logischen Datenträger
5.4.1. Verschieben von Extents auf existierende physische Datenträger
myvg
verteilt.
[root@tng3-1]# pvs -o+pv_used
PV VG Fmt Attr PSize PFree Used
/dev/sda1 myvg lvm2 a- 17.15G 12.15G 5.00G
/dev/sdb1 myvg lvm2 a- 17.15G 12.15G 5.00G
/dev/sdc1 myvg lvm2 a- 17.15G 12.15G 5.00G
/dev/sdd1 myvg lvm2 a- 17.15G 2.15G 15.00G
/dev/sdb1
sollen davon entfernt und woanders hin verschoben werden, so dass sie aus der Datenträgergruppe entfernt werden können.
pvmove
ohne weitere Optionen auf dem Gerät ausführen, das Sie entfernen möchten, und die Extents werden auf die anderen Geräte verteilt.
[root@tng3-1 ~]# pvmove /dev/sdb1
/dev/sdb1: Moved: 2.0%
...
/dev/sdb1: Moved: 79.2%
...
/dev/sdb1: Moved: 100.0%
pvmove
lautet die Verteilung der Extents wie folgt:
[root@tng3-1]# pvs -o+pv_used
PV VG Fmt Attr PSize PFree Used
/dev/sda1 myvg lvm2 a- 17.15G 7.15G 10.00G
/dev/sdb1 myvg lvm2 a- 17.15G 17.15G 0
/dev/sdc1 myvg lvm2 a- 17.15G 12.15G 5.00G
/dev/sdd1 myvg lvm2 a- 17.15G 2.15G 15.00G
vgreduce
, um den physischen Datenträger /dev/sdb1
aus der Datenträgergruppe zu entfernen.
[root@tng3-1 ~]# vgreduce myvg /dev/sdb1
Removed "/dev/sdb1" from volume group "myvg"
[root@tng3-1 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda1 myvg lvm2 a- 17.15G 7.15G
/dev/sdb1 lvm2 -- 17.15G 17.15G
/dev/sdc1 myvg lvm2 a- 17.15G 12.15G
/dev/sdd1 myvg lvm2 a- 17.15G 2.15G
5.4.2. Extents auf eine neue Platte verschieben
myvg
wie folgt verteilt:
[root@tng3-1]# pvs -o+pv_used
PV VG Fmt Attr PSize PFree Used
/dev/sda1 myvg lvm2 a- 17.15G 7.15G 10.00G
/dev/sdb1 myvg lvm2 a- 17.15G 15.15G 2.00G
/dev/sdc1 myvg lvm2 a- 17.15G 15.15G 2.00G
/dev/sdb1
sollen auf ein neues Gerät /dev/sdd1
verschoben werden.
5.4.2.1. Erstellen des neuen physischen Datenträgers
/dev/sdd1
.
[root@tng3-1 ~]# pvcreate /dev/sdd1
Physical volume "/dev/sdd1" successfully created
5.4.2.2. Hinzufügen des neuen physischen Datenträgers zu der Datenträgergruppe
/dev/sdd1
zur vorhandenen Datenträgergruppe myvg
hinzu.
[root@tng3-1 ~]#vgextend myvg /dev/sdd1
Volume group "myvg" successfully extended [root@tng3-1]#pvs -o+pv_used
PV VG Fmt Attr PSize PFree Used /dev/sda1 myvg lvm2 a- 17.15G 7.15G 10.00G /dev/sdb1 myvg lvm2 a- 17.15G 15.15G 2.00G /dev/sdc1 myvg lvm2 a- 17.15G 15.15G 2.00G /dev/sdd1 myvg lvm2 a- 17.15G 17.15G 0
5.4.2.3. Verschieben der Daten
pvmove
, um Daten von /dev/sdb1
auf /dev/sdd1
zu verschieben.
[root@tng3-1 ~]#pvmove /dev/sdb1 /dev/sdd1
/dev/sdb1: Moved: 10.0% ... /dev/sdb1: Moved: 79.7% ... /dev/sdb1: Moved: 100.0% [root@tng3-1]#pvs -o+pv_used
PV VG Fmt Attr PSize PFree Used /dev/sda1 myvg lvm2 a- 17.15G 7.15G 10.00G /dev/sdb1 myvg lvm2 a- 17.15G 17.15G 0 /dev/sdc1 myvg lvm2 a- 17.15G 15.15G 2.00G /dev/sdd1 myvg lvm2 a- 17.15G 15.15G 2.00G
5.4.2.4. Entfernen des alten physischen Datenträgers aus der Datenträgergruppe
/dev/sdb1
verschoben haben, können Sie dies aus der Datenträgergruppe entfernen.
[root@tng3-1 ~]# vgreduce myvg /dev/sdb1
Removed "/dev/sdb1" from volume group "myvg"
5.5. Erstellen eines gespiegelten logischen LVM-Datenträgers in einem Cluster
lvm.conf
-Datei muss richtig eingestellt sein, um Cluster-Sperren zu aktivieren, entweder direkt oder mittels lvmconf
-Befehl wie in Abschnitt 3.1, »LVM-Datenträger in einem Cluster erstellen« beschrieben.
- Um einen gespiegelten logischen Datenträger zu erstellen, der von allen Knoten in einem Cluster gemeinsam verwendet wird, muss der Sperrtyp in der
lvm.conf
-Datei für jeden Knoten korrekt eingestellt sein. Standardmäßig ist der Sperrtyp auf lokal gesetzt. Führen Sie auf jedem Knoten im Cluster folgenden Befehl aus, um dies zu ändern und geclusterte Sperren zu aktivieren:#
/sbin/lvmconf --enable-cluster
- Um einen geclusterten logischen Datenträger zu erstellen, muss die Cluster-Infrastruktur auf jedem Knoten im Cluster ausgeführt werden. Im folgenden Beispiel wird überprüft, ob der
clvmd
-Daemon auf dem Knoten läuft, auf dem er initiiert wurde.[root@doc-07 ~]#
ps auxw | grep clvmd
root 17642 0.0 0.1 32164 1072 ? Ssl Apr06 0:00 clvmd -T20 -t 90Der folgende Befehl zeigt die lokale Ansicht des Cluster-Zustands:[root@example-01 ~]#
cman_tool services
fence domain member count 3 victim count 0 victim now 0 master nodeid 2 wait state none members 1 2 3 dlm lockspaces name clvmd id 0x4104eefa flags 0x00000000 change member 3 joined 1 remove 0 failed 0 seq 1,1 members 1 2 3 - Vergewissern Sie sich, dass das
cmirror
-Paket installiert ist. - Starten Sie den
cmirrord
-Dienst.[root@hexample-01 ~]#
service cmirrord start
Starting cmirrord: [ OK ] - Erstellen Sie den Mirror. Erzeugen Sie dazu zunächst die physischen Datenträger. Die folgenden Befehle erzeugen drei physische Datenträger. Zwei der physischen Datenträger werden als Standbeine des Mirrors verwendet, der dritte physische Datenträger wird das Mirror-Protokoll enthalten.
[root@doc-07 ~]#
pvcreate /dev/xvdb1
Physical volume "/dev/xvdb1" successfully created [root@doc-07 ~]#pvcreate /dev/xvdb2
Physical volume "/dev/xvdb2" successfully created [root@doc-07 ~]#pvcreate /dev/xvdc1
Physical volume "/dev/xvdc1" successfully created - Erstellen Sie die Datenträgergruppe. Dieses Beispiel erzeugt eine Datenträgergruppe namens
vg001
, die aus den drei physischen Datenträgern besteht, die im vorangegangenen Schritt angelegt wurden.[root@doc-07 ~]#
vgcreate vg001 /dev/xvdb1 /dev/xvdb2 /dev/xvdc1
Clustered volume group "vg001" successfully createdBeachten Sie, dass die Ausgabe desvgcreate
-Befehls anzeigt, ob die Datenträgergruppe geclustert ist. Sie können überprüfen, ob eine Datenträgergruppe geclustert ist, indem Sie denvgs
-Befehl ausführen, um die Parameter der Datenträgergruppe einzusehen. Ist die Datenträgergruppe geclustert, wird der "c"-Parameter angezeigt.[root@doc-07 ~]#
vgs vg001
VG #PV #LV #SN Attr VSize VFree vg001 3 0 0 wz--nc 68.97G 68.97G - Erstellen Sie den gespiegelten logischen Datenträger. Dieses Beispiel erzeugt den logischen Datenträger
mirrorlv
aus der Datenträgergruppevg001
. Dieser Datenträger hat ein Mirror-Standbein. Dieses Beispiel spezifiziert, welche Extents des physischen Datenträgers für den logischen Datenträger verwendet werden.[root@doc-07 ~]#
lvcreate -l 1000 -m1 vg001 -n mirrorlv /dev/xvdb1:1-1000 /dev/xvdb2:1-1000 /dev/xvdc1:0
Logical volume "mirrorlv" createdSie können denlvs
-Befehl nutzen, um den Fortschritt der Mirror-Erstellung anzuzeigen. Das folgende Beispiel zeigt, dass der Mirror zu 47% synchronisiert ist, dann 91%, und schließlich zu 100% synchronisiert, wenn der Mirror vollständig ist.[root@doc-07 log]#
lvs vg001/mirrorlv
LV VG Attr LSize Origin Snap% Move Log Copy% Convert mirrorlv vg001 mwi-a- 3.91G vg001_mlog 47.00 [root@doc-07 log]#lvs vg001/mirrorlv
LV VG Attr LSize Origin Snap% Move Log Copy% Convert mirrorlv vg001 mwi-a- 3.91G vg001_mlog 91.00 [root@doc-07 ~]#lvs vg001/mirrorlv
LV VG Attr LSize Origin Snap% Move Log Copy% Convert mirrorlv vg001 mwi-a- 3.91G vg001_mlog 100.00Der Abschluss der Mirror-Erstellung wird im Systemprotokoll vermerkt:May 10 14:52:52 doc-07 [19402]: Monitoring mirror device vg001-mirrorlv for events May 10 14:55:00 doc-07 lvm[19402]: vg001-mirrorlv is now in-sync
- Sie können
lvs
zusammen mit den-o +devices
-Optionen verwenden, um die Konfiguration des Mirrors anzuzeigen, z.B. welche Geräte die Mirror-Standbeine stellen. Wie Sie sehen, besteht der logische Datenträger in diesem Beispiel aus zwei linearen Images und einer Protokolldatei.[root@doc-07 ~]#
lvs -a -o +devices
LV VG Attr LSize Origin Snap% Move Log Copy% Convert Devices mirrorlv vg001 mwi-a- 3.91G mirrorlv_mlog 100.00 mirrorlv_mimage_0(0),mirrorlv_mimage_1(0) [mirrorlv_mimage_0] vg001 iwi-ao 3.91G /dev/xvdb1(1) [mirrorlv_mimage_1] vg001 iwi-ao 3.91G /dev/xvdb2(1) [mirrorlv_mlog] vg001 lwi-ao 4.00M /dev/xvdc1(0)Sie können dieseg_pe_ranges
-Option deslvs
-Befehls verwenden, um das Daten-Layout anzuzeigen. Mithilfe dieser Option können Sie sich vergewissern, dass Ihr Layout einwandfrei redundant ist. Die Ausgabe dieses Befehls zeigt PE-Bereiche in demselben Format an, das dielvcreate
- undlvresize
-Befehle als Eingabe akzeptieren.[root@doc-07 ~]#
lvs -a -o +seg_pe_ranges --segments
PE Ranges mirrorlv_mimage_0:0-999 mirrorlv_mimage_1:0-999 /dev/xvdb1:1-1000 /dev/xvdb2:1-1000 /dev/xvdc1:0-0
Anmerkung
Kapitel 6. Suche und Bereinigung von LVM-Fehlern
6.1. Diagnostik zur Suche und Bereinigung von Fehlern
- Verwenden Sie die Optionen
-v
,-vv
,-vvv
oder-vvvv
von jedem beliebigen Befehl für mehr Details bei der Ausgabe. - Falls das Problem mit der Aktivierung des logischen Datenträgers zusammenhängt, setzen Sie 'activation = 1' im Abschnitt 'log' der Konfigurationsdatei und führen den Befehl mit der Option
-vvvv
aus. Nachdem Sie mit der Untersuchung der Ausgabe fertig sind, stellen Sie sicher, diesen Parameter auf 0 zu setzen, um mögliche Probleme mit der Sperrung der Maschine während Situationen mit geringem Speicher zu vermeiden. - Führen Sie den Befehl
lvmdump
aus, der eine Zusammenfassung von Informationen zu Diagnosezwecken liefert. Werfen Sie einen Blick auf die Handbuchseite (8) vonlvmdump
für weitere Informationen. - Führen Sie die Befehle
lvs -v
,pvs -a
oderdmsetup info -c
für zusätzliche Systeminformationen aus. - Untersuchen Sie die letzte Sicherung der Metadaten in
/etc/lvm/backup
und archivierte Versionen in/etc/lvm/archive
. - Überprüfen Sie die aktuellen Informationen zur Konfiguration, indem Sie
lvm dumpconfig
ausführen. - Suchen Sie in der Datei
.cache
in/etc/lvm
nach einem Eintrag, welche Geräte physische Datenträger aufweisen.
6.2. Anzeigen von Informationen auf ausgefallenen Geräten
-P
der Befehle lvs
oder vgs
können Sie Informationen zu einem ausgefallenen Datenträger, der andernfalls nicht in der Ausgabe erscheinen würde, anzeigen. Dieser Parameter ermöglicht einige Operationen, auch wenn die Metadaten intern nicht vollständig konsistent sind. Wenn beispielsweise eines der Geräte, aus dem die Datenträgergruppe vg
besteht, ausfiele, könnte der Befehl vgs
die folgende Ausgabe produzieren.
[root@link-07 tmp]# vgs -o +devices
Volume group "vg" not found
-P
des Befehls vgs
angeben, kann die Datenträgergruppe zwar nach wie vor nicht verwendet werden, Sie erhalten jedoch mehr Informationen über das ausgefallene Gerät.
[root@link-07 tmp]# vgs -P -o +devices
Partial mode. Incomplete volume groups will be activated read-only.
VG #PV #LV #SN Attr VSize VFree Devices
vg 9 2 0 rz-pn- 2.11T 2.07T unknown device(0)
vg 9 2 0 rz-pn- 2.11T 2.07T unknown device(5120),/dev/sda1(0)
lvs
ohne die Option -P
zeigt die folgende Ausgabe.
[root@link-07 tmp]# lvs -a -o +devices
Volume group "vg" not found
-P
werden logische Datenträger angezeigt, die ausgefallen sind.
[root@link-07 tmp]# lvs -P -a -o +devices
Partial mode. Incomplete volume groups will be activated read-only.
LV VG Attr LSize Origin Snap% Move Log Copy% Devices
linear vg -wi-a- 20.00G unknown device(0)
stripe vg -wi-a- 20.00G unknown device(5120),/dev/sda1(0)
pvs
und lvs
mit der Option -P
beim Ausfall eines Standbeins eines gespiegelten logischen Datenträgers.
root@link-08 ~]# vgs -a -o +devices -P
Partial mode. Incomplete volume groups will be activated read-only.
VG #PV #LV #SN Attr VSize VFree Devices
corey 4 4 0 rz-pnc 1.58T 1.34T my_mirror_mimage_0(0),my_mirror_mimage_1(0)
corey 4 4 0 rz-pnc 1.58T 1.34T /dev/sdd1(0)
corey 4 4 0 rz-pnc 1.58T 1.34T unknown device(0)
corey 4 4 0 rz-pnc 1.58T 1.34T /dev/sdb1(0)
[root@link-08 ~]# lvs -a -o +devices -P
Partial mode. Incomplete volume groups will be activated read-only.
LV VG Attr LSize Origin Snap% Move Log Copy% Devices
my_mirror corey mwi-a- 120.00G my_mirror_mlog 1.95 my_mirror_mimage_0(0),my_mirror_mimage_1(0)
[my_mirror_mimage_0] corey iwi-ao 120.00G unknown device(0)
[my_mirror_mimage_1] corey iwi-ao 120.00G /dev/sdb1(0)
[my_mirror_mlog] corey lwi-ao 4.00M /dev/sdd1(0)
6.3. Wiederherstellung beim Ausfall eines LVM-Mirrors
mirror_log_fault_policy
-Parameter auf remove
gesetzt ist, weshalb Sie den Mirror manuell neu erstellen müssen. Für Informationen über das Einstellen des mirror_log_fault_policy
-Parameters, siehe Abschnitt 6.3, »Wiederherstellung beim Ausfall eines LVM-Mirrors«.
[root@link-08 ~]# pvcreate /dev/sd[abcdefgh][12]
Physical volume "/dev/sda1" successfully created
Physical volume "/dev/sda2" successfully created
Physical volume "/dev/sdb1" successfully created
Physical volume "/dev/sdb2" successfully created
Physical volume "/dev/sdc1" successfully created
Physical volume "/dev/sdc2" successfully created
Physical volume "/dev/sdd1" successfully created
Physical volume "/dev/sdd2" successfully created
Physical volume "/dev/sde1" successfully created
Physical volume "/dev/sde2" successfully created
Physical volume "/dev/sdf1" successfully created
Physical volume "/dev/sdf2" successfully created
Physical volume "/dev/sdg1" successfully created
Physical volume "/dev/sdg2" successfully created
Physical volume "/dev/sdh1" successfully created
Physical volume "/dev/sdh2" successfully created
vg
und den gespiegelten Datenträger groupfs
.
[root@link-08 ~]#vgcreate vg /dev/sd[abcdefgh][12]
Volume group "vg" successfully created [root@link-08 ~]#lvcreate -L 750M -n groupfs -m 1 vg /dev/sda1 /dev/sdb1 /dev/sdc1
Rounding up size to full physical extent 752.00 MB Logical volume "groupfs" created
lvs
können Sie das Layout des gespiegelten Datenträgers, sowie das zugrunde liegende Gerät für das Mirror-Standbein und die Protokolldatei des Mirrors verifizieren. Beachten Sie, dass der Mirror im ersten Beispiel noch nicht vollständig synchronisiert ist. Sie sollten abwarten, bis das Feld Copy%
100.00 anzeigt, bevor Sie fortfahren.
[root@link-08 ~]#lvs -a -o +devices
LV VG Attr LSize Origin Snap% Move Log Copy% Devices groupfs vg mwi-a- 752.00M groupfs_mlog 21.28 groupfs_mimage_0(0),groupfs_mimage_1(0) [groupfs_mimage_0] vg iwi-ao 752.00M /dev/sda1(0) [groupfs_mimage_1] vg iwi-ao 752.00M /dev/sdb1(0) [groupfs_mlog] vg lwi-ao 4.00M /dev/sdc1(0) [root@link-08 ~]#lvs -a -o +devices
LV VG Attr LSize Origin Snap% Move Log Copy% Devices groupfs vg mwi-a- 752.00M groupfs_mlog 100.00 groupfs_mimage_0(0),groupfs_mimage_1(0) [groupfs_mimage_0] vg iwi-ao 752.00M /dev/sda1(0) [groupfs_mimage_1] vg iwi-ao 752.00M /dev/sdb1(0) [groupfs_mlog] vg lwi-ao 4.00M i /dev/sdc1(0)
/dev/sda1
aus. Jegliche Schreibaktivitäten auf den gespiegelten Datenträger führen dazu, dass LVM den ausgefallenen Mirror entdeckt. Tritt dies auf, konvertiert LVM den Mirror in einen einzelnen, linearen Datenträger. Um in diesem Fall eine Konvertierung auszulösen, führen wir den Befehl dd
aus.
[root@link-08 ~]# dd if=/dev/zero of=/dev/vg/groupfs count=10
10+0 records in
10+0 records out
lvs
können Sie verifizieren, dass es sich bei dem Gerät nun um ein lineares Gerät handelt. Aufgrund der ausgefallenen Platte treten I/O-Fehler auf.
[root@link-08 ~]# lvs -a -o +devices
/dev/sda1: read failed after 0 of 2048 at 0: Input/output error
/dev/sda2: read failed after 0 of 2048 at 0: Input/output error
LV VG Attr LSize Origin Snap% Move Log Copy% Devices
groupfs vg -wi-a- 752.00M /dev/sdb1(0)
pvcreate
"inconsistent"-Warnungen. Sie können diese Warnungen vermeiden, indem Sie den Befehl vgreduce --removemissing
ausführen.
[root@link-08 ~]#pvcreate /dev/sdi[12]
Physical volume "/dev/sdi1" successfully created Physical volume "/dev/sdi2" successfully created [root@link-08 ~]#pvscan
PV /dev/sdb1 VG vg lvm2 [67.83 GB / 67.10 GB free] PV /dev/sdb2 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdc1 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdc2 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdd1 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdd2 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sde1 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sde2 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdf1 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdf2 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdg1 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdg2 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdh1 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdh2 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdi1 lvm2 [603.94 GB] PV /dev/sdi2 lvm2 [603.94 GB] Total: 16 [2.11 TB] / in use: 14 [949.65 GB] / in no VG: 2 [1.18 TB]
[root@link-08 ~]#vgextend vg /dev/sdi[12]
Volume group "vg" successfully extended [root@link-08 ~]#pvscan
PV /dev/sdb1 VG vg lvm2 [67.83 GB / 67.10 GB free] PV /dev/sdb2 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdc1 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdc2 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdd1 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdd2 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sde1 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sde2 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdf1 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdf2 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdg1 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdg2 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdh1 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdh2 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdi1 VG vg lvm2 [603.93 GB / 603.93 GB free] PV /dev/sdi2 VG vg lvm2 [603.93 GB / 603.93 GB free] Total: 16 [2.11 TB] / in use: 16 [2.11 TB] / in no VG: 0 [0 ]
[root@link-08 ~]# lvconvert -m 1 /dev/vg/groupfs /dev/sdi1 /dev/sdb1 /dev/sdc1
Logical volume mirror converted.
lvs
können Sie verifizieren, dass der Mirror wiederhergestellt wurde.
[root@link-08 ~]# lvs -a -o +devices
LV VG Attr LSize Origin Snap% Move Log Copy% Devices
groupfs vg mwi-a- 752.00M groupfs_mlog 68.62 groupfs_mimage_0(0),groupfs_mimage_1(0)
[groupfs_mimage_0] vg iwi-ao 752.00M /dev/sdb1(0)
[groupfs_mimage_1] vg iwi-ao 752.00M /dev/sdi1(0)
[groupfs_mlog] vg lwi-ao 4.00M /dev/sdc1(0)
6.4. Wiederherstellen von Metadaten eines physischen Datenträgers
Warnung
[root@link-07 backup]# lvs -a -o +devices
Couldn't find device with uuid 'FmGRh3-zhok-iVI8-7qTD-S5BI-MAEN-NYM5Sk'.
Couldn't find all physical volumes for volume group VG.
Couldn't find device with uuid 'FmGRh3-zhok-iVI8-7qTD-S5BI-MAEN-NYM5Sk'.
Couldn't find all physical volumes for volume group VG.
...
/etc/lvm/archive
werfen. Suchen Sie in der Datei VolumeGroupName_xxxx.vg
nach den letzten bekannten, archivierten LVM-Metadaten für diese Datenträgergruppe.
partial
(-P
) ermitteln.
[root@link-07 backup]# vgchange -an --partial
Partial mode. Incomplete volume groups will be activated read-only.
Couldn't find device with uuid 'FmGRh3-zhok-iVI8-7qTD-S5BI-MAEN-NYM5Sk'.
Couldn't find device with uuid 'FmGRh3-zhok-iVI8-7qTD-S5BI-MAEN-NYM5Sk'.
...
--uuid
und --restorefile
des Befehls pvcreate
, um den physischen Datenträger wiederherzustellen. Das folgende Beispiel kennzeichnet das Gerät /dev/sdh1
als einen physischen Datenträger mit der oben angezeigten UUID FmGRh3-zhok-iVI8-7qTD-S5BI-MAEN-NYM5Sk
. Dieser Befehl stellt das Label des physischen Datenträgers mit den in VG_00050.vg
enthaltenen Informationen der Metadaten, also mit den aktuellsten, archivierten Metadaten für diese Datenträgergruppe, wieder her. Der Parameter restorefile
weist den Befehl pvcreate
an, den neuen physischen Datenträger mit dem alten in der Datenträgergruppe kompatibel zu machen, so dass sichergestellt wird, dass die neuen Metadaten nicht dort platziert werden, wo sich Daten auf dem alten physischen Datenträger befanden (was passieren kann, wenn der ursprüngliche Befehl pvcreate
beispielsweise die Befehlszeilenparameter enthielt, die die Platzierung der Metadaten kontrollieren oder falls der physische Datenträger ursprünglich mit einer unterschiedlichen Version der Software erstellt wurde, die unterschiedliche Standardwerte verwendete). Der Befehl pvcreate
überschreibt lediglich die LVM-Metadatenbereiche und wirkt sich nicht auf bestehende Datenbereiche aus.
[root@link-07 backup]# pvcreate --uuid "FmGRh3-zhok-iVI8-7qTD-S5BI-MAEN-NYM5Sk" --restorefile /etc/lvm/archive/VG_00050.vg /dev/sdh1
Physical volume "/dev/sdh1" successfully created
vgcfgrestore
können Sie die Metadaten der Datenträgergruppe wiederherstellen.
[root@link-07 backup]# vgcfgrestore VG
Restored volume group VG
[root@link-07 backup]# lvs -a -o +devices
LV VG Attr LSize Origin Snap% Move Log Copy% Devices
stripe VG -wi--- 300.00G /dev/sdh1 (0),/dev/sda1(0)
stripe VG -wi--- 300.00G /dev/sdh1 (34728),/dev/sdb1(0)
[root@link-07 backup]#lvchange -ay /dev/VG/stripe
[root@link-07 backup]#lvs -a -o +devices
LV VG Attr LSize Origin Snap% Move Log Copy% Devices stripe VG -wi-a- 300.00G /dev/sdh1 (0),/dev/sda1(0) stripe VG -wi-a- 300.00G /dev/sdh1 (34728),/dev/sdb1(0)
fsck
können Sie diese Daten ggf. wiederherstellen.
6.5. Ersetzen eines fehlenden physischen Datenträgers
--partial
und --verbose
des Befehls vgdisplay
können Sie die UUIDs und Größen von jedem beliebigen physischen Datenträger, der nicht mehr existiert, anzeigen. Falls Sie einen anderen physischen Datenträger der gleichen Größe ersetzen möchten, können Sie den Befehl pvcreate
mit den Parametern --restorefile
und --uuid
verwenden, um ein neues Gerät mit derselben UUID wie die des fehlenden physischen Datenträgers zu initialisieren. Sie können dann den Befehl vgcfgrestore
verwenden, um die Metadaten der Datenträgergruppe wiederherzustellen.
6.6. Entfernen von verlorenen physischen Datenträgern aus einer Datenträgergruppe
--partial
des Befehls vgchange
aktivieren. Sie können alle logischen Datenträger, die diesen physischen Datenträger verwendet haben, mit dem Parameter --removemissing
des Befehls vgreduce
entfernen.
vgreduce
mit dem Parameter --test
ausführen, um zu verifizieren, was Sie vernichten werden.
vgreduce
insofern umkehrbar, als Sie den Befehl vgcfgrestore
umgehend verwenden können, um die Metadaten der Datenträgergruppe auf deren vorherigen Zustand zurückzusetzen. Wenn Sie beispielsweise den Parameter --removemissing
des Befehls vgreduce
ohne den Parameter --test
verwendet haben und feststellen, dass Sie logische Datenträger entfernt haben, die Sie behalten wollten, können Sie den physischen Datenträger trotzdem entfernen und ein weiteres Mal vgcfgrestore
ausführen, um die Datenträgergruppe auf ihren vorherigen Zustand zurückzusetzen.
6.7. Ungenügend freie Extents für einen logischen Datenträger
vgdisplay
oder vgs
der Meinung sind, über genügend Extents zu verfügen. Dies liegt daran, dass beide Befehle Zahlen auf 2 Dezimalstellen aufrunden, um eine lesbare Ausgabe zu liefern. Um die exakte Größe anzugeben, verwenden Sie die Anzahl der freien physischen Extents an Stelle von Vielfachen von Bytes, um die Größe des logischen Datenträgers zu ermitteln.
vgdisplay
beinhaltet standardmäßig diese Ausgabezeile, die die freien physischen Extents anzeigt.
# vgdisplay
--- Volume group ---
...
Free PE / Size 8780 / 34.30 GB
vg_free_count
und vg_extent_count
des Befehls vgs
verwenden, um die freien Extents und die gesamte Summe der Extents anzuzeigen.
[root@tng3-1 ~]# vgs -o +vg_free_count,vg_extent_count
VG #PV #LV #SN Attr VSize VFree Free #Ext
testvg 2 0 0 wz--n- 34.30G 34.30G 8780 8780
# lvcreate -l8780 -n testlv testvg
# vgs -o +vg_free_count,vg_extent_count
VG #PV #LV #SN Attr VSize VFree Free #Ext
testvg 2 1 0 wz--n- 34.30G 0 0 8780
-l
des Befehls lvcreate
verwendet. Werfen Sie einen Blick auf Abschnitt 4.4.1, »Lineare logische Datenträger erstellen« für weitere Informationen.
Kapitel 7. LVM-Administration mit dem LVM-GUI
system-config-lvm
eingeben. Das LVM-Kapitel des Handbuchs zur Speicheradministration liefert schrittweise Anleitungen für die Konfiguration eines logischen LVM-Datenträgers mithilfe dieses Dienstprogramms.
Anhang A. Der Device-Mapper
dmraid
-Befehl den Device-Mapper. Die Applikationsschnittstelle zum Device Mapper ist der ioctl
-Systemaufruf. Die Benutzerschnittstelle ist der dmsetup
-Befehl.
dmsetup
-Befehl abgerufen werde kann. Werfen Sie bitte einen Blick auf Abschnitt A.1, »Gerätetabelle-Mappings« für Informationen über das Format von Geräten in einer Mapping-Tabelle. Informationen über die Verwendung des dmsetup
-Befehls zum Abruf eines Geräts finden Sie in Abschnitt A.2, »Der dmsetup-Befehl«.
A.1. Gerätetabelle-Mappings
start length mapping
[mapping_parameters...
]
start
-Parameter 0 entsprechen. Die start
+ length
-Parameter in einer Zeile müssen dem start
-Parameter in der folgenden Zeile entsprechen. Welche Mapping-Parameter in einer Zeile der Mapping-Tabelle angegeben sind, hängt davon ab, welcher mapping
-Typ in der Zeile spezifiziert ist.
/dev/hda
) oder anhand seiner Major- und Minor-Nummern im Format major
:minor
. Das Major:Minor-Format ist dabei vorzuziehen, da auf diese Weise Pfadnamen-Aufrufe vermieden werden.
0 35258368 linear 8:48 65920 35258368 35258368 linear 8:32 65920 70516736 17694720 linear 8:16 17694976 88211456 17694720 linear 8:16 256
linear
ist. Der Rest der Zeile besteht aus den Parametern für ein linear
-Ziel.
- linear
- striped
- mirror
- snapshot und snapshot-origin
- error
- zero
- multipath
- crypt
A.1.1. Das "linear" Mapping-Ziel
start length
lineardevice offset
start
- Startblock im virtuellen Gerät
length
- Länge dieses Segments
device
- Blockgerät, referenziert anhand des Gerätenamens im Dateisystem oder anhand der Major- und Minor-Nummern im Format
major
:minor
offset
- Start-Offset des Mappings auf dem Gerät
0 16384000 linear 8:2 41156992
/dev/hda
.
0 20971520 linear /dev/hda 384
A.1.2. Das "striped" Mapping-Ziel
start length
striped#stripes chunk_size device1 offset1 ... deviceN offsetN
device
und offset
-Parametern für jeden Stripe.
start
- Startblock im virtuellen Gerät
length
- Länge dieses Segments
#stripes
- Anzahl der Stripes für das virtuelle Gerät
chunk_size
- Anzahl der Sektoren, die auf jeden Stripe geschrieben werden, bevor zum nächsten gewechselt wird; muss eine Zweierpotenz sein, die mindestens so groß wie die Kernel-Seitengröße ist
device
- Blockgerät, referenziert anhand des Gerätenamens im Dateisystem oder anhand der Major- und Minor-Nummern im Format
major
:minor
offset
- Start-Offset des Mappings auf dem Gerät
0 73728 striped 3 128 8:9 384 8:8 384 8:7 9789824
- 0
- Startblock im virtuellen Gerät
- 73728
- Länge dieses Segments
- striped 3 128
- Striping über drei Geräte mit einer Chunk-Größe von 128 Blöcken
- 8:9
- Major:Minor-Nummern des ersten Geräts
- 384
- Start-Offset des Mappings auf dem ersten Gerät
- 8:8
- Major:Minor-Nummern des zweiten Geräts
- 384
- Start-Offset des Mappings auf dem zweiten Gerät
- 8:7
- Major:Minor-Nummern des dritten Geräts
- 9789824
- Start-Offset des Mappings auf dem dritten Gerät
0 65536 striped 2 512 /dev/hda 0 /dev/hdb 0
A.1.3. Das "mirror" Mapping-Ziel
start length
mirrorlog_type #logargs logarg1 ... logargN #devs device1 offset1 ... deviceN offsetN
start
- Startblock im virtuellen Gerät
length
- Länge dieses Segments
log_type
- Die möglichen Protokolltypen und deren Parameter lauten wie folgt:
core
- Der Mirror ist lokal und das Mirror-Protokoll wird im Kernspeicher bewahrt. Dieser Protokolltyp akzeptiert 1 - 3 Parameter:regionsize [[
no
]sync
] [block_on_error
] disk
- Der Mirror ist lokal und das Mirror-Protokoll wird auf der Festplatte bewahrt. Dieser Protokolltyp akzeptiert 2 - 4 Parameter:logdevice regionsize [[
no
]sync
] [block_on_error
] clustered_core
- Der Mirror ist geclustert und das Mirror-Protokoll wird im Kernspeicher bewahrt. Dieser Protokolltyp akzeptiert 2 - 4 Parameter:regionsize UUID [[
no
]sync
] [block_on_error
] clustered_disk
- Der Mirror ist geclustert und das Mirror-Protokoll wird auf der Festplatte bewahrt. Dieser Protokolltyp akzeptiert 3 - 5 Parameter:logdevice regionsize UUID [[
no
]sync
] [block_on_error
]
LVM pflegt eine kleine Protokolldatei, in der festgehalten wird, welche Bereiche mit dem (den) Mirror(s) synchron sind. Der regionsize-Parameter bestimmt die Größe dieser Bereiche.In einer geclusterten Umgebung ist der UUID-Parameter ein eindeutiger Bezeichner, der dem Mirror-Protokollgerät zugewiesen ist, so dass der Protokollzustand über den Cluster hinweg bewahrt werden kann.Der optionale[no]sync
-Parameter kann dazu verwendet werden, den Mirror als "in-sync" oder "out-of-sync" zu spezifizieren. Mithilfe desblock_on_error
-Parameters wird der Mirror angewiesen, auf Fehler zu antworten statt diese zu ignorieren. #log_args
- Anzahl der Protokollparameter, die im Mapping spezifiziert werden.
logargs
- Die Protokollparameter für den Mirror; die Anzahl der angegebenen Protokollparameter wird durch den
#log-args
-Parameter spezifiziert und die gültigen Protokollparameter werden durch denlog_type
-Parameter bestimmt. #devs
- Die Anzahl der Standbeine des Mirrors; ein Gerät und ein Offset wird für jedes Standbein spezifiziert.
device
- Blockgerät für jedes Mirror-Standbein, referenziert anhand des Gerätenamens im Dateisystem oder anhand der Major- und Minor-Nummern im Format
major
:minor
. Ein Blockgerät und ein Offset wird für jedes Standbein spezifiziert, das vom#devs
-Parameter angegeben ist. offset
- Start-Offset des Mappings auf dem Gerät. Ein Blockgerät und ein Offset wird für jedes Standbein spezifiziert, das vom
#devs
-Parameter angegeben ist.
0 52428800 mirror clustered_disk 4 253:2 1024 UUID block_on_error 3 253:3 0 253:4 0 253:5 0
- 0
- Startblock im virtuellen Gerät
- 52428800
- Länge dieses Segments
- mirror clustered_disk
- Mirror-Ziel mit einem Protokolltyp, der spezifiziert, dass der Mirror gespiegelt wird und das Mirror-Protokoll auf Festplatte bewahrt wird
- 4
- 4 Mirror-Protokollparameter folgen
- 253:2
- Major:Minor-Nummern des Protokollgeräts
- 1024
- Bereichsgröße, die das Mirror-Protokoll verwendet um nachzuverfolgen, was synchron ist
UUID
- UUID des Mirror-Protokollgeräts, um Protokolldaten für den gesamten Cluster zu bewahren
block_on_error
- Mirror sollte auf Fehler antworten
- 3
- Anzahl der Standbeine im Mirror
- 253:3 0 253:4 0 253:5 0
- Major:Minor-Nummern und Offset für die Geräte, aus denen jedes Standbein des Mirrors besteht
A.1.4. Snapshot und Snapshot-Quelle der Mapping-Ziele
- Ein Gerät mit einem
linear
Mapping, das die ursprüngliche Mapping-Tabelle des Quelldatenträgers enthält. - Ein Gerät mit einem
linear
Mapping, das als "copy-on-write" (kurz COW) Gerät für den Quelldatenträger dient; bei jedem Schreibvorgang werden die originalen Daten im COW-Gerät eines jeden Snapshots gespeichert, um dessen sichtbaren Inhalt unverändert zu lassen (bis das COW-Gerät voll ist). - Ein Gerät mit einem
snapshot
-Mapping, das #1 und #2 kombiniert, was den sichtbaren Snapshot-Datenträger bildet. - Der "Original"-Datenträger (der die Gerätenummer des originalen Quelldatenträgers verwendet), dessen Tabelle durch ein "Snapshot-Quell"-Mapping von Gerät #1 ersetzt wird.
base
und einen Snapshot-Datenträger namens snap
basierend auf diesem Datenträger zu erstellen.
#lvcreate -L 1G -n base volumeGroup
#lvcreate -L 100M --snapshot -n snap volumeGroup/base
#dmsetup table|grep volumeGroup
volumeGroup-base-real: 0 2097152 linear 8:19 384 volumeGroup-snap-cow: 0 204800 linear 8:19 2097536 volumeGroup-snap: 0 2097152 snapshot 254:11 254:12 P 16 volumeGroup-base: 0 2097152 snapshot-origin 254:11 #ls -lL /dev/mapper/volumeGroup-*
brw------- 1 root root 254, 11 29 ago 18:15 /dev/mapper/volumeGroup-base-real brw------- 1 root root 254, 12 29 ago 18:15 /dev/mapper/volumeGroup-snap-cow brw------- 1 root root 254, 13 29 ago 18:15 /dev/mapper/volumeGroup-snap brw------- 1 root root 254, 10 29 ago 18:14 /dev/mapper/volumeGroup-base
snapshot-origin
-Ziels lautet folgendermaßen:
start length
snapshot-originorigin
start
- Startblock im virtuellen Gerät
length
- Länge dieses Segments
origin
- Basisdatenträger des Snapshots
snapshot-origin
basieren normalerweise ein oder mehrere weitere Snapshots. Lesevorgänge werden direkt auf das dahinter liegende Gerät gemappt. Bei jedem Schreibvorgang werden die originalen Daten im COW-Gerät eines jeden Snapshots gespeichert, um dessen sichtbaren Inhalt unverändert zu lassen, bis das COW-Gerät voll ist.
snapshot
-Ziels sieht folgendermaßen aus:
start length
snapshotorigin COW-device
P|Nchunksize
start
- Startblock im virtuellen Gerät
length
- Länge dieses Segments
origin
- Basisdatenträger des Snapshots
COW-device
- Gerät, auf dem veränderte Datenblöcke gespeichert werden
- P|N
- P (Persistent) oder N (Nicht persistent); gibt an, ob ein Snapshot über einen Neustart hinweg bestehen bleibt. Für transiente Snapshots (N) müssen weniger Metadaten auf der Festplatte gespeichert werden; sie können vom Kernel im Hauptspeicher bewahrt werden.
chunksize
- Größe in Sektoren der veränderten Datenblöcke ("Chunks"), die auf dem COW-Gerät gespeichert werden
snapshot-origin
-Ziel mit dem originalen Gerät 254:11.
0 2097152 snapshot-origin 254:11
snapshot
-Ziel mit dem originalen Gerät 254:11 und dem COW-Gerät 254:12. Dieses Snapshot-Gerät ist über Neustarts hinweg persistent und die Chunk-Größe für die auf dem COW-Gerät gespeicherten Daten beträgt 16 Sektoren.
0 2097152 snapshot 254:11 254:12 P 16
A.1.5. Das "error" Mapping-Ziel
error
Mapping-Ziel akzeptiert außer den start und length-Parametern keine weiteren Parameter.
error
-Ziel.
0 65536 error
A.1.6. Das "zero" Mapping-Ziel
zero
Mapping-Ziel ist ein Blockgerät-Äquivalent zu /dev/zero
. Eine Leseoperation auf diesem Mapping gibt Blöcke von Nullen zurück. Auf dieses Mapping geschriebene Daten werden verworfen, der Schreibvorgang ist jedoch erfolgreich. Das zero
Mapping-Ziel akzeptiert außer den start und length-Parametern keine weiteren Parameter.
zero
-Ziel für ein 16 TB Gerät.
0 65536 zero
A.1.7. Das "multipath" Mapping-Ziel
multipath
-Ziels sieht folgendermaßen aus:
start length
multipath
#features [feature1 ... featureN] #handlerargs [handlerarg1 ... handlerargN] #pathgroups pathgroup pathgroupargs1 ... pathgroupargsN
pathgroupargs
-Parametern für jede Pfadgruppe.
start
- Startblock im virtuellen Gerät
length
- Länge dieses Segments
#features
- Die Anzahl von Multipath-Features, gefolgt von diesen Features. Ist dieser Parameter Null, gibt es keinen
feature
-Parameter und der nächste Geräte-Mapping-Parameter ist#handlerargs
. Derzeit gibt es ein unterstütztes Multipath-Feature,queue_if_no_path
. Dies gibt an, dass dieses Multipath-Gerät derzeit darauf eingestellt ist, I/O-Operationen in eine Warteschlange zu stellen, wenn kein Pfad verfügbar ist.Ist beispielsweise dieno_path_retry
-Option in dermultipath.conf
-Datei darauf eingestellt, I/O-Operationen nur solange in eine Warteschlange zu stellen, bis alle Pfade als fehlerhaft markiert wurden, nachdem eine festgelegte Anzahl an Versuchen unternommen wurde, diese Pfade zu verwenden, würde das Mapping folgendermaßen erscheinen, bis für alle Pfadüberprüfungen die festgelegte Anzahl von Prüfungen fehlschlugen.0 71014400 multipath 1 queue_if_no_path 0 2 1 round-robin 0 2 1 66:128 \ 1000 65:64 1000 round-robin 0 2 1 8:0 1000 67:192 1000
Nachdem für alle Pfadüberprüfungen die festgelegte Anzahl von Prüfungen fehlschlugen, würde das Mapping folgendermaßen erscheinen.0 71014400 multipath 0 0 2 1 round-robin 0 2 1 66:128 1000 65:64 1000 \ round-robin 0 2 1 8:0 1000 67:192 1000
#handlerargs
- Die Anzahl von Hardware-Handler-Parametern, gefolgt von diesen Parametern. Ein Hardware-Handler spezifiziert ein Modul, das zur Durchführung von hardwarespezifischen Aktionen verwendet wird beim Wechseln von Pfadgruppen oder bei der Handhabung von I/O-Fehlern. Ist dies auf 0 gesetzt, ist der nächste Parameter
#pathgroups
. #pathgroups
- Die Anzahl von Pfadgruppen. Eine Pfadgruppe ist die Gruppe von Pfaden, über die ein Multipath-Gerät lastverteilt. Es gibt eine Gruppe von
pathgroupargs
-Parametern für jede Pfadgruppe. pathgroup
- Die nächste zu versuchende Pfadgruppe.
pathgroupsargs
- Jede Pfadgruppe umfasst die folgenden Parameter:
pathselector #selectorargs #paths #pathargs device1 ioreqs1 ... deviceN ioreqsN
Es gibt eine Gruppe von Pfadparametern für jeden Pfad in der Pfadgruppe.pathselector
- Spezifiziert den verwendeten Algorithmus um zu bestimmen, welcher Pfad in dieser Pfadgruppe für die nächste I/O-Operation zu verwenden ist.
#selectorargs
- Die Anzahl der Pfadauswahl-Parameter, die diesem Parameter im Multipath-Mapping folgen. Derzeit ist der Wert dieses Parameters immer 0.
#paths
- Die Anzahl von Pfaden in dieser Pfadgruppe.
#pathargs
- Die Anzahl der Pfadparameter, die für jeden Pfad in dieser Gruppe spezifiziert sind. Derzeit ist diese Anzahl immer 1, der
ioreqs
-Parameter. device
- Die Blockgerätenummer des Pfads, referenziert durch die Major- und Minor-Nummern im Format
major
:minor
ioreqs
- Die Anzahl von I/O-Anfragen, die auf diesen Pfad geleitet werden, bevor zum nächsten Pfad in der aktuellen Gruppe gewechselt wird.

Abbildung A.1. "Multipath" Mapping-Ziel
0 71014400 multipath 0 0 4 1 round-robin 0 1 1 66:112 1000 \ round-robin 0 1 1 67:176 1000 round-robin 0 1 1 68:240 1000 \ round-robin 0 1 1 65:48 1000
0 71014400 multipath 0 0 1 1 round-robin 0 4 1 66:112 1000 \ 67:176 1000 68:240 1000 65:48 1000
A.1.8. Das "crypt" Mapping-Ziel
crypt
-Ziel verschlüsselt die Daten, die das angegebene Gerät durchlaufen. Es verwendet die Kernel-Crypto-API.
crypt
-Ziel sieht folgendermaßen aus:
start length
cryptcipher key IV-offset device offset
start
- Startblock im virtuellen Gerät
length
- Länge dieses Segments
cipher
- Cipher (Schlüssel) besteht aus
cipher[-chainmode]-ivmode[:iv options]
.cipher
- Die verfügbaren Cipher (Schlüssel) sind in
/proc/crypto
aufgelistet (z.B.aes
). chainmode
- Verwenden Sie stets
cbc
. Verwenden Sie nichtebc
, da es keinen initialen Vektor (IV) einsetzt. ivmode[:iv options]
- IV ist ein initialer Vektor, der zum Variieren der Verschlüsselung eingesetzt wird. Der IV-Modus ist
plain
oderessiv:hash
. Derivmode
-plain
verwendet die Sektorennummer (zuzüglich IV-Offset) als den IV. Derivmode
-essiv
ist eine Verbesserung, um mögliche Wasserzeichenangriffe zu vermeiden.
key
- Verschlüsselungs-Code, angegeben in hex
IV-offset
- Offset für den initialen Vektor (IV)
device
- Blockgerät, referenziert anhand des Gerätenamens im Dateisystem oder anhand der Major- und Minor-Nummern im Format
major
:minor
offset
- Start-Offset des Mappings auf dem Gerät
crypt
-Ziel.
0 2097152 crypt aes-plain 0123456789abcdef0123456789abcdef 0 /dev/hda 0
A.2. Der dmsetup-Befehl
dmsetup
ist ein Kommandozeilen-Wrapper für die Kommunikation mit dem Device-Mapper. Für allgemeine Systeminformationen zu LVM-Geräten sind die info
, ls
, status
und deps
Optionen des dmsetup
-Befehls ggf. für Sie nützlich, wie in den nachfolgenden Abschnitten erläutert.
dmsetup
für weitere Informationen zu den Optionen und Fähigkeiten des Befehls dmsetup
.
A.2.1. Der dmsetup info Befehl
dmsetup info device
-Befehl liefert eine Übersicht über Device-Mapper-Geräte. Wenn Sie keinen Gerätenamen angeben, werden Informationen für alle derzeit konfigurierten Device-Mapper-Geräte ausgegeben. Wenn Sie ein bestimmtes Gerät angeben, gibt dieser Befehl nur Informationen für dieses Gerät aus.
dmsetup info
-Befehl liefert Informationen in den folgenden Kategorien:
Name
- Der Name des Geräts. Ein LVM-Gerät wird durch den Datengruppennamen und den Namen des logischen Datenträgers, mit einem Bindestrich voneinander getrennt, dargestellt. Ein Bindestrich im ursprünglichen Namen wird in zwei Bindestriche übersetzt.
State
- Die möglichen Gerätezustände sind
SUSPENDED
,ACTIVE
undREAD-ONLY
. Derdmsetup suspend
-Befehl setzt den Gerätezustand aufSUSPENDED
. Ist ein Gerät ausgesetzt ("suspended"), werden sämtliche I/O-Operationen auf diesem Gerät ausgesetzt. Derdmsetup resume
-Befehl setzt den Gerätezustand zurück aufACTIVE
. Read Ahead
- Die Anzahl von Datenblöcken, die das System im Voraus liest für jede offene Datei, auf der Leseoperationen stattfinden. Standardmäßig wählt der Kernel automatisch einen angemessenen Wert. Sie können diesen Wert mithilfe der
--readahead
-Option desdmsetup
-Befehls ändern. Tables present
- Mögliche Zustände für diese Kategorie sind
LIVE
undINACTIVE
. Der ZustandINACTIVE
zeigt an, dass eine Tabelle geladen wurde, die vom Swap-Speicher in den Arbeitsspeicher geladen wird, sobald eindmsetup resume
-Befehl einen Gerätezustand wieder aufACTIVE
setzt, woraufhin sich der Tabellenzustand aufLIVE
ändert. Weitere Informationen diesbezüglich finden Sie auf derdmsetup
-Handbuchseite. Open count
- Der Zähler für offene Referenzen gibt an, wie oft das Gerät geöffnet ist. Ein
mount
-Befehl öffnet ein Gerät. Event number
- Die derzeitige Anzahl empfangener Ereignisse. Durch Ausführen des Befehls
dmsetup wait n
kann ein Benutzer auf das n-te Ereignis warten, und den Aufruf solange blockieren, bis dies empfangen wurde. Major, minor
- Major- und Minor-Gerätenummer
Number of targets
- Die Anzahl der Fragmente, aus denen sich ein Gerät zusammensetzt. So hat zum Beispiel ein lineares Gerät, das 3 Festplatten umfasst, 3 Ziele. Ein lineares Gerät, das aus dem Anfang und dem Ende einer Platte besteht, jedoch nicht der Mitte, hätte 2 Ziele.
UUID
- UUID des Geräts.
dmsetup info
-Befehls.
[root@ask-07 ~]# dmsetup info
Name: testgfsvg-testgfslv1
State: ACTIVE
Read Ahead: 256
Tables present: LIVE
Open count: 0
Event number: 0
Major, minor: 253, 2
Number of targets: 2
UUID: LVM-K528WUGQgPadNXYcFrrf9LnPlUMswgkCkpgPIgYzSvigM7SfeWCypddNSWtNzc2N
...
Name: VolGroup00-LogVol00
State: ACTIVE
Read Ahead: 256
Tables present: LIVE
Open count: 1
Event number: 0
Major, minor: 253, 0
Number of targets: 1
UUID: LVM-tOcS1kqFV9drb0X1Vr8sxeYP0tqcrpdegyqj5lZxe45JMGlmvtqLmbLpBcenh2L3
A.2.2. Der dmsetup ls Befehl
dmsetup ls
-Befehls können Sie die Gerätenamen gemappter Geräte anzeigen. Sie können speziell Geräte anzeigen lassen, die mindestens ein Ziel vom angegebenen Typ haben, indem Sie den Befehl dmsetup ls --target target_type
ausführen. Werfen Sie für weitere Optionen des dmsetup ls
-Befehls einen Blick auf die dmsetup
-Handbuchseite.
[root@ask-07 ~]# dmsetup ls
testgfsvg-testgfslv3 (253, 4)
testgfsvg-testgfslv2 (253, 3)
testgfsvg-testgfslv1 (253, 2)
VolGroup00-LogVol01 (253, 1)
VolGroup00-LogVol00 (253, 0)
[root@grant-01 ~]# dmsetup ls --target mirror
lock_stress-grant--02.1722 (253, 34)
lock_stress-grant--01.1720 (253, 18)
lock_stress-grant--03.1718 (253, 52)
lock_stress-grant--02.1716 (253, 40)
lock_stress-grant--03.1713 (253, 47)
lock_stress-grant--02.1709 (253, 23)
lock_stress-grant--01.1707 (253, 8)
lock_stress-grant--01.1724 (253, 14)
lock_stress-grant--03.1711 (253, 27)
dmsetup ls
bietet eine --tree
-Option, die Abhängigkeiten zwischen Geräten in Baumstruktur anzeigt, wie im folgenden Beispiel veranschaulicht.
# dmsetup ls --tree
vgtest-lvmir (253:13)
├─vgtest-lvmir_mimage_1 (253:12)
│ └─mpathep1 (253:8)
│ └─mpathe (253:5)
│ ├─ (8:112)
│ └─ (8:64)
├─vgtest-lvmir_mimage_0 (253:11)
│ └─mpathcp1 (253:3)
│ └─mpathc (253:2)
│ ├─ (8:32)
│ └─ (8:16)
└─vgtest-lvmir_mlog (253:4)
└─mpathfp1 (253:10)
└─mpathf (253:6)
├─ (8:128)
└─ (8:80)
A.2.3. Der dmsetup status Befehl
dmsetup status device
Befehl liefert Zustandsinformationen für jedes Ziel im angegebenen Gerät. Wenn Sie keinen Gerätenamen angeben, werden Informationen für alle derzeit konfigurierten Device-Mapper-Geräte ausgegeben. Sie können den Status von ausschließlich jenen Geräten anzeigen lassen, die mindestens ein Ziel vom angegebenen Typ haben, indem Sie den Befehl dmsetup status --target target_type
ausführen.
[root@ask-07 ~]# dmsetup status
testgfsvg-testgfslv3: 0 312352768 linear
testgfsvg-testgfslv2: 0 312352768 linear
testgfsvg-testgfslv1: 0 312352768 linear
testgfsvg-testgfslv1: 312352768 50331648 linear
VolGroup00-LogVol01: 0 4063232 linear
VolGroup00-LogVol00: 0 151912448 linear
A.2.4. Der dmsetup deps Befehl
dmsetup deps device
Befehl liefert eine Liste mit (Major,Minor)-Paaren für Geräte, die von der Mapping-Tabelle des spezifizierten Geräts referenziert werden. Wenn Sie keinen Gerätenamen angeben, werden Informationen für alle derzeit konfigurierten Device-Mapper-Geräte ausgegeben.
[root@ask-07 ~]# dmsetup deps
testgfsvg-testgfslv3: 1 dependencies : (8, 16)
testgfsvg-testgfslv2: 1 dependencies : (8, 16)
testgfsvg-testgfslv1: 1 dependencies : (8, 16)
VolGroup00-LogVol01: 1 dependencies : (8, 2)
VolGroup00-LogVol00: 1 dependencies : (8, 2)
lock_stress-grant--02.1722
anzuzeigen.
[root@grant-01 ~]# dmsetup deps lock_stress-grant--02.1722
3 dependencies : (253, 33) (253, 32) (253, 31)
A.3. Device-Mapper-Unterstützung für den udev-Gerätemanager
udev
-Gerätemanagers besteht darin, einen dynamischen Weg zum Erzeugen von Knoten im /dev
-Verzeichnis bereitzustellen. Das Erzeugen dieser Knoten wird durch die Anwendung von udev
-Regeln im Userspace geleitet. Diese Regeln werden auf udev
-Ereignisse angewendet, die direkt vom Kernel gesendet werden als Reaktion auf das Hinzufügen, Entfernen oder Ändern bestimmter Geräte. Somit können auf bequeme und zentral Weise Geräte im laufenden Betrieb verändert werden.
udev
-Gerätemanager auch symbolische Links mit jeweils eigenen Namen erzeugen, so dass es Benutzern freisteht, bei Bedarf ihre eigene Namens- und Verzeichnisstruktur im /dev
-Verzeichnis zu wählen.
udev
-Ereignis enthält wesentliche Informationen über das bearbeitete Gerät, u.a. dessen Name, das Subsystem zu dem es gehört, sein Gerätetyp, seine verwendete Major- und Minor-Nummer und die Art des Ereignisses. Dank dieser Informationen sowie dank der Möglichkeit, auf alle Informationen innerhalb des /sys
-Verzeichnisses zuzugreifen, auf das auch innerhalb der udev
-Regeln zugegriffen werden kann, können Benutzer einfache Filter basierend auf diesen Informationen einsetzen und die Regeln abhängig von diesen Informationen bedingt ausführen.
udev
-Gerätemanager bietet zudem einen zentralen Weg zum Einrichten der Knotenberechtigungen. Ein Benutzer kann einfach eine angepasste Reihe von Regeln hinzufügen, um die Berechtigungen für jedes Gerät zu definieren, das durch eine Information, die während der Verarbeitung des Ereignisses zur Verfügung steht, spezifiziert wird.
udev
-Regeln hinzuzufügen. Der udev
-Gerätemanager kann diese Programme aufrufen, um eine weitergehende Verarbeitung zu veranlassen, die zur Handhabung dieses Ereignisses notwendig ist. Zudem kann das Programm als Ergebnis dieser Verarbeitung Umgebungsvariablen exportieren. Jegliche gelieferte Ergebnisse können im weiteren Verlauf als weitere Informationsquelle in den Regeln genutzt werden.
udev
-Bibliothek verwendet, kann udev
-Ereignisse mit allen verfügbaren Informationen empfangen und verarbeiten, die Verarbeitung ist also nicht allein an den udev
-Daemon gebunden.
A.3.1. udev-Integration mit dem Device Mapper
udev
-Integration. Dies synchronisiert den Device Mapper mit sämtlicher udev
-Verarbeitung in Zusammenhang mit Device-Mapper-Geräten, einschließlich LVM-Geräten. Diese Synchronisation ist notwendig, da die Regelanwendung im udev
-Daemon eine Art paralleler Verarbeitung ist zu dem Programm, das die Quelle für die Änderungen an diesem Gerät darstellt (z.B. dmsetup
und LVM). Ohne diese Unterstützung gab es häufig das Problem, dass ein Benutzer versuchte, ein Gerät zu entfernen, das noch geöffnet war und aufgrund eines vorangegangenen Änderungsereignisses immer noch von udev
-Regeln bearbeitet wurde; dies trat insbesondere dann auf, wenn die Zeitabstände zwischen Änderungen auf diesem Gerät sehr kurz waren.
udev
-Regeln für Device-Mapper-Geräte im Allgemeinen und für LVM im Besonderen. Tabelle A.1, »udev-Regeln für Device-Mapper-Geräte« fasst diese Regeln zusammen, die alle in /lib/udev/rules.d
installiert sind.
Dateiname | Beschreibung | ||
---|---|---|---|
10-dm.rules |
| ||
11-dm-lvm.rules |
| ||
13-dm-disk.rules | Enthält auf alle Device-Mapper-Geräte allgemein angewendete Regeln und erstellt die symbolischen Links in den /dev/disk/by-id , /dev/disk/by-uuid und /dev/disk/by-uuid -Verzeichnissen. | ||
95-dm-notify.rules | Enthält die Regel zur Benachrichtigung des wartenden Prozesses mittels libdevmapper (ganz wie LVM und dmsetup ). Die Benachrichtigung erfolgt, nachdem alle vorhergehenden Regeln angewendet wurden, um sicherzustellen, dass jegliche udev -Verarbeitung abgeschlossen ist. Der benachrichtigte Prozess wird anschließend fortgesetzt. |
12-dm-permissions.rules
-Datei zusätzliche, angepasste Berechtigungsregeln hinzufügen. Diese Datei ist nicht im /lib/udev/rules
-Verzeichnis installiert; sie befindet sich stattdessen im /usr/share/doc/device-mapper-version
-Verzeichnis. Die 12-dm-permissions.rules
-Datei ist eine Vorlage, die Hinweise zum Einstellen der Berechtigungen enthält, basierend auf einigen passenden Regeln als Beispiel; die Datei enthält Beispiele für einige häufige Situationen. Sie können diese Datei bearbeiten und sie manuell in das /etc/udev/rules.d
-Verzeichnis ablegen, wo sie Aktualisierungen überdauert, die Einstellungen bleiben also erhalten.
DM_NAME
: Name des Device-Mapper-GerätsDM_UUID
: UUID des Device-Mapper-GerätsDM_SUSPENDED
: der ausgesetzte Zustand des Device-Mapper-GerätsDM_UDEV_RULES_VSN
:udev
-Regelversion (primär für alle anderen Regeln zur Überprüfung, ob zuvor erwähnte Variablen direkt von offiziellen Device-Mapper-Regeln gesetzt wurden)
11-dm-lvm.rules
gesetzt:
DM_LV_NAME
: Name des logischen DatenträgersDM_VG_NAME
: Name der DatenträgergruppeDM_LV_LAYER
: Name der LVM-Schicht
12-dm-permissions.rules
-Datei genutzt werden, um Berechtigungen für bestimmte Device-Mapper-Geräte zu definieren, wie in der 12-dm-permissions.rules
-Datei dokumentiert.
A.3.2. udev unterstützende Befehle und Schnittstellen
dmsetup
-Befehle zusammen, die udev
-Integration unterstützen.
Befehl | Beschreibung |
---|---|
dmsetup udevcomplete | Wird verwendet zur Benachrichtigung, dass udev die Verarbeitung der Regeln abgeschlossen hat und entsperrt den wartenden Prozess (aufgerufen von den udev -Regeln in 95-dm-notify.rules ). |
dmsetup udevcomplete_all | Wird verwendet zur Suche und Bereinigung von Programmfehlern, um manuell alle wartenden Prozesse zu entsperren. |
dmsetup udevcookies | Wird verwendet zur Suche und Bereinigung von Programmfehlern, um alle vorhandenen Cookies anzuzeigen (systemweite Semaphore). |
dmsetup udevcreatecookie | Wird verwendet zur manuellen Erstellung eines Cookies (Semaphors). Dies ist hilfreich, um mehrere Prozesse unter einer Synchronisationsressource auszuführen. |
dmsetup udevreleasecookie | Wird verwendet, um auf sämtliche udev -Verarbeitung im Zusammenhang mit allen Prozessen, die unter das eine Synchronisations-Cookie platziert wurden, zu warten. |
dmsetup
-Optionen, die udev
-Integration unterstützen, lauten folgendermaßen.
--udevcookie
- Muss für alle dmsetup-Prozesse definiert werden, die wir in einer udev-Transaktion hinzufügen möchten. Wird in Verbindung mit
udevcreatecookie
undudevreleasecookie
verwendet:COOKIE=$(dmsetup udevcreatecookie) dmsetup command --udevcookie $COOKIE .... dmsetup command --udevcookie $COOKIE .... .... dmsetup command --udevcookie $COOKIE .... dmsetup udevreleasecookie --udevcookie $COOKIE
Neben der Verwendung der--udevcookie
-Option können Sie auch einfach die Variable in eine Umgebung des Prozesses exportieren:export DM_UDEV_COOKIE=$(dmsetup udevcreatecookie) dmsetup command ... dmsetup command ... ... dmsetup command ...
--noudevrules
- Deaktiviert udev-Regeln. Knoten/Symlinks werden durch
libdevmapper
selbst erzeugt (auf die alte Art). Diese Option steht für die Suche und Bereinigung von Programmfehlern zur Verfügung, wennudev
nicht einwandfrei funktioniert. --noudevsync
- Deaktiviert
udev
-Synchronisation. Ebenfalls zum Zwecke der Suche und Bereinigung von Programmfehlern.
dmsetup
für Informationen zum Befehl dmsetup
und dessen Optionen.
udev
-Integration unterstützen:
--noudevrules
: wie auch beimdmsetup
-Befehl deaktiviert dies dieudev
-Regeln.--noudevsync
: wie auch beimdmsetup
-Befehl deaktiviert dies dieudev
-Synchronisation.
lvm.conf
-Datei umfasst die folgenden Optionen, die udev
-Integration unterstützen:
udev_rules
: aktiviert/deaktiviertudev_rules
für alle LVM2-Befehle übergreifendudev_sync
: aktiviert/deaktiviertudev
-Synchronisation für alle LVM-Befehle übergreifend
lvm.conf
-Dateioptionen finden Sie in den Kommentaren der lvm.conf
-Datei.
Anhang B. Die LVM-Konfigurationsdateien
lvm.conf
aus dem Verzeichnis geladen, das durch die Systemvariable LVM_SYSTEM_DIR
spezifiziert wird und die standardmäßig auf /etc/lvm
gesetzt ist.
lvm.conf
können zusätzliche Konfigurationsdateien angegeben werden, die geladen werden sollen. Einstellungen in nachfolgenden Dateien überschreiben Einstellungen von zuvor geladenen Dateien. Um die Einstellungen anzuzeigen, die nach Laden aller Konfigurationsdateien verwendet werden, führen Sie den Befehl lvm dumpconfig
aus.
B.1. Die LVM-Konfigurationsdateien
- /etc/lvm/lvm.conf
- Zentrale Konfigurationsdatei, die von den Tools gelesen wird.
- etc/lvm/lvm_hosttag.conf
- Für jeden Host-Tag wird eine extra Konfigurationsdatei gelesen, falls vorhanden:
lvm_hosttag.conf
. Falls diese Datei neue Tags definiert, dann werden weitere Konfigurationsdateien, die eingelesen werden sollen, an die Liste der Tiles angehängt. Werfen Sie einen Blick auf Abschnitt C.2, »Host-Tags« für Informationen zu Host-Tags.
- /etc/lvm/.cache
- Gerätenamens-Filter Cache-Datei (konfigurierbar).
- /etc/lvm/backup/
- Verzeichnis für Backups für automatische Datenträgergruppen-Metadaten (konfigurierbar).
- /etc/lvm/archive/
- Verzeichnis für Archive für automatische Datenträgergruppen-Metadaten (konfigurierbar in Bezug auf Verzeichnispfad und Tiefe des Archivverlaufs).
- /var/lock/lvm/
- In einer Einzel-Host-Konfiguration verhindern Lock-Dateien, dass Tools, die parallel laufen, Metadaten korrumpieren. In einem Cluster wird clusterweites DLM verwendet.
B.2. Beispiel einer lvm.conf-Datei
lvm.conf
-Konfigurationsdatei. Ihre Konfigurationsdatei kann sich von der gezeigten leicht unterscheiden.
# This is an example configuration file for the LVM2 system. # It contains the default settings that would be used if there was no # /etc/lvm/lvm.conf file. # # Refer to 'man lvm.conf' for further information including the file layout. # # To put this file in a different directory and override /etc/lvm set # the environment variable LVM_SYSTEM_DIR before running the tools. # This section allows you to configure which block devices should # be used by the LVM system. devices { # Where do you want your volume groups to appear ? dir = "/dev" # An array of directories that contain the device nodes you wish # to use with LVM2. scan = [ "/dev" ] # If several entries in the scanned directories correspond to the # same block device and the tools need to display a name for device, # all the pathnames are matched against each item in the following # list of regular expressions in turn and the first match is used. # preferred_names = [ ] # Try to avoid using undescriptive /dev/dm-N names, if present. preferred_names = [ "^/dev/mpath/", "^/dev/mapper/mpath", "^/dev/[hs]d" ] # A filter that tells LVM2 to only use a restricted set of devices. # The filter consists of an array of regular expressions. These # expressions can be delimited by a character of your choice, and # prefixed with either an 'a' (for accept) or 'r' (for reject). # The first expression found to match a device name determines if # the device will be accepted or rejected (ignored). Devices that # don't match any patterns are accepted. # Be careful if there there are symbolic links or multiple filesystem # entries for the same device as each name is checked separately against # the list of patterns. The effect is that if any name matches any 'a' # pattern, the device is accepted; otherwise if any name matches any 'r' # pattern it is rejected; otherwise it is accepted. # Don't have more than one filter line active at once: only one gets used. # Run vgscan after you change this parameter to ensure that # the cache file gets regenerated (see below). # If it doesn't do what you expect, check the output of 'vgscan -vvvv'. # By default we accept every block device: filter = [ "a/.*/" ] # Exclude the cdrom drive # filter = [ "r|/dev/cdrom|" ] # When testing I like to work with just loopback devices: # filter = [ "a/loop/", "r/.*/" ] # Or maybe all loops and ide drives except hdc: # filter =[ "a|loop|", "r|/dev/hdc|", "a|/dev/ide|", "r|.*|" ] # Use anchors if you want to be really specific # filter = [ "a|^/dev/hda8$|", "r/.*/" ] # The results of the filtering are cached on disk to avoid # rescanning dud devices (which can take a very long time). # By default this cache is stored in the /etc/lvm/cache directory # in a file called '.cache'. # It is safe to delete the contents: the tools regenerate it. # (The old setting 'cache' is still respected if neither of # these new ones is present.) cache_dir = "/etc/lvm/cache" cache_file_prefix = "" # You can turn off writing this cache file by setting this to 0. write_cache_state = 1 # Advanced settings. # List of pairs of additional acceptable block device types found # in /proc/devices with maximum (non-zero) number of partitions. # types = [ "fd", 16 ] # If sysfs is mounted (2.6 kernels) restrict device scanning to # the block devices it believes are valid. # 1 enables; 0 disables. sysfs_scan = 1 # By default, LVM2 will ignore devices used as components of # software RAID (md) devices by looking for md superblocks. # 1 enables; 0 disables. md_component_detection = 1 # By default, if a PV is placed directly upon an md device, LVM2 # will align its data blocks with the md device's stripe-width. # 1 enables; 0 disables. md_chunk_alignment = 1 # Default alignment of the start of a data area in MB. If set to 0, # a value of 64KB will be used. Set to 1 for 1MiB, 2 for 2MiB, etc. # default_data_alignment = 1 # By default, the start of a PV's data area will be a multiple of # the 'minimum_io_size' or 'optimal_io_size' exposed in sysfs. # - minimum_io_size - the smallest request the device can perform # w/o incurring a read-modify-write penalty (e.g. MD's chunk size) # - optimal_io_size - the device's preferred unit of receiving I/O # (e.g. MD's stripe width) # minimum_io_size is used if optimal_io_size is undefined (0). # If md_chunk_alignment is enabled, that detects the optimal_io_size. # This setting takes precedence over md_chunk_alignment. # 1 enables; 0 disables. data_alignment_detection = 1 # Alignment (in KB) of start of data area when creating a new PV. # md_chunk_alignment and data_alignment_detection are disabled if set. # Set to 0 for the default alignment (see: data_alignment_default) # or page size, if larger. data_alignment = 0 # By default, the start of the PV's aligned data area will be shifted by # the 'alignment_offset' exposed in sysfs. This offset is often 0 but # may be non-zero; e.g.: certain 4KB sector drives that compensate for # windows partitioning will have an alignment_offset of 3584 bytes # (sector 7 is the lowest aligned logical block, the 4KB sectors start # at LBA -1, and consequently sector 63 is aligned on a 4KB boundary). # But note that pvcreate --dataalignmentoffset will skip this detection. # 1 enables; 0 disables. data_alignment_offset_detection = 1 # If, while scanning the system for PVs, LVM2 encounters a device-mapper # device that has its I/O suspended, it waits for it to become accessible. # Set this to 1 to skip such devices. This should only be needed # in recovery situations. ignore_suspended_devices = 0 # During each LVM operation errors received from each device are counted. # If the counter of a particular device exceeds the limit set here, no # further I/O is sent to that device for the remainder of the respective # operation. Setting the parameter to 0 disables the counters altogether. disable_after_error_count = 0 # Allow use of pvcreate --uuid without requiring --restorefile. require_restorefile_with_uuid = 1 } # This section allows you to configure the way in which LVM selects # free space for its Logical Volumes. #allocation { # When searching for free space to extend an LV, the "cling" # allocation policy will choose space on the same PVs as the last # segment of the existing LV. If there is insufficient space and a # list of tags is defined here, it will check whether any of them are # attached to the PVs concerned and then seek to match those PV tags # between existing extents and new extents. # Use the special tag "@*" as a wildcard to match any PV tag. # # Example: LVs are mirrored between two sites within a single VG. # PVs are tagged with either @site1 or @site2 to indicate where # they are situated. # # cling_tag_list = [ "@site1", "@site2" ] # cling_tag_list = [ "@*" ] #} # This section that allows you to configure the nature of the # information that LVM2 reports. log { # Controls the messages sent to stdout or stderr. # There are three levels of verbosity, 3 being the most verbose. verbose = 0 # Should we send log messages through syslog? # 1 is yes; 0 is no. syslog = 1 # Should we log error and debug messages to a file? # By default there is no log file. #file = "/var/log/lvm2.log" # Should we overwrite the log file each time the program is run? # By default we append. overwrite = 0 # What level of log messages should we send to the log file and/or syslog? # There are 6 syslog-like log levels currently in use - 2 to 7 inclusive. # 7 is the most verbose (LOG_DEBUG). level = 0 # Format of output messages # Whether or not (1 or 0) to indent messages according to their severity indent = 1 # Whether or not (1 or 0) to display the command name on each line output command_names = 0 # A prefix to use before the message text (but after the command name, # if selected). Default is two spaces, so you can see/grep the severity # of each message. prefix = " " # To make the messages look similar to the original LVM tools use: # indent = 0 # command_names = 1 # prefix = " -- " # Set this if you want log messages during activation. # Don't use this in low memory situations (can deadlock). # activation = 0 } # Configuration of metadata backups and archiving. In LVM2 when we # talk about a 'backup' we mean making a copy of the metadata for the # *current* system. The 'archive' contains old metadata configurations. # Backups are stored in a human readeable text format. backup { # Should we maintain a backup of the current metadata configuration ? # Use 1 for Yes; 0 for No. # Think very hard before turning this off! backup = 1 # Where shall we keep it ? # Remember to back up this directory regularly! backup_dir = "/etc/lvm/backup" # Should we maintain an archive of old metadata configurations. # Use 1 for Yes; 0 for No. # On by default. Think very hard before turning this off. archive = 1 # Where should archived files go ? # Remember to back up this directory regularly! archive_dir = "/etc/lvm/archive" # What is the minimum number of archive files you wish to keep ? retain_min = 10 # What is the minimum time you wish to keep an archive file for ? retain_days = 30 } # Settings for the running LVM2 in shell (readline) mode. shell { # Number of lines of history to store in ~/.lvm_history history_size = 100 } # Miscellaneous global LVM2 settings global { # The file creation mask for any files and directories created. # Interpreted as octal if the first digit is zero. umask = 077 # Allow other users to read the files #umask = 022 # Enabling test mode means that no changes to the on disk metadata # will be made. Equivalent to having the -t option on every # command. Defaults to off. test = 0 # Default value for --units argument units = "h" # Since version 2.02.54, the tools distinguish between powers of # 1024 bytes (e.g. KiB, MiB, GiB) and powers of 1000 bytes (e.g. # KB, MB, GB). # If you have scripts that depend on the old behaviour, set this to 0 # temporarily until you update them. si_unit_consistency = 1 # Whether or not to communicate with the kernel device-mapper. # Set to 0 if you want to use the tools to manipulate LVM metadata # without activating any logical volumes. # If the device-mapper kernel driver is not present in your kernel # setting this to 0 should suppress the error messages. activation = 1 # If we can't communicate with device-mapper, should we try running # the LVM1 tools? # This option only applies to 2.4 kernels and is provided to help you # switch between device-mapper kernels and LVM1 kernels. # The LVM1 tools need to be installed with .lvm1 suffices # e.g. vgscan.lvm1 and they will stop working after you start using # the new lvm2 on-disk metadata format. # The default value is set when the tools are built. # fallback_to_lvm1 = 0 # The default metadata format that commands should use - "lvm1" or "lvm2". # The command line override is -M1 or -M2. # Defaults to "lvm2". # format = "lvm2" # Location of proc filesystem proc = "/proc" # Type of locking to use. Defaults to local file-based locking (1). # Turn locking off by setting to 0 (dangerous: risks metadata corruption # if LVM2 commands get run concurrently). # Type 2 uses the external shared library locking_library. # Type 3 uses built-in clustered locking. # Type 4 uses read-only locking which forbids any operations that might # change metadata. locking_type = 1 # Set to 0 to fail when a lock request cannot be satisfied immediately. wait_for_locks = 1 # If using external locking (type 2) and initialisation fails, # with this set to 1 an attempt will be made to use the built-in # clustered locking. # If you are using a customised locking_library you should set this to 0. fallback_to_clustered_locking = 1 # If an attempt to initialise type 2 or type 3 locking failed, perhaps # because cluster components such as clvmd are not running, with this set # to 1 an attempt will be made to use local file-based locking (type 1). # If this succeeds, only commands against local volume groups will proceed. # Volume Groups marked as clustered will be ignored. fallback_to_local_locking = 1 # Local non-LV directory that holds file-based locks while commands are # in progress. A directory like /tmp that may get wiped on reboot is OK. locking_dir = "/var/lock/lvm" # Whenever there are competing read-only and read-write access requests for # a volume group's metadata, instead of always granting the read-only # requests immediately, delay them to allow the read-write requests to be # serviced. Without this setting, write access may be stalled by a high # volume of read-only requests. # NB. This option only affects locking_type = 1 viz. local file-based # locking. prioritise_write_locks = 1 # Other entries can go here to allow you to load shared libraries # e.g. if support for LVM1 metadata was compiled as a shared library use # format_libraries = "liblvm2format1.so" # Full pathnames can be given. # Search this directory first for shared libraries. # library_dir = "/lib" # The external locking library to load if locking_type is set to 2. # locking_library = "liblvm2clusterlock.so" # Treat any internal errors as fatal errors, aborting the process that # encountered the internal error. Please only enable for debugging. abort_on_internal_errors = 0 # If set to 1, no operations that change on-disk metadata will be permitted. # Additionally, read-only commands that encounter metadata in need of repair # will still be allowed to proceed exactly as if the repair had been # performed (except for the unchanged vg_seqno). # Inappropriate use could mess up your system, so seek advice first! metadata_read_only = 0 } activation { # Set to 0 to disable udev synchronisation (if compiled into the binaries). # Processes will not wait for notification from udev. # They will continue irrespective of any possible udev processing # in the background. You should only use this if udev is not running # or has rules that ignore the devices LVM2 creates. # The command line argument --nodevsync takes precedence over this setting. # If set to 1 when udev is not running, and there are LVM2 processes # waiting for udev, run 'dmsetup udevcomplete_all' manually to wake them up. udev_sync = 1 # Set to 0 to disable the udev rules installed by LVM2 (if built with # --enable-udev_rules). LVM2 will then manage the /dev nodes and symlinks # for active logical volumes directly itself. # N.B. Manual intervention may be required if this setting is changed # while any logical volumes are active. udev_rules = 1 # How to fill in missing stripes if activating an incomplete volume. # Using "error" will make inaccessible parts of the device return # I/O errors on access. You can instead use a device path, in which # case, that device will be used to in place of missing stripes. # But note that using anything other than "error" with mirrored # or snapshotted volumes is likely to result in data corruption. missing_stripe_filler = "error" # How much stack (in KB) to reserve for use while devices suspended reserved_stack = 256 # How much memory (in KB) to reserve for use while devices suspended reserved_memory = 8192 # Nice value used while devices suspended process_priority = -18 # If volume_list is defined, each LV is only activated if there is a # match against the list. # "vgname" and "vgname/lvname" are matched exactly. # "@tag" matches any tag set in the LV or VG. # "@*" matches if any tag defined on the host is also set in the LV or VG # # volume_list = [ "vg1", "vg2/lvol1", "@tag1", "@*" ] # Size (in KB) of each copy operation when mirroring mirror_region_size = 512 # Setting to use when there is no readahead value stored in the metadata. # # "none" - Disable readahead. # "auto" - Use default value chosen by kernel. readahead = "auto" # 'mirror_image_fault_policy' and 'mirror_log_fault_policy' define # how a device failure affecting a mirror is handled. # A mirror is composed of mirror images (copies) and a log. # A disk log ensures that a mirror does not need to be re-synced # (all copies made the same) every time a machine reboots or crashes. # # In the event of a failure, the specified policy will be used to determine # what happens. This applies to automatic repairs (when the mirror is being # monitored by dmeventd) and to manual lvconvert --repair when # --use-policies is given. # # "remove" - Simply remove the faulty device and run without it. If # the log device fails, the mirror would convert to using # an in-memory log. This means the mirror will not # remember its sync status across crashes/reboots and # the entire mirror will be re-synced. If a # mirror image fails, the mirror will convert to a # non-mirrored device if there is only one remaining good # copy. # # "allocate" - Remove the faulty device and try to allocate space on # a new device to be a replacement for the failed device. # Using this policy for the log is fast and maintains the # ability to remember sync state through crashes/reboots. # Using this policy for a mirror device is slow, as it # requires the mirror to resynchronize the devices, but it # will preserve the mirror characteristic of the device. # This policy acts like "remove" if no suitable device and # space can be allocated for the replacement. # # "allocate_anywhere" - Not yet implemented. Useful to place the log device # temporarily on same physical volume as one of the mirror # images. This policy is not recommended for mirror devices # since it would break the redundant nature of the mirror. This # policy acts like "remove" if no suitable device and space can # be allocated for the replacement. mirror_log_fault_policy = "allocate" mirror_image_fault_policy = "remove" # 'snapshot_autoextend_threshold' and 'snapshot_autoextend_percent' define # how to handle automatic snapshot extension. The former defines when the # snapshot should be extended: when its space usage exceeds this many # percent. The latter defines how much extra space should be allocated for # the snapshot, in percent of its current size. # # For example, if you set snapshot_autoextend_threshold to 70 and # snapshot_autoextend_percent to 20, whenever a snapshot exceeds 70% usage, # it will be extended by another 20%. For a 1G snapshot, using up 700M will # trigger a resize to 1.2G. When the usage exceeds 840M, the snapshot will # be extended to 1.44G, and so on. # # Setting snapshot_autoextend_threshold to 100 disables automatic # extensions. The minimum value is 50 (A setting below 50 will be treated # as 50). snapshot_autoextend_threshold = 100 snapshot_autoextend_percent = 20 # While activating devices, I/O to devices being (re)configured is # suspended, and as a precaution against deadlocks, LVM2 needs to pin # any memory it is using so it is not paged out. Groups of pages that # are known not to be accessed during activation need not be pinned # into memory. Each string listed in this setting is compared against # each line in /proc/self/maps, and the pages corresponding to any # lines that match are not pinned. On some systems locale-archive was # found to make up over 80% of the memory used by the process. # mlock_filter = [ "locale/locale-archive", "gconv/gconv-modules.cache" ] # Set to 1 to revert to the default behaviour prior to version 2.02.62 # which used mlockall() to pin the whole process's memory while activating # devices. use_mlockall = 0 # Monitoring is enabled by default when activating logical volumes. # Set to 0 to disable monitoring or use the --ignoremonitoring option. monitoring = 1 # When pvmove or lvconvert must wait for the kernel to finish # synchronising or merging data, they check and report progress # at intervals of this number of seconds. The default is 15 seconds. # If this is set to 0 and there is only one thing to wait for, there # are no progress reports, but the process is awoken immediately the # operation is complete. polling_interval = 15 } #################### # Advanced section # #################### # Metadata settings # # metadata { # Default number of copies of metadata to hold on each PV. 0, 1 or 2. # You might want to override it from the command line with 0 # when running pvcreate on new PVs which are to be added to large VGs. # pvmetadatacopies = 1 # Default number of copies of metadata to maintain for each VG. # If set to a non-zero value, LVM automatically chooses which of # the available metadata areas to use to achieve the requested # number of copies of the VG metadata. If you set a value larger # than the the total number of metadata areas available then # metadata is stored in them all. # The default value of 0 ("unmanaged") disables this automatic # management and allows you to control which metadata areas # are used at the individual PV level using 'pvchange # --metadataignore y/n'. # vgmetadatacopies = 0 # Approximate default size of on-disk metadata areas in sectors. # You should increase this if you have large volume groups or # you want to retain a large on-disk history of your metadata changes. # pvmetadatasize = 255 # List of directories holding live copies of text format metadata. # These directories must not be on logical volumes! # It's possible to use LVM2 with a couple of directories here, # preferably on different (non-LV) filesystems, and with no other # on-disk metadata (pvmetadatacopies = 0). Or this can be in # addition to on-disk metadata areas. # The feature was originally added to simplify testing and is not # supported under low memory situations - the machine could lock up. # # Never edit any files in these directories by hand unless you # you are absolutely sure you know what you are doing! Use # the supplied toolset to make changes (e.g. vgcfgrestore). # dirs = [ "/etc/lvm/metadata", "/mnt/disk2/lvm/metadata2" ] #} # Event daemon # dmeventd { # mirror_library is the library used when monitoring a mirror device. # # "libdevmapper-event-lvm2mirror.so" attempts to recover from # failures. It removes failed devices from a volume group and # reconfigures a mirror as necessary. If no mirror library is # provided, mirrors are not monitored through dmeventd. mirror_library = "libdevmapper-event-lvm2mirror.so" # snapshot_library is the library used when monitoring a snapshot device. # # "libdevmapper-event-lvm2snapshot.so" monitors the filling of # snapshots and emits a warning through syslog when the use of # the snapshot exceeds 80%. The warning is repeated when 85%, 90% and # 95% of the snapshot is filled. snapshot_library = "libdevmapper-event-lvm2snapshot.so" # Full path of the dmeventd binary. # # executable = "/sbin/dmeventd" }
Anhang C. LVM Objekt-Tags
database
-Tag auf.
lvs @database
C.1. Hinzufügen und Entfernen von Objekt-Tags
--addtag
oder --deltag
des Befehls pvchange
.
--addtag
oder --deltag
der Befehle vgchange
oder vgcreate
.
--addtag
oder --deltag
der Befehle lvchange
oder lvcreate
.
--addtag
und --deltag
-Parameter innerhalb eines einzigen pvchange
-, vgchange
- oder lvchange
-Befehls spezifizieren. Beispielsweise löscht der folgende Befehl die Tags T9
und T10
und fügt die Tags T13
und T14
zur Datenträgergruppe grant
hinzu.
vgchange --deltag T9 --deltag T10 --addtag T13 --addtag T14 grant
C.2. Host-Tags
hosttags = 1
im Abschnitt tags
setzen, wird automatisch ein Host-Tag definiert, der den Hostnamen der Maschine verwendet. Auf diese Weise können Sie eine allgemeine Konfigurationsdatei verwenden, die auf allen Ihren Maschinen repliziert werden kann, so dass diese identische Kopien dieser Datei besitzen, sich das Verhalten jedoch bezüglich des Hostnamens zwischen den Maschinen unterscheiden kann.
tag1
, und definiert tag2
, falls der Hostname host1
ist.
tags { tag1 { } tag2 { host_list = ["host1"] } }
C.3. Aktivierung mit Tags kontrollieren
vgchange -ay
) und aktiviert lediglich vg1/lvol0
und jeden logischen Datenträger oder Datenträgergruppe mit dem database
-Tag in den Metadaten auf diesem Host.
activation { volume_list = ["vg1/lvol0", "@database" ] }
tags { hosttags = 1 }
vg1/lvol2
nur auf Host db2
aktivieren möchten, tun Sie Folgendes:
- Führen Sie den Befehl
lvchange --addtag @db2 vg1/lvol2
von einem beliebigen Host im Cluster aus. - Führen Sie den Befehl
lvchange -ay vg1/lvol2
aus.
Anhang D. Metadaten einer LVM-Datenträgergruppe
--metadatacopies 0
des Befehls pvcreate
ist es möglich, einen physischen Datenträger ohne eine einzige Kopie der Metadaten zu erstellen. Sobald Sie die Anzahl der Kopien der Metadaten, die der physische Datenträger enthalten wird, ausgewählt haben, können Sie später nicht mehr ändern. Die Auswahl von "0 Kopien" kann bei Konfigurationsänderungen eine schnellere Aktualisierung bedeuten. Beachten Sie jedoch, dass jede Datenträgergruppe zu jedem Zeitpunkt mindestens einen physischen Datenträger mit einem Metadatenbereich besitzen muss (es sei denn, Sie verwenden die erweiterten Konfigurationseinstellungen, die Ihnen das Speichern von Metadaten der Datenträgergruppe auf einem Dateisystem ermöglicht). Falls Sie beabsichtigen, die Datenträgergruppe in der Zukunft aufzuteilen, benötigt jede Datenträgergruppe mindestens ein Exemplar der Metadaten.
--metadatasize
des Befehls pvcreate
angeben. Die Standardgröße ist zu klein für Datenträgergruppen mit vielen logischen oder physischen Datenträgern.
D.1. Das Label für physische Datenträger
pvcreate
das Label des physischen Datenträgers innerhalb des zweiten 512-Byte Sektors. Dieses Label kann optional in irgendeinem der ersten vier Sektoren platziert werden, da die LVM-Tools, die das System nach einem Label für einen physischen Datenträger absuchen, die ersten vier Sektoren überprüfen. Das Label des physischen Datenträgers beginnt mit dem String LABELONE
.
- Die UUID des physischen Datenträgers
- Die Größe der Blockgeräte in Bytes
- NULL-terminierte Liste von Orten der Datenbereiche
- NULL-terminierte Listen von Orten der Datenbereiche
D.2. Inhalte der Metadaten
- Informationen, wann und wo sie erstellt wurde
- Informationen über die Datenträgergruppe
- Name und eine eindeutige ID
- eine Versionsnummer, die sich bei jeder Aktualisierung der Metadaten erhöht
- ggf. zugehörige Eigenschaften: Lese-/Schreib-Zugriff? Kann die Größe verändert werden?
- jegliche administrative Einschränkungen bezüglich der Anzahl der physischen Datenträger und der logischen Datenträger, die sie umfassen kann
- die Extent-Größe (in Einheiten der Sektoren, die als 512-Bytes definiert sind)
- eine ungeordnete Liste physischer Datenträger, aus denen die Datenträgergruppe besteht, jeweils mit:
- dessen UUID, zur Ermittlung des Blockgeräts, das den Datenträger beinhaltet
- ggf. zugehörige Eigenschaften, wie z.B. ob der physische Datenträger zuweisbar ist
- den Anfang des Starts des ersten Extents innerhalb des physischen Datenträgers (in Sektoren)
- die Anzahl der Extents
- eine ungeordnete Liste logischer Datenträger, jeweils bestehend aus
- einer geordneten Liste logischer Datenträgersegmente. Die Metadaten beinhalten eine Zuordnung für jedes Segment, angewendet auf eine geordnete Liste physischer Datenträgersegmente oder logischer Datenträgersegmente
D.3. Beispiel-Metadaten
myvg
aufgeführt.
# Generated by LVM2: Tue Jan 30 16:28:15 2007 contents = "Text Format Volume Group" version = 1 description = "Created *before* executing 'lvextend -L+5G /dev/myvg/mylv /dev/sdc'" creation_host = "tng3-1" # Linux tng3-1 2.6.18-8.el5 #1 SMP Fri Jan 26 14:15:21 EST 2007 i686 creation_time = 1170196095 # Tue Jan 30 16:28:15 2007 myvg { id = "0zd3UT-wbYT-lDHq-lMPs-EjoE-0o18-wL28X4" seqno = 3 status = ["RESIZEABLE", "READ", "WRITE"] extent_size = 8192 # 4 Megabytes max_lv = 0 max_pv = 0 physical_volumes { pv0 { id = "ZBW5qW-dXF2-0bGw-ZCad-2RlV-phwu-1c1RFt" device = "/dev/sda" # Hint only status = ["ALLOCATABLE"] dev_size = 35964301 # 17.1491 Gigabytes pe_start = 384 pe_count = 4390 # 17.1484 Gigabytes } pv1 { id = "ZHEZJW-MR64-D3QM-Rv7V-Hxsa-zU24-wztY19" device = "/dev/sdb" # Hint only status = ["ALLOCATABLE"] dev_size = 35964301 # 17.1491 Gigabytes pe_start = 384 pe_count = 4390 # 17.1484 Gigabytes } pv2 { id = "wCoG4p-55Ui-9tbp-VTEA-jO6s-RAVx-UREW0G" device = "/dev/sdc" # Hint only status = ["ALLOCATABLE"] dev_size = 35964301 # 17.1491 Gigabytes pe_start = 384 pe_count = 4390 # 17.1484 Gigabytes } pv3 { id = "hGlUwi-zsBg-39FF-do88-pHxY-8XA2-9WKIiA" device = "/dev/sdd" # Hint only status = ["ALLOCATABLE"] dev_size = 35964301 # 17.1491 Gigabytes pe_start = 384 pe_count = 4390 # 17.1484 Gigabytes } } logical_volumes { mylv { id = "GhUYSF-qVM3-rzQo-a6D2-o0aV-LQet-Ur9OF9" status = ["READ", "WRITE", "VISIBLE"] segment_count = 2 segment1 { start_extent = 0 extent_count = 1280 # 5 Gigabytes type = "striped" stripe_count = 1 # linear stripes = [ "pv0", 0 ] } segment2 { start_extent = 1280 extent_count = 1280 # 5 Gigabytes type = "striped" stripe_count = 1 # linear stripes = [ "pv1", 0 ] } } } }
Anhang E. Versionsgeschichte
Versionsgeschichte | |||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Version 1-5.400 | 2013-10-31 | ||||||||||||||||||||||||||
| |||||||||||||||||||||||||||
Version 1-5 | 2012-07-18 | ||||||||||||||||||||||||||
| |||||||||||||||||||||||||||
Version 2.0-1 | Thu May 19 2011 | ||||||||||||||||||||||||||
| |||||||||||||||||||||||||||
Version 1.0-1 | Wed Nov 10 2010 | ||||||||||||||||||||||||||
|
Stichwortverzeichnis
Symbole
- /lib/udev/rules.d-Verzeichnis, udev-Integration mit dem Device Mapper
A
- administrative Verfahren, Überblick über die LVM-Administration
- Aktivieren von Datenträgergruppen, Datenträgergruppen aktivieren und deaktivieren
- einzelne Knoten, Datenträgergruppen aktivieren und deaktivieren
- nur lokaler Knoten, Datenträgergruppen aktivieren und deaktivieren
- Anzeige
- Ausgabe sortieren, LVM-Berichte sortieren
- Anzeige der Handbuchseite, Verwendung von CLI-Befehlen
- Anzeige der Hilfe, Verwendung von CLI-Befehlen
- anzeigen
- Datenträgergruppen, Datenträgergruppen anzeigen, Der vgs-Befehl
- logischer Datenträger, Logische Datenträger anzeigen, Der lvs-Befehl
- physischer Datenträger, Physische Datenträger anzeigen, Der pvs-Befehl
- Archivdatei, Backup eines logischen Datenträgers
- archive-Datei, Metadaten von Datenträgergruppen sichern
- ausführliche Ausgabe, Verwendung von CLI-Befehlen
- ausgefallene Geräte
B
- Backup
- backup-Datei, Metadaten von Datenträgergruppen sichern
- Bericht-Format, LVM-Geräte, Angepasste Berichterstattung für LVM
- Blockgeräte
- Suche, Suche nach Blockgeräten
C
- Cache-Datei
- Cluster-Umgebung, Der Clustered Logical Volume Manager (CLVM), LVM-Datenträger in einem Cluster erstellen
- CLVM
- Definition, Der Clustered Logical Volume Manager (CLVM)
- clvmd-Daemon, Der Clustered Logical Volume Manager (CLVM)
D
- Dateisystem
- auf einem logischen Datenträger vergrößern, Vergrößern eines Dateisystems auf einem logischen Datenträger
- Dateisystem vergrößern
- logischer Datenträger, Vergrößern eines Dateisystems auf einem logischen Datenträger
- Datenträgergruppe
- Administration, allgemein, Administration von Datenträgergruppen
- aktivieren, Datenträgergruppen aktivieren und deaktivieren
- anzeigen, Datenträgergruppen anzeigen, Angepasste Berichterstattung für LVM, Der vgs-Befehl
- aufteilen, Aufteilen einer Datenträgergruppe
- Beispielverfahren, Aufteilen einer Datenträgergruppe
- deaktivieren, Datenträgergruppen aktivieren und deaktivieren
- Definition, Datenträgergruppen
- entfernen, Datenträgergruppen entfernen
- erstellen, Datenträgergruppen erstellen
- erweitern, Physische Datenträger zu einer Datenträgergruppe hinzufügen
- in einem Cluster erstellen, Datenträgergruppen in einem Cluster erstellen
- kombinieren, Datenträgergruppen kombinieren
- Parameter ändern, Parameter einer Datenträgergruppe verändern
- umbenennen, Datenträgergruppe umbenennen
- vergrößern, Physische Datenträger zu einer Datenträgergruppe hinzufügen
- verkleinern, Physische Datenträger aus einer Datenträgergruppe entfernen
- verringern, Physische Datenträger aus einer Datenträgergruppe entfernen
- vgs Anzeigeparameter, Der vgs-Befehl
- zusammenführen, Datenträgergruppen kombinieren
- zwischen Systemen verschieben, Datenträgergruppe auf ein anderes System verschieben
- Datenumzug, online, Online-Datenumzug
- Deaktivieren von Datenträgergruppen, Datenträgergruppen aktivieren und deaktivieren
- exklusiv auf einem Knoten, Datenträgergruppen aktivieren und deaktivieren
- nur lokaler Knoten, Datenträgergruppen aktivieren und deaktivieren
E
- Einheiten der Befehlszeile, Verwendung von CLI-Befehlen
- Einheiten, Befehlszeile, Verwendung von CLI-Befehlen
- entfernen
- einer Platte aus einem logischen Datenträger, Entfernen einer Platte aus einem logischen Datenträger
- logischer Datenträger, Logische Datenträger entfernen
- physischer Datenträger, Physische Datenträger entfernen
- erstellen
- Datenträgergruppe, geclustert, Datenträgergruppen in einem Cluster erstellen
- Datenträgergruppen, Datenträgergruppen erstellen
- logischer Datenträger, Lineare logische Datenträger erstellen
- logischer Datenträger, Beispiel, Erstellen eines logischen LVM-Datenträgers auf drei Platten
- logischer Striped-Datenträger, Beispiel, Erstellen eines logischen Striped-Datenträgers
- LVM-Datenträger in einem Cluster, LVM-Datenträger in einem Cluster erstellen
- physischer Datenträger, Physische Datenträger erstellen
- Erstellen von LVM-Datenträgern
- Extent
- Definition, Datenträgergruppen, Datenträgergruppen erstellen
- Zuweisung, Datenträgergruppen erstellen
F
- Features, neu und verändert, Neue und veränderte Features
- Feedback
- Kontaktinformationen für dieses Handbuch, Wir freuen uns auf Ihr Feedback!
- Filter, LVM-Geräte-Scans mit Filtern kontrollieren
G
- Geräte-Pfadnamen, Verwendung von CLI-Befehlen
- Geräte-Scan-Filter, LVM-Geräte-Scans mit Filtern kontrollieren
- Gerätegröße, maximal, Datenträgergruppen erstellen
- Gerätenummern
- Major, Persistente Gerätenummern
- Minor, Persistente Gerätenummern
- persistent, Persistente Gerätenummern
- gespiegelter logischer Datenträger
- Ausfallrichtlinie, Ausfallrichtlinie für gespiegelte logische Datenträger
- Definition, Gespiegelte logische Datenträger
- erstellen, Gespiegelte Datenträger erstellen
- geclustert, Erstellen eines gespiegelten logischen LVM-Datenträgers in einem Cluster
- Rekonfiguration, Konfigurationen von gespiegelten Datenträgern ändern
- Wiederherstellung nach Ausfall, Wiederherstellung beim Ausfall eines LVM-Mirrors
- zu linear konvertieren, Konfigurationen von gespiegelten Datenträgern ändern
- Größe anpassen
- logischer Datenträger, Größe von Logischen Datenträger anpassen
- physischer Datenträger, Größe eines physischen Datenträgers anpassen
I
- Initialisierung
- Partitionen, Physische Datenträger initialisieren
- physischer Datenträger, Physische Datenträger initialisieren
K
- Konfigurationsbeispiele, Konfigurationsbeispiele für LVM
L
- linearer logischer Datenträger
- Definition, Lineare Datenträger
- erstellen, Lineare logische Datenträger erstellen
- zu gespiegelt konvertieren, Konfigurationen von gespiegelten Datenträgern ändern
- logische Datenträger aktivieren
- logischer Datenträger
- anzeigen, Logische Datenträger anzeigen, Angepasste Berichterstattung für LVM, Der lvs-Befehl
- Beispiel zur Erstellung, Erstellen eines logischen LVM-Datenträgers auf drei Platten
- Definition, Logische Datenträger, Logische LVM-Datenträger
- entfernen, Logische Datenträger entfernen
- erstellen, Lineare logische Datenträger erstellen
- exklusiver Zugriff, Logische Datenträger auf einzelnen Knoten in einem Cluster aktivieren
- gespiegelt, Gespiegelte Datenträger erstellen
- Größe anpassen, Größe von Logischen Datenträger anpassen
- linear, Lineare logische Datenträger erstellen
- lokaler Zugriff, Logische Datenträger auf einzelnen Knoten in einem Cluster aktivieren
- lvs Anzeigeparameter, Der lvs-Befehl
- Parameter verändern, Parameter einer logischen Datenträgergruppe ändern
- reduzieren, Logische Datenträger verkleinern
- Snapshot, Snapshot-Datenträger erstellen
- Striped, Striped-Datenträger erstellen
- umbenennen, Logische Datenträger umbenennen
- vergrößern, Logische Datenträger vergrößern
- verkleinern, Logische Datenträger verkleinern
- Verwaltung, allgemein, Administration von logischen Datenträgern
- logischer Snapshot-Datenträger
- erstellen, Snapshot-Datenträger erstellen
- logischer Striped-Datenträger
- Beispiel zur Erstellung, Erstellen eines logischen Striped-Datenträgers
- Definition, Logische Striped-Datenträger
- erstellen, Striped-Datenträger erstellen
- vergrößern, Striped-Datenträger vergrößern
- lvchange-Befehl, Parameter einer logischen Datenträgergruppe ändern
- lvconvert-Befehl, Konfigurationen von gespiegelten Datenträgern ändern
- lvcreate-Befehl, Lineare logische Datenträger erstellen
- lvdisplay-Befehl, Logische Datenträger anzeigen
- lvextend-Befehl, Logische Datenträger vergrößern
- LVM
- angepasstes Berichtsformat, Angepasste Berichterstattung für LVM
- Architekturüberblick, Überblick über die LVM-Architektur
- Datenträgergruppe, Definition, Datenträgergruppen
- geclustert, Der Clustered Logical Volume Manager (CLVM)
- Geschichte, Überblick über die LVM-Architektur
- Hilfe, Verwendung von CLI-Befehlen
- Komponenten, Überblick über die LVM-Architektur, LVM-Komponenten
- Label, Physische Datenträger
- physischer Datenträger, Definition, Physische Datenträger
- Protokollierung, Protokollierung
- Verwaltung logischer Datenträger, Administration von logischen Datenträgern
- Verwaltung physischer Datenträger, Administration von physischen Datenträgern
- Verzeichnisstruktur, Datenträgergruppen erstellen
- LVM1, Überblick über die LVM-Architektur
- LVM2, Überblick über die LVM-Architektur
- lvmdiskscan-Befehl, Suche nach Blockgeräten
- lvreduce-Befehl, Größe von Logischen Datenträger anpassen, Logische Datenträger verkleinern
- lvremove-Befehl, Logische Datenträger entfernen
- lvrename-Befehl, Logische Datenträger umbenennen
- lvs-Befehl, Angepasste Berichterstattung für LVM, Der lvs-Befehl
- Anzeigeparameter, Der lvs-Befehl
- lvscan-Befehl, Logische Datenträger anzeigen
M
- Metadaten
- mirror_image_fault_policy Konfigurationsparameter, Ausfallrichtlinie für gespiegelte logische Datenträger
- mirror_log_fault_policy Konfigurationsparameter, Ausfallrichtlinie für gespiegelte logische Datenträger
N
- Nachricht "Insufficient free extents", Ungenügend freie Extents für einen logischen Datenträger
O
- Online-Datenumzug, Online-Datenumzug
P
- Partitionen
- mehrere, Mehrere Partitionen auf einer Platte
- Partitionstyp einstellen, Partitionstyp einstellen
- persistente Gerätenummern, Persistente Gerätenummern
- Pfadnamen, Verwendung von CLI-Befehlen
- physische Extents
- Zuweisung verhindern, Zuweisung auf einem physischen Datenträger verhindern
- physischer Datenträger
- Anzeige, Der pvs-Befehl
- anzeigen, Physische Datenträger anzeigen, Angepasste Berichterstattung für LVM
- Aufbau, Aufbau eines physischen LVM-Datenträgers
- aus Datenträgergruppe entfernen, Physische Datenträger aus einer Datenträgergruppe entfernen
- Darstellung, Aufbau eines physischen LVM-Datenträgers
- Definition, Physische Datenträger
- entfernen, Physische Datenträger entfernen
- entfernen des verlorenen Datenträgers, Entfernen von verlorenen physischen Datenträgern aus einer Datenträgergruppe
- Erstellung, Physische Datenträger erstellen
- Größe anpassen, Größe eines physischen Datenträgers anpassen
- initialisieren, Physische Datenträger initialisieren
- pvs Anzeigeparameter, Der pvs-Befehl
- Verwaltung, allgemein, Administration von physischen Datenträgern
- Wiederherstellung, Ersetzen eines fehlenden physischen Datenträgers
- zu einer Datenträgergruppe hinzufügen, Physische Datenträger zu einer Datenträgergruppe hinzufügen
- Protokollierung, Protokollierung
- pvdisplay-Befehl, Physische Datenträger anzeigen
- pvmove-Befehl, Online-Datenumzug
- pvremove-Befehl, Physische Datenträger entfernen
- pvresize-Befehl, Größe eines physischen Datenträgers anpassen
- pvs-Befehl, Angepasste Berichterstattung für LVM
- Anzeigeparameter, Der pvs-Befehl
- pvscan-Befehl, Physische Datenträger anzeigen
R
- rules.d-Verzeichnis, udev-Integration mit dem Device Mapper
S
- Scannen von Geräten, Filter, LVM-Geräte-Scans mit Filtern kontrollieren
- snapshot-Datenträger
- Definition, Snapshot-Datenträger
- Suche
- Blockgeräte, Suche nach Blockgeräten
- Suche und Bereinigung von Fehlern, Suche und Bereinigung von LVM-Fehlern
U
- Überblick
- Features, neu und verändert, Neue und veränderte Features
- udev-Gerätemanager, Device-Mapper-Unterstützung für den udev-Gerätemanager
- udev-Regeln, udev-Integration mit dem Device Mapper
- umbenennen
- Datenträgergruppe, Datenträgergruppe umbenennen
- logischer Datenträger, Logische Datenträger umbenennen
V
- Verzeichnis für spezielle Gerätedateien, Datenträgergruppen erstellen
- vgcfbackup-Befehl, Metadaten von Datenträgergruppen sichern
- vgcfrestore-Befehl, Metadaten von Datenträgergruppen sichern
- vgchange-Befehl, Parameter einer Datenträgergruppe verändern
- vgcreate-Befehl, Datenträgergruppen erstellen, Datenträgergruppen in einem Cluster erstellen
- vgdisplay-Befehl, Datenträgergruppen anzeigen
- vgexport-Befehl, Datenträgergruppe auf ein anderes System verschieben
- vgextend-Befehl, Physische Datenträger zu einer Datenträgergruppe hinzufügen
- vgimport-Befehl, Datenträgergruppe auf ein anderes System verschieben
- vgmerge-Befehl, Datenträgergruppen kombinieren
- vgmknodes-Befehl, Verzeichnis für eine Datenträgergruppe neu erstellen
- vgreduce-Befehl, Physische Datenträger aus einer Datenträgergruppe entfernen
- vgrename-Befehl, Datenträgergruppe umbenennen
- vgs-Befehl, Angepasste Berichterstattung für LVM
- Anzeigeparameter, Der vgs-Befehl
- vgscan-Befehl, Platten nach Datenträgergruppen zum Erstellen der Cache-Datei absuchen
- vgsplit-Befehl, Aufteilen einer Datenträgergruppe
Z
- Zuweisung
- Richtlinie, Datenträgergruppen erstellen
- verhindern, Zuweisung auf einem physischen Datenträger verhindern