Questão O que é este dispositivo dm-0?


Enquanto vasculha tentando descobrir por que uma transferência de arquivos Linux -> Linux está sendo executada mais lentamente do que eu acho que deveria, me deparei com algo que não estou familiarizado. / dev / dm-0 parece ser o meu gargalo, mas não tenho ideia do que é.

No meu servidor de destino, o comando iostat mostra um dispositivo na parte inferior, / dev / dm-0, como sendo 100% utilizado. Este servidor possui 6 discos em um conjunto mdadm raid5, com o LVM sendo executado sobre ele. Cada um dos discos subjacentes está em torno de 50% util. A transferência está gravando em um volume lógico localizado neste raidset.

O que é essa coisa de / dev / dm-0? Uma vez que eu saiba o que é, talvez eu possa descobrir como aumentar sua velocidade, ou pelo menos entender por que é a velocidade que é.


83


origem


Acontece que o dispositivo dm-0 não estava causando a lentidão, eu tive as partições alinhadas errado. Em uma unidade de setor 4k, você precisa alinhar manualmente as partições ao criá-las. Mudo, mas fácil de consertar. - Jeff Shattock


Respostas:


Faz parte do mapeador de dispositivos no kernel, usado pelo LVM. Usar dmsetup ls para ver o que está por trás disso.


95



Mais especificamente sudo dmsetup info /dev/dm-0 - tgharold


Esses são "dispositivos" lógicos da LVM

Você pode mapeá-los usando:

# 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

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


39





Como de costume em um sistema Linux, deve haver muitas maneiras de obter o mesmo resultado. Se você recebeu um usuário não root, eu aconselho você a usar lsblk comando (por exemplo, dispositivos de bloco de lista), que irá construir uma visão em árvore de dependências de discos:

[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  /

25





sudo lvdisplay

mostrou o mapeamento de partições virtuais montadas para "grupos de volumes".

Quando eu digitei sudo pvs Eu vi o mapeamento de um grupo de volumes para um "volume físico" que parecia um familiar /dev/sdaN notação. (Meu olhando para o disco inteiro com fdisk -l /dev/sda mostrou outra partição).


16





pvs exibe os volumes físicos que sustentam o grupo de volumes LVM. Vários dispositivos físicos podem ser agrupados em um grupo de volumes. O grupo é então dividido novamente em volumes lógicos, conforme necessário, tratando os discos físicos como um único recurso a ser cortado e redimensionado à vontade. Cada vez que você fatia parte do grupo de volumes como um volume lógico, ele é apresentado como um dm- dispositivo


11





Eu queria comentar sobre o post de Pascal, às vezes você precisa definir as colunas de saída para ver o nome. Por exemplo, no CentOS 6 ele os exibe, mas o CentOS 7 não. Usando --output resolve isso.

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 

4



incrível, muito mais fácil de identificar KNAMEs em dispositivos exatos, obrigado - Alexander


Você pode usar 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

1





Você também pode usar iostat com o propósito de identificar possíveis gargalos, por exemplo:

iostat -x -d 1

1