“多路径”技术使用一个以上的物理路径来访问网络存储设备,并通过容错、I/O流量负载均衡甚至更细粒度的I/O调度策略等方式,为网络存储系统提供更高的可用性和性能优势。
“多路径”软件可以在三个层次上实现:
1、HBA驱动程序:HBA驱动程序将每个磁盘向上层报告为一个块设备,虽然它可能通过多条路径连接到这个磁盘。
2、操作系统内核:对于每个磁盘,HBA报告为不同的块设备,例如/dev/sda和/dev/sdb,操作系统内核将这两个块设备进入“归并”为一个块设备,例如/dev/md0。当前,在Linux中,有两种这样的实现方式:基于Software RAID的多路径技术和基于device mapper的多路径技术。
3、应用程序:例如HDS HDLM、HP SecurePath、EMC PowerPath、Veritas DMP和IBM RDAC。
实现多路径软件的关键在于磁盘标识。即它应该能够识别出从HBA“看到”的块设备对应着存储设备端的哪一个物理磁盘,进而将对应同一个物理磁盘的块设备仿真为一个逻辑块设备。磁盘标识的方法有两种:
1、SCSI Inquiry:发送SCSI Inquiry命令,从返回的响应数据判断对应的物理磁盘;
2、World Wide Node Name:虽然每个物理磁盘有两个WWPN地址,但只有一个WWNN地址。因而可以根据WWNN地址判断对应的物理磁盘是否相同。