Co to za urządzenie DM-0?

98

Rozglądając się, dlaczego przesyłanie plików Linux -> Linux działa wolniej, niż powinienem, natknąłem się na coś, czego nie znam. / dev / dm-0 wydaje się być moim wąskim gardłem, ale nie mam pojęcia, co to jest.

Na moim serwerze docelowym polecenie iostat pokazuje urządzenie u dołu, / dev / dm-0, jako w 100% wykorzystane. Ten serwer ma 6 dysków w zestawie mdadm raid5, na którym działa LVM. Każdy z podstawowych dysków wykorzystuje około 50% zużycia. Transfer zapisuje do woluminu logicznego znajdującego się na tym zestawie RAID.

Co to jest / dev / dm-0? Kiedy już wiem, co to jest, może uda mi się znaleźć sposób na zwiększenie jego prędkości, a przynajmniej zrozumienie, dlaczego jest to taka prędkość.

Jeff Shattock
źródło
1
Okazuje się, że urządzenie dm-0 nie powodowało spowolnienia, źle ustawiłem partycje. Na dysku sektorowym 4k musisz ręcznie wyrównać partycje podczas ich tworzenia. Głupi, ale łatwy do naprawienia.
Jeff Shattock

Odpowiedzi:

107

Jest częścią mapera urządzeń w jądrze, używanego przez LVM. Użyj, dmsetup lsaby zobaczyć, co się za tym kryje.

Ignacio Vazquez-Abrams
źródło
39
Mówiąc dokładniejsudo dmsetup info /dev/dm-0
tgharold
dmsetup lsnie zwraca żadnych użytecznych informacji o tym, co to dm-0jest ani gdzie można je znaleźć.
karatedog
47

To są logiczne „urządzenia” LVM

Możesz zmapować je za pomocą:

# 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

źródło: http://www.linuxquestions.org/questions/linux-newbie-8/dm0-in-iostat-652771/

gulden PT
źródło
31

Jak zwykle w systemie Linux, powinno być wiele sposobów na uzyskanie tego samego rezultatu. Jeśli otrzymałeś użytkownika innego niż root, radzę użyć lsblkpolecenia (np. Listy urządzeń blokowych), które zbuduje widok drzewa zależności między dyskami:

[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
źródło
17
sudo lvdisplay

pokazał mapowanie zamontowanych partycji wirtualnych na „grupy woluminów”.

Podczas pisania sudo pvswidziałem mapowanie grupy woluminów na „wolumin fizyczny”, który wyglądał jak znajomy /dev/sdaNzapis. (Moje spojrzenie na cały dysk fdisk -l /dev/sdapokazało kolejną partycję).

węgorz ghEEz
źródło
11

pvswyświetla woluminy fizyczne, które stanowią podstawę grupy woluminów LVM. Wiele urządzeń fizycznych można zgrupować w jedną grupę woluminów. Grupa jest następnie ponownie dzielona na woluminy logiczne, zgodnie z wymaganiami, traktując dyski fizyczne jako pojedynczy zasób, który ma zostać pocięty i dowolnie zmieniony. Za każdym razem, gdy wycinasz część grupy woluminów jako wolumin logiczny, jest ona prezentowana jako dm-urządzenie

Obrabować
źródło
7

Chciałem skomentować post Pascala, czasem trzeba zdefiniować kolumny wyjściowe, aby zobaczyć nazwę. Na przykład na CentOS 6 wyświetla je, ale CentOS 7 nie. Użycie opcji --output rozwiązuje ten 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
źródło
1
niesamowite, znacznie łatwiejsze do zlokalizowania KNAME na dokładnych urządzeniach, dzięki
Alexander
1

Możesz użyć sar

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
źródło
1

Możesz także użyć iostatu w celu zidentyfikowania możliwych wąskich gardeł, na przykład:

iostat -x -d 1
Dennis Schulze
źródło