Was ist das dm-0 Gerät?

98

Beim Stöbern, um herauszufinden, warum eine Linux -> Linux-Dateiübertragung langsamer läuft, als ich denke, dass es sollte, bin ich über etwas gestolpert, mit dem ich nicht vertraut bin. / dev / dm-0 scheint mein Engpass zu sein, aber ich habe keine Ahnung, was es ist.

Auf meinem Zielserver zeigt der Befehl iostat ein Gerät am unteren Rand, / dev / dm-0, als zu 100% ausgelastet an. Dieser Server verfügt über 6 Festplatten in einem mdadm raid5-Satz, auf denen LVM ausgeführt wird. Jede der zugrunde liegenden Festplatten ist zu etwa 50% ausgelastet. Die Übertragung wird auf ein logisches Volume geschrieben, das sich auf diesem Raidset befindet.

Was ist das / dev / dm-0 Ding? Sobald ich weiß, was es ist, kann ich vielleicht herausfinden, wie ich seine Geschwindigkeit erhöhen kann, oder zumindest verstehen, warum es die Geschwindigkeit ist, die es ist.

Jeff Shattock
quelle
1
Es stellt sich heraus, dass das dm-0-Gerät nicht die Langsamkeit verursacht hat. Ich habe die Partitionen falsch ausgerichtet. Auf einem 4k-Sektor-Laufwerk müssen Sie die Partitionen beim Erstellen manuell ausrichten. Dumm, aber leicht zu reparieren.
Jeff Shattock

Antworten:

107

Es ist Teil des Device Mapper im Kernel, der von LVM verwendet wird. Verwenden Sie, um dmsetup lszu sehen, was dahinter steckt.

Ignacio Vazquez-Abrams
quelle
39
Genauer gesagtsudo dmsetup info /dev/dm-0
tgharold
dmsetup lsgibt keine nützlichen Informationen darüber zurück, was das dm-0ist oder wo es zu finden ist.
Karatedog
47

Das sind LVM logische "Geräte"

Sie können sie folgendermaßen zuordnen:

# sudo lvdisplay|awk  '/LV Name/{n=$3} /Block device/{d=$3; sub(".*:","dm-",d); print d,n;}'
dm-0 /dev/SysVolGroup/LogVolRoot
dm-1 /dev/SysVolGroup/xen
dm-2 /dev/SysVolGroup/db1-2
dm-3 /dev/SysVolGroup/db1-2swap
dm-4 /dev/SysVolGroup/python1
dm-5 /dev/SysVolGroup/python1swap
dm-6 /dev/SysVolGroup/db1-2snap

Quelle: http://www.linuxquestions.org/questions/linux-newbie-8/dm0-in-iostat-652771/

Gulden PT
quelle
31

Wie unter einem Linux-System üblich, sollte es viele Möglichkeiten geben, das gleiche Ergebnis zu erzielen. Wenn Sie einen Benutzer ohne Rootberechtigung haben, empfehle ich die Verwendung eines lsblkBefehls (z. B. zum Auflisten von Blockgeräten), mit dem eine Baumansicht der Festplattenabhängigkeiten erstellt wird:

[oracle@abcdlinux ~]$ lsblk
NAME                               MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
sda                                  8:0    0  300G  0 disk
└─RATGORA1DSY_PJSTORE_1 (dm-4)     253:4    0  300G  0 mpath
  └─RATGORA1DSY_PJSTORE_1p1 (dm-5) 253:5    0  300G  0 part  /oradata
sdb                                  8:16   0  100G  0 disk
└─Boot-RATGORA1DSY (dm-0)          253:0    0  100G  0 mpath
  ├─Boot-RATGORA1DSYp1 (dm-1)      253:1    0  100M  0 part  /boot
  ├─Boot-RATGORA1DSYp2 (dm-2)      253:2    0   16G  0 part  [SWAP]
  └─Boot-RATGORA1DSYp3 (dm-3)      253:3    0 83.9G  0 part  /
sdc                                  8:32   0  300G  0 disk
└─RATGORA1DSY_PJSTORE_1 (dm-4)     253:4    0  300G  0 mpath
  └─RATGORA1DSY_PJSTORE_1p1 (dm-5) 253:5    0  300G  0 part  /oradata
sdd                                  8:48   0  100G  0 disk
└─Boot-RATGORA1DSY (dm-0)          253:0    0  100G  0 mpath
  ├─Boot-RATGORA1DSYp1 (dm-1)      253:1    0  100M  0 part  /boot
  ├─Boot-RATGORA1DSYp2 (dm-2)      253:2    0   16G  0 part  [SWAP]
  └─Boot-RATGORA1DSYp3 (dm-3)      253:3    0 83.9G  0 part  /
Pascal
quelle
17
sudo lvdisplay

zeigten die Zuordnung von gemounteten virtuellen Partitionen zu "Volume-Gruppen".

Als ich tippte, sudo pvssah ich die Zuordnung einer Volume-Gruppe zu einem "physischen Volume", das wie eine vertraute /dev/sdaNSchreibweise aussah . (Mein Blick auf die gesamte Festplatte mit fdisk -l /dev/sdazeigte eine andere Partition).

Aal Ghez
quelle
11

pvsZeigt die physischen Datenträger an, die der LVM-Datenträgergruppe zugrunde liegen. Eine Reihe von physischen Geräten kann zu einer Volumengruppe zusammengefasst werden. Die Gruppe wird dann nach Bedarf in logische Volumes aufgeteilt, wobei die physischen Datenträger als einzelne Ressource behandelt werden, die nach Belieben zerlegt und in der Größe geändert werden muss. Jedes Mal, wenn Sie einen Teil der Datenträgergruppe als logischen Datenträger in Scheiben schneiden, wird dieser als dm-Gerät dargestellt

rauben
quelle
7

Ich wollte Pascals Beitrag kommentieren, manchmal muss man die Ausgabespalten definieren, um den Namen zu sehen. Unter CentOS 6 werden sie beispielsweise angezeigt, unter CentOS 7 jedoch nicht. Die Verwendung von --output behebt dieses Problem.

lsblk --output NAME,KNAME,TYPE,SIZE,MOUNTPOINT

NAME            KNAME TYPE  SIZE MOUNTPOINT
sda             sda   disk   16G 
├─sda1          sda1  part  500M /boot
└─sda2          sda2  part 15.5G 
  ├─centos-root dm-0  lvm  13.9G /
  └─centos-swap dm-1  lvm   1.6G [SWAP]
sr0             sr0   rom  1024M 
Box293
quelle
1
Super, viel einfacher, KNAMEs auf exakten Geräten zu lokalisieren, danke
Alexander
1

Sie können sar verwenden

df -h

# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-rootvol
                   24G  4.1G   18G  19% /
tmpfs                 7.8G     0  7.8G   0% /dev/shm
/dev/mapper/VolGroup01-appvol
                   39G  411M   37G   2% /app
/dev/sda1             194M   93M   92M  51% /boot
/dev/mapper/VolGroup01-logvol
                   61G   18G   41G  30% /log
/dev/mapper/VolGroup00-tmpvol
                  2.0G  379M  1.5G  21% /tmp
/dev/mapper/VolGroup00-varvol
                   20G  2.1G   17G  12% /var

sar -bdp 1

01:00:20 AM       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz         await     svctm     %util
01:00:21 AM       sda      0.00      0.00      0.00      0.00      0.00              0.00      0.00      0.00
01:00:21 AM VolGroup00-swapvol      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
01:00:21 AM VolGroup00-rootvol      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
01:00:21 AM VolGroup01-appvol      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
01:00:21 AM VolGroup01-logvol      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
01:00:21 AM VolGroup00-varvol      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
01:00:21 AM VolGroup00-tmpvol      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Karthik
quelle
1

Sie können iostat auch verwenden, um mögliche Engpässe zu identifizieren. Beispiel:

iostat -x -d 1
Dennis Schulze
quelle