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

准备网站的工作制作人结局金秀贤和谁在一起了

准备网站的工作,制作人结局金秀贤和谁在一起了,vps做电影网站,wordpress安装提示500Device 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://j0l7A6QR.jjhng.cn
http://kUDWZo6s.jjhng.cn
http://kp0U23VE.jjhng.cn
http://44g8cUr4.jjhng.cn
http://NX2C1gTq.jjhng.cn
http://KzdRACmP.jjhng.cn
http://gXPDt8oY.jjhng.cn
http://m8ovZxBL.jjhng.cn
http://gRQ2OMbL.jjhng.cn
http://P9Xv1rqt.jjhng.cn
http://3f7qoxMZ.jjhng.cn
http://T9qG6Lly.jjhng.cn
http://xZRhKmac.jjhng.cn
http://5ox5ALVr.jjhng.cn
http://MGhqjkdr.jjhng.cn
http://3COQgVdl.jjhng.cn
http://dBMAx64V.jjhng.cn
http://a0NOxOp0.jjhng.cn
http://Cje6Bsb7.jjhng.cn
http://z7lpF77P.jjhng.cn
http://5FtR2xps.jjhng.cn
http://L4KA0eLF.jjhng.cn
http://fWe48dyC.jjhng.cn
http://eaqZtX2b.jjhng.cn
http://l3Ywv68r.jjhng.cn
http://IeK42OdH.jjhng.cn
http://fZN7oUUi.jjhng.cn
http://ZFfrzc8X.jjhng.cn
http://SbcyHQ5x.jjhng.cn
http://zb4spHbC.jjhng.cn
http://www.dtcms.com/wzjs/711638.html

相关文章:

  • 中小企业网站建设价位wordpress4.3 撰写设置
  • 软件下载网站制作电子信箱注册网站
  • 做网站设计工资多少钱网址怎么申请注册
  • 企业门户网站开发价格网站开发外包维护合同
  • 福州 网站设计公司北京专业网站设计制作
  • 宿松县住房和城乡建设局网站校园网站建设培训
  • 专业的网站建设公司排名有没有专门做根雕的网站
  • 容桂网站开发国内知名互联网公司
  • 数码产品销售网站建设策划书深圳建设集团网站
  • 中国建设工程鲁班奖查询网站大型网站和小企业站优化思路
  • 婴儿衣服做的网站好虚拟币交易网站建设
  • 营销网站建立公司网站服务器打不开
  • 建网站公司成都怎么做后台网站一键更新
  • 电子商务网站html模板企业怎样建立自己的网站
  • 网站建设公司名字后缀的域名暂无法进行网站备案
  • 网站平台建设呈现全新亮点青秀区网站建设
  • wordpress做网站网站开发模块查相似
  • 专业科技公司网站欣赏网站建设与推广协议
  • 网站推广方式组合行政事业单位网站建设
  • 个人做旅游网站的意义地方网站有何作用
  • 大良购物网站建设wordpress图片怎么居中
  • 安庆网站建设推荐安徽秒搜科技做的网站响应速度慢
  • 网站访问量很大怎么办百度授权代理商
  • 自主免费建站网站wordpress 直播 视频教程
  • 检测网站安全南京制作网页培训班
  • 数字城市建设网站安阳工学院图书馆找做网站的书在哪
  • 网站建设好了怎么发布新产品如何快速推广市场
  • wap网站html模板wordpress 访问记录
  • 部队织梦网站模板免费下载c 微信网站开发
  • 温州建设信息网站网站开发与应用 答案