微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

linux dm-0 dm-1 设备映射 简介

在linux系统中你使用一些命令时(例如nmon、iostat 如下截图所示),有可能会看到一些名字为dm-xx的设备,那么这些设备到底是什么设备呢,跟磁盘有什么关系呢?以前不了解的时候,我也很纳闷. 其实dm是Device Mapper的缩写,Device Mapper 是 Linux 2.6 内核中提供的一种从逻辑设备到物理设备的映射框架机制,在该机制下,用户可以很方便的根据自己的需要制定实现存储资源的管理策略,当前比较流行的 Linux 下的逻辑卷管理器如 LVM2(Linux Volume Manager 2 version)、EVMS(Enterprise Volume Management System)、dmraid(Device Mapper Raid Tool)等都是基于该机制实现的。关于Device Mapper的理论知识,参考:

Linux 内核中的 Device Mapper 机制

https://www.ibm.com/developerworks/cn/linux/l-devmapper/index.html

clip_image001

 理论知识只是对那些达到一定高度和深度,想深入钻研的人研究的, 下面我们还是来看看简单操作中遇到的一些疑问和问题,例如上图所示,dm-0、dm-1、dm-xx各自与那些磁盘映射呢?各自又代表的啥意义呢?首先我们来看看dm-0,dm-1,dm-2这个三个文件设备

[root@mylnx01 ~]# ls /dev/dm*
/dev/dm-0  /dev/dm-1  /dev/dm-2
[root@mylnx01 ~]# ll /dev/dm*
brw-rw---- 1 root root 253,0 Dec  7 16:45 /dev/dm-0
brw-rw---- 1 root root 253,1 Dec  7 16:45 /dev/dm-1
brw-rw---- 1 root root 253,2 Dec  7 16:45 /dev/dm-2
[root@mylnx01 ~]# 

或者你使用fdisk -l 命令也能看到

[root@mylnx01 ~]# fdisk -l
 
disk /dev/sda: 85.8 GB,85899345920 bytes
255 heads,63 sectors/track,10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
 
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14        6788    54420187+  8e  Linux LVM
/dev/sda3            6789       10443    29358787+  83  Linux
 
.....................................................................
.....................................................................
 
disk /dev/dm-0: 107.2 GB,107206410240 bytes
255 heads,13033 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
 
disk /dev/dm-0 doesn't contain a valid partition table
 
disk /dev/dm-1: 12.8 GB,12884901888 bytes
255 heads,1566 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
 
disk /dev/dm-1 doesn't contain a valid partition table
 
disk /dev/dm-2: 30.0 GB,30031216640 bytes
255 heads,3651 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
 
disk /dev/dm-2 doesn't contain a valid partition table

虽然/dev/下面没有所谓的dm-3、dm-4...., 一般你用nmon、iostat 之类的命令就能看到,其实他也可以查看这些dm对应的那些设备,一般都位于 /dev/mapper下面。

[root@mylnx01 VolGroup01]# ls -l /dev/mapper
total 0
crw------- 1 root root  10,62 Dec  7 16:45 control
brw-rw---- 1 root disk 253,0 Dec  7 16:45 VolGroup00-LogVol00
brw-rw---- 1 root disk 253,2 Dec  7 16:45 VolGroup00-LogVol00--PS--user--snapshot
brw-rw---- 1 root disk 253,1 Dec  7 16:45 VolGroup00-LogVol01
brw-rw---- 1 root disk 253,11 Dec  7 16:45 VolGroup01-LogVol00
brw-rw---- 1 root disk 253,12 Dec  7 16:45 VolGroup01-LogVol00--PS--user--snapshot
brw-rw---- 1 root disk 253,9 Dec  7 16:45 VolGroup02-LogVol00
brw-rw---- 1 root disk 253,10 Dec  7 16:45 VolGroup02-LogVol00--PS--user--snapshot
brw-rw---- 1 root disk 253,7 Dec  7 16:45 VolGroup03-LogVol00
brw-rw---- 1 root disk 253,8 Dec  7 16:45 VolGroup03-LogVol00--PS--user--snapshot
brw-rw---- 1 root disk 253,5 Dec  7 16:45 VolGroup04-LogVol00
brw-rw---- 1 root disk 253,6 Dec  7 16:45 VolGroup04-LogVol00--PS--user--snapshot
brw-rw---- 1 root disk 253,3 Dec  7 16:45 VolGroup05-LogVol00
brw-rw---- 1 root disk 253,4 Dec  7 16:45 VolGroup05-LogVol00--PS--user--snapshot
 
[root@mylnx01 ~]# ls /dev/VolGrouP*
/dev/VolGroup00:
LogVol00  LogVol00-PS-user-snapshot  LogVol01
 
/dev/VolGroup01:
LogVol00  LogVol00-PS-user-snapshot
 
/dev/VolGroup02:
LogVol00  LogVol00-PS-user-snapshot
 
/dev/VolGroup03:
LogVol00  LogVol00-PS-user-snapshot
 
/dev/VolGroup04:
LogVol00  LogVol00-PS-user-snapshot
 
/dev/VolGroup05:
LogVol00  LogVol00-PS-user-snapshot
[root@mylnx01 ~]# 
 
[root@mylnx01 ~]# cd /dev/VolGroup01
[root@mylnx01 VolGroup01]# ll
total 0
lrwxrwxrwx 1 root root 31 Dec  7 16:45 LogVol00 -> /dev/mapper/VolGroup01-LogVol00
lrwxrwxrwx 1 root root 51 Dec  7 16:45 LogVol00-PS-user-snapshot -> /dev/mapper/VolGroup01-LogVol00--PS--user--snapshot
[root@mylnx01 VolGroup01]# 

其实我们可以使用命令dmsetup ls查看dm-0、dm-1、dm-x对应的设备,其中dm后面的数字对应(253, xx)后面的数字。如下所示

[root@mylnx01 ~]# dmsetup ls 
VolGroup03-LogVol00--PS--user--snapshot (253,8)
VolGroup00-LogVol00--PS--user--snapshot (253,2)
VolGroup05-LogVol00     (253,3)
VolGroup04-LogVol00     (253,5)
VolGroup05-LogVol00--PS--user--snapshot (253,4)
VolGroup03-LogVol00     (253,7)
VolGroup02-LogVol00--PS--user--snapshot (253,10)
VolGroup02-LogVol00     (253,9)
VolGroup01-LogVol00     (253,11)
VolGroup00-LogVol01     (253,1)
VolGroup04-LogVol00--PS--user--snapshot (253,6)
VolGroup00-LogVol00     (253,0)
VolGroup01-LogVol00--PS--user--snapshot (253,12)
[root@mylnx01 ~]#

clip_image002

253后面的数字就对应dm后面的数字,如果你要查看具体的信息就使用命令 dmsetup info 就能看到下面详细信息。

clip_image003

[root@mylnx01 ~]# more /etc/fstab 
/dev/VolGroup00/LogVol00 /                      ext3    defaults        1 1
/dev/VolGroup01/LogVol00 /u01                   ext3    defaults        1 1
/dev/VolGroup02/LogVol00 /u02                   ext3    defaults        1 1
/dev/VolGroup03/LogVol00 /u03                   ext3    defaults        1 1
/dev/VolGroup04/LogVol00 /u04                   ext3    defaults        1 1
/dev/VolGroup05/LogVol00 /u05                   ext3    defaults        1 1
LABEL=/boot             /boot                   ext3    defaults        1 2
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
/dev/VolGroup00/LogVol01 swap                    swap    defaults        0 0

有了上面信息我们就能知道dm-0、dm-1、dm-2分别对应下面的一些设备

dm-0 对应LVM的 VolGroup00-LogVol00 对应根目录/

dm-1 对应LVM的 VolGroup00-LogVol01 对应swap

dm-2 对应LMV的 VolGroup00-LogVol00--PS--user--snapshot

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐