2.4. 高可用性
高可用性指的是在长时间持续运行的系统或组件,在设计中包括足够的过量容量,以适应性能下降或子系统失败。可用性可以相对于"100% 操作"或"Never failing"来衡量。一个广泛但难以选择的系统或产品可用性标准被称为"5ive 9s" (99.999 percent)可用性。高可用性系统希望最大程度降低系统停机时间和数据丢失。
通过添加运行每个服务冗余实例的冗余硬件来实现高可用性。如果运行一个硬件运行服务实例,则系统就可以切换到使用另一个服务实例。
2.4.1. 高可用性(keepalived) 复制链接链接已复制到粘贴板!
keepalived 在活跃的 Linux Virtual Servers (LVS)路由器以及一个或多个可选的备份 LVS 路由器上运行。活跃的 LVS 路由器有两个角色:
- 在真实服务器之间平衡负载。
- 检查每个真实服务器上的服务的完整性。
活跃的(master)路由器利用虚拟路由器冗余协议(VRRP)告知备份路由器其活跃状态,这需要主路由器定期发送公告。如果活跃的路由器停止发送公告,则会选择一个新的 master。
keepalived 守护进程用于监控服务或系统,并在出现问题时自动切换到待机。keepalived 守护进程实施一组检查器,以动态且自适应地维护并根据其健康状况管理负载平衡的服务器池。它为虚拟路由器冗余协议(VRRP)状态机器实现了一组 hook,从而提供低级和高速协议交互。keepalived 框架可以独立使用或全部使用,以提供弹性基础架构。
2.4.2. 实例高可用性(pacemaker 远程) 复制链接链接已复制到粘贴板!
Pacemaker 是 Linux 平台的高级高可用性和负载平衡堆栈。通过监控虚拟机故障并触发对隔离和恢复的自动响应来实现实例高可用性。隔离(fencing)是完全隔离出现故障的主机的操作。恢复系统编配从失败的主机中虚拟机的救援。
Pacemaker 对于使 OpenStack 基础架构高度可用非常有用。它本身并不理解它所管理的应用程序。相反,它依赖于资源代理(RA)。资源代理是封装有关如何启动、停止和检查集群管理的每个应用的健康状态的脚本。
任何解决方案都有三个关键功能,可在云或虚拟化环境中提供工作负载高可用性:
- 一个监控功能,用于检测给定计算节点何时失败并触发故障处理。
- 从环境中删除相关计算节点的隔离功能。
- 此恢复功能可编排从出现故障的计算节点销毁实例。