动态多路径(DMP)
1. 介绍动态多路径(DMP)
在某些操作系统上,Volume Manager支持多路径访问到磁盘阵列。它自动重新组织到磁盘阵列内具体某个磁盘设备的多个I/O 路径。Volume Manager的动态多路径功能通过提供路径故障切换机制,提供更大的可靠性。一旦到磁盘的某个连接丢失,系统将通过到该磁盘的其它可靠的连接继续存取重要的数据。DMP 还通过将I/O 负载平均分布在多条到磁盘设备的I/O 路径上,提供更大的I/O吞吐量。
Volume Manager DMP管理多路径目标(如磁盘阵列),多路径目标定义使用多条路径的策略。某些磁盘阵列允许多条路径同时保持活动状态(活动/活动)。某些磁盘阵列只允许一条路径保持活动状态,将替换路径用作备件以防现有路径发生故障(主动/被动),某些磁盘阵列具有设计更精细的策略(如对LUN的互为备援)。
一般情况下,Volume Manager 被设计成将VM 磁盘映射到一个Volume Manager DMP 元节点。为简化VxVM 逻辑操作,每个VM 磁盘都映射到唯一一个Volume Manager DMP元节点,不管在多路径配置中是否连接了物理磁盘设备,此映射都将发生。
ü # 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="interval=300 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 设备(磁盘)列表,具体某个控制器的路径列表,等等
阅读(1586) | 评论(0) | 转发(0) |