Frage So finden Sie die physischen Volumes, die ein logisches Volume in LVM enthalten


Ich habe eine Volumengruppe (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 sagen, welche LVs Platz auf welchen PVs belegen?


40
2017-12-28 09:52


Ursprung


Hier sind alle Befehle, die Sie benötigen, um mit lvm zu starten: lvdisplay, pvdisplay, vgdisplay


Antworten:


Das pvdisplay Befehl hat a -m Option, um das Mapping von physischen Extents auf logische Volumes und logische Extents anzuzeigen.

Ich habe folgende Situation auf einer Testmaschine eingerichtet:

  • 3 Festplatten mit jeweils 1 GB werden dem System hinzugefügt und als physische Volumes für vg_test verwendet
  • 6 logische Volumes mit verschiedenen Größen (von 300M bis 1.1G), so dass sie über die physikalischen Volumen verteilt sind

Laufen pvdisplay -m Auf dieser Maschine ergibt sich folgende Ausgabe:

[root@centos6 ~]# pvdisplay -m
  --- Physical volume ---
  PV Name               /dev/sdb
  VG Name               vg_test
  PV Size               1.00 GiB / not usable 4.00 MiB
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              255
  Free PE               5
  Allocated PE          250
  PV UUID               eR2ko2-aKRf-uCfq-O2L0-z6em-ZYT5-23YhKb

  --- Physical Segments ---
  Physical extent 0 to 74:
    Logical volume  /dev/vg_test/one
    Logical extents 0 to 74
  Physical extent 75 to 149:
    Logical volume  /dev/vg_test/two
    Logical extents 0 to 74
  Physical extent 150 to 249:
    Logical volume  /dev/vg_test/four
    Logical extents 0 to 99
  Physical extent 250 to 254:
    FREE

  --- Physical volume ---
  PV Name               /dev/sdc
  VG Name               vg_test
  PV Size               1.00 GiB / not usable 4.00 MiB
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              255
  Free PE               10
  Allocated PE          245
  PV UUID               rByjXK-NA6D-ifnY-lKdF-eFWg-Ndou-psGJUq

  --- Physical Segments ---
  Physical extent 0 to 124:
    Logical volume  /dev/vg_test/three
    Logical extents 0 to 124
  Physical extent 125 to 224:
    Logical volume  /dev/vg_test/five
    Logical extents 0 to 99
  Physical extent 225 to 244:
    Logical volume  /dev/vg_test/six
    Logical extents 255 to 274
  Physical extent 245 to 254:
    FREE

  --- Physical volume ---
  PV Name               /dev/sdd
  VG Name               vg_test
  PV Size               1.00 GiB / not usable 4.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              255
  Free PE               0
  Allocated PE          255
  PV UUID               TCJnZM-0ss9-o5gY-lgD3-7Kq6-18IH-sN04To

  --- Physical Segments ---
  Physical extent 0 to 254:
    Logical volume  /dev/vg_test/six
    Logical extents 0 to 254

Wie Sie sehen, erhalten Sie einen schönen Überblick darüber, wo sich die Extents für jedes der 6 logischen Volumes befinden.


52
2017-12-28 10:17



Wow, ich benutze LVM seit Jahren und wusste nichts von der -mSchalter. Vielen Dank! - Paul
+1 Danke, ich wusste es nicht! - Jan Marek
Hinweis: Es wird nicht die Gerätezuordnung von Segmenten angezeigt, wenn Striping verwendet wird. Es sieht aus wie dmsetup table <dev> könnte dabei helfen. - eckes


Ich benutze:

lvs -o +devices

... die ich etwas leichter zu interpretieren finde.


33
2017-09-07 20:16



Eine Sache, es funktioniert nicht mit Lvm-Spiegeln aktiviert. Dort wird nur "lvname_rimage0, lvname_rimage1" anstelle der zugrunde liegenden Festplatten angezeigt. (nicht Ihre Schuld, der Befehl und die Spiegelung selbst ist schlecht entworfen). Auch dann ist es immer noch gut, nicht gespiegelte lvs zu erkennen. Sei nur vorsichtig, dich nicht vollständig auf die Ausgabe zu verlassen, denn das oben genannte. - Florian Heigl
Ich würde es empfehlen lvs --segments -o +devices Außerdem können Sie auf diese Weise sehen, welche Segmente auf welchen PVs liegen, wenn Sie ein LV haben, das sich über mehrere PV erstreckt - kbolino


LVM ist eine flexible Abstraktionsschicht zwischen der physischen Festplatte und dem Dateisystem (Festplatte ⇒ Partition ⇒ LVMs physisches Volumen [PV] ⇒ LVMs Volumengruppe [VG] ⇒ LVM logisches Volumen [LV] ⇒ Dateisystem).

Aufgrund einiger LVM-Features (Aggregation, Spiegelung, Streifen, Schnappschuss ...) kann das physische Layout komplex werden ... daher einige Nachteile:

  • Benutzen Ich gegen manpage über --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 übergeordneten und untergeordneten Objekte dieses Objekts angezeigt (was möglicherweise unvollständig ist, wenn LV sich beispielsweise auf mehrere PV erstreckt).

Für einen schnellen Überblick empfehle ich lsblk (Dies ist 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 Werkzeuge

Verwenden Sie LVM-Befehle, um die interne Ansicht und Details von LVM zu erhalten:

  • Listen: Verwenden Sie die lvs und pvs  Befehle mit Option --segments
  • Detailansicht: Verwenden Sie die lvdisplay und pvdisplay  Befehle mit Option -m

LVM-Tools enthalten

Auflisten der physischen Segmente, die von einem logischen Datenträger 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

Gleiches 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 Extents eines bestimmten LV auf. Nützlich, um diese Segmente zu verschieben (mit pvmove):

$ lvs  /dev/vg_ssd/lv_videos -o seg_pe_ranges
  PE Ranges
  /dev/sdb1:12729-18090
  /dev/sdb1:3534-5339  

Im umgekehrten Fall listen Sie das logische Volumen (Segmente) innerhalb eines physischen Volumes auf:

$ pvs  /dev/sdb1  --segments  -o +lv_name,lv_size
  PV         VG     Fmt  Attr PSize  PFree  Start SSize LV            LSize 
  /dev/sdb1  vg_ssd lvm2 a--  74,53g 22,80g     0  3534                   0 
  /dev/sdb1  vg_ssd lvm2 a--  74,53g 22,80g  3534  1806 lv_videos     28,00g
  /dev/sdb1  vg_ssd lvm2 a--  74,53g 22,80g  5340  1316                   0 
  /dev/sdb1  vg_ssd lvm2 a--  74,53g 22,80g 11776   953 lv_swap_solid  3,72g
  /dev/sdb1  vg_ssd lvm2 a--  74,53g 22,80g 12729  5362 lv_videos     28,00g
  /dev/sdb1  vg_ssd lvm2 a--  74,53g 22,80g 18091   988                   0 

Listen Sie die physischen Segmente eines bestimmten logischen Datenträgers unter anderem 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 das logische Volumen an, das einem bestimmten physischen Volume zugeordnet ist, neben anderen Informationen:

$ 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

Komplexer Befehl, aber vollständige Liste:

$ pvs   --segments  -o pv_name,pv_size,seg_size,vg_name,lv_name,lv_size,seg_pe_ranges
  PV         PSize   SSize   VG     LV            LSize   PE Ranges            
  /dev/sda5  193,79g   9,31g vg_ssd lv_root_solid  13,31g /dev/sda5:0-2383     
  /dev/sda5  193,79g   3,72g vg_ssd lv_home_solid 107,00g /dev/sda5:2384-3336  
  /dev/sda5  193,79g  46,56g vg_ssd lv_srv_solid   46,56g /dev/sda5:3337-15256 
  /dev/sda5  193,79g  60,00g vg_ssd lv_home_solid 107,00g /dev/sda5:15257-30616
  /dev/sda5  193,79g 200,00m vg_ssd lv_home_solid 107,00g /dev/sda5:30617-30666
  /dev/sda5  193,79g   1,05g vg_ssd                    0                       
  /dev/sda5  193,79g   8,00g vg_ssd lv_home_solid 107,00g /dev/sda5:30937-32984
  /dev/sda5  193,79g   4,00g vg_ssd lv_root_solid  13,31g /dev/sda5:32985-34008
  /dev/sda5  193,79g  20,00g vg_ssd lv_home_solid 107,00g /dev/sda5:34009-39128
  /dev/sda5  193,79g   9,80g vg_ssd lv_home_solid 107,00g /dev/sda5:41689-44198
  /dev/sda5  193,79g   1,28g vg_ssd lv_home_solid 107,00g /dev/sda5:44199-44525
  /dev/sda5  193,79g  15,86g vg_ssd                    0                       
  /dev/sda5  193,79g   4,00g vg_ssd lv_home_solid 107,00g /dev/sda5:48587-49610
  /dev/sdb1   74,53g  13,80g vg_ssd                    0                       
  /dev/sdb1   74,53g   7,05g vg_ssd lv_videos      28,00g /dev/sdb1:3534-5339  
  /dev/sdb1   74,53g   5,14g vg_ssd                    0                       
  /dev/sdb1   74,53g   3,72g vg_ssd lv_swap_solid   3,72g /dev/sdb1:11776-12728
  /dev/sdb1   74,53g  20,95g vg_ssd lv_videos      28,00g /dev/sdb1:12729-18090
  /dev/sdb1   74,53g   3,86g vg_ssd                    0                       


10
2017-07-30 12:16





lvdisplay -m wird seine physischen Segmente auflisten:

# 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 -a Option können Sie auch die Volumes sehen, die von raid1- gespiegelte Volumes:

# 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 Bände, {volume_name}_rmeta_{n} (enthält die Raid-Metadaten) und {volume_name}_rimage_{n} (enthält die tatsächlichen Daten), wo {volume_name} ist der Name des logischen Volumes und {n} ist die Nummer des Spiegels (beginnend bei 0).


5
2018-01-06 13:29



Und der Drilldown in die Segmente mit dmsetup table /dev/vg/swap - eckes
sudo lvdisplay -am es lassen Sie mich die genaue Major bestimmen: Moll des Backup-Spiegel Bein zu Drossel schreibt in Cgroup, jetzt lassen Sie es testen, thx! unix.stackexchange.com/q/306827/30352 - Aquarius Power