Como encontrar o (s) volume (s) físico (s) que contêm um volume lógico no LVM
47
Eu tenho um grupo de volumes (VG) que contém dois volumes físicos (PV). Vários volumes lógicos (LV) no VG provavelmente usarão extensões em ambos os PVs.
Existe uma maneira de saber quais LVs ocupam espaço em quais PVs?
Uau, eu uso o LVM há anos e não tinha conhecimento do -mcomutador. Obrigado!
Paul
Nota: não mostra a localização dos segmentos no mapeador de dispositivos quando a faixa é usada. Parece que dmsetup table <dev>poderia ajudar com isso.
Eckes
41
Eu uso:
lvs -o +devices
... o que acho um pouco mais fácil de interpretar.
Uma coisa, ele não funciona com os espelhos lvm habilitados. Lá, ele mostrará apenas "lvname_rimage0, lvname_rimage1" em vez dos discos subjacentes. (não é sua culpa, o comando e o próprio espelhamento são mal projetados). Mesmo assim, ainda é bom detectar lv's não espelhados. Apenas tome cuidado para não confiar totalmente na saída, porque o descrito acima.
Florian Heigl
2
Eu recomendo lvs --segments -o +devicestambém / em vez disso, de que maneira você pode ver o que os segmentos estão no que PVs, se você tem um LV que abrange vários PVs
kbolino
Essa sugestão foi a que fez o truque para mim: D obrigado !!
BanjoFox
14
LVM é uma camada de abstração flexível entre o disco físico e o sistema de arquivos (disco ⇒ partição ⇒ volume físico do LVM [PV] ⇒ grupo de volumes do LVM [VG] ⇒ volume lógico do LVM [LV] ⇒ sistema de arquivos).
Devido a alguns recursos do LVM (agregação, espelho, listras, instantâneo ...), o layout físico pode se tornar complexo ... portanto, algumas advertências:
Use a página de manual lvs--all para visualizar detalhes internos (de volumes espelhados), se desejado.
Obviamente, quando você executa um comando para um determinado objeto, apenas os pais e filhos desse objeto são exibidos (que podem estar incompletos, se LV estiver abrangendo vários PV, por exemplo)
Para uma rápida visão geral, recomendo o lsblk (que é uma ferramenta padrão, não específica do LVM).
$ 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
Ferramentas específicas do LVM
Para obter a visão e os detalhes internos do LVM, use os comandos do LVM:
Listas: use os comandos lvse pvscom a opção--segments
Vista detalhada: use os comandos lvdisplaye pvdisplaycom a opção-m
Ferramentas LVM exemplificam
Liste os segmentos físicos usados por um volume lógico:
$ 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
mesmo com mais detalhes:
$ 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)
Liste as extensões físicas de um determinado VE. Útil para mover esses segmentos (usando pvmove):
$ lvs /dev/vg_ssd/lv_videos -o seg_pe_ranges
PE Ranges
/dev/sdb1:12729-18090
/dev/sdb1:3534-5339
Pelo contrário, liste o volume lógico (segmentos) dentro de um determinado volume físico:
Liste os segmentos físicos de um determinado volume lógico, entre outras informações:
$ 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
Exiba o volume lógico associado a um determinado volume físico, entre outras informações:
$ 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
--- 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
Adicionando a -aopção, você também pode ver os volumes configurados pelos raid1volumes -mirrored:
# 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
Para cada espelho, você verá dois volumes {volume_name}_rmeta_{n}(contendo os metadados da invasão) e {volume_name}_rimage_{n}(contendo os dados reais), onde {volume_name}é o nome do volume lógico e {n}o número do espelho (começando em 0).
E a busca detalhada nos segmentos comdmsetup table /dev/vg/swap
eckes
sudo lvdisplay -amdeixe-me determinar o major preciso: menor da perna do espelho de backup para acelerar as gravações no cgroup, agora vamos testá-lo, thx! unix.stackexchange.com/q/306827/30352
Respostas:
O
pvdisplay
comando tem uma-m
opção para mostrar o mapeamento de extensões físicas para volumes lógicos e extensões lógicas.Eu configurei a seguinte situação em uma máquina de teste:
A execução
pvdisplay -m
nesta máquina resulta na seguinte saída:Como você pode ver, você obtém uma boa visão geral de onde estão as extensões para cada um dos 6 volumes lógicos.
fonte
-m
comutador. Obrigado!dmsetup table <dev>
poderia ajudar com isso.Eu uso:
... o que acho um pouco mais fácil de interpretar.
fonte
lvs --segments -o +devices
também / em vez disso, de que maneira você pode ver o que os segmentos estão no que PVs, se você tem um LV que abrange vários PVsLVM é uma camada de abstração flexível entre o disco físico e o sistema de arquivos (disco ⇒ partição ⇒ volume físico do LVM [PV] ⇒ grupo de volumes do LVM [VG] ⇒ volume lógico do LVM [LV] ⇒ sistema de arquivos).
Devido a alguns recursos do LVM (agregação, espelho, listras, instantâneo ...), o layout físico pode se tornar complexo ... portanto, algumas advertências:
--all
para visualizar detalhes internos (de volumes espelhados), se desejado.Para uma rápida visão geral, recomendo o lsblk (que é uma ferramenta padrão, não específica do LVM).
Ferramentas específicas do LVM
Para obter a visão e os detalhes internos do LVM, use os comandos do LVM:
lvs
epvs
com a opção--segments
lvdisplay
epvdisplay
com a opção-m
Ferramentas LVM exemplificam
Liste os segmentos físicos usados por um volume lógico:
mesmo com mais detalhes:
Liste as extensões físicas de um determinado VE. Útil para mover esses segmentos (usando
pvmove
):Pelo contrário, liste o volume lógico (segmentos) dentro de um determinado volume físico:
Liste os segmentos físicos de um determinado volume lógico, entre outras informações:
Exiba o volume lógico associado a um determinado volume físico, entre outras informações:
Comando complexo, mas lista completa:
fonte
lvdisplay -m
listará seus segmentos físicos:Adicionando a
-a
opção, você também pode ver os volumes configurados pelosraid1
volumes -mirrored:Para cada espelho, você verá dois volumes
{volume_name}_rmeta_{n}
(contendo os metadados da invasão) e{volume_name}_rimage_{n}
(contendo os dados reais), onde{volume_name}
é o nome do volume lógico e{n}
o número do espelho (começando em0
).fonte
dmsetup table /dev/vg/swap
sudo lvdisplay -am
deixe-me determinar o major preciso: menor da perna do espelho de backup para acelerar as gravações no cgroup, agora vamos testá-lo, thx! unix.stackexchange.com/q/306827/30352