Discussion:
wo liegt dm device?
(zu alt für eine Antwort)
Ulli Horlacher
2024-04-16 17:44:12 UTC
Permalink
Ich hab folgendes setup mit einer virtual disk::

***@moep:/local/tmp# ll sp-i_sda.dd
-rw-r--r-- root root 598,999,040,000 2024-04-16 13:07:08 sp-i_sda.dd

***@moep:/local/tmp# fdisk -l sp-i_sda.dd
Disk sp-i_sda.dd: 557.86 GiB, 598999040000 bytes, 1169920000 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x000f35d8

Device Boot Start End Sectors Size Id Type
sp-i_sda.dd1 * 2048 2099199 2097152 1G 83 Linux
sp-i_sda.dd2 2099200 1169919999 1167820800 556.9G 8e Linux LVM

***@moep:/local/tmp# losetup -l
NAME SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE DIO LOG-SEC
/dev/loop0 0 0 0 0 /local/tmp/sp-i_sda.dd 0 512

***@moep:/local/tmp# lsblk -o NAME,SIZE,FSTYPE,LABEL /dev/loop0
NAME SIZE FSTYPE LABEL
loop0 557.9G
|-loop0p1 1G xfs boot
`-loop0p2 556.9G LVM2_member
|-rhel-root 32G xfs
|-rhel-home 256G xfs
|-rhel-swap 16G swap
`-rhel-7 32G xfs

***@moep:/local/tmp# ll /dev/mapper/rhel-root
lrwxrwxrwx root root - 2024-04-16 19:36:31 /dev/mapper/rhel-root -> ../dm-0

***@moep:/local/tmp# ll /dev/dm-0
brw-rw---- root disk 252,000 2024-04-16 19:36:31 /dev/dm-0


So weit funktioniert alles.

Wie bekomme ich nun aber heraus wo /dev/dm-0 bzw /dev/mapper/rhel-root
liegt?
Ok, ich weiss es, weil ich es gerade so aufgerufenb habe.
Aber wenn ich das via Programm ermitteln will, wie geh ich da vor?
Ich hab also ein unbekanntes /dev/dm-* bzw /dev/mapper/* - wie bekomme ich
heraus wo das real liegt?
--
Ullrich Horlacher Server und Virtualisierung
Rechenzentrum TIK
Universitaet Stuttgart E-Mail: ***@tik.uni-stuttgart.de
Allmandring 30a Tel: ++49-711-68565868
70569 Stuttgart (Germany) WWW: https://www.tik.uni-stuttgart.de/
Lutz Falke
2024-04-16 23:08:08 UTC
Permalink
Ulli Horlacher schrieb:

[LVM-Volumes auf Loopback-Device von DD-Image]
Post by Ulli Horlacher
Wie bekomme ich nun aber heraus wo /dev/dm-0 bzw /dev/mapper/rhel-root
liegt?
Ok, ich weiss es, weil ich es gerade so aufgerufenb habe.
Aber wenn ich das via Programm ermitteln will, wie geh ich da vor?
Ich hab also ein unbekanntes /dev/dm-* bzw /dev/mapper/* - wie bekomme ich
heraus wo das real liegt?
Wenn ich die Frage richtig interpretiere, willst du die "Table" des
dm-Devices anschauen. Sieht hier z.B. so aus:

***@random:~# dmsetup table /dev/dm-0
0 33554432 linear 259:3 2048

***@random:~# ls -l /dev/block/259\:3
lrwxrwxrwx 1 root root 12 Apr 16 22:31 /dev/block/259:3 -> ../nvme0n1p3

Die Daten liegen also auf der SSD in der dritten Partition.

Wenn das ein LVM-Volume ist, kannst du dir auch mit lvdisplay das
Mapping anzeigen lassen.

***@random:~# lvdisplay -m random_system/root
--- Logical volume ---
LV Path /dev/random_system/root
LV Name root
VG Name random_system
[...]

--- Segments ---
Logical extents 0 to 1023:
Type linear
Physical volume /dev/nvme0n1p3
Physical extents 0 to 1023

Das ist nur der einfache Fall. Wenn das Volume über mehrere Physical
Volumes geht oder sowas wie Striping oder Thin-Provisioning
eingerichtet ist, sieht das dann halt komplizierter aus.

Lutz
Ulli Horlacher
2024-04-17 15:01:42 UTC
Permalink
Post by Lutz Falke
[LVM-Volumes auf Loopback-Device von DD-Image]
Post by Ulli Horlacher
Wie bekomme ich nun aber heraus wo /dev/dm-0 bzw /dev/mapper/rhel-root
liegt?
0 33554432 linear 259:3 2048
lrwxrwxrwx 1 root root 12 Apr 16 22:31 /dev/block/259:3 -> ../nvme0n1p3
Die Daten liegen also auf der SSD in der dritten Partition.
Wenn das ein LVM-Volume ist, kannst du dir auch mit lvdisplay das
Mapping anzeigen lassen.
--- Logical volume ---
LV Path /dev/random_system/root
LV Name root
VG Name random_system
[...]
--- Segments ---
Type linear
Physical volume /dev/nvme0n1p3
Physical extents 0 to 1023
lvdisplay hatte ich schon gefunden, aber erst Option -m zeigt das
"Physical volume"!
dmsetup table kannte ich auch noch nicht, ist hierzu aber ueberfluessig.


***@moep:/local/tmp# dmsetup table /dev/mapper/rhel-root
0 67108864 linear 259:3 2048

***@moep:/local/tmp# l /dev/block/259:3
lRW- - 2024-04-17 13:28 /dev/block/259:3 -> ../loop0p2

***@moep:/local/tmp# lvdisplay -m /dev/mapper/rhel-root
--- Logical volume ---
LV Path /dev/rhel/root
LV Name root
VG Name rhel
LV UUID cDRS6d-R6Bm-Aj92-vIrj-y53q-EUai-EDNEnM
LV Write Access read/write
LV Creation host, time sp-a, 2019-07-08 17:30:21 +0200
LV Status available
# open 0
LV Size 32.00 GiB
Current LE 8192
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:0

--- Segments ---
Logical extents 0 to 8191:
Type linear
Physical volume /dev/loop0p2
Physical extents 0 to 8191


***@moep:/local/tmp# losetup -l | grep loop0
/dev/loop0 0 0 0 0 /local/tmp/sp-i_sda.dd 0 512


Somit kann ich ermitteln ob ein LV auf lokaler disk oder auf NFS, etc liegt.
Prima, genau das hab ich gesucht!
Post by Lutz Falke
Das ist nur der einfache Fall. Wenn das Volume über mehrere Physical
Volumes geht oder sowas wie Striping oder Thin-Provisioning
eingerichtet ist, sieht das dann halt komplizierter aus.
Ist dann Hausaufgabe fuer Fortgeschrittene ;-)
--
Ullrich Horlacher Server und Virtualisierung
Rechenzentrum TIK
Universitaet Stuttgart E-Mail: ***@tik.uni-stuttgart.de
Allmandring 30a Tel: ++49-711-68565868
70569 Stuttgart (Germany) WWW: https://www.tik.uni-stuttgart.de/
Diedrich Ehlerding
2024-04-17 17:13:34 UTC
Permalink
oder "lvs -o +devices"
--
gpg-Key (DSA 1024) D36AD663E6DB91A4
fingerprint = 2983 4D54 E00B 8483 B5B8 C7D1 D36A D663 E6DB 91A4
HTML-Mail wird ungeleſen entſorgt.
Ulli Horlacher
2024-04-18 07:59:37 UTC
Permalink
Post by Diedrich Ehlerding
oder "lvs -o +devices"
Noch'n'Tipp! Prima!

Ich kann dann verwenden:

lvs -o lv_full_name,devices
--
Ullrich Horlacher Server und Virtualisierung
Rechenzentrum TIK
Universitaet Stuttgart E-Mail: ***@tik.uni-stuttgart.de
Allmandring 30a Tel: ++49-711-68565868
70569 Stuttgart (Germany) WWW: https://www.tik.uni-stuttgart.de/
Loading...