Linux认证辅导:RH436-5 devicemapper和多路径

Device Mapper

1.用于生成一个逻辑设备到物理设备的映射平台
2.支持将多个存储设备组合成一个虚拟设备
3.使用Device Mapper的应用程序:
  LVM2
  Multipathing
4.管理mapper设备:create,remove
5.利用mapping tables生成设备文件
6.可在线调整
7.通过block设备生成DM设备
8.支持堆积(如:raid10)
9.DM模块是可动态加载的模块:(device-mapper.rpm安装包后会自动加载该模块)
 
DM-multipath的功能:
1.故障的切换和恢复
2.IO流量的负载均衡
3.磁盘的虚拟化
 
DM Table
1.通过DM table来生成逻辑设备
2.描述了物理设备到逻辑设备的每一个扇区映射的关系
3.DM Table的行格式
  1.逻辑设备的起始扇区
  2.逻辑设备的扇区数(size)
  3.创建逻辑设备的类型
  4.创建逻辑设备的参数
 
mapping table实例:
1. 0 1024 linear /dev/sda 204 1024 512 linear /dev/sdb 766 1536 128 linear /dev/sdc 0
  #将逻辑设备0~1023扇区、1024~1535扇区以及1536~1663三个地址范围分别以线形映射的方式映射到/dev/sda设备第204号扇区、/dev/sdb设备第766号扇区和/dev/sdc设备的第0号扇区开始的区域
 
2. 0 2048 striped 2 64 /dev/sda 1024 /dev/sdb 0
  #将逻辑设备从0号扇区开始的,长度为2048个扇区的段以条带的方式映射的到/dev/sda设备的第1024号扇区以及/dev/sdb设备的第0号扇区开始的区域。同时告诉内核这个条带类型的target driver存在2个条带设备与逻辑设备做映射,并且条带的大小是64个扇区,使得驱动可以该值来拆分跨设备的IO请求。
 
3. 0 4711 mirror core 2 64 nosync 2 /dev/sda 2048 /dev/sdb 1024
  #将逻辑设备从0号扇区开始的,长度为4711个扇区的段以镜像的方式映射到/dev/sda设备的第2048个扇区以及/dev/sdb设备的第1024号扇区开始的区域。
 
dmsetup
1.dmsetup用于创建、管理、查询DM设备的工具
2.支持stdin获取参数来创建Mapping table信息#建议利用stdin方式使用dmsetup创建mapping table信息
 e.g. #dmsetup create mydevice map_table
3.实例:将/dev/sda和/dev/sdb两个设备以线性的方式组成逻辑设备/dev/mapper/combined
[root@node1 ~]#vim createmapdev.sh
#!/bin/bash
size1=$(blockdev --getsize $1)
size2=$(blockdev --getsize $2)
echo -e "0 $size1 linear $1 0\n$size1 $size2 linear $2 0" | dmsetup create combined
 
[root@node1 ~]#./createmapdev.sh /dev/sda /dev/sdb
 
[root@node1 ~]#ls -ls /dev/mapper/combined
0 brw-rw---- 1 root disk 252, 2 10-28 11:36 /dev/mapper/combined
#blockdev --getsize /dev/sda 计算/dev/sda的所有扇区数
 
[root@node1 home]# mkfs -t ext3 /dev/mapper/combined
 
[root@node1 home]# mount /dev/mapper/combined /mnt
 
[root@node1 home]# df -h /mnt
文件系统              容量  已用 可用 已用% 挂载点
/dev/mapper/combined   19G  173M   18G   1% /mnt
 
Mapping Targets
1. linear:线性,连续写入
2. striped:条带化,分段写入,raid0
3. error:定义“out-of-bounds"屏蔽区域,坏道等
4. snapshot: -copy-on-write device:COW写实复制设备
5. snapshot-origin-device:起始卷
6. zero:零设备,可模拟大容量设备
7. multipath:多路径,多条路由到设备
 
Mapping Target - linare
1. dm-linare 驱动
2. 将多个物理设备组成一个连续的逻辑设备
3.参数:
    物理设备路径
    offset:偏移量
4.实例
    0 20000 linear /dev/sda 0
    20000 60000 linear  /dev/sdb 0
 #将设备/dev/sda从0扇区开始的20000个扇区作为线性逻辑设备的从0开始的20000个扇区
 #将设备/dev/sdb从0扇区开始的60000个扇区作为线性逻辑设备的从20000开始的60000个扇区
 #线性逻辑设备的总大小为80000个扇区(1扇区=512byte)
[root@node1 ~]# echo -e "0 20000 linear /dev/sda 0\n20000 60000 linear /dev/sdb 0" | dmsetup create combined
[root@node1 ~]# ls /dev/mapper/combined
/dev/mapper/combined
[root@node1 ~]# mkfs -t ext3 /dev/mapper/combined
[root@node1 ~]# mount /dev/mapper/combined /mnt
[root@node1 ~]# df -h /mnt
文件系统              容量  已用 可用 已用% 挂载点
/dev/mapper/combined   38M  4.5M   32M  13% /mnt    #combined大小:80000*512/1024/1024=39M
 
 
Mapping Target - striped
1. dm-stripe driver
2. 通过多个指定设备轮询分段写入的方式组建逻辑设备
3. 参数:
   参与条带化的物理设备数量
   chunk size
   设备路径
   offset:偏移量
4.实例
   0 1024 striped 2 256 /dev/sda 0 /dev/sdb 0
 #0 1024:新建逻辑设备从0扇区开始1024个扇区,扇区数必须是chunksize的倍数。
 #striped 2 :条带化,设备数量为2
 #256:chunk size
 #/dev/sda 0 /dev/sdb 0:从两物理设备的第0个扇区开始
 
 注:所有操作必须写入到开启脚本,否则重启失效。
 
 
Mapping Target - error
1. I/O设备中出现访问错误,如坏道
2. 在逻辑设备中定义该错误部分为error避免访问该部分。
3.实例
  0   80 linear /dev/sda 0
  80  100 error
  180 200 linear /dev/sdb 0
 #从第80扇区开始100个扇区为error区,该区将不会被访问,其坏道应该在/dev/sda上。

相关推荐