PowerPath是基于主机的用于智能地管理多路径I/O的软件。PowerPath可实现多路径、自动故障切换以及动态负载均衡,可用于管理Symmetrix,Clariion,以及第三方存储阵列。
本文主要介绍EMC多路径控制软件PowerPath的功能。
什么是PowerPath:
PowerPath是基于主机的用于智能地管理多路径I/O的软件。PowerPath可实现多路径、自动故障切换以及动态负载均衡,可用于管理Symmetrix,Clariion,以及第三方存储阵列。
路径(Path)指的是在主机与存储系统逻辑单元(Logical Unit, LU)之间的物理路线。包括主机总线适配器(HBA)端口,电缆,交换机,存储系统接口和端口,以及LU。LU指可作为单一存储卷被寻址的物理或虚拟设备。对于iSCSI标准,路径指Initiator-Target-LUN。
PowerPath支持对一个逻辑设备的多路径连接,使用PowerPath可提供以下功能:
硬件故障发生时自动故障切换。PowerPath自动检测到路径故障并将I/O重定向至另一条路径。
动态多路径负载均衡。PowerPath将对一个逻辑设备的I/O请求分布于所有可用路径,因此提升了I/O性能并减少了管理时间,并由于无需在逻辑设备之间静态配置路径而减少了故障停机时间。
多路径功能:
PowerPath可通过多个端口连接到逻辑设备。用户可使用两个或更多接口将逻辑设备配置为共享设备。通过此方式,所有逻辑设备在所有端口可见,从而提升了可用性。
如下图所示,没有PowerPath的情况下,主机的SCSI驱动将无法通过多路径连接到一个逻辑设备。这是由于大多数操作系统将一条路径看作一个独特的逻辑设备,尽管在多条路径连接到同一逻辑设备的情况下也是如此。这会导致系统crash时数据的丢失。而PowerPath排除了这样的限制。
使用PowerPath的情况下,用户可以通过多条路径连接到逻辑设备从而实现主机和存储端口的共享。使用Fabric配置的共享路径数量会更多。例如,主机具有4个HBA通过Fabric连接到主机的4个端口100个逻辑设备上,PowerPath管理1600条路径。(4HBAs X 4Fas x 100 logical devices = 1600)。
如上图所示,两个逻辑设备都可通过两个接口端口访问,从而逻辑设备的I/O可在多条路径上分流。上图中,两条路径连接到逻辑设备0同时两条连接到逻辑设备1.
PowerPath利用了存储系统的多路径性能,在主机和逻辑设备间提供负载均衡或防路径故障的功能。从而PowerPath能够:
通过在多条路径发送I/O请求到同一逻辑设备增加I/O吞吐量。
通过将I/O请求从一条故障路径重定向至另一工作路径防止数据丢失。
动态负载均衡:
PowerPath通过动态负载均衡在维持最大性能的同时降低管理成本,它的设计目的是在所有时间使用所有路径。PowerPath将对一个逻辑设备的I/O分布在所有可用路径上,而不是让一条路径承担所有的I/O负荷。(对于active-passive存储系统,每一个逻辑设备的可用路径指的是那些连接到active SP的路径。)
PowerPath在host-by-host基础上对I/O负载均衡,它对于所有路径维护所有I/O的统计数据。对于每一个I/O请求,PowerPath根据实施的负载均衡和故障切换策略智能地选择负担最小的可用路径。如果策略正确,PowerPah系统中所有路径都会有近似相同的负载。
除了改进I/O性能之外,动态负载均衡减少了管理时间和故障停机时间,因为管理员不再需要在逻辑设备之间静态配置路径。使用PowerPath,不需要安装时间,路径一直保持按照性能优化的方式来配置。
下图是没有安装PowerPath时的I/O队列:
下图是使用了PowerPath之后的I/O负载状况:
自动故障切换:
下图说明了I/O路径的故障点:
HBA/NIC
Interconnect(Cable和Patch Panel)
Switch
Interface
Interface port
如果发生路径故障,PowerPath将该路径上的I/O重新分配到正常工作的路径。PowerPath停止向故障路径发送I/O检查可用路径。如果没有可用路径,则将替代或备用路径投入使用,I/O导入替代路径。
PowerPath使用周期性路径测试以确认路径是否能够正常工作。路径测试是PowerPath通过发送一系列I/O以确认路径的可用性。如果测试失败,PowerPath关闭该路径并停止向其发送I/O。
PowerPath继续周期性地检测故障路径,以确认其是否恢复。如果路径通过测试,PowerPath将恢复对该路径的使用并重新发送 I/O。在轻量负载或小型配置的情况下,路径在修复后会在一小时内自动恢复使用。对于大型配置,修复后恢复所有路径使用可能花费数小时,因为周期性自动恢复任务被更高优先级任务抢占。路径的故障切换以及恢复流程对于应用程序来说是透明的。当路径恢复后,存储,主机,应用程序将继续保持可用性。