配置中是否连接了物理磁盘设备,此映射都将发生。 ü # vxdmpadm getsubpaths ctlr=c3
NAME STATE PATH-TYPE DMPNODENAME ENCLR-TYPE ENCLR-NAME
======================================================================
c3t1d0s2 ENABLED - c3t1d0s2 Disk Disk c3t1d1s2 ENABLED - c3t1d1s2 Disk Disk c3t1d2s2 ENABLED - c3t1d2s2 Disk Disk c3t1d3s2 ENABLED - c3t1d3s2 Disk Disk c3t1d4s2 ENABLED - c3t1d4s2 Disk Disk c3t1d5s2 ENABLED - c3t1d5s2 Disk Disk c3t1d6s2 ENABLED - c3t1d6s2 Disk Disk c3t1d7s2 ENABLED - c3t1d7s2 Disk Disk c3t1d8s2 ENABLED - c3t1d8s2 Disk Disk c3t1d9s2 ENABLED - c3t1d9s2 Disk Disk ü # vxdmpadm getsubpaths ctlr=c4
NAME STATE PATH-TYPE DMPNODENAME ENCLR-TYPE ENCLR-NAME
======================================================================
c4t1d0s2 ENABLED - c3t1d0s2 Disk Disk c4t1d1s2 ENABLED - c3t1d1s2 Disk Disk c4t1d2s2 ENABLED - c3t1d2s2 Disk Disk c4t1d3s2 ENABLED - c3t1d3s2 Disk Disk c4t1d4s2 ENABLED - c3t1d4s2 Disk Disk c4t1d5s2 ENABLED - c3t1d5s2 Disk Disk c4t1d6s2 ENABLED - c3t1d6s2 Disk Disk c4t1d7s2 ENABLED - c3t1d7s2 Disk Disk c4t1d8s2 ENABLED - c3t1d8s2 Disk Disk c4t1d9s2 ENABLED - c3t1d9s2 Disk Disk
2. 路径故障切换机制
DMP 与多端口磁盘阵列一起使用时可增强系统可靠性,一旦到磁盘阵列的某个连接丢失,DMP 将自动为I/O 请求动态选择下一个I/O 路径,而无需系统管理员的任何操作。DMP的自动修复功能只要是 vxconfigd 进程能正常启动,就能自动启动。 ü # vxdmpadm stat restored The number of daemons running : 1 The interval of daemon: 300
The policy of daemon: check_disabled 如果你想修改
DMP
的
policy,可以修改 /etc/init.d/vxvm-sysboot
文件,找到
restore_daemon_opts=\policy= check_disabled \可调整interval的值,但减小该值会影响系统性能。check_disabled 是指DMP的后台进程只定时监控有问题的路径。DMP 允许系统管理员向Volume Manager 中的DMP子系统指出是修复还是恢复连接。这称为DMP 重新配置,重新配置过程还允许检测最新添加的设备(只有当操作系统完全看到它们时),以及完全引导系统后删除的设备。
3. 负载平衡
对于VM 的DMP 功能是自动激活的,例如在阵列只有单控制器的情况下,主机有两块HBA 卡,当往阵列的硬盘写数据时,会发现两个HBA 都有I/O,(通过 vxstat命令查看)。这种情况下读写硬盘数据的I/O瓶颈应在阵列控制器,为了提供阵列路径间的负载平衡,DMP 遵循活动/活动磁盘阵列的平衡路径机制。负载平衡通过使用所有路径的最大带宽,确保最大限度地提高I/O 吞吐量。不过到磁盘的有序I/O 将沿同一条路径发送以优化I/O 吞吐量,这样做是为了使用磁盘跟踪高速缓冲存储器的效果。
对于主动/ 被动磁盘阵列,I/O 将沿主路径(指阵列控制器)发送,直到主路径失败。一旦主路径失败,I/O 将切换到其它可用的主路径或辅助路径,为了避免LUN 的拥有权不断地从一个控制器转让给另一个控制器(这将导致I/O 严重减慢速度)对于主动/ 被动磁盘阵列将不执行路径间的负载平衡。
4. 从DMP 设备启用
当根磁盘受Volume Manager的控制时,如果它是单个磁盘,则将作为DMP 设备自动存取,如果磁盘是多端口磁盘阵列的一部分,则有多条路径。通过对根磁盘进行封装,将增强系统防备到磁盘的一条或多条现有物理路径丢失的可靠性。
5. 启用和禁用控制器
DMP 允许系统管理员关闭到主机I/O 控制器的I/O ,以便执行管理操作。它可用于维护挂接在主机上的控制器或由Volume Manager 支持的磁盘阵列。完成维护任务后,可以启用到主机I/O 控制器的I/O 操作。可以使用由Volume Manager提供的vxdmpadm 命令完成此操作。例如,如果系统有StorEdge A5000(TM) 阵列,当用户需要更改与此磁盘阵列相连的A5000接口板时,应使用vxdmpadm 命令获得连接在此A5000接口板上的主机I/O 控制器列表并应禁用这些控制器。这些控制器一旦被禁用,通过这些控制器对磁盘的进一步I/O 存取将停止。然后,用户就可在不中断对该磁盘阵列中的现有磁盘进行I/O 存取的情况下来更换接口板。这样要求是因为在正常情况下,对于活动/活动类型的磁盘阵列(与本例中的一样),Volume Manager都使用平衡路径机制来调度具有多条路径的磁盘的I/O ,从而使I/O 可以在任意时刻经过任何路径。对于主动/ 被动类型的磁盘阵列,I/O 由Volume Manager调度到主路径,直到主路径发生故障。因此,若要更改磁盘阵列上的接口卡或更改与磁盘阵列相连的主机(可能发生)上的卡,则应禁止到主机I/O 控制器的I/O 操作。这允许在更改硬件前,使所有的I/O 都转移到另一个I/O控制器上的主动辅助路径或主动主路径。此操作结束后,可使用vxdmpadm 命令的启用选项,使这些控制器的路径重新发挥作用。Volume Manager不允许禁用到根磁盘的最后一条活动路径。
6. 显示DMP 数据库信息
vxdmpadm 命令可用于列出DMP 数据库信息并执行其它管理任务,此命令使您得以列出系统上的所有控制器(与磁盘相连)和其它存储在DMP 数据库中的相关信息。该信息可用于定位系统硬件并决定要启用/ 禁用的控制器。注意:通过命令启用/禁用的功能只是临时的,在系统重启后将恢复到缺省设置。vxdmpadm 还提供其它有用的信息,如磁盘阵列序列号和与磁盘阵列相连的DMP 设备(磁盘)列表,具体某个控制器的路径列表,等等。
ü # vxdmpadm listctlr all
CTLR-NAME ENCLR-TYPE STATE ENCLR-NAME
===================================================== c1 Disk ENABLED Disk c3 Disk ENABLED Disk c4 Disk ENABLED Disk
ü # vxdmpadm listenclosure all
ENCLR_NAME ENCLR_TYPE ENCLR_SNO STATUS
============================================================
Disk Disk DISKS CONNECTED
Disks OTHER_DISKS OTHER_DISKS DISCONNECTED
FAKE_ARRAY0 FAKE_ARRAY FAKE_ENCLR_SNO DISCONNECTED
ü # vxdmpadm getdmpnode nodename=c3t1d9s2
NAME STATE ENCLR-TYPE PATHS ENBL DSBL ENCLR-NAME
========================================================================= c3t1d9s2 ENABLED Disk 2 2 0 Disk
ü # vxdmpadm getdmpnode enclosure=Disk
NAME STATE ENCLR-TYPE PATHS ENBL DSBL ENCLR-NAME
========================================================================= c1t1d0s2 ENABLED Disk 1 1 0 Disk c1t0d0s2 ENABLED Disk 1 1 0 Disk c3t1d0s2 ENABLED Disk 2 2 0 Disk c3t1d1s2 ENABLED Disk 2 2 0 Disk c3t1d2s2 ENABLED Disk 2 2 0 Disk c3t1d3s2 ENABLED Disk 2 2 0 Disk c3t1d4s2 ENABLED Disk 2 2 0 Disk c3t1d5s2 ENABLED Disk 2 2 0 Disk c3t1d6s2 ENABLED Disk 2 2 0 Disk c3t1d7s2 ENABLED Disk 2 2 0 Disk c3t1d8s2 ENABLED Disk 2 2 0 Disk c3t1d9s2 ENABLED Disk 2 2 0 Disk
7. vxddladm 命令的使用
使用vxddladm命令可以动态添加不支持的阵列到支持库。使DMP能正确使用。 #vxddladm help
listversion Listing of all ASL with their correxponding versions listsupport Listing Of all Supported Arrays listexclude Listing Of all excluded Array Libraries excludearray Exclude an array library/a set of libraries includearray Include an array library/a set of libraries addjbod Specify an array to be JBOD :see help addjbod rmjbod Remove an array from JBOD List :see help rmjbod listjbod List all JBODs :see help listjbod
listforeign List all Foreign disks :see help listforeign addforeign Add a Foreign disk :see help addforeign rmforeign Remove a Foreign disks :see help rmforeign
8. 配置动态多路径DMP(以下内容都是以两块HBA卡为例)
1. 主机至少有两块HBA 卡 ,最好是相同类型。
2. 如果是临时License ,DMP功能是激活的。通过命令查看: # vxdctl license
All features are available: Mirroring Root Mirroring Concatenation Disk-spanning Striping RAID-5 VxSmartSync Clustering-full VVR
DMP (multipath enabled)
3. 查看 /dev/vx/dmp 和 /dev/vx/rdmp 下是否有设备文件。如果想重新产生DMP设备文件,将两个目录下的文件删除。执行 #vxdctl initdmp
4. 通过命令vxdmpadm,必需能看到两块HBA,ENCLR-TYPE不能是OTHER_DISKS,STATE= ENABLED
# vxdmpadm listctlr all
CTLR-NAME ENCLR-TYPE STATE ENCLR-NAME
===================================================== c1 Disk ENABLED Disk c3 Disk ENABLED Disk c4 Disk ENABLED Disk
错误输出:(只认到单控制卡)
#vxdmpadm listctlr all
CTLR-NAME ENCLR-TYPE STATE ENCLR-NAME
===================================================== c1 Disk ENABLED Disk
c4 OTHER_DISKS ENABLED OTHER_DISKS
5. 通过#format能看到两倍的物理盘。
6. 通过vxdisk list 只能看到一倍的盘(当DMP正确配置时), # vxdisk list
DEVICE TYPE DISK GROUP STATUS c1t0d0s2 sliced rootdisk rootdg online c1t1d0s2 sliced disk01 rootdg online c3t1d0s2 sliced - - online c3t1d1s2 sliced - - online c3t1d2s2 sliced - - online c3t1d3s2 sliced - - online c3t1d4s2 sliced - - online c3t1d5s2 sliced - - online c3t1d6s2 sliced - - online
c3t1d7s2 sliced aaadg00 aaadg online c3t1d8s2 sliced aaadg01 aaadg online c3t1d9s2 sliced abcdg00 abcdg online
#vxdisk_list_lun00 Device:c5t0d0s2 devicetag: c5t0d0 type: sliced
hostid: p9adv.nielsenmedia.com
disk: name=lun00 id=1046287031.1750.p8adv.nielsenmedia.com group: name=occdg id=1046291758.1896.p8adv.nielsenmedia.com flags: online ready private autoconfig autoimport imported
pubpaths: block=/dev/vx/dmp/c5t0d0s4 char=/dev/vx/rdmp/c5t0d0s4 privpaths: block=/dev/vx/dmp/c5t0d0s3 char=/dev/vx/rdmp/c5t0d0s3 version: 2.2
iosize: min=512 (bytes) max=256 (blocks) public: slice=4 offset=0 len=25155072 private: slice=3 offset=1 len=8447 update: time=1048104676 seqno=0.37 headers: 0 248
configs: count=1 len=6210 logs: count=1 len=941 Defined regions:
config priv 000017-000247[000231]: copy=01 offset=000000 enabled