QQ在线服务: 风舞残阳风舞残阳 年满19岁年满19岁 小罗小罗 晴天晴天 心雨心雨 叮叮肉叮叮肉 小周小周 小童小童 小破孩小破孩 遥望当年遥望当年

用户导购指南

水货IBM笔记本电脑报价

行货IBM笔记本电脑报价

IBM服务器报价

IBM笔记本电脑配件报价

本周水货IBM笔记本电脑特价

IBM笔记本电脑驱动下载

水货IBM笔记本电脑验机流程

水货IBM笔记本电脑保修政策

IBM笔记本电脑FRU查询

IBM笔记本电脑常见问题

IBM笔记本电脑使用手册

笔记本电脑验机软件

论坛积分使用说明

水货IBM笔记本电脑异地购机流程

笔记本电脑购机经历及现场

贵宾申请入口

贵宾用户FTP入口

查看笔记本配置

水货APPLE苹果笔记本电脑报价

 
发新话题
打印

DS4000做LVM Mirror时的IO暂停时间探讨

DS4000做LVM Mirror时的IO暂停时间探讨

供稿人:赵晓鹏

在通常的高可靠性要求下,一台DS4000的全冗余设计和RAID保护可以达到客户的要求。随着越来越多的客户对数据的安全性重视程度的加深和对业务连续性的要求的不断提升,客户需要一种全冗余的存储价格设计。例如,同时使用两台交换机,两个Fabric,任何一个出现故障IO都可用通过备份路径进行;同时使用两台DS4000,通过AIX操作系统的LVM Mirror来镜像两台DS4000中的数据,当任何一台DS4000失效后,应用仍然可以访问镜像盘;同时使用两台主机做HACMP,当一台主机运行的应用损坏后另外一台主机可以接管该应用。这个方案是名符其实的全冗余设计。以下是一个典型的连接拓普图:



如图示的拓普结构中,任何一台DS4000,交换机或主机光纤卡,主机失效,对应用都是透明的。但是如果应用的超时参数设置的非常短,就无法实现设计这个全冗余设计的初衷。所以应用的超时设计应该综合考虑所有部分的延时。本文将对整体延时的一部分——AIX的LVM Mirror的IO暂停时间进行讨论和分析。

本文将在单主机的情况下开展讨论。


讨论一:

任何一台DS4000存储服务器内的一个阵列(Array)失效,例如RAID5阵列中的两块硬盘同时离线。阵列处于不能访问状态。

在这种环境下,AIX的LVM Mirror通过与DS4000存储服务器的控制器进行通讯了解到阵列失效的情况,几秒钟后IO就继续与镜像的PV进行了。

注意:在创建Mirror VG的时候,Keep Quorum Checking On 参数应该设为no。而且Mirror VG建成以后应该重新varyoff,varyon这个VG来使这个设置生效。这个参数为yes时的意思是强制Mirror VG的成员总是同步,如果这样设置,那么一个当LVM 检测到一个PV损坏,就会挂起整个VG,IO将不会继续。

讨论二:

如果做LVM Mirror的主机有两块HBA卡,每块卡看到一台DS4000的两个控制器(拓普图如下),其中任何一块HBA损坏的时候,有哪些设置可以减少LVM Mirror暂停的时间呢?


在如图示的环境中,更改以下表格所列的设备的参数将有效的缩短LVM Mirror IO暂停的时间。

注意:在正常的应用环境中更改此参数对性能和稳定性没有影响。

设备 参数 默认属性 更改为 参数的含义 备注
dar switch_retries 5 0 重试与交换机连接的次数 更改为0将失去在线升级DS4000 控制器微码的功能
hdisk rw_timeout 30 10 每个读写操作超时的时长,单位是秒 每个pending的IO都需要等到超时才能通知LVM
hdisk reassign_to 120 30 发现丢包后多长时间通知主机,单位是秒 允许的范围为0到1000秒



注意:在创建Mirror VG的时候,Keep Quorum Checking On 参数应该设为no。原因参见讨论一。

讨论三:
如果任何一台DS4000的电源全部损坏或主机端到光纤交换机的连接全部断掉,有哪些设置可以减少LVM Mirror IO暂停的时间呢?

在这个情形下,LVM Mirror IO暂停的时间将比前面两种讨论中的场景都有长:讨论一中LVM可以跟DS4000的控制器通讯,所以它清楚地知道PV坏,马上就可以做出只写镜像的PV的决定;讨论二中,LVM只要等到系统设备超时的报告就可以做出只写镜像的PV的决定;而讨论三的情形下,主机与DS4000之间有光纤交换机相隔,光纤交换机为确认端口设备变化而设置了重试次数和超时时间,所以IO暂停的时间相对前两种较长。

更改fscsi设备的参数将缩短LVM Mirror IO暂停的时间。

注意:此参数在一个DS4000控制器或一条通路失效的情况下也能减少切换时间。它需要交换机的支持,IBM的光纤交换机都支持这一设置,在2006年4月份的测试中,我们发现Qlogic SAN Box 5200不支持这一功能。将fscsi参数设为fast_fail对系统的性能和稳定性没有影响。

设备 参数 默认属性 更改为 参数的含义 备注
fscsi fc_err_recov delay_fail fast_fail 当交换机发现DS4000不在fabric上时,会通知主机的光纤接口卡,fast_fail的意思是当主机接到这个通知后马上fail掉所有对这个设备的IO 这个设置在一个它DS4000控制器失效,而另一个控制器没有失效的环境下,对减少IO重新路由需要的时间有巨大的帮助

与讨论二相同的是主机端的参数设置应为:

设备 参数 默认属性 更改为 参数的含义 备注
dar switch_retries 5 0 重试与交换机连接的次数 更改为0将失去在线升级DS4000 控制器微码的功能
hdisk rw_timeout 30 10 每个读写操作超时的时长,单位是秒 每个pending的IO都需要等到超时才能通知LVM
hdisk reassign_to 120 30 发现丢包后多长时间通知主机,单位是秒 允许的范围为0到1000秒

注意:在创建Mirror VG的时候,Keep Quorum Checking On 参数应该设为no。原因参见讨论一。

实例:
硬件环境:
pSeries 630, DS4500, DS4300Turbo 和2109-F16
软件环境:
AIX 5.2 ML6
devices.fcp.disk.array.rte 5.2.0.60
DS4500微码 06.12.03.00
DS4300Turbo微码 06.12.03.00
光纤交换机微码 v3.2.0

1. 每个交换机做两个Zone,连接图如下。
F16-1 zone 如下:
P630_fcs0_DS4500_CtlA1
P630_fcs0_DS4500_CtlB1
F16-2 zone 如下:
P630_fcs1_DS4300T_CtlA1
P630_fcs1_DS4300T_CtlB1

2. 在AIX中删除所有原有光纤设备,重新扫描cfgmgr,检查设备
lspv
fget_config -vA
看到dar0对于dac0/dac1,dar1对于dac2/dac3

3. 更改设备属性
chdev -l fscsi0 -a fc_err_recov=fast_fail -P
chdev -l fscsi1 -a fc_err_recov=fast_fail -P
chdev -l dar0 -a switch_retries=0
chdev -l dar1 -a switch_retries=0
chdev -l hdisk2 -a rw_timeout=10 --例如LUN_1为hdisk2
chdev -l hdisk2 -a reassign_to=30
chdev -l hdisk3 -a rw_timeout=10 --例如LUN_2为hdisk3
chdev -l hdisk3 -a reassign_to=30
注意:如果fscsi设备的属性无法设置,可以将它的子设备都置为define状态
rmdev - l hdisk2
rmdev - l hdisk3
rmdev - l dar0
rmdev - l dar1
rmdev - l dac0
rmdev - l dac1
rmdev - l dac2
rmdev - l dac3
然后运行:
chdev -l fscsi0 -a fc_err_recov=fast_fail -P
chdev -l fscsi1 -a fc_err_recov=fast_fail - P
最后运行:
cfgmgr
检查设备属性可以用命令:
lsattr - El device_name

4. 创建vg,lv,增加另一个lun到vg, 镜像vg,更改quorum属性, varyoffvg,varyonvg 来使quorum设置生效。
mkvg - y vg_name pv_name
mklv - y lv_name vg_name
extendvg - y vg_name new_pv_name
mirrorvg vg_name new_pv_name
chvg - Qn vg_name
varyoffvg vg_name
varyonvg vg_name

5. 用dd来测试一下对lv的读写,用iostat来监视到DS4000的IO。
写:
time dd if=/dev/zero of=/dev/rlv_name bs=1m count=2000 --写2GB的数据
iostat - a 1|grep fcs --如果fcs0和fcs1都有数据说明mirror成功
读:
time dd if=/dev/ rlv_name of=/dev/null bs=1m count=2000 --读2GB的数据
iostat - a 1|grep fcs --如果fcs0和fcs1都有数据说明mirror成功

6. 测试讨论一中的情况,Fail一个array
以读为例:
time dd if=/dev/ rlv_name of=/dev/null bs=1m count=2000 --读2GB的数据
iostat - a 1|grep fcs>scenario_1.txt --将IO情况输出到文件
当任务没有完成前在DS4000的Storage Manager中将一个Array中的两个HDD通过菜单设为advance→maintenance→fail drive
lsvg - p vg_name --查看一个PV的状态为missing
等到time dd…命令执行完成,用ctrl+c停止iostat,用vi打开scenario_1.txt文件,删掉有IO的行,仅保留IO暂停时的记录,数出行数并除以二。得到IO暂停的秒数。

7. 在DS4000的Storage Manager中将一个Array中的两个HDD 通过菜单advance→maintenance→revive drive 设为在线。
lsdev - Cc disk         -- 检查相应的hdisk直到available
varyoffvg vg_name
varyonvg vg_name   -- syncvg
lsvg - l vg_name      -- 查看lv的状态是否是closed/sync

8. 测试讨论二中的情况,主机卡失效。
以读为例:
time dd if=/dev/ rlv_name of=/dev/null bs=1m count=2000 --读2GB的数据
iostat - a 1|grep fcs>scenario_2.txt --将IO情况输出到文件
当任务没有完成前将交换机上一个主机的接口disable或者拔这根光纤线,模拟主机卡失效。
lsvg - p vg_name --查看一个PV的状态为missing
等到time dd…命令执行完成,用ctrl+c停止iostat,用vi打开scenario_2.txt文件,删掉有IO的行,仅保留IO暂停时的记录,数出行数并除以二。得到IO暂停的秒数。

9. Enable交换机上disable的主机接口或者插上这根光纤线,模拟主机卡恢复健康。
lsdev - Cc disk            -- 检查相应的hdisk直到available
varyoffvg vg_name
varyonvg vg_name       -- syncvg
lsvg - l vg_name          -- 查看lv的状态是否是closed/sync

10. 测试讨论三中的情况,一台DS4000失效。
以读为例:
time dd if=/dev/ rlv_name of=/dev/null bs=1m count=2000 --读2GB的数据
iostat - a 1|grep fcs>scenario_3.txt --将IO情况输出到文件
当任务没有完成前将交换机上所有这台DS4000的主机接口disable或者拔这些光纤线,模拟DS4000失效;也可以关掉DS4000的电源。
lsvg - p vg_name --查看一个PV的状态为missing
等到time dd…命令执行完成,用ctrl+c停止iostat,用vi打开scenario_3.txt文件,删掉有IO的行,仅保留IO暂停时的记录,数出行数并除以二。得到IO暂停的秒数。

11. Enable交换机上disable的DS4000的主机接口或者插上所有拔掉的光纤线,或是打开DS4000电源开关,模拟DS4000恢复健康。
lsdev - Cc disk               -- 检查相应的hdisk直到available
varyoffvg vg_name
varyonvg vg_name          -- syncvg
lsvg - l vg_name             -- 查看lv的状态是否是closed/sync

(※本文搜集自:重庆未来科技 http://www.wlkj.net 重庆IBM笔记本电脑、重庆IBM水货笔记本电脑、重庆苹果笔记本电脑、重庆IBM服务器专卖)
QQ:99721343 MSN:lichuntian@163.com
手机:13308323317

TOP

******请登陆论坛查看内容******

(※本文搜集自:重庆未来科技 http://www.wlkj.net 重庆IBM笔记本电脑、重庆IBM水货笔记本电脑、重庆苹果笔记本电脑、重庆IBM服务器专卖)
IBM服务器/图形工作站/PC/笔记本
联系电话:023-68797511转802 13752943166

TOP

发新话题