Cos'è questo dispositivo dm-0?


98

Mentre cercavo di capire perché un trasferimento di file Linux -> Linux sta funzionando più lentamente di quanto penso, mi sono imbattuto in qualcosa con cui non ho familiarità. / dev / dm-0 sembra essere il mio collo di bottiglia, ma non ho idea di cosa sia.

Sul mio server di destinazione, il comando iostat mostra un dispositivo in basso, / dev / dm-0, come utilizzato al 100%. Questo server ha 6 dischi in un set mdadm raid5, con LVM in esecuzione su di esso. Ciascuno dei dischi sottostanti occupa circa il 50% di utilizzo. Il trasferimento sta scrivendo su un volume logico situato su questo raidset.

Cos'è questa cosa / dev / dm-0? Una volta che so cos'è, forse posso trovare come aumentarne la velocità, o almeno capire perché è la velocità che è.


1
Si scopre che il dispositivo dm-0 non stava causando la lentezza, avevo le partizioni allineate in modo errato. Su un'unità settoriale 4k, è necessario allineare manualmente le partizioni quando vengono create. Stupido, ma facile da risolvere.
Jeff Shattock,

Risposte:


107

Fa parte del Device Mapper nel kernel, utilizzato da LVM. Usa dmsetup lsper vedere cosa c'è dietro.


39
Più specificamentesudo dmsetup info /dev/dm-0
tgharold,

dmsetup lsnon restituisce alcuna informazione utile su ciò che dm-0è o dove può essere trovato.
Karatedog,

47

Questi sono "dispositivi" logici LVM

Puoi mapparli 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/


31

Come al solito in un sistema Linux, ci dovrebbero essere molti modi per ottenere lo stesso risultato. Se ti è stato assegnato un utente non root, ti consiglio di usare il lsblkcomando (ad es. Dispositivi di blocco elenco) che costruirà una vista ad albero delle dipendenze dei dischi:

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

17
sudo lvdisplay

ha mostrato la mappatura delle partizioni virtuali montate su "gruppi di volumi".

Quando ho digitato sudo pvsho visto la mappatura di un gruppo di volumi su un "volume fisico" che sembrava una /dev/sdaNnotazione familiare . (Il mio guardare l'intero disco con ha fdisk -l /dev/sdamostrato un'altra partizione).


11

pvsvisualizza i volumi fisici su cui si basa il gruppo di volumi LVM. È possibile raggruppare un numero di dispositivi fisici da un gruppo di volumi. Il gruppo viene quindi suddiviso in volumi logici secondo necessità, trattando i dischi fisici come una singola risorsa da tagliare e ridimensionare a piacimento. Ogni volta che si divide una parte del gruppo di volumi come volume logico, questo viene presentato come dm-dispositivo


7

Volevo commentare il post di Pascal, a volte è necessario definire le colonne di output per vedere il nome. Ad esempio su CentOS 6 li visualizza ma CentOS 7 no. L'uso di --output risolve questo problema.

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 

1
fantastico, molto più facile da individuare KNAME su dispositivi esatti, grazie
Alexander

1

Puoi usare 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

È inoltre possibile utilizzare iostat allo scopo di identificare possibili colli di bottiglia, ad esempio:

iostat -x -d 1
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.