Veritas/Symantec DMP多路径
存储侧
当非双活场景下使用第三方DMP多路径时,启动器需要勾选“使用第三方多路径”,如图6-9所示:
“切换模式”及“路径类型”参数需要根据实际业务场景决定,具体配置如表6-6所示:
操作系统 |
DMP |
存储系统上的配置 |
|||||
存储 |
操作系统 |
使用第三方多路径 |
切换模式 |
特殊模式类型 |
路径类型 |
||
Solaris |
DMP7.1 or later |
双控 |
Solaris |
勾选 |
特殊模式 |
模式1 |
优选路径 |
多控 |
Solaris |
勾选 |
特殊模式 |
模式1 |
优选路径 |
||
Solaris |
DMP 6.0.x~DMP7.0 |
双控 |
Solaris |
勾选 |
不使用ALUA |
- |
优选路径 |
多控 |
Solaris |
勾选 |
不使用ALUA |
- |
优选路径 |
1,DMP多路径具体支持组合及补丁要求参见华为存储兼容性列表卷管理和集群部分。
2,若已将LUN映射给主机使用,修改启动器参数后需要重启主机生效,如果主机侧有上层业务,需要停业务导出磁盘组才能重启主机,初次映射配置启动器参数不用重启。
3,DMP7.1之前版本不支持多控ALUA。
4,请按照推荐模式配置,否则可能会存在DMP多路径无法正确识别路径和路径处理异常等问题。
5,SF DMP5.x版本支持情况请咨询华为技术支持工程师。
6,DMP7.1及其后续版本不支持通用ALUA,OceanStor Dorado V3 V300R002C10SPH105及其后续补丁版本,OceanStor V500R007C30SPH105及其后续补丁版本,OceanStor V500R007C10SPH015及其后续补丁版本,OceanStor V300R006C50SPH105及其后续补丁版本,OceanStor V300R006C20SPH015及其后续补丁版本,OceanStor Dorado V3 V300R002C20,OceanStor V500R007C50,OceanStor V300R006C60版本开始支持使用特殊模式1。
7,存储系统对接DMP7.x多路径,存储启动器配置为“使用第三方多路径+特殊模式”时,因Veritas VxVM(DMP)默认RTPG的buffer长度为255,影响存储侧单阵列或者双活阵列支持的最大在线端口(FC/FCOE/ETH)总个数,具体请咨询华为工程师进行评估,否则可能会出现路径识别异常等问题。
8,双控存储系统对接DMP多路径,存储启动器配置为“使用第三方多路径+不使用ALUA”模式,A/A模式关闭时,不支持在线扩控或在线创建双活,否则可能导致主机业务中断。注:查询A/A模式是否打开的命令,融合存储系统为show tgt_switch storage_work_mode,Dorado存储系统为show scsi_upgrade_config storage_work_mode。
实例如下,进入developer模式查询结果如下。
developer:/>show scsi_upgrade_config storage_work_mode
Switch Type : A/A Work Mode
AA Switch : Off
该回显“Off”表明A/A模式关闭。双控存储系统如果存在在线扩控场景,需要执行如下命令开启A/A模式:
融合存储系统为change tgt_switch storage_work_mode switch=on,Dorado存储系统为change scsi_upgrade_config storage_work_mode aa_switch=on
主机侧
安装前检查
不允许DMP和系统自带多路径MPIO共存。安装DMP多路径之前执行stmsboot -L命令确认STMS系统自带多路径已经disable。
bash-4.1# stmsboot -L stmsboot: MPXIO disabled
如果没有Disable,编辑多路径配置文件/kernel/drv/fp.conf,修改mpxio-disable="yes",并执行stmsboot -d禁用STMS。执行stmsboot需要选择reboot选项使STMS禁用生效。
ASL安装
DMP通常集成在Veritas Storage Foundation/InfoScale软件包中,且通常配合Veritas Volume Manager(VxVM)和Veritas File System(VxFS)一起使用。
本章节以Solaris 11.2 for SPARC操作系统上安装Veritas InfoScale 7.4为例。Veritas InfoScale 7.4 安装方法详见Veritas官网《Veritas InfoScale安装指南》。
安装完InfoScale软件后,需要额外安装Veritas的阵列支持库(ASL)。Dynamic Multi-Pathing (DMP) 使用阵列支持库 (ASL) 为多路径处理提供特定于阵列的支持。阵列支持库 (ASL) 是一种可动态加载的共享库。在设备发现期间 ASL 实现特定于硬件的逻辑以发现设备属性。
推荐安装最新版本 ASL包。Veritas针对华为存储的ASL安装包可以从如下地址获取:https://sort.veritas.com/asl。ASL支持在线安装和离线安装,请根据Veritas官网ASL下载页面的Readme file安装说明来安装ASL。缺省的路径策略是MinimumQ。
Veritas AVID特性不支持华为存储。
配置检查
- 执行vxddladm listsupport all | grep huawei确保ASL已经正确安装。实例如下所示,多路径已经正确识别到XSG1。
-bash-4.1# vxddladm listsupport all | grep huawei libvxhuawei.so HUAWEI, HUASY S5100, S5300, S5500, S5600, S6800E, S8000, S8000-I, VIS6000, S5500T, S5600T, S5800T, S6800T, S2600T, V1500, V1800, S2100, S2200T, S2300, S2300E, S2600, S3900-M100, S3900-M200, S3900-M300, S5900-M100, S5900-M200, S6900-M100, Dorado2100, Dorado2100 G2, Dorado5100, HVS85T, HVS88T, XSG1 -bash-4.1#
- 执行vxdisk list查看Device名字,Device可以正确的识别为huawei-xxx字样,然后执行vxdisk list device查看路径数和路径状态识别正确(与实际配置一致)。实例如下所示,huawei-xsg10_0共识别到4条LUN路径c3t201080D4A58EA53Dd1s2,c3t200080D4A58EA53Dd1s2,c4t201080D4A58EA53Dd1s2和c4t200080D4A58EA53Dd1s2,所有路径状态都是enabled。其中2条优选路径type正确识别为active/optimized,2条非优选路径type正确识别为active/non-optimized。
-bash-4.1# vxdisk list DEVICE TYPE DISK GROUP STATUS huawei-xsg10_0 auto:cdsdisk - - online thinrclm huawei-xsg10_1 auto:cdsdisk - - online thinrclm huawei-xsg10_2 auto:cdsdisk - - online thinrclm huawei-xsg10_3 auto:cdsdisk - - online thinrclm huawei-xsg10_4 auto - - error huawei-xsg10_5 auto:cdsdisk - - online thinrclm solaris252_disk_0 auto:ZFS - - ZFS solaris252_disk_1 auto:ZFS - - ZFS -bash-4.1# vxdisk list huawei-xsg10_0 Device: huawei-xsg10_0 devicetag: huawei-xsg10_0 type: auto hostid: disk: name= id=1555494376.8.solaris252 group: name= id= info: format=cdsdisk,privoffset=256,pubslice=2,privslice=2 flags: online ready private autoconfig autoimport thinrclm pubpaths: block=/dev/vx/dmp/huawei-xsg10_0s2 char=/dev/vx/rdmp/huawei-xsg10_0s2 guid: {a5057c56-60f5-11e9-ad7b-0021283f9d11} udid: HUAWEI%5FXSG1%5F210080d4a58ea53d%5F680D4A51008EA53D00142D3900000000 site: - version: 3.1 iosize: min=512 (bytes) max=2048 (blocks) public: slice=2 offset=65792 len=20870144 disk_offset=0 private: slice=2 offset=256 len=65536 disk_offset=0 update: time=1555494376 seqno=0.2 ssb: actual_seqno=0.0 headers: 0 240 configs: count=1 len=48144 logs: count=1 len=7296 Defined regions: config priv 000048-000239[000192]: copy=01 offset=000000 disabled config priv 000256-048207[047952]: copy=01 offset=000192 disabled log priv 048208-055503[007296]: copy=01 offset=000000 disabled lockrgn priv 055504-055647[000144]: part=00 offset=000000 Multipathing information: numpaths: 4 c3t201080D4A58EA53Dd1s2 state=enabled type=active/non-optimized c3t200080D4A58EA53Dd1s2 state=enabled type=active/optimized c4t201080D4A58EA53Dd1s2 state=enabled type=active/non-optimized c4t200080D4A58EA53Dd1s2 state=enabled type=active/optimized -bash-4.1#
- 执行vxdmpadm getattr enclosure ENCLR_NAME获取当前的iopolicy,默认为MinimumQ。实例如下所示,此处ENCLR_NAME的实例为huawei-xsg10。
-bash-4.1# vxdmpadm getattr enclosure huawei-xsg10 ENCLR_NAME ATTR_NAME DEFAULT CURRENT ============================================================================ huawei-xsg10 iopolicy MinimumQ MinimumQ huawei-xsg10 partitionsize 512 512 huawei-xsg10 use_all_paths no no huawei-xsg10 recoveryoption[throttle] Nothrottle[0] Nothrottle[0] huawei-xsg10 recoveryoption[errorretry] Timebound[300] Timebound[300] huawei-xsg10 redundancy 0 0 huawei-xsg10 dmp_lun_retry_timeout 0 0 huawei-xsg10 failovermode implicit implicit -bash-4.1#
如果此处不是MinimumQ,可以执行vxdmpadm setattr ENCLR_NAME iopolicy=MinimumQ设置成MinimumQ。