So finden Sie die physischen Volumes, auf denen sich ein logisches Volume befindet, in LVM
47
Ich habe eine Volume-Gruppe (VG), die zwei physische Volumes (PV) enthält. Mehrere logische Volumes (LV) in der VG verwenden wahrscheinlich Extents auf beiden PVs.
Gibt es eine Möglichkeit zu bestimmen, welche LVs auf welchen PVs Platz belegen?
Wow, ich benutze LVM seit Jahren und war mir des -mWechsels überhaupt nicht bewusst . Vielen Dank!
Paul
Hinweis: Bei Verwendung von Striping wird die Platzierung der Segmente im Geräte-Mapper nicht angezeigt. Es sieht so aus, als dmsetup table <dev>könnte das helfen.
eckes
40
Ich benutze:
lvs -o +devices
... was ich etwas leichter zu interpretieren finde.
Zum einen funktioniert es nicht mit aktivierten lvm-Spiegeln. Dort wird nur "lvname_rimage0, lvname_rimage1" anstelle der zugrunde liegenden Datenträger angezeigt. (nicht deine Schuld, der Befehl und die Spiegelung selbst sind schlecht gestaltet). Sogar dann ist es immer noch gut, nicht gespiegelte Leute zu entdecken. Achten Sie einfach darauf, dass Sie sich aus den oben genannten Gründen nicht vollständig auf die Ausgabe verlassen.
Florian Heigl
2
Ich würde lvs --segments -o +devicesauch / stattdessen empfehlen , auf diese Weise können Sie sehen, welche Segmente auf welchen PVs sind, wenn Sie eine LV haben, die mehrere PVs überspannt
kbolino
14
LVM ist eine flexible Abstraktionsschicht zwischen der physischen Festplatte und dem Dateisystem (Festplatte ⇒ Partition ⇒ LVMs physisches Volume [PV] ⇒ LVMs Volume-Gruppe [VG] ⇒ LVMs logisches Volume [LV] ⇒ Dateisystem).
Aufgrund einiger LVM-Funktionen (Aggregation, Spiegelung, Streifen, Schnappschuss ...) kann das physische Layout komplex werden ... daher einige Einschränkungen:
Verwenden Sie die Manpage lvs--all , um interne Details (von gespiegelten Volumes) anzuzeigen, falls gewünscht.
Wenn Sie einen Befehl für ein bestimmtes Objekt ausführen, werden natürlich nur die Eltern und Kinder dieses Objekts angezeigt (was unvollständig sein kann, wenn LV sich zum Beispiel über mehrere PV erstreckt).
Für einen schnellen Überblick empfehle ich lsblk (ein Standardwerkzeug, nicht LVM-spezifisch).
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 223,6G 0 disk
├─sda1 8:1 0 350M 0 part
├─sda2 8:2 0 29G 0 part
├─sda3 8:3 0 488M 0 part /boot
├─sda4 8:4 0 1K 0 part
└─sda5 8:5 0 193,8G 0 part
├─vg_ssd-lv_root_solid 254:0 0 13,3G 0 lvm /
├─vg_ssd-lv_srv_solid 254:2 0 46,6G 0 lvm /srv
└─vg_ssd-lv_home_solid 254:3 0 107G 0 lvm /home
sdb 8:16 0 74,5G 0 disk
└─sdb1 8:17 0 74,5G 0 part
├─vg_ssd-lv_swap_solid 254:1 0 3,7G 0 lvm [SWAP]
└─vg_ssd-lv_videos 254:4 0 28G 0 lvm /mnt/videos
LVM-spezifische Tools
Verwenden Sie die folgenden LVM-Befehle, um die interne Ansicht und Details von LVM abzurufen:
Listen: Verwenden Sie die Befehle lvsund pvsmit der Option--segments
Detailansicht: Verwenden Sie die Befehle lvdisplayund pvdisplaymit der Option-m
Beispiele für LVM-Tools
Listen Sie die physischen Segmente auf, die von einem logischen Volume verwendet werden:
$ lvs --segments /dev/vg_ssd/lv_videos
LV VG Attr #Str Type SSize
lv_videos vg_ssd -wi-ao---- 1 linear 20,95g
lv_videos vg_ssd -wi-ao---- 1 linear 7,05g
gleich mit mehr details:
$ lvs --segments /dev/vg_ssd/lv_videos -o +lv_size,devices
LV VG Attr #Str Type SSize LSize Devices
lv_videos vg_ssd -wi-ao---- 1 linear 20,95g 28,00g /dev/sdb1(12729)
lv_videos vg_ssd -wi-ao---- 1 linear 7,05g 28,00g /dev/sdb1(3534)
Listen Sie die physischen Ausmaße eines bestimmten LV auf. Nützlich zum Verschieben dieser Segmente (mit pvmove):
$ lvs /dev/vg_ssd/lv_videos -o seg_pe_ranges
PE Ranges
/dev/sdb1:12729-18090
/dev/sdb1:3534-5339
In umgekehrter Reihenfolge listen Sie das logische Volume (Segmente) in einem bestimmten physischen Volume auf:
Listen Sie unter anderem die physischen Segmente eines bestimmten logischen Datenträgers auf:
$ lvdisplay -m /dev/vg_ssd/lv_videos
[..]
--- Segments ---
Logical extents 0 to 5361:
Type linear
Physical volume /dev/sdb1
Physical extents 12729 to 18090
Logical extents 5362 to 7167:
Type linear
Physical volume /dev/sdb1
Physical extents 3534 to 5339
Zeigen Sie unter anderem das logische Volume an, das einem bestimmten physischen Volume zugeordnet ist:
$ pvdisplay -m /dev/sdb1
[..]
--- Physical Segments ---
Physical extent 0 to 3533:
FREE
Physical extent 0 to 5339:
Logical volume /dev/vg_ssd/lv_videos
Logical extents 5362 to 7167
Physical extent 5340 to 11775:
FREE
Physical extent 11776 to 12728:
Logical volume /dev/vg_ssd/lv_swap_solid
Logical extents 0 to 952
Physical extent 12729 to 18090:
Logical volume /dev/vg_ssd/lv_videos
Logical extents 0 to 5361
Physical extent 18091 to 19078:
FREE
lvdisplay -m listet seine physischen Segmente auf:
# lvdisplay -m
--- Logical volume ---
LV Path /dev/vg/swap
LV Name swap
VG Name vg
LV UUID TlxZzz-11Z3-u3K3-0ULD-AZV6-c4ug-jp7YVP
LV Write Access read/write
LV Creation host, time edeltraud, 2015-03-12 12:43:09 +0100
LV Status available
# open 0
LV Size 2.00 GiB
Current LE 512
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 512
Block device 254:21
--- Segments ---
Logical extents 0 to 511:
Type striped
Stripes 2
Stripe size 64.00 KiB
Stripe 0:
Physical volume /dev/sdc1
Physical extents 2561 to 2816
Stripe 1:
Physical volume /dev/sda1
Physical extents 241027 to 241282
Durch Hinzufügen der -aOption können Sie auch die Volumes raid1anzeigen , die von -mirrored-Volumes eingerichtet wurden:
# lvdisplay -am
--- Logical volume ---
Internal LV Name srv_rimage_0
VG Name vg
LV UUID IJTT9w-2aX5-aqR5-VY4Z-Lqtp-L3cP-jkzNnx
LV Write Access read/write
LV Creation host, time edeltraud, 2015-12-13 00:10:03 +0100
LV Status available
# open 1
LV Size 50.00 GiB
Current LE 12800
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 254:39
--- Segments ---
Logical extents 0 to 12799:
Type linear
Physical volume /dev/sdb4
Physical extents 7683 to 20482
--- Logical volume ---
Internal LV Name srv_rmeta_0
VG Name vg
LV UUID YyyVAa-dab7-8Jxg-JzpS-Yf3k-4SDH-654cqf
LV Write Access read/write
LV Creation host, time edeltraud, 2015-12-13 00:10:03 +0100
LV Status available
# open 1
LV Size 4.00 MiB
Current LE 1
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 254:38
--- Segments ---
Logical extents 0 to 0:
Type linear
Physical volume /dev/sdb4
Physical extents 7682 to 7682
Für jeden Spiegel sehen Sie zwei Datenträger {volume_name}_rmeta_{n}(mit den RAID-Metadaten) und {volume_name}_rimage_{n}(mit den tatsächlichen Daten), wobei {volume_name}der Name des logischen Datenträgers und {n}die Nummer des Spiegels (beginnend bei 0) angegeben sind.
Und der Bohrer nach unten in die Segmente mitdmsetup table /dev/vg/swap
Eckes
sudo lvdisplay -amDamit kann ich das genaue Major: Minor des Backup-Mirror-Beins bestimmen, um Schreibvorgänge in cgroup zu drosseln. Jetzt können wir es testen, thx! unix.stackexchange.com/q/306827/30352
Antworten:
Der
pvdisplay
Befehl bietet eine-m
Option zum Anzeigen der Zuordnung von physischen Extents zu logischen Volumes und logischen Extents.Ich habe folgende Situation auf einer Testmaschine eingerichtet:
Das Ausführen
pvdisplay -m
auf diesem Computer führt zu folgender Ausgabe:Wie Sie sehen, erhalten Sie einen schönen Überblick darüber, wo sich die Extents für jedes der 6 logischen Volumes befinden.
quelle
-m
Wechsels überhaupt nicht bewusst . Vielen Dank!dmsetup table <dev>
könnte das helfen.Ich benutze:
... was ich etwas leichter zu interpretieren finde.
quelle
lvs --segments -o +devices
auch / stattdessen empfehlen , auf diese Weise können Sie sehen, welche Segmente auf welchen PVs sind, wenn Sie eine LV haben, die mehrere PVs überspanntLVM ist eine flexible Abstraktionsschicht zwischen der physischen Festplatte und dem Dateisystem (Festplatte ⇒ Partition ⇒ LVMs physisches Volume [PV] ⇒ LVMs Volume-Gruppe [VG] ⇒ LVMs logisches Volume [LV] ⇒ Dateisystem).
Aufgrund einiger LVM-Funktionen (Aggregation, Spiegelung, Streifen, Schnappschuss ...) kann das physische Layout komplex werden ... daher einige Einschränkungen:
--all
, um interne Details (von gespiegelten Volumes) anzuzeigen, falls gewünscht.Für einen schnellen Überblick empfehle ich lsblk (ein Standardwerkzeug, nicht LVM-spezifisch).
LVM-spezifische Tools
Verwenden Sie die folgenden LVM-Befehle, um die interne Ansicht und Details von LVM abzurufen:
lvs
undpvs
mit der Option--segments
lvdisplay
undpvdisplay
mit der Option-m
Beispiele für LVM-Tools
Listen Sie die physischen Segmente auf, die von einem logischen Volume verwendet werden:
gleich mit mehr details:
Listen Sie die physischen Ausmaße eines bestimmten LV auf. Nützlich zum Verschieben dieser Segmente (mit
pvmove
):In umgekehrter Reihenfolge listen Sie das logische Volume (Segmente) in einem bestimmten physischen Volume auf:
Listen Sie unter anderem die physischen Segmente eines bestimmten logischen Datenträgers auf:
Zeigen Sie unter anderem das logische Volume an, das einem bestimmten physischen Volume zugeordnet ist:
Komplexer Befehl, aber vollständige Liste:
quelle
lvdisplay -m
listet seine physischen Segmente auf:Durch Hinzufügen der
-a
Option können Sie auch die Volumesraid1
anzeigen , die von -mirrored-Volumes eingerichtet wurden:Für jeden Spiegel sehen Sie zwei Datenträger
{volume_name}_rmeta_{n}
(mit den RAID-Metadaten) und{volume_name}_rimage_{n}
(mit den tatsächlichen Daten), wobei{volume_name}
der Name des logischen Datenträgers und{n}
die Nummer des Spiegels (beginnend bei0
) angegeben sind.quelle
dmsetup table /dev/vg/swap
sudo lvdisplay -am
Damit kann ich das genaue Major: Minor des Backup-Mirror-Beins bestimmen, um Schreibvorgänge in cgroup zu drosseln. Jetzt können wir es testen, thx! unix.stackexchange.com/q/306827/30352