Получить список соответствия LV = dm-N

При мониторинге производительности дисковой подсистемы возникает необходимость воспользоваться командой iostat. Она выводит результат по утилизации дисков с использованием символических имёт из ядра вида vd[a-z]N sd[a-z]N и dm-N. Когда речь касается физических дисков например /dev/sdaN тут всё понятно. А вот когда используется LVM то чтобы узнать какоe имя dm-N соответствует какому логическому тому нужно посмотреть какие lv_kernel_major и lv_kernel_minor соответствуют данному dm устройству в ядре. Следующая команда делает это автоматически.

lvs -o lv_name,lv_kernel_major,lv_kernel_minor | while read LVNAME LVKMAJOR LVKMINOR ; do grep '^[ \t]*'${LVKMAJOR}'[ \t]\+'${LVKMINOR}'[ \t]\+' /proc/partitions | awk -v name="${LVNAME}" '{print $4" "name}'; done
dm-7 lv_log
dm-0 lv_root
dm-1 lv_swap
dm-5 empty
dm-6 lv_server_fm-disk0
dm-8 lv_server_fm-disk1
dm-2 lv_vm1_disk0
dm-3 lv_vm2_disk0
dm-4 lv_vm3_disk0

Если нужно получить полные имена то нужно использовать опцию lv_path

# lvs -o lv_path,lv_kernel_major,lv_kernel_minor | while read LVNAME LVKMAJOR LVKMINOR ; do grep '^[ \t]*'${LVKMAJOR}'[ \t]\+'${LVKMINOR}'[ \t]\+' /proc/partitions | awk -v name="${LVNAME}" '{print $4" "name}'; done
dm-7 /dev/vg_v03t/lv_log
dm-0 /dev/vg_v03t/lv_root
dm-1 /dev/vg_v03t/lv_swap
dm-5 /dev/vg_vm/empty
dm-6 /dev/vg_vm/lv_server_fm-disk0
dm-8 /dev/vg_vm/lv_server_fm-disk1
dm-2 /dev/vg_vm/lv_vm1_disk0
dm-3 /dev/vg_vm/lv_vm2_disk0
dm-4 /dev/vg_vm/lv_vm3_disk0

А если полные имена через /dev/mapper то опцию lv_dm_path

# lvs -o lv_dm_path,lv_kernel_major,lv_kernel_minor | while read LVNAME LVKMAJOR LVKMINOR ; do grep '^[ \t]*'${LVKMAJOR}'[ \t]\+'${LVKMINOR}'[ \t]\+' /proc/partitions | awk -v name="${LVNAME}" '{print $4" "name}'; done
dm-7 /dev/mapper/vg_v03t-lv_log
dm-0 /dev/mapper/vg_v03t-lv_root
dm-1 /dev/mapper/vg_v03t-lv_swap
dm-5 /dev/mapper/vg_vm-empty
dm-6 /dev/mapper/vg_vm-lv_server_fm--disk0
dm-8 /dev/mapper/vg_vm-lv_server_fm--disk1
dm-2 /dev/mapper/vg_vm-lv_vm1_disk0
dm-3 /dev/mapper/vg_vm-lv_vm2_disk0
dm-4 /dev/mapper/vg_vm-lv_vm3_disk0

Leave a Reply