这部分值得一说的是多路径问题。IO部分的高可用性在整个应用系统中可以说是最关键的,应用层可以坏掉一两台机器没有问题,但是如果IO不通了,整个系统都没法使用。如图为一个典型的SAN网络,从主机到磁盘,所有路径上都提供了冗余,以备发生通路中断的情况。
- OS配置了2块光纤卡,分别连不同交换机
- SAN网络配置了2个交换机
- 存储配置了2个Controller,分别连不同交换机
如上图结构,由于存在两条路径,对于存储划分的一个空间,在OS端会看到两个(两块磁盘或者两个lun)。可怕的是,OS并不知道这两个东西对应的其实是一块空间,如果路径再多,则OS会看到更多。还是那句经典的话,“计算机中碰到的问题,往往可以通过增加的一个中间层来解决”,于是有了多路径软件。他提供了以下特性:
- 把多个映射到同一块空间的路径合并为一个提供给主机
- 提供fail over的支持。当一条通路出现问题时,及时切换到其他通路
- 提供load balance的支持。即同时使用多条路径进行数据传送,发挥多路径的资源优势,提高系统整体带宽。
Fail over的能力一般OS也可能支持,而load balance则需要与存储配合,所以需要根据存储不同配置安装不同的多通路软件。
多路径除了解决了高可用性,同时,多条路径也可以同时工作,提高系统性能。