相关概念
单独故障:指某个节点故障,整个系统将变得不可用。
高可用:指系统无中断地执行其功能的能力,代表系统的可用性程度。
集群:一组具有相同属性或功能的主机的集合,用于承担业务流量的载体。集群系统存在的作用就是为了解决单点故障的问题。
构建高可用集群的:目的就是为解决单点故障问题,包括分发器单点故障解决和数据服务器故障解决。
具体实现思路:分发器高可用 + 数据服务器高可用
分发器和数据服务器通过主备或负载均衡的方式部署,并且分发器与分发器之间、服务器与服务器之间、分发器和服务器之间都保持联系。
通过状态监控,一旦发现主节点或某个节点故障,马上启用备用节点或由另外一台节点承担流量,保证业务可用性。
具体实现技术:keepalived
keepalived介绍
keepalived是使用C语言编写的路由热备软件,其主要目标是为linux系统提供简单高效的负载均衡及高可用解决方案。keepalived由一组检查器,根据服务器的健康状况动态的维护和管理服务器池。在存在主备部署的节点上,当主节点发生故障,keepalived可以自动将备用调度器升级为主调度器,从而实现整个集群系统的高负载,高可用。另外keepalived通过vrrp协议实现高可用架构,vrrp是路由灾备的实现基础。
vrrp介绍
rrp协议是为了静态路由环境下防止单点故障而设计的主从灾备协议,在主设备发生故障时业务自动切换至从设备,而这一切对于用户而言是透明的。vrrp将两台或多台设备虚拟成一个设备,对外仅提供一个虚拟的IP地址,这些设备在同一时刻仅有一台设备可有拥有该IP地址,而拥有该IP地址的设备就是主设备,其它的就是备用设备。主设备会不断发送自己的状态信息给备用设备,当备用设备接收不到主设备的状态信息时,多个备用设备会根据自身的优先级选择出新的主设备,并拥有所有的业务功能。vrrp协议需要为每个路由设备定义一个虚拟路由ID(VRID)以及优先,所有主备路由设备的VRID必须一样,这样才会被视为同一组设备,而优先级最高的设备就是主路由设备,VRID和优先级的范围为0-255之间的整数,数值越大优先级越高,如果优先级相等,则会对比IP地址,地址越大优先级越高。