在我们的 Linux 服务器上,我们目前使用 HP 的 qla2xxx 驱动程序,因为它内置了多路径(主动/被动)。
但是,还有其他各种选项,例如 Red Hats device-mapper-multipath 和库存 qla2xxx 驱动程序(多总线和故障转移)以及 SecurePath 和 PowerPath(两者都可以进行中继,iirc)。
有人能告诉我各种选项的优缺点是什么(如果我可以问这样的问题),除了 {Secure,Power}Path 选项花费大量金钱这一显而易见的事实吗?我主要对免费提供的选项感兴趣,例如 HPs qla2xxx vs. Red Hats multipathd 和其他可能的开源解决方案,但我也想听听选择商业解决方案的充分理由。
更新:在接下来的几天里,我将对各种选项进行基准测试(每个选项平均运行 10 次 iozone(选项是本机 qla2xxx 故障转移、本机 qla2xxx 多总线、HP qla2xxx 故障转移))。我会在这里为感兴趣的人发布结果摘要。
过去我使用过:
我非常喜欢设备映射器多路径,因为它简单、与内核的紧密耦合和可靠性。
IBM SDD 最初是移植到 Linux 的 AIX 驱动程序。它运行良好,但为了避免内核污染,需要对 Linux 内核进行特定的修订,这通常比最新最好的版本滞后 3-6 个月。
我讨厌 RDAC 存储并试图让任何类型的多路径软件使用它。如果您有 RDAC 存储,请避免使用 RDAC 驱动程序并使用 dm-multipath。根据我的经验,它更可靠。
对于 HBA 驱动程序,我通常坚持使用 Linux 内核附带的任何内容,因为它也适用于 dm-multipath。在我的职业生涯中,一些最大的挫折是试图让 RDAC 或 SDD 驱动程序与 HBA 驱动程序一起工作。通常在某个地方存在不匹配,一半的 LUN 没有被看到,或者发生冲突,而您看到相同的 LUN 两次。
对 DM 多路径的另一票。
我曾在 QLogic 自己的 qla3xxx/qla4xxx 驱动程序和以前用于控制它们的用户空间实用程序中受苦。我们的经验可能略有不同,因为这些卡是由 IBM OEM 的,是唯一可用于其刀片的 iSCSI HBA,但我怀疑它同样适用。驱动程序和实用程序是一场噩梦。此外,IBM 或 QLogic 都无法为在他们推荐的环境中使用这些卡提供技术指导。
相比之下,上游内核驱动程序完美无缺。我们需要的所有接口都通过 sysfs 呈现。正如您所期望的,来自不同路径的 LUN 作为块设备到达,准备好被 multipathd 识别。multipathd 相对容易配置,并且在辛勤工作时完全按照它在锡上所说的那样做。如果您有技术专长,而无需他们可能为您提供的任何基本支持,那么这将是我的建议。
PS:如果您正在寻找启动 root-on-multipath 设置,那么它有点棘手但完全可以实现。如果需要,我可以提供一些注释。
到目前为止,对我来说也是 DM。我已经在 DS4700 上尝试了 RDAC 和 DM,两者都不会在 ds4700 上进行动态负载平衡,只是故障转移。如果您启用循环平衡,您的吞吐量会崩溃......我在某处读到的内容归咎于 ds4700 无法做到这一点。
我没有看到 rdac 和 dm 之间的性能差异,尽管 dm 会导致 Sansurfer 软件抱怨由于某种原因选择了非首选控制器。
RDAC 对我来说也是在 Debian 下编译的噩梦,我希望人们不要再认为 linux 只有 RHEL 和 SuSE!
SDD呢?这两个方面有什么优点吗?