未解决
此帖子已超过 5 年
605 消息
2
2793
PowerPath与Native MPIO负载均衡策略介绍
PowerPath与Native MPIO负载均衡策略介绍
转载请在文首保留原文出处:EMC中文支持论坛 - https://community.emc.com/go/chinese
介绍
主机多路径软件不但可以解决IO路径单点故障问题,结合存储阵列配置还可以实现多路径负载均衡功能。PowerPath是EMC公司在业界最早推出的多路径软件。本文为大家对比介绍PowerPath与业界主流操作系统自带多路进软件,大家可以根据实际情况选择合适的多路径软件。
更多信息
PowerPath架构
大部分情况主机都是以C(controller):T(target):D(device)格式命名存储分配的lun,不同路径的同一个lun会在主机对应不同的磁盘设备。PowerPath是一个内核模块,位于物理硬件之上文件系统之下,可以合并管理多条路径,并生成一个自定义名称的磁盘提供给主机使用。同一lun不同路径(所有当前可用路径)组成一个Path Set,I/O可以在同一个Path Set里面负载均衡和故障切换。
主机多路径软件负载均衡策略介绍
PowerPath
PowerPath软件默支持1个HBA卡,每个HBA卡连接两个存储端口。PowerPath安装license后,每个lun可以支持多个HBA卡,最多支持32条路径。与传统Round-Robin轮询方式不同,PowerPath内建自动优化机制,负载均衡策略指定结合不同路径IO统计信息。系统启动后,PowerPath读取设备配置文件,并自动在lun基础上设定最佳负载均衡策略。PowerPath支持EMC和部分non-EMC阵列(比如:HDS)。
PowerPath有多种策略机制,最常用有Symmetrix Optimized、 CLARiiON Optimized。其他可用策略有Adaptive、Least Block、Least I/O、Request、Round Robin、StreamIO、Basic Failover。
Symmetrix Optimized用于symmetrix阵列,CLARiiOn Optimized用于CLARiiON或VNX阵列。PowerPath使用这两种机制计算连接主机和Symmetrix/CLARiiON/VNX阵列之间路径的权重,PowerPath选择一个最小权重的路径用于传输I/O。路径权重计算主要包含以下4个因子:
待处理I/O – 指当前路径I/O队列里面待处理I/O数量。
I/O大小 – 根据I/O大小区别对待,尽量避免大量小I/O排队在大I/O后面
I/O类型 – 读和写权重不一样
最近使用路径 – 如果所有路径权重相同,PowerPath使用最近使用的I/O路径。
Windows DSM(device specific modules)
Microsoft在Windows 2003引入MPIO框架,多路径软件以DSM插件方式工作,在此基础之上,Windows 2008引入自带多路径软件。可用策略如下:
Failover – 仅用于故障切换。该策略只有一条路径是活动路径,其他可用路径都作为备用路径。活动路径传输所有I/O,备用路径用于在活动路径故障后切换使用。
Round Robin – 顾名思义就是轮询。
Round Robin(基于部分路径)- 和轮询类似。但是负载均衡只是基于部分路径,另外一部分路径用于待命。该策略通常用于支持ALUA阵列,比如EMC的VNX和CLARiiON。
Least Queue Depth – 最小队列深度,和PowerPath least I/O类似。
Weighted Paths – 基于权重。不同路径分配不同权重。
Least Block – 最少数据块,新的I/O被分配到具有最少待处理I/O数量的路径。
RHEL DM-MPIO(Device Mapper Multipathing)
DM-MPIO默认自带的多路径软件,支持绝大部分存储阵列。配置文件/etc/multipath.conf默认已经包含大量存储阵列自动配置,用户可以根据自己需求修改配置。
RHEL5和RHEL6默认策略就是Round Robin,需要注意的是该轮询策略不是基于每个I/O,默认是基于1000个I/O,用户可以调整该参数。另外RHEL6提供另外两种策略,分别是Queue-length和Service-time。Queue-length基于路径待处理I/O数量,选择最少数量的路径用于传输I/O;Service-time基于待处理I/O数量和路径带宽计算预计服务时间。
DM-MPIO和PowerPath一样提供路径检测功能,通过multipathd定期检查路径是否正常,检测有多种模式可用,默认是Direct IO。默认每5秒钟检测一次,该参数用户同样可以调整。另外DM-MPIO还支持ALUA,默认配置不包含该功能,需要用户自行配置。
VMware vSphere NMP(Native Multipathing Plugin)
NMP是ESX/ESXi默认自带的主机多路径软禁啊。NMP兼容的存储阵列可以查询VMware storage HCL列表。NMP有两个主要模块组成:SATP和PSP。
SATP –SATP与阵列关联。SATP主要三种类型,分别针对Active/Active、Active/Passive、DAS。SATP主要功能包含:物理链路监控、物理链路变更报告和执行与故障切换相关的阵列操作。
PSP – PSP与主机路径关联。主要功能就是为I/O选择合适的路径。NMP支持的路由策略主要有三种:
Most Recently Used(MRU) – 使用最近使用的路径。如果路径故障,则切换到其他可用路径。
Fixed – 固定使用配置的路径。如果没有配置,默认使用系统启动最先发现的路径。如果配置路径不可用,随即选择一条可用路径代替;配置路径恢复后,自动切回使用配置路径。
Roudn Robin – 轮询。和RHEL一样,默认基于每1000个I/O。
HP-UX
HP-UX 11.31之前使用StorageWorks Secure Path作为负载均衡和故障切换方案。HP-UX 11.31及以后操作系统自带多路径功能,默认负载均衡策略是Round Robin,其他可用策略如下:
Least command load – 和PowerPath的 Least I/O类似。优先选择最少待处理I/O的路径。
Cell aware Round Robin – 用于支持硬件分区技术的服务器,减少非本地内存访问延迟。
Closest path – 跟Cell aware Round Robin类似,优先使用和当前I/O处理CPU最亲近的路径,这样可以减少延迟。
Preferred path, Preferred target port –个人觉得和ALUA类似。
Weighted Round-Robin – 加权轮询。
IBM-AIX PCM(path control module)
PCM是AIX一个内核扩展,PCM默认提供两种负载均衡策略:Failover和Round Robin。Failover和其他操作系统一样,Round Robin带有一个优先级参数可供管理员配置。AIX的Round Robin和HP-UX加权轮询类型。
Oracle MPxIO
MPxIO是Oracle Solaris自带多路径方案。Solaris 10可以通过/kernel/drv/fp.conf配置,Solaris 8和9可以通过/kernel/drv/scsi_vhci.conf配置。MPxIO自带Failover和Round Robin两种策略,可配置参数很少。
参考
· EMC Powerpath load balancing and failover
应用于
N/A
maocq
5 消息
0
2013年2月27日 18:00
很好
zhuzhu281306
631 消息
0
2013年3月12日 21:00
很好的总结,学习了。