RH4365devicemapper和多路径.docx

上传人:b****5 文档编号:7254086 上传时间:2023-01-22 格式:DOCX 页数:16 大小:20.51KB
下载 相关 举报
RH4365devicemapper和多路径.docx_第1页
第1页 / 共16页
RH4365devicemapper和多路径.docx_第2页
第2页 / 共16页
RH4365devicemapper和多路径.docx_第3页
第3页 / 共16页
RH4365devicemapper和多路径.docx_第4页
第4页 / 共16页
RH4365devicemapper和多路径.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

RH4365devicemapper和多路径.docx

《RH4365devicemapper和多路径.docx》由会员分享,可在线阅读,更多相关《RH4365devicemapper和多路径.docx(16页珍藏版)》请在冰豆网上搜索。

RH4365devicemapper和多路径.docx

RH4365devicemapper和多路径

 DeviceMapper

1.用于生成一个逻辑设备到物理设备的映射平台

2.支持将多个存储设备组合成一个虚拟设备

3.使用DeviceMapper的应用程序:

 LVM2

 Multipathing

4.管理mapper设备:

create,remove

5.利用mappingtables生成设备文件

6.可在线调整

7.通过block设备生成DM设备

8.支持堆积(如:

raid10)

9.DM模块是可动态加载的模块:

(device-mapper.rpm安装包后会自动加载该模块)

 

DM-multipath的功能:

1.故障的切换和恢复

2.IO流量的负载均衡

3.磁盘的虚拟化

 

DMTable

1.通过DMtable来生成逻辑设备

2.描述了物理设备到逻辑设备的每一个扇区映射的关系

3.DMTable的行格式

 1.逻辑设备的起始扇区

 2.逻辑设备的扇区数(size)

 3.创建逻辑设备的类型

 4.创建逻辑设备的参数

 

mappingtable实例:

1.01024linear/dev/sda2041024512linear/dev/sdb7661536128linear/dev/sdc0

 #将逻辑设备0~1023扇区、1024~1535扇区以及1536~1663三个地址围分别以线形映射的方式映射到/dev/sda设备第204号扇区、/dev/sdb设备第766号扇区和/dev/sdc设备的第0号扇区开始的区域

 

2.02048striped264/dev/sda1024/dev/sdb0

 #将逻辑设备从0号扇区开始的,长度为2048个扇区的段以条带的方式映射的到/dev/sda设备的第1024号扇区以及/dev/sdb设备的第0号扇区开始的区域。

同时告诉核这个条带类型的targetdriver存在2个条带设备与逻辑设备做映射,并且条带的大小是64个扇区,使得驱动可以该值来拆分跨设备的IO请求。

 

3.04711mirrorcore264nosync2/dev/sda2048/dev/sdb1024

 #将逻辑设备从0号扇区开始的,长度为4711个扇区的段以镜像的方式映射到/dev/sda设备的第2048个扇区以及/dev/sdb设备的第1024号扇区开始的区域。

 

dmsetup

1.dmsetup用于创建、管理、查询DM设备的工具

2.支持stdin获取参数来创建Mappingtable信息#建议利用stdin方式使用dmsetup创建mappingtable信息

 e.g.#dmsetupcreatemydevicemap_table

3.实例:

将/dev/sda和/dev/sdb两个设备以线性的方式组成逻辑设备/dev/mapper/combined

[rootnode1~]#vimcreatemapdev.sh

#!

/bin/bash

size1=$(blockdev--getsize$1)

size2=$(blockdev--getsize$2)

echo-e"0$size1linear$10\n$size1$size2linear$20"|dmsetupcreatecombined

 

[rootnode1~]#./createmapdev.sh/dev/sda/dev/sdb

 

[rootnode1~]#ls-ls/dev/mapper/combined

0brw-rw----1rootdisk252,210-2811:

36/dev/mapper/combined

#blockdev--getsize/dev/sda计算/dev/sda的所有扇区数

 

[rootnode1home]#mkfs-text3/dev/mapper/combined

 

[rootnode1home]#mount/dev/mapper/combined/mnt

 

[rootnode1home]#df-h/mnt

文件系统       容量 已用可用已用%挂载点

/dev/mapper/combined 19G 173M 18G 1%/mnt

 

MappingTargets

1.linear:

线性,连续写入

2.striped:

条带化,分段写入,raid0

3.error:

定义“out-of-bounds"屏蔽区域,坏道等

4.snapshot:

-copy-on-writedevice:

COW写实复制设备

5.snapshot-origin-device:

起始卷

6.zero:

零设备,可模拟大容量设备

7.multipath:

多路径,多条路由到设备

 

MappingTarget-linare

1.dm-linare驱动

2.将多个物理设备组成一个连续的逻辑设备

3.参数:

  物理设备路径

  offset:

偏移量

4.实例

  020000linear/dev/sda0

  2000060000linear /dev/sdb0

 #将设备/dev/sda从0扇区开始的20000个扇区作为线性逻辑设备的从0开始的20000个扇区

 #将设备/dev/sdb从0扇区开始的60000个扇区作为线性逻辑设备的从20000开始的60000个扇区

 #线性逻辑设备的总大小为80000个扇区(1扇区=512byte)

[rootnode1~]#echo-e"020000linear/dev/sda0\n2000060000linear/dev/sdb0"|dmsetupcreatecombined

[rootnode1~]#ls/dev/mapper/combined

/dev/mapper/combined

[rootnode1~]#mkfs-text3/dev/mapper/combined

[rootnode1~]#mount/dev/mapper/combined/mnt

[rootnode1~]#df-h/mnt

文件系统       容量 已用可用已用%挂载点

/dev/mapper/combined 38M 4.5M 32M 13%/mnt  #combined大小:

80000*512/1024/1024=39M

 

 

MappingTarget-striped

1.dm-stripedriver

2.通过多个指定设备轮询分段写入的方式组建逻辑设备

3.参数:

  参与条带化的物理设备数量

  chunksize

  设备路径

  offset:

偏移量

4.实例

  01024striped2256/dev/sda0/dev/sdb0

 #01024:

新建逻辑设备从0扇区开始1024个扇区,扇区数必须是chunksize的倍数。

 #striped2:

条带化,设备数量为2

 #256:

chunksize

 #/dev/sda0/dev/sdb0:

从两物理设备的第0个扇区开始

 

 注:

所有操作必须写入到开启脚本,否则重启失效。

 

 

MappingTarget-error

1.I/O设备中出现访问错误,如坏道

2.在逻辑设备中定义该错误部分为error避免访问该部分。

3.实例

 0 80linear/dev/sda0

 80 100error

 200linear/dev/sdb0

 #从第80扇区开始100个扇区为error区,该区将不会被访问,其坏道应该在/dev/sda上。

 

 

MappingTarget-snapshot-origin

1.dm-snapshotdriver

2.dmmapping源卷

3.所有未改变的数据将直接读取源卷

4.与snapshot连接在一起工作

5.写数据时,修改的源卷数据会保存在snapshot的COW(copyonwrite写实复制)设备上。

6.Example:

  0 1000snapshot-origin/dev/sda

  #将/dev/sda创建成源卷设备即逻辑卷设备

 

MappingTarget-snapshot

1.dm-snapshotdriver

2.与snapshot-origin连接在一起工作

3.snapshot创建的时候,仅拷贝原始卷里数据的元数据(meta-data),并不会有数据的物理拷贝

4.写操作时,snapshot跟踪原始卷块的改变,这个时候原始卷上将要改变的数据在改变之前被拷贝到snapshot预留的空间里即COW中。

5.读操作时,直接定向到原始卷上

6.创建snapshot时会创建三个设备snap、cow、real

7.Example:

 01000snapshot/dev/sda1/dev/vg0/realdevP16

 #/devsda1:

源设备

 #0 10000:

从0开始1000个扇区

 #/dev/vg0/realdev用于做/dev/sda1的快照

 #P:

下次启动该设备持续有效,N:

重启无效

 

LVM2Snapshots

1.LVM2快照时会使用四个DM-Device

  -real:

源卷设备,即真实设备

 snapshot-origin:

拷贝原始卷里数据的元数据(meta-data)

 snapshot:

TheCOWdevice改变的数据

 

包含-real和COW的最终被修改后的设备

2.Example:

[rootnode1lvm]#lvcreate-L512M-nlv00vg01

[rootnode1lvm]#lvcreate-L100M-nlvsnap--snapshot/dev/vg01/lv00

[rootnode1lvm]#ll/dev/mapper/|grepvg01

brw-rw----1rootdisk252, 211-0214:

14vg01-lv00

brw-rw----1rootdisk252, 411-0214:

15vg01-lv00-real

brw-rw----1rootdisk252, 311-0214:

15vg01-lvsnap

brw-rw----1rootdisk252, 511-0214:

15vg01-lvsnap-cow

[rootnode1lvm]#dmsetuptable|grepvg01|sort

vg01-lv00:

01048576snapshot-origin252:

4

vg01-lv00-real:

01048576linear8:

0384

vg01-lvsnap:

01048576snapshot252:

4252:

5P8

vg01-lvsnap-cow:

0106496linear8:

01048960

[rootnode1lvm]#dmsetupls--tree

vg01-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)

 

 

LVM-snapshot实例:

[rootnode1/]#lvcreate-L512M-nlv00vg01

 Logicalvolume"lv00"created

[rootnode1/]#mkfs-text3/dev/mapper/vg01-lv00

[rootnode1/]#mount/dev/mapper/vg01-lv00/mnt/lvm

[rootnode1/]#cp-a/etc//mnt/lvm/

[rootnode1lvm]#ddif=/dev/zeroof=testbs=1Mcount=100M

[rootnode1lvm]#lvcreate-L50M-s-nlvsnap/dev/vg01/lv00

 Roundingupsizetofullphysicalextent52.00MB

 Logicalvolume"lvsnap"created

[rootnode1mnt]#lvdisplay/dev/vg01/lvsnap

 ---Logicalvolume---

 LVName        /dev/vg01/lvsnap

 VGName        vg01

 LVUUID        6ZgZDl-tASI-f7pD-m96h-OpUl-ANJe-gotSe0

 LVWriteAccess    read/write

 LVsnapshotstatus  activedestinationfor/dev/vg01/lv00

 LVStatus       available

 #open        1

 LVSize        512.00MB

 CurrentLE      128

 COW-tablesize    52.00MB

 COW-tableLE     13

 Allocatedtosnapshot 0.05%

 Snapshotchunksize  4.00KB

 Segments       1

 Allocation      inherit

 Readaheadsectors  auto

 -currentlysetto  256

 Blockdevice     252:

3

[rootnode1lvm]#mount/dev/vg01/lvsnap/mnt/snap/

[rootnode1lvm]#ls/dev/mapper/

vg01-lv00 vg01-lv00-real vg01-lvsnap vg01-lvsnap-cow

[rootnode1mnt]#df-h

文件系统       容量 已用可用已用%挂载点

/dev/mapper/VolGroup00-LogVol00

             37G 2.7G 33G 8%/

/dev/vda1        99M 15M 79M 16%/boot

tmpfs          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和原数据一样

[rootnode1lvm]#ddif=/dev/zeroof=/mnt/lvm/test1bs=1Mcount=10

[rootnode1mnt]#lvdisplay/dev/vg01/lvsnap

 ---Logicalvolume---

 LVName        /dev/vg01/lvsnap

 VGName        vg01

 LVUUID        6ZgZDl-tASI-f7pD-m96h-OpUl-ANJe-gotSe0

 LVWriteAccess    read/write

 LVsnapshotstatus  activedestinationfor/dev/vg01/lv00

 LVStatus       available

 #open        1

 LVSize        512.00MB

 CurrentLE      128

 COW-tablesize    52.00MB

 COW-tableLE     13

 Allocatedtosnapshot 19.69% #使用率增加了

 Snapshotchunksize  4.00KB

 Segments       1

 Allocation      inherit

 Readaheadsectors  auto

 -currentlysetto  256

 Blockdevice     252:

3

[rootnode1lvm]#ls/mnt/lvm

etc lost+found test test1

[rootnode1lvm]#ls/mnt/snap/

etc lost+found test

[rootnode1mnt]#df-h

文件系统       容量 已用可用已用%挂载点

/dev/mapper/VolGroup00-LogVol00

            37G 2.7G 33G 8%/

/dev/vda1       99M 15M 79M 16%/boot

tmpfs         252M  0 252M 0%/dev/shm

/dev/mapper/vg01-lv00 496M 205M 266M 44%/mnt/lvm

/dev/mapper/vg01-lvsnap496M 195M 276M 42%/mnt/snap #快照未改变,改变的数据到cow中了,即创建snapshot时创建的50M空间里

 

#snapshot的大小并不需要和原始卷一样大,其大小仅仅只需要考虑两个方面:

从shapshot创建到释放这段时间,估计块的改变量有多大;数据更新的频率。

一旦snapshot的空间记录满了原始卷块变换的信息,那么这个snapshot立刻被释放,从而无法使用,从而导致这个snapshot无效。

所以,非常重要的一点,一定要在snapshot的生命周期里,做完你需要做得事情。

当然,如果你的snapshot大小和原始卷一样大,甚至还要大,那它的寿命就是“与天齐寿”了

 

 

MappingTaget-zero

1.dm-zerodriver

2.同/dev/zero一样,但是一个block设备

3.用于创建虚拟大容量设备,多用于测试。

4.无法往其写入数据,其中无真实数据,读时返还zero数据。

5.Example:

[rootnode1lvm]#exportHugsize=$[100*(2**40)/512]

[rootnode1lvm]#echo$Hugsize

214748364800

[rootnode1lvm]#echo"0$Hugsizezero"|dmsetupcreatezerodev

[rootnode1lvm]#fdisk-l/dev/mapper/zerodev

Disk/dev/mapper/zerodev:

109951.1GB,109951162777600bytes

255heads,63sectors/track,13367467cylinders

Units=cylindersof16065*512=8225280bytes

 

 

DeviceMapperMultipath

1.提供冗余:

一条或多条路径连接到相同物理存储设备

2.监控每条路径并自动切换故障路径

3.自动恢复并传递应用程序

4.dm-multipath创建的设备名(e.g.:

/dev/dm-2)

5.dm-multipath支持GFS文件系统

6.dm-multipath是线路冗余,不是磁盘冗余

 

dmmultipathcomponents

1.Multipathprioritygroups多路径优先级:

  优先级不一样则冗余优,先级高的工作,低的备份

  优先级一样则提供负载均衡,同时工作

2.dm-multipathkernelmodule核模块

3.multipath命令:

查询和配置多路径设备

4.multipathddaemon:

监控多路径进程或附件

5.kpartx:

创建dm设备

 

MultipathPriorityGroups

1.到存储设备的路径可以定义优先级组

2.优先级组围:

0-1024

3.默认只有一个优先级组在工作

4.active/active路径属于相同的优先级组,负载均衡模式(默认状态)

5.active/passive路径属于不同的优先级组,优先级组高的工作,优先级组低备份

 

MappingTarget-multipath

1.dm-multipathdriver

2.参数:

  优先级组的分段

3.第一个优先级组的参数

 3.1.优先级组对应的I/O

 3.2.优先级组对应的路径数量

 3.3.列出路径的优先级

 

SetupMultipathingFcStorage

1.安装device-mapper-multipathRPM包

2.配置/etc/multipath.conf

3.modprobedm_multipath

4.modprobedm-round-robin

5.chkconfigmultipathdon

6.multipathdstart

7.multipath-l

 

MultipathConfiguration

/etc/multipath.confSections:

1.defaults-multipathtoolsd

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1