• dmsetup命令


     
    

    A.2. DMSETUP 命令

    dmsetup 命令是一个用来与 Device Mapper 沟通的命令行封装器(wrapper)。可使用 dmsetup 命令的 infolsstatus 和 deps 选项查看 LVM 设备的常规信息,如以下小节所述。

    有关 dmsetup 命令的额外选项和功能,请参考 dmsetup(8) man page。

    A.2.1. dmsetup info 命令

    dmsetup info device 命令提供有关 Device Mapper 设备概述。如果没有指定设备名称,则输出所有目前配置的 Device Mapper 设备信息。如果指定了设备,那么这个命令只会生成该设备信息。

    dmsetup info 命令提供以下分类信息:

    Name

    设备名称。LVM 设备以用小横线分隔的卷组名称和逻辑卷名称表示。在源名称中小横线会转换为两个小横线。在标准 LVM 操作过程中,不应使用这种格式的 LVM 设备名称直接指定 LVM 设备,而是应该使用 vg/lv 指定。

    name:raidVG-eph_d03ab0ae--09b6--43e5--a9e0--2dc4acf4dfd8

    raidVG 表示vg

    eph_d03ab0ae--09b6--43e5--a9e0--2dc4acf4dfd8 表示lv

    State

    可能的设备状态是 SUSPENDEDACTIVE 和 READ-ONLYdmsetup suspend 命令将设备状态设定为 SUSPENDED。当挂起某个设备时,会停止对该设备的所有 I/O 操作。使用 dmsetup resume 命令可将设备状态恢复到 ACTIVE

    Read Ahead

    系统对正在进行读取操作的任意打开文件的预读数据块数目。默认情况下,内核会自动选择一个合适的值。可使用 dmsetup 命令的 --readahead 选项更改这个值。

    Tables present

    这个类型的可能状态为 LIVE 和 INACTIVEINACTIVE 状态表示已经载入了表格,且会在 dmsetup resume 命令将某个设备状态恢复为 ACTIVE 时进行切换,届时表格状态将为 LIVE。有关详情请参考 dmsetup man page。

    Open count

    打开参考计数表示打开该设备的次数。mount 命令会打开一个设备。

    Event number

    目前收到的事件数目。使用 dmsetup wait n 命令允许用户等待第 n 个事件,收到该事件前阻断该调用。

    Major, minor

    主设备号码和副设备号码

    Number of targets

    组成某个设备的片段数目。例如:一个跨三个磁盘的线性设备会有三个目标。线性设备由某个磁盘起始和结尾,而不是中间组成的线性设备有两个目标。

    UUID

    该设备的 UUID。

    以下是 dmsetup info 命令的部分输出示例。

    1. sudo dmsetup info raidVG-eph_d03ab0ae--09b6--43e5--a9e0--2dc4acf4dfd8
    2. Name: raidVG-eph_d03ab0ae--09b6--43e5--a9e0--2dc4acf4dfd8
    3. State: ACTIVE
    4. Read Ahead: 256
    5. Tables present: LIVE
    6. Open count: 1
    7. Event number: 0
    8. Major, minor: 253, 18
    9. Number of targets: 1
    10. UUID: LVM-4ovvx8eqezZ2or1OMqz0KUhyK8SZtTqdVLGvsPQd58pFUr8muAhxmaDYtEWN2NDG

    A.2.2. dmsetup ls 命令

    可以使用 dmsetup ls 命令列出映射的设备的设备名称列表。可以使用 dmsetup ls --target target_type 命令列出至少有一个指定类型目标的设备。有关 dmsetup ls 的其他选项,请参考 dmsetup ls man page。

    以下示例演示了用来列出目前配置的映射设备名称的命令。

    1. sudo dmsetup ls
    2. raidVG-eph_3764d0aa--df56--478d--926c--e01dab91518a--linear (253:8)
    3. docker-253:0-12070-cbdbceb36eca043e9769c92d968e5fbb32d34743515f58d733bf1b1c16001171 (253:73)
    4. raidVG-vm_data (253:0)
    5. raidVG-eph_0443b779--cb51--478a--9c4d--bc2a7c35c571--meta (253:34)
    6. docker-253:0-12070-7684cc6f46a62e77a48b0eefe1dfbc2aee4b86daffc3d9abf5272843385d51c2 (253:80)
    7. docker-253:0-12070-pool (253:70)
    8. docker-253:0-12070-875c736f340ba4094c7e90aed5dedf212ee8a912f01b11be3268f41098209d6f (253:120)
    9. raidVG-eph_a6d5292a--bff4--49da--8a8c--7b2835c144c1 (253:2)
    10. docker-253:0-12070-d04ca7fd6e5713e88dd444c20deac92f10dc231f3e451cc0eddcbfb9770824c5 (253:84)
    11. raidVG-eph_3764d0aa--df56--478d--926c--e01dab91518a (253:6)
    12. docker-253:0-12070-e5c60544db49425174f99b8e9128f57254775d95f1990c9cb325f41b55c3dc9c (253:104)
    13. raidVG-eph_d19e6f31--4e59--4301--af75--d4d1aa576a2c (253:129)
    14. raidVG-eph_e4bc6c27--dfa5--402d--b7f3--54fe77e954ae--meta (253:33)
    15. docker-253:0-12070-61d574220dddbadc6752e16be782bc81a55ee4ca9171b60d39eacbb068742e92 (253:96)

    以下示例演示了用来列出目前配置的镜像映射设备名称的命令。

    在多路径或者其它 device mapper 装置中堆叠的 LVM 配置文件可能过于复杂。dmsetup ls命令提供了一个--tree 选项,可以树形式显示设备间的相依性,如下所示。

    1. sudo dmsetup ls --tree
    2. docker-253:0-12070-cbdbceb36eca043e9769c92d968e5fbb32d34743515f58d733bf1b1c16001171 (253:73)
    3. └─docker-253:0-12070-pool (253:70)
    4. ├─ (7:0)
    5. └─ (7:1)
    6. raidVG-vm_data (253:0)
    7. ├─raidVG-vm_data--meta (253:1)
    8. │ └─ (8:4)
    9. └─raidVG-vm_data--linear (253:62)
    10. └─ (8:4)
    11. raidVG-eph_0443b779--cb51--478a--9c4d--bc2a7c35c571--meta (253:34)
    12. └─ (8:4)
    13. docker-253:0-12070-7684cc6f46a62e77a48b0eefe1dfbc2aee4b86daffc3d9abf5272843385d51c2 (253:80)
    14. └─docker-253:0-12070-pool (253:70)
    15. ├─ (7:0)
    16. └─ (7:1)
    17. docker-253:0-12070-875c736f340ba4094c7e90aed5dedf212ee8a912f01b11be3268f41098209d6f (253:120)
    18. └─docker-253:0-12070-pool (253:70)
    19. ├─ (7:0)
    20. └─ (7:1)
    21. raidVG-eph_a6d5292a--bff4--49da--8a8c--7b2835c144c1 (253:2)
    22. └─ (8:4)
    23. docker-253:0-12070-d04ca7fd6e5713e88dd444c20deac92f10dc231f3e451cc0eddcbfb9770824c5 (253:84)
    24. └─docker-253:0-12070-pool (253:70)
    25. ├─ (7:0)
    26. └─ (7:1)
    27. raidVG-eph_3764d0aa--df56--478d--926c--e01dab91518a (253:6)
    28. ├─raidVG-eph_3764d0aa--df56--478d--926c--e01dab91518a--meta (253:7)
    29. │ └─ (8:4)
    30. └─raidVG-eph_3764d0aa--df56--478d--926c--e01dab91518a--linear (253:8)
    31. └─ (8:4)
    32. docker-253:0-12070-e5c60544db49425174f99b8e9128f57254775d95f1990c9cb325f41b55c3dc9c (253:104)
    33. └─docker-253:0-12070-pool (253:70)
    34. ├─ (7:0)
    35. └─ (7:1)

    A.2.3. dmsetup status 命令

    dmsetup status device 命令提供指定设备中每个目标的状态信息。如果没有指定设备名称,输出结果是所有目前配置的设备映射器设备信息。可以使用 dmsetup status --targettarget_type 命令列出那些至少有一个指定类型目标的设备。

    以下示例演示了用来列出在所有目前配置映射设备中目标状态的命令。

    1. sudo dmsetup status
    2. raidVG-eph_3764d0aa--df56--478d--926c--e01dab91518a--linear: 0 20971520 linear
    3. docker-253:0-12070-cbdbceb36eca043e9769c92d968e5fbb32d34743515f58d733bf1b1c16001171: 0 20971520 thin 639488 20971519
    4. raidVG-vm_data: 0 1551892480 ksc-linear
    5. raidVG-eph_0443b779--cb51--478a--9c4d--bc2a7c35c571--meta: 0 8192 linear
    6. docker-253:0-12070-7684cc6f46a62e77a48b0eefe1dfbc2aee4b86daffc3d9abf5272843385d51c2: 0 20971520 thin 753792 20971519
    7. docker-253:0-12070-pool: 0 419430400 thin-pool 968 21495/524288 2001462/3276800 - rw discard_passdown queue_if_no_space -
    8. docker-253:0-12070-875c736f340ba4094c7e90aed5dedf212ee8a912f01b11be3268f41098209d6f: 0 20971520 thin 252800 20971519
    9. raidVG-eph_a6d5292a--bff4--49da--8a8c--7b2835c144c1: 0 20971520 linear
    10. docker-253:0-12070-d04ca7fd6e5713e88dd444c20deac92f10dc231f3e451cc0eddcbfb9770824c5: 0 20971520 thin 2049024 20971519
    11. raidVG-eph_3764d0aa--df56--478d--926c--e01dab91518a: 0 20971520 ksc-linear

    创建一个linear设备

    dmsetup create dm-name dm-table

    dm-name   是要创建的设备名字。 如果成功将会在/dev/mapper/目录下 生成这个名字的文件

    dm-table    是保存了这个map device的 mapping table。

    简单的dm-table一个例子是:

    起始扇区  扇区个数  线性映射  目标设备 目标设备上的起始扇区

    0 1025 linear /dev/sdb2 0

    1025 1025 linear /dev/sdc2 0

    某个block的sector大小,可以用 blockdev --getsize /dev/sdb2来得到。

    如果是刚分区的盘,需要用partprobe来更新一下

    1. sudo fdisk -l
    2. Disk /dev/mapper/raidVG-eph_8efd7082--1128--465b--b42b--b59c659593b2: 10.7 GB, 10737418240 bytes, 20971520 sectors
    3. Units = sectors of 1 * 512 = 512 bytes
    4. Sector size (logical/physical): 512 bytes / 4096 bytes
    5. I/O size (minimum/optimal): 4096 bytes / 4096 bytes
    6. Disk /dev/mapper/raidVG-eph_8efd7082--1128--465b--b42b--b59c659593b2--meta: 4 MB, 4194304 bytes, 8192 sectors
    7. Units = sectors of 1 * 512 = 512 bytes
    8. Sector size (logical/physical): 512 bytes / 4096 bytes
    9. I/O size (minimum/optimal): 4096 bytes / 4096 bytes
    10. Disk /dev/mapper/raidVG-eph_8efd7082--1128--465b--b42b--b59c659593b2--linear: 10.7 GB, 10737418240 bytes, 20971520 sectors
    11. Units = sectors of 1 * 512 = 512 bytes
    12. Sector size (logical/physical): 512 bytes / 4096 bytes
    13. I/O size (minimum/optimal): 4096 bytes / 4096 bytes

  • 相关阅读:
    LLM技术全景图:技术人必备的技术指南,一张图带你掌握从基础设施到AI应用的全面梳理
    【C++】STL详解(十)—— 用红黑树封装map和set
    CF342E Xenia and Tree 题解 (根号算法,操作分块)
    【Python3】【力扣题】169. 多数元素
    Qt的对象树
    知到测试---大学生心理健康教育
    离散化(保序)
    django计算机毕业设计基于安卓Android/微信小程序的移动电商平台系统APP-商品购物商城app
    智慧矿山&矿山安全生产:皮带撕裂识别AI算法不用激光,能迅速识别皮带纵撕!
    windows下利用python计算文件md5值
  • 原文地址:https://blog.csdn.net/qq_42533216/article/details/125426150