RH436-5 devicemapper和多路径.doc_第1页
RH436-5 devicemapper和多路径.doc_第2页
RH436-5 devicemapper和多路径.doc_第3页
RH436-5 devicemapper和多路径.doc_第4页
RH436-5 devicemapper和多路径.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Device Mapper1.用于生成一个逻辑设备到物理设备的映射平台2.支持将多个存储设备组合成一个虚拟设备3.使用Device Mapper的应用程序: LVM2 Multipathing4.管理mapper设备:create,remove5.利用mapping tables生成设备文件6.可在线调整7.通过block设备生成DM设备8.支持堆积(如:raid10)9.DM模块是可动态加载的模块:(device-mapper.rpm安装包后会自动加载该模块)DMmultipath的功能:1.故障的切换和恢复2.IO流量的负载均衡3.磁盘的虚拟化DM Table1.通过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 #将逻辑设备01023扇区、10241535扇区以及15361663三个地址范围分别以线形映射的方式映射到/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号扇区开始的区域。dmsetup1.dmsetup用于创建、管理、查询DM设备的工具2.支持stdin获取参数来创建Mapping table信息#建议利用stdin方式使用dmsetup创建mapping table信息e.g. #dmsetup create mydevice map_table3.实例:将/dev/sda和/dev/sdb两个设备以线性的方式组成逻辑设备/dev/mapper/combinedrootnode1 #vim createmapdev.sh#!/bin/bashsize1=$(blockdev -getsize $1)size2=$(blockdev -getsize $2)echo -e 0 $size1 linear $1 0n$size1 $size2 linear $2 0 | dmsetup create combinedrootnode1 #./createmapdev.sh /dev/sda /dev/sdbrootnode1 #ls -ls /dev/mapper/combined0 brw-rw- 1 root disk 252, 2 10-28 11:36 /dev/mapper/combined#blockdev -getsize /dev/sda 计算/dev/sda的所有扇区数rootnode1 home# mkfs -t ext3 /dev/mapper/combinedrootnode1 home# mount /dev/mapper/combined /mntrootnode1 home# df -h /mnt文件系统 容量 已用 可用 已用% 挂载点/dev/mapper/combined 19G 173M 18G 1% /mntMapping Targets1. linear:线性,连续写入2. striped:条带化,分段写入,raid03. error:定义“out-of-bounds屏蔽区域,坏道等4. snapshot: -copy-on-write device:COW写实复制设备5. snapshot-origin-device:起始卷6. zero:零设备,可模拟大容量设备7. multipath:多路径,多条路由到设备Mapping Target - linare1. 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)rootnode1 # echo -e 0 20000 linear /dev/sda 0n20000 60000 linear /dev/sdb 0 | dmsetup create combinedrootnode1 # ls /dev/mapper/combined/dev/mapper/combinedrootnode1 # mkfs -t ext3 /dev/mapper/combinedrootnode1 # mount /dev/mapper/combined /mntrootnode1 # df -h /mnt文件系统 容量 已用 可用 已用% 挂载点/dev/mapper/combined 38M 4.5M 32M 13% /mnt #combined大小:80000*512/1024/1024=39MMapping Target - striped1. dm-stripe driver2. 通过多个指定设备轮询分段写入的方式组建逻辑设备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 - error1. 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上。Mapping Target - snapshot-origin1. dm-snapshot driver2. dm mapping源卷3. 所有未改变的数据将直接读取源卷4. 与snapshot连接在一起工作5. 写数据时,修改的源卷数据会保存在snapshot的COW(copy on write写实复制)设备上。6. Example: 0 1000 snapshot-origin /dev/sda #将/dev/sda创建成源卷设备即逻辑卷设备Mapping Target - snapshot1. dmsnapshot driver2. 与snapshot-origin连接在一起工作3. snapshot创建的时候,仅拷贝原始卷里数据的元数据(meta-data),并不会有数据的物理拷贝4. 写操作时,snapshot跟踪原始卷块的改变,这个时候原始卷上将要改变的数据在改变之前被拷贝到snapshot预留的空间里即COW中。5. 读操作时,直接定向到原始卷上6. 创建snapshot时会创建三个设备snap、cow、real7. Example: 0 1000 snapshot /dev/sda1 /dev/vg0/realdev P 16 #/devsda1:源设备 #0 10000:从0开始1000个扇区 #/dev/vg0/realdev用于做/dev/sda1的快照 #P:下次启动该设备持续有效,N:重启无效LVM2 Snapshots1. LVM2快照时会使用四个DMDevice -real :源卷设备,即真实设备 snapshot-origin:拷贝原始卷里数据的元数据(meta-data) snapshot:The COW device改变的数据 :包含-real和COW的最终被修改后的设备2.Example:rootnode1 lvm#lvcreate -L 512M -n lv00 vg01rootnode1 lvm#lvcreate -L 100M -n lvsnap -snapshot /dev/vg01/lv00rootnode1 lvm# ll /dev/mapper/ | grep vg01brw-rw- 1 root disk 252, 2 11-02 14:14 vg01-lv00brw-rw- 1 root disk 252, 4 11-02 14:15 vg01-lv00-realbrw-rw- 1 root disk 252, 3 11-02 14:15 vg01-lvsnapbrw-rw- 1 root disk 252, 5 11-02 14:15 vg01-lvsnap-cowrootnode1 lvm# dmsetup table | grep vg01 | sortvg01-lv00: 0 1048576 snapshot-origin 252:4vg01-lv00-real: 0 1048576 linear 8:0 384vg01-lvsnap: 0 1048576 snapshot 252:4 252:5 P 8vg01-lvsnap-cow: 0 106496 linear 8:0 1048960rootnode1 lvm# dmsetup ls -treevg01-lvsnap (252:3)vg01-lvsnap-cow (252:5) (8:0)vg01-lv00-real (252:4) (8:0)vg01-lv00 (252:2)vg01-lv00-real (252:4) (8:0)LVMsnapshot实例:rootnode1 /# lvcreate -L 512M -n lv00 vg01 Logical volume lv00 createdrootnode1 /# mkfs -t ext3 /dev/mapper/vg01-lv00rootnode1 /# mount /dev/mapper/vg01-lv00 /mnt/lvmrootnode1 /# cp -a /etc/ /mnt/lvm/rootnode1 lvm# dd if=/dev/zero of=test bs=1M count=100Mrootnode1 lvm# lvcreate -L 50M -s -n lvsnap /dev/vg01/lv00 Rounding up size to full physical extent 52.00 MB Logical volume lvsnap createdrootnode1 mnt# lvdisplay /dev/vg01/lvsnap - Logical volume - LV Name /dev/vg01/lvsnap VG Name vg01 LV UUID 6ZgZDl-tASI-f7pD-m96h-OpUl-ANJe-gotSe0 LV Write Access read/write LV snapshot status active destination for /dev/vg01/lv00 LV Status available # open 1 LV Size 512.00 MB Current LE 128 COW-table size 52.00 MB COW-table LE 13 Allocated to snapshot 0.05% Snapshot chunk size 4.00 KB Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 252:3rootnode1 lvm# mount /dev/vg01/lvsnap /mnt/snap/rootnode1 lvm# ls /dev/mapper/vg01-lv00 vg01-lv00-real vg01-lvsnap vg01-lvsnap-cowrootnode1 mnt# df -h文件系统 容量 已用 可用 已用% 挂载点/dev/mapper/VolGroup00-LogVol00 37G 2.7G 33G 8% /dev/vda1 99M 15M 79M 16% /boottmpfs 252M 0 252M 0% /dev/shm/dev/mapper/vg01-lv00 496M 195M 276M 42% /mnt/lvm/dev/mapper/vg01-lvsnap 496M 195M 276M 42% /mnt/snap #显示snap和原数据一样rootnode1 lvm# dd if=/dev/zero of=/mnt/lvm/test1 bs=1M count=10rootnode1 mnt# lvdisplay /dev/vg01/lvsnap - Logical volume - LV Name /dev/vg01/lvsnap VG Name vg01 LV UUID 6ZgZDl-tASI-f7pD-m96h-OpUl-ANJe-gotSe0 LV Write Access read/write LV snapshot status active destination for /dev/vg01/lv00 LV Status available # open 1 LV Size 512.00 MB Current LE 128 COW-table size 52.00 MB COW-table LE 13 Allocated to snapshot 19.69% #使用率增加了 Snapshot chunk size 4.00 KB Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 252:3rootnode1 lvm# ls /mnt/lvmetc lost+found test test1rootnode1 lvm# ls /mnt/snap/etc lost+found testrootnode1 mnt# df -h文件系统 容量 已用 可用 已用% 挂载点/dev/mapper/VolGroup00-LogVol00 37G 2.7G 33G 8% /dev/vda1 99M 15M 79M 16% /boottmpfs 252M 0 252M 0% /dev/shm/dev/mapper/vg01-lv00 496M 205M 266M 44% /mnt/lvm/dev/mapper/vg01-lvsnap 496M 195M 276M 42% /mnt/snap #快照未改变,改变的数据到cow中了,即创建snapshot时创建的50M空间里#snapshot的大小并不需要和原始卷一样大,其大小仅仅只需要考虑两个方面:从shapshot创建到释放这段时间内,估计块的改变量有 多大;数据更新的频率。一旦 snapshot的空间记录满了原始卷块变换的信息,那么这个snapshot立刻被释放,从而无法使用,从而导致这个snapshot无效。所以,非常 重要的一点,一定要在snapshot的生命周期里,做完你需要做得事情。当然,如果你的snapshot大小和原始卷一样大,甚至还要大,那它的寿命就 是“与天齐寿”了Mapping Taget zero1. dm-zero driver2. 同/dev/zero一样,但是一个block设备3. 用于创建虚拟大容量设备,多用于测试。4. 无法往其写入数据,其中无真实数据,读时返还zero数据。5. Example:rootnode1 lvm# export Hugsize=$100 *(2*40)/512rootnode1 lvm# echo $Hugsize214748364800rootnode1 lvm# echo 0 $Hugsize zero | dmsetup create zerodevrootnode1 lvm# fdisk -l /dev/mapper/zerodevDisk /dev/mapper/zerodev: 109951.1 GB, 109951162777600 bytes255 heads, 63 sectors/track, 13367467 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesDevice Mapper Multipath1. 提供冗余:一条或多条路径连接到相同物理存储设备2. 监控每条路径并自动切换故障路径3. 自动恢复并传递应用程序4. dm-multipath创建的设备名(e.g.:/dev/dm-2)5. dm-multipath支持GFS文件系统6. dm-multipath是线路冗余,不是磁盘冗余dm multipath components1. Multipath priority groups多路径优先级: 优先级不一样则冗余优,先级高的工作,低的备份 优先级一样则提供负载均衡,同时工作2. dm-multipath kernel module内核模块3. multipath命令:查询和配置多路径设备4. multipathd daemon:监控多路径进程或附件5. kpartx:创建dm设备Multipath Priority Groups1. 到存储设备的路径可以定义优先级组2. 优先级组范围:010243. 默认只有一个优先级组在工作4. active/active路径属于相同的优先级组,负载均衡模式(默认状态)5. active/passive路径属于不同的优先级组,优先级组高的工作,优先级组低备份Mapping Targetmultipath1. dm-multipath driver2. 参数: 优先级组的分段3. 第一个优先级组的参数 3.1. 优先级组对应的I/O 3.2. 优先级组对应的路径数量 3.3. 列出路径的优先级Setup Multipathing Fc Storage1. 安装device-mapper-multipath RPM包2. 配置/etc/multipath.conf3. modprobe dm_multipath4. modprobe dm-round-robin5. chkconfig multipathd on6. service multipathd start7. multipath -lMultipath Configuration/etc/multipath.conf Sections:1. defaults - multipath tools default settings2. blacklist -list of specific device names to not consider for multipathing3. blacklist_exceptions - list of multipathing candidates that would otherwise be blacklisted4. multipaths - list of multipath characteristic settings5. devices - list of per storage controller settings6. Allows regular expression description syntax7. Only specify sections that are needed多路径配置实例1. target配置IP:ifcfg-eth0 192.168.32.219 ifcfg-eth0:1 192.168.32.220roottarget # service tgtd startroottarget #tgtadm -lld iscsi -mode target -op new -tid 1 -T iqn.2011-10.target:dsk1roottarget #tgtadm -lld iscsi -mode logicalunit -op new -tid 1 -lun 1 -backing-store=/dev/VolGroup00/lv06roottarget #tgtadm -lld iscsi -mode target -op bind -tid=1 -initiator-address=ALL2. node1配置rootnode1 # iscsiadm -m discovery -t sendtargets -p 192.168.32.220192.168.32.220:3260,1 iqn.2011-10.target:dsk1rootnode1 # iscsiadm -m discovery -t sendtargets -p 192.168.32.219192.168.32.219:3260,1 iqn.2011-10.target:dsk1rootnode1 # iscsiadm -m node -T iqn.2011-10.target:dsk1 -p 192.168.32.220 -lLogging in to iface: default, target: iqn.2011-10.target:dsk1, portal: 192.168.32.220,3260Login to iface: default, target: iqn.2011-10.target:dsk1, portal: 192.168.32.220,3260: successfulrootnode1 # iscsiadm -m node -T iqn.2011-10.target:dsk1 -p 192.168.32.219 -lLogging in to iface: default, target: iqn.2011-10.target:dsk1, portal: 192.168.32.219,3260Login to iface: default, target: iqn.2011-10.target:dsk1, portal: 192.168.32.219,3260: successfulrootnode1 # fdisk -lDisk /dev/sdb: 5368 MB, 5368709120 bytes166 heads, 62 sectors/track, 1018 cylindersUnits = cylinders of 10292 * 512 = 5269504 bytesDisk /dev/sdd: 5368 MB, 5368709120 bytes166 heads, 62 sectors/track, 1018 cylindersUnits = cylinders of 10292 * 512 = 5269504 bytesrootnode1 # yum install device-mapper-multipathrootnode1 # vim /etc/rc.d/multipath.conf#blacklist #注销blacklist# devnode * #defaults udev_dir /dev polling_interval 10 selector round-robin 0 #轮询,优先级都为0 path_grouping_policy failover getuid_callout /sbin/scsi_id -g -u -s /block/%n prio_callout /bin/true path_checker readsector0 rr_min_io 100 max_fds 8192 rr_weight priorities failback immediate no_path_retry fail user_friendly_names yes#通常特有厂商有其特有的配置,该配置是redhat的默认配置rootnode1 #chkconfig multipathd onrootnode1 #service multipathd startrootnode1 # fdisk -lDisk /dev/sdb: 5368 MB, 5368709120 bytes166 heads, 62 sectors/track, 1018 cylindersUnits = cylinders of 10292 * 512 = 5269504 bytesDisk /dev/sdd: 5368 MB, 53687091

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论