Device Mapper learning in Linux, devicemapper
In linux, when you use some commands (such as nmon and iostat), you may see some devices named dm-xx. What exactly are these devices, what is the relationship with the disk? I was wondering when I didn't know it before. in fact, dm is the abbreviation of Device Mapper. Device Mapper is a ing Framework mechanism provided in the Linux 2.6 kernel from a logical Device to a physical Device. Under this mechanism, users can easily develop storage resource management policies based on their own needs. Currently, logical Volume Manager in Linux is popular, such as LVM2 (Linux Volume Manager 2 version) and EVMS (Enterprise Volume Management System) and dmraid (Device Mapper Raid Tool) are all implemented based on this mechanism. The most comprehensive information about Device Mapper is the Device Mapper mechanism in IBM Linux kernel.
The theoretical knowledge is only for those who have reached a certain height and depth and want to study it in depth. Let's take a look at some questions and problems encountered in simple operations, as shown in, what are the mappings between dm-0, dm-1, dm-xx, and those disks? What do they mean? First let's look at the dm-0, dm-1, dm-2, the three file Devices
[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 ~]#
Or you can see it using the fdisk-l command.
[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, 63 sectors/track, 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, 63 sectors/track, 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, 63 sectors/track, 3651 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/dm-2 doesn't contain a valid partition table
Although/dev/below there's no so-called dm-3, dm-4 ...., generally, you can use commands such as nmon and iostat. In fact, you can also view the devices corresponding to these DMSs, which are generally located under/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]#
In fact we can use the command dmsetup ls to view the dm-0, dm-1, dm-x corresponding to the device, where the number after dm corresponds to the number after (253, xx. As shown below
[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 ~]#
The number after 253 corresponds to the number after dm. If you want to view the specific information, you can use the command dmsetup info to see the following details.
[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
With the above information we can know dm-0, dm-1, dm-2 corresponding to some of the following equipment respectively
Dm-0 corresponds to VolGroup00-LogVol00 corresponding to LVM root directory/
Dm-1 for LVM VolGroup00-LogVol01 for swap
Dm-2 for LMV VolGroup00-LogVol00 -- PS -- user -- snapshot
........................................ .................
References:
Http://www.ibm.com/developerworks/cn/linux/l-devmapper/index.html