• Linux系统中的Device Mapper学习


    2016-12-16 15:42 潇湘隐者 阅读(11906) 评论(0) 编辑 收藏

    在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的理论知识,最全的资料莫过于IBM的Linux 内核中的 Device Mapper 机制这篇文章。

    clip_image001

     

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

    /dev/dm-0  /dev/dm-1  /dev/dm-2
    brw-rw---- 1 root root 253, 0 Dec  7 16:45 /dev/dm-0
    brw-rw---- 1 root root 253, 2 Dec  7 16:45 /dev/dm-2
    [root@mylnx01 ~]# fdisk -l
    Disk /dev/sda: 85.8 GB, 85899345920 bytes
    Units = cylinders of 16065 * 512 = 8225280 bytes
       Device Boot      Start         End      Blocks   Id  System
    /dev/sda2              14        6788    54420187+  8e  Linux LVM
     
    .....................................................................
    Disk /dev/dm-0: 107.2 GB, 107206410240 bytes
    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
    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
    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下面。

    total 0
    brw-rw---- 1 root disk 253,  0 Dec  7 16:45 VolGroup00-LogVol00
    brw-rw---- 1 root disk 253,  1 Dec  7 16:45 VolGroup00-LogVol01
    brw-rw---- 1 root disk 253, 12 Dec  7 16:45 VolGroup01-LogVol00--PS--user--snapshot
    brw-rw---- 1 root disk 253, 10 Dec  7 16:45 VolGroup02-LogVol00--PS--user--snapshot
    brw-rw---- 1 root disk 253,  8 Dec  7 16:45 VolGroup03-LogVol00--PS--user--snapshot
    brw-rw---- 1 root disk 253,  6 Dec  7 16:45 VolGroup04-LogVol00--PS--user--snapshot
    brw-rw---- 1 root disk 253,  4 Dec  7 16:45 VolGroup05-LogVol00--PS--user--snapshot
    [root@mylnx01 ~]# ls /dev/VolGroup*
    LogVol00  LogVol00-PS-user-snapshot  LogVol01
    /dev/VolGroup01:
     
    LogVol00  LogVol00-PS-user-snapshot
    /dev/VolGroup03:
     
    LogVol00  LogVol00-PS-user-snapshot
    /dev/VolGroup05:
    [root@mylnx01 ~]# 
    [root@mylnx01 ~]# cd /dev/VolGroup01
    total 0
    lrwxrwxrwx 1 root root 51 Dec  7 16:45 LogVol00-PS-user-snapshot -> /dev/mapper/VolGroup01-LogVol00--PS--user--snapshot
    [root@mylnx01 ~]# dmsetup ls
    VolGroup00-LogVol00--PS--user--snapshot (253, 2)
    VolGroup04-LogVol00     (253, 5)
    VolGroup03-LogVol00     (253, 7)
    VolGroup02-LogVol00     (253, 9)
    VolGroup00-LogVol01     (253, 1)
    VolGroup00-LogVol00     (253, 0)
    [root@mylnx01 ~]#

    clip_image002

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

    clip_image003

    /dev/VolGroup00/LogVol00 /                      ext3    defaults        1 1
    /dev/VolGroup02/LogVol00 /u02                   ext3    defaults        1 1
    /dev/VolGroup04/LogVol00 /u04                   ext3    defaults        1 1
    LABEL=/boot             /boot                   ext3    defaults        1 2
    devpts                  /dev/pts                devpts  gid=5,mode=620  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

    .........................................................

    转自:  https://www.cnblogs.com/kerrycode/p/6187148.html

  • 相关阅读:
    h5网页跳转到app,若未安装app,则跳转app下载页面
    移动端虚拟键盘影响页面布局的问题
    meta标签常用设置
    关于click的多次触发问题(冒泡事件)
    回溯法求解迷宫问题
    记一次MYSQL更新优化
    shell知识点小结
    PHP预定义接口
    【翻译自nikic大神】PHP中原生类型的方法
    找女神要QQ号码
  • 原文地址:https://www.cnblogs.com/pipci/p/11419949.html
Copyright © 2020-2023  润新知