常用技术¶
高可用性只能在系统层面实现,而硬件和软件组件都可以为系统层面的可用性做出贡献。本文档列出了构建高可用系统最常用的硬件和软件技术。
硬件¶
使用不同的技术在硬件层面实现高可用性,为构建高可用系统提供了良好的基础。接下来的章节将讨论该领域中最常用的技术。
冗余交换机¶
网络交换机是单点故障,因为网络对于运行基础设施的所有其他基本域(如计算和存储)至关重要。网络交换机需要能够转发网络流量,并能够将流量转发到正常工作的下一跳。因此,在使网络交换机冗余时,请考虑以下两个因素:
网络交换机本身应以主动/主动或主动/被动方式将其内部状态同步到冗余交换机。
网络拓扑应设计成网络路由器可以在每个关键方向上使用至少两条路径。
绑定接口¶
绑定接口是两个独立的物理网络接口,在主动/被动或主动/主动冗余模式下被视为一个接口。在主动/被动模式下,如果活动网络接口或接口的远程端发生错误,则接口将被切换。在主动/主动模式下,如果接口或接口的远程端发生错误,则该接口将被标记为不可用并停止使用。
负载均衡器¶
物理负载均衡器是特殊的路由器,它们根据一组规则将流量导向不同的方向。负载均衡器可以像物理交换机一样以冗余模式运行。负载均衡器对于将流量分配到系统的不同主动/主动组件也很重要。
存储¶
物理存储高可用性可以通过不同的范围实现
硬件单元内的可用性,具有冗余磁盘(通常组织成不同的 RAID 配置)、冗余控制组件、冗余 I/O 接口和冗余电源。
系统层面的高可用性,具有冗余硬件单元和数据复制。
软件¶
HAproxy¶
HAProxy 提供了一个快速可靠的 HTTP 反向代理和 TCP 或 HTTP 应用程序的负载均衡器。它特别适用于在需要持久性或第 7 层处理的高负载下进行网络爬虫。在最新的硬件上,它实际上支持数万个连接。
注意
确保您的 HAProxy 安装不是单点故障,建议运行多个 HAProxy 实例。
您还可以通过其他方式确保可用性,例如使用 Keepalived 或 Pacemaker。
或者,您可以使用商业负载均衡器,它是硬件或软件。我们建议使用硬件负载均衡器,因为它通常具有良好的性能。
有关在节点上安装 HAProxy 的详细说明,请参阅 HAProxy 官方文档。
keepalived¶
keepalived 是一种路由软件,为 Linux 系统和基于 Linux 的基础设施提供负载均衡和高可用性功能。
Keepalived 实施了一组检查器,以动态和自适应的方式维护和管理基于其健康状况的负载均衡服务器池。
keepalived 守护程序可用于监视服务或系统,并在出现问题时自动故障转移到备用系统。
Pacemaker¶
Pacemaker 集群堆栈是 Linux 平台上最先进的高可用性和负载均衡堆栈。Pacemaker 用于使 OpenStack 基础设施具有高可用性。
Pacemaker 依赖于 Corosync 消息传递层来实现可靠的集群通信。Corosync 实施了 Totem 单环排序和成员协议。它还为 Pacemaker 提供基于 UDP 和 InfiniBand 的消息传递、仲裁和集群成员资格。
Pacemaker 本身并不了解它管理的应用程序。相反,它依赖于资源代理 (RAs),这些代理是封装了如何启动、停止和检查集群管理的每个应用程序健康状况的知识的脚本。
这些代理必须符合 OCF、SysV Init、Upstart 或 Systemd 标准之一。
Pacemaker 附带了一组大型 OCF 代理(例如管理 MySQL 数据库、虚拟 IP 地址和 RabbitMQ),但也可以使用系统中已安装的任何代理,并可以使用您自己的代理进行扩展(请参阅 开发人员指南)。