Quel est ce périphérique dm-0?

98

Tout en essayant de comprendre pourquoi un transfert de fichiers Linux -> Linux est plus lent que prévu, je suis tombé sur quelque chose que je ne connais pas bien. / dev / dm-0 semble être mon goulet d'étranglement, mais je n'ai aucune idée de ce que c'est.

Sur mon serveur de destination, la commande iostat indique qu'un périphérique situé en bas, / dev / dm-0, est utilisé à 100%. Ce serveur a 6 disques dans un ensemble mdadm raid5, sur lequel LVM s'exécute. Chacun des disques sous-jacents est assis à environ 50% d’utilisation. Le transfert écrit sur un volume logique situé sur ce raidset.

Quelle est cette chose / dev / dm-0? Une fois que je sais ce que c'est, je peux peut-être trouver comment augmenter sa vitesse, ou du moins comprendre pourquoi c'est la vitesse qu'il est.

Jeff Shattock
la source
1
Il s'avère que le périphérique dm-0 ne causait pas la lenteur, les partitions étaient mal alignées. Sur un lecteur de secteur 4k, vous devez aligner manuellement les partitions lorsque vous les créez. Dumb, mais facile à réparer.
Jeff Shattock

Réponses:

107

Cela fait partie du mappeur de périphériques du noyau, utilisé par LVM. Utilisez dmsetup lspour voir ce qu'il y a derrière.

Ignacio Vazquez-Abrams
la source
39
Plus précisémentsudo dmsetup info /dev/dm-0
tgharold
dmsetup lsne renvoie aucune information utile sur la nature dm-0ou l'endroit où elle peut être trouvée.
Karatedog le
47

Ce sont des "périphériques" logiques LVM

Vous pouvez les mapper en utilisant:

# 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

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

gulden PT
la source
31

Comme d'habitude sous un système Linux, il devrait y avoir plusieurs façons d'obtenir le même résultat. Si vous avez reçu un utilisateur non-root, je vous conseille d'utiliser une lsblkcommande (par exemple, list block devices) qui générera une vue arborescente des dépendances des disques:

[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
la source
17
sudo lvdisplay

a montré le mappage des partitions virtuelles montées sur des "groupes de volumes".

Lorsque j'ai tapé, sudo pvsj'ai vu le mappage d'un groupe de volumes sur un "volume physique" qui ressemblait à une /dev/sdaNnotation familière . (Je regarde tout le disque avec fdisk -l /dev/sdaune autre partition).

anguille
la source
11

pvsaffiche les volumes physiques sous-jacents au groupe de volumes LVM. Un certain nombre de périphériques physiques peuvent être regroupés dans un groupe de volumes. Le groupe est ensuite divisé à nouveau en volumes logiques en fonction des besoins, les disques physiques étant considérés comme une ressource unique à découper et à redimensionner à volonté. Chaque fois que vous coupez une partie du groupe de volumes en tant que volume logique, il est présenté en tant que dm-périphérique.

Rob
la source
7

Je voulais commenter l'article de Pascal. Parfois, vous devez définir les colonnes de sortie pour voir le nom. Par exemple sur CentOS 6, il les affiche, mais pas CentOS 7. Utiliser --output résout ce problème.

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
la source
1
génial, beaucoup plus facile de localiser les NAME sur des appareils exacts, merci
Alexander
1

Vous pouvez utiliser 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
la source
1

Vous pouvez également utiliser iostat pour identifier les goulots d'étranglement possibles, par exemple:

iostat -x -d 1
Dennis Schulze
la source