当前位置: 首页 > wzjs >正文

什么是高端网站建设搜易网服务内容

什么是高端网站建设,搜易网服务内容,做心灵鸡汤网站栏目排版,服务中心网站建设方案Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…

Device Mapper 机制详解

Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的 mermaid 框图说明。


一、Device Mapper 原理

Device Mapper 主要作用是将虚拟块设备(/dev/mapper/xxx)映射到一个或多个物理块设备(如 /dev/sda、/dev/sdb),并允许在中间层进行各种功能扩展,例如快照、加密、条带化等。

应用层 IO 请求
虚拟块设备 /dev/mapper/xxx
Device Mapper 内核模块
映射表
底层物理块设备 /dev/sdX

二、Device Mapper 实现与架构

2.1 核心组件

  • dm-mod:Device Mapper 的主内核模块
  • dm-ioctl:用户空间与内核空间通信接口
  • 映射表(Table):描述虚拟设备与物理设备的映射关系
  • Target:具体的功能实现,如 linear、striped、crypt、snapshot 等
Target 驱动
ioctl
读表
Target 驱动
linear
striped
crypt
snapshot
用户空间工具 dmsetup lvm2
Device Mapper 内核模块 dm-mod
映射表
物理块设备

2.2 映射原理举例(线性映射,linear mapping)

sequenceDiagramparticipant Userparticipant /dev/mapper/testparticipant dm-modparticipant /dev/sdb1User->>/dev/mapper/test: 发起读写请求/dev/mapper/test->>dm-mod: 通过 ioctl 调用转发请求dm-mod->>dm-mod: 查询映射表,确定映射区域dm-mod->>/dev/sdb1: 实际操作底层块设备

三、内核配置选项

要支持 Device Mapper,内核需打开以下选项:

Device Drivers
Multiple devices driver support RAID and LVM
Device mapper support CONFIG_DM
Device mapper target modules
Linear target CONFIG_DM_LINEAR
Striped target CONFIG_DM_STRIPED
Crypt target CONFIG_DM_CRYPT
Snapshot target CONFIG_DM_SNAPSHOT

配置方法(以 menuconfig 为例):

Device Drivers  --->Multiple devices driver support (RAID and LVM)  ---><*> Device mapper support<*>   Crypt target support<*>   Snapshot target support<*>   Linear target support<*>   Striped target support

四、常用工具

  • dmsetup:Device Mapper 的通用管理工具
  • lvm2:基于 DM 的逻辑卷管理工具
  • cryptsetup:基于 DM-crypt 的加密工具
管理/创建
创建
管理
创建加密映射
dmsetup
dm-mod
/dev/mapper/xxx
lvm2
cryptsetup

五、操作与测试流程

5.1 创建线性映射设备

  1. 准备测试数据:

    # 假设有两个分区 /dev/sdb1 和 /dev/sdb2,确保未挂载
    sudo dd if=/dev/zero of=/dev/sdb1 bs=1M count=100
    sudo dd if=/dev/zero of=/dev/sdb2 bs=1M count=100
    
  2. 创建映射表文件:

    cat > mytable.txt <<EOF
    0 204800 linear /dev/sdb1 0
    204800 204800 linear /dev/sdb2 0
    EOF
    

    解释:将前 100M(204800 = 100M ÷ 512 字节/扇区)映射到 /dev/sdb1,后 100M 映射到 /dev/sdb2

  3. 加载映射表并创建映射设备:

    sudo dmsetup create mytest --table "$(cat mytable.txt)"
    # mytest 为虚拟设备名,可自定义。无输出表示成功。
    
  4. 验证:

    sudo dmsetup ls
    sudo dmsetup info mytest
    sudo dmsetup table mytest
    
  5. 格式化、挂载测试:

    sudo mkfs.ext4 /dev/mapper/mytest
    sudo mkdir -p /mnt/dmtest
    sudo mount /dev/mapper/mytest /mnt/dmtest
    sudo dd if=/dev/urandom of=/mnt/dmtest/testfile bs=1M count=10
    ls -lh /mnt/dmtest/testfile
    
  6. 卸载与删除映射:

    sudo umount /mnt/dmtest
    sudo dmsetup remove mytest
    

5.2 测试数据

下面以实际操作流程为主线,详细演示 Device Mapper 线性映射的创建、挂载、读写、验证和卸载的关键步骤,并给出每个命令的预期输出。


步骤 1:准备两个测试分区
# 查看可用磁盘
$ lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0  100GB  0 disk 
├─sda1   8:1    0   50GB  0 part /data1
├─sda2   8:2    0   50GB  0 part /data2
sdb      8:16   0    10G  0 disk 
├─sdb1   8:17   0     1G  0 part 
├─sdb2   8:18   0     1G  0 part 

/dev/sdb1/dev/sdb2 为测试分区。


步骤 2:清空分区内容,防止残留数据影响测试
$ sudo dd if=/dev/zero of=/dev/sdb1 bs=1M count=100 status=progress
104857600 bytes (105 MB, 100 MiB) copied, 0.115621 s, 907 MB/s$ sudo dd if=/dev/zero of=/dev/sdb2 bs=1M count=100 status=progress
104857600 bytes (105 MB, 100 MiB) copied, 0.117621 s, 892 MB/s

注意:请确保 /dev/sdb1 和 /dev/sdb2 未挂载,否则会报错。


步骤 3:创建 Device Mapper 映射表
$ cat > mytable.txt <<EOF
0 204800 linear /dev/sdb1 0
204800 204800 linear /dev/sdb2 0
EOF

(204800 = 100M ÷ 512 字节/扇区)


步骤 4:创建映射设备
$ sudo dmsetup create mytest --table "$(cat mytable.txt)"
# 没有输出表示成功

步骤 5:验证映射设备
$ sudo dmsetup ls
mytest    (253:0)$ sudo dmsetup info mytest
Name:              mytest
State:             ACTIVE
Read Ahead:        256
Tables present:    LIVE
Open count:        0
Event number:      0
Major, minor:      253, 0
Number of targets: 2$ sudo dmsetup table mytest
0 204800 linear 8:17 0
204800 204800 linear 8:18 0$ ls -l /dev/mapper/mytest
brw-rw---- 1 root disk 253, 0 69 20:01 /dev/mapper/mytest

步骤 6:格式化并挂载虚拟块设备
$ sudo mkfs.ext4 /dev/mapper/mytest
mke2fs 1.46.5 (30-Dec-2021)
Creating filesystem with 409600 4k blocks and 102400 inodes
...
Writing superblocks and filesystem accounting information: done$ sudo mkdir -p /mnt/dmtest$ sudo mount /dev/mapper/mytest /mnt/dmtest$ df -h | grep dmtest
/dev/mapper/mytest   1.6G   6.0M  1.5G   1% /mnt/dmtest

步骤 7:写入测试数据并验证
$ sudo dd if=/dev/urandom of=/mnt/dmtest/testfile bs=1M count=10 status=progress
10485760 bytes (10 MB, 10 MiB) copied, 0.0218467 s, 480 MB/s$ ls -lh /mnt/dmtest/testfile
-rw-r--r-- 1 root root 10M 69 20:05 /mnt/dmtest/testfile# 查看底层物理盘写入情况
$ sudo hdparm -t /dev/sdb1
Timing buffered disk reads:  234 MB in  3.01 seconds =  77.74 MB/sec$ sudo hdparm -t /dev/sdb2
Timing buffered disk reads:  240 MB in  3.03 seconds =  79.21 MB/sec

步骤 8:卸载并删除映射
$ sudo umount /mnt/dmtest$ sudo dmsetup remove mytest$ sudo dmsetup ls
# 没有输出,映射设备已删除

步骤 9:流程总结框图
准备 /dev/sdb1 和 /dev/sdb2
清空数据
生成映射表 mytable.txt
dmsetup create mytest
mkfs.ext4 格式化
挂载到 /mnt/dmtest
dd 写入 10M 随机数据
ls/df 验证
umount 卸载
dmsetup remove mytest

六、常见问题与调试

  • 查看内核模块是否加载:
    lsmod | grep dm_
  • 查看所有映射设备信息:
    sudo dmsetup ls --tree
  • 查看映射表详情:
    sudo dmsetup table <name>

七、总结

Device Mapper 是 Linux 块设备虚拟化的基石,具有高扩展性和灵活性。通过 dmsetup 等工具可以方便地对存储进行抽象和管理。掌握其原理和操作流程,对理解 LVM、磁盘加密等高级存储功能非常有帮助。


参考链接:

  • Device Mapper 官方文档
  • dmsetup man page
http://www.dtcms.com/wzjs/270778.html

相关文章:

  • 淘宝客网站建设教程个人网站制作
  • 怎么做阿里巴巴英文网站在线生成html网页
  • 容桂佛山做app网站百度推广要自己建站吗
  • 湖北孝感展示型网站建设价格企业文化建设方案
  • 长春seo公司长春网站设计seo教程搜索引擎优化
  • 做网页培训seo外包如何
  • 怎么查网站注册信息网络推广网站程序
  • 建设人力资源网站目标网站发布与推广方式
  • 陕西省住房和城乡建设厅门户网站全球网络营销公司排行榜
  • 百度推广话术太原高级seo主管
  • 深圳品牌设计工作室seo优化公司哪家好
  • 做一个购物网站价格关键字排名查询
  • 人才微网站开发网络推广要求
  • 网站如何做流量赚钱吗seo排名教程
  • 服装私人订制网站新浪网今日乌鲁木齐新闻
  • 廊坊网站建设推广怎么把网站排名排上去
  • 学做电商的网站苏州seo优化
  • wordpress 首页 显示全文哈尔滨优化网站公司
  • 网站地域分站怎么做seoul是什么国家
  • 国内外网站建设江苏seo排名
  • 免费网站可以做淘宝客吗seo自学
  • 装饰工程有限公司经营范围优化推广联盟
  • 卖家如何做阿里巴巴国际网站百度关键词seo排名优化
  • dedecms网站logo网络seo外包
  • 网站怎样做301跳转短视频运营是做什么的
  • 江苏网站建设定制安徽seo团队
  • 网站设计与管理的软件友博国际个人中心登录
  • 电商网站建设设计报告总结深圳刚刚突然宣布
  • 网站服务器如何搭建品牌营销策略论文
  • 多商城入住网站建设软件制作