Cómo encontrar los volúmenes físicos que contienen un volumen lógico en LVM
47
Tengo un grupo de volúmenes (VG) que contiene dos volúmenes físicos (PV). Es probable que varios volúmenes lógicos (LV) en el VG usen extensiones en ambos PV.
¿Hay alguna manera de saber qué LV ocupan espacio en qué PV?
Wow, he estado usando LVM durante años y no estaba al tanto del -mcambio. ¡Gracias!
Paul
NB: no muestra la ubicación de los segmentos en el mapeador de dispositivos cuando se usan bandas. Parece que dmsetup table <dev>podría ayudar con eso.
eckes
41
Yo suelo:
lvs -o +devices
... que encuentro un poco más fácil de interpretar.
Una cosa, no funciona con los espejos lvm habilitados. Allí solo mostrará "lvname_rimage0, lvname_rimage1" en lugar de los discos subyacentes. (no es tu culpa, el comando y la duplicación en sí están mal diseñados). Incluso entonces, todavía es bueno detectar lv sin reflejos. Solo tenga cuidado de no confiar completamente en la salida porque lo anterior.
Florian Heigl
2
También recomendaría lvs --segments -o +devices/ en su lugar, de esa manera puede ver qué segmentos están en qué PV, si tiene un LV que abarca múltiples PV
kbolino
Esta sugerencia es la que me sirvió: D ¡gracias!
BanjoFox
14
LVM es una capa de abstracción flexible entre el disco físico hasta el sistema de archivos (disco ⇒ partición ⇒ volumen físico de LVM [PV] ⇒ grupo de volúmenes de LVM [VG] ⇒ volumen lógico de LVM [LV] ⇒ sistema de archivos).
Debido a algunas características de LVM (agregación, espejo, rayas, instantánea ...), el diseño físico puede volverse complejo ... por lo tanto, algunas advertencias:
Utilice la página de manual de lvs a punto --allpara ver detalles internos (de volúmenes duplicados), si lo desea.
Obviamente, cuando ejecuta un comando para un objeto determinado, solo se muestran los padres e hijos de ese objeto (que puede estar incompleto, si LV se extiende en PV múltiple, por ejemplo)
Para una visión general rápida, recomiendo lsblk (que es una herramienta estándar, no específica de 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
Herramientas específicas de LVM
Para obtener la vista interna y los detalles de LVM, use los comandos de LVM:
Listas: use los comandos lvsy pvscon la opción--segments
Vista detallada: use los comandos lvdisplayy pvdisplaycon la opción-m
Ejemplos de herramientas LVM
Enumere los segmentos físicos utilizados por un volumen 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
lo mismo con más detalles:
$ 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)
Listar las extensiones físicas de un LV dado. Útil para mover esos segmentos (usando pvmove):
$ lvs /dev/vg_ssd/lv_videos -o seg_pe_ranges
PE Ranges
/dev/sdb1:12729-18090
/dev/sdb1:3534-5339
De la manera opuesta, enumere el volumen lógico (segmentos) dentro de un Volumen físico dado:
Enumere los segmentos físicos de un volumen lógico dado, entre otra información:
$ 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
Muestra el volumen lógico asociado con un volumen físico dado, entre otra información:
$ 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
Al agregar la -aopción, también puede ver los volúmenes configurados por raid1volúmenes reflejados:
# 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 espejo, verá dos volúmenes {volume_name}_rmeta_{n}(que contienen los metadatos de la incursión) y {volume_name}_rimage_{n}(que contienen los datos reales), donde {volume_name}está el nombre del volumen lógico y {n}el número del espejo (comenzando en 0).
Y el taladro en los segmentos condmsetup table /dev/vg/swap
eckes
sudo lvdisplay -amme permitió determinar el mayor exacto: menor de la pata del espejo de respaldo para acelerar las escrituras en cgroup, ahora vamos a probarlo, ¡gracias! unix.stackexchange.com/q/306827/30352
Respuestas:
El
pvdisplay
comando tiene una-m
opción para mostrar la asignación de extensiones físicas a volúmenes lógicos y extensiones lógicas.He configurado la siguiente situación en una máquina de prueba:
La ejecución
pvdisplay -m
en esta máquina da como resultado el siguiente resultado:Como puede ver, obtiene una buena visión general de dónde están las extensiones para cada uno de los 6 volúmenes lógicos.
fuente
-m
cambio. ¡Gracias!dmsetup table <dev>
podría ayudar con eso.Yo suelo:
... que encuentro un poco más fácil de interpretar.
fuente
lvs --segments -o +devices
/ en su lugar, de esa manera puede ver qué segmentos están en qué PV, si tiene un LV que abarca múltiples PVLVM es una capa de abstracción flexible entre el disco físico hasta el sistema de archivos (disco ⇒ partición ⇒ volumen físico de LVM [PV] ⇒ grupo de volúmenes de LVM [VG] ⇒ volumen lógico de LVM [LV] ⇒ sistema de archivos).
Debido a algunas características de LVM (agregación, espejo, rayas, instantánea ...), el diseño físico puede volverse complejo ... por lo tanto, algunas advertencias:
--all
para ver detalles internos (de volúmenes duplicados), si lo desea.Para una visión general rápida, recomiendo lsblk (que es una herramienta estándar, no específica de LVM).
Herramientas específicas de LVM
Para obtener la vista interna y los detalles de LVM, use los comandos de LVM:
lvs
ypvs
con la opción--segments
lvdisplay
ypvdisplay
con la opción-m
Ejemplos de herramientas LVM
Enumere los segmentos físicos utilizados por un volumen lógico:
lo mismo con más detalles:
Listar las extensiones físicas de un LV dado. Útil para mover esos segmentos (usando
pvmove
):De la manera opuesta, enumere el volumen lógico (segmentos) dentro de un Volumen físico dado:
Enumere los segmentos físicos de un volumen lógico dado, entre otra información:
Muestra el volumen lógico asociado con un volumen físico dado, entre otra información:
Comando complejo, pero lista completa:
fuente
lvdisplay -m
enumerará sus segmentos físicos:Al agregar la
-a
opción, también puede ver los volúmenes configurados porraid1
volúmenes reflejados:Para cada espejo, verá dos volúmenes
{volume_name}_rmeta_{n}
(que contienen los metadatos de la incursión) y{volume_name}_rimage_{n}
(que contienen los datos reales), donde{volume_name}
está el nombre del volumen lógico y{n}
el número del espejo (comenzando en0
).fuente
dmsetup table /dev/vg/swap
sudo lvdisplay -am
me permitió determinar el mayor exacto: menor de la pata del espejo de respaldo para acelerar las escrituras en cgroup, ahora vamos a probarlo, ¡gracias! unix.stackexchange.com/q/306827/30352