[linux]linux device mapper 设备映射

来源:互联网 发布:c 和java的区别 编辑:程序博客网 时间:2024/05/19 17:11

linux device mapper. linux中通过device mapper可以将一个逻辑设备映射到一
个tag device上,通过这种机制可以时下linux下的逻辑卷功能. dmsetup用于建立映射表.
例如:
  1.0 1024 linear /dev/sda 204
 1024 512 linear /dev/sdb 766
 1536 128 linear /dev/sdc 0
  2.0 2048 striped 2 64 /dev/sda 1024 /dev/sdb 0
  3.0 4711 mirror core 2 64 nosync 2 /dev/sda 2048 /dev/sdb 1024
  例子1中将逻辑设备0~1023扇区,1024~1535扇区以及1536~1663三个地址范围分别以线形
  映射的方式映射到/dev/sda设备第204号扇区,/dev/sdb设备第766号扇区和/dev/sdc设备
  的第0号扇区开始的区域.
  例子2中将逻辑设备从0号扇区开始的,长度为2048个扇区的段以条带的方式映射的到
  /dev/sda设备的第1024号扇区以及/dev/sdb设备的第0号扇区开始的区域. 同时告诉内核
  这个条带类型的target driver存在2个条带设备与逻辑设备做映射,并且条带的大小是64
  个扇区,使得驱动可以该值来拆分跨设备的IO请求.
  例子3中将逻辑设备从0号扇区开始的,长度为4711个扇区的段以镜像的方式映射到
  /dev/sda设备的第2048个扇区以及/dev/sdb设备的第1024号扇区开始的区域.
映射表确定后,创建,删除逻辑设备的操作就相对简单,通过dmsetup如下命令就可以完成相
应的操作. 其操作如下:
 dmsetup create 设备名 映射表文件 /* 根据指定的映射表创建一个逻辑设备 */
 dmsetup reload 设备名 映射表文件
 /* 为指定设备从磁盘中读取映射文件,重新构建映射关系 */
 dmsetup remove 设备名 /* 删除指定的逻辑设备 */
在linux下的device/md目录下有dm的实现,主要是将逻辑设备申明成一个逻辑的块设备,然后
通过用户空间用ioctl来实现其映射过程.