keepalived+nginx 双机热备
一、整体介绍
双机热备概念:
从广义上讲,双机热备(双机容错)就是对于重要的服务,使用两台服务器,互相备
份,共同执行同一服务。当一台服务器出现故障时,可以由另一台服务器承担服务任务,
从而在不需要人工干预的情况下,自动保证系统能持续提供服务双机热备由备用的服务器
解决了在主服务器故障时服务不中断的问题。但在实际应用中,可能会出现多台服务器的
情况,即服务器集群。双机热备一般情况下需要有共享的存储设备。但某些情况下也可以
使用两台独立的服务器实现双机热备,需要通过专业的集群软件或双机软件。
从狭义上讲,双机热备特指基于 active/standby 方式的服务器热备。服务器数据包
括数据库数据同时往两台或多台服务器写,或者使用一个共享的存储设备。在同一时间内
只有一台服务器运行。当其中运行着的一台服务器出现故障无法启动时,另一台备份服务
器会通过双机软件的诊测(一般是通过心跳诊断)将 standby 机器激活,保证应用在短时
间内完全恢复正常使用。
双机热备的工作原理:
故障隔离,简单的讲,高可用(热备)就是一种利用故障点转移的方式来保障业务连
续性。其业务的恢复不是在原服务器,而是在备用服务器。热备不具有修复故障服务器的
功能,而只是将故障隔离。
用 实现高可用性负载均衡:
nginx 进程基于 Master+Slave(worker)多进程模型,自身具有非常稳定的子进程管
理功能。在 Master 进程分配模式下,Master 进程永远不进行业务处理,只是进行任务分
发,从而达到 Master 进程的存活高可靠性,Slave(worker)进程所有的业务信号都 由主
进程发出,Slave(worker)进程所有的超时任务都会被 Master 中止,属于非阻塞式任务
模型。
Keepalived 是 Linux 下 面 实 现 VRRP 备 份 路 由 的 高 可 靠 性 运 行 件 。 基 于
Keepalived 设计的服务模式能够真正做到主服务器和备份服务器故障时 IP 瞬间无缝交接。
二者结合,可以构架出比较稳定的软件主辅热备方案。
两台服务器做主辅热备,后端可以采用多个 realserver(随意扩展):
nginx master : 192.168.0.115 server1 服务器
nginx backup : 192.168.0.110 server2 服务器
vip : 192.168.0.222
结构图如下: