高可用集群

第一讲:什么是“高可用集群”?—— 就像给你的业务请了个“全天候保镖”

1. 名字的由来:

  • 英文全称: High Availability Cluster,简称 HA Cluster
  • 中文意思: “高”是高度,“可用”是能用的时间,“集群”是一群服务器。合起来就是:用一群服务器,来保证你的业务几乎永远都能用。

2. 它的核心使命是什么?
想象一下,你开了一个24小时营业的网店。你的服务器就是那个唯一的收银员。

  • 没有HA的场景: 收银员生病了/累倒了(服务器宕机),你的店就得关门,顾客全跑了。这叫单点故障
  • 有HA的场景: 你雇了两个收银员。
    • 主收银员在干活。
    • 备用收银员坐在旁边死死盯着主收银员(心跳监控)。
    • 一旦主收银员晕倒(发生故障),备用收银员0.1秒内就跳起来顶上,接着收钱(资源接管)。
    • 顾客甚至都没发现换人了,还以为一直是同一个人在服务。

总结一句话: 高可用集群就是为了让你用户无感知的情况下,搞定后台所有的故障。


第二讲:最常见的模式“双机热备”—— 主备模式的经典演绎

你文中提到的 active/standby 方式,就是最标准、最经典的“双机热备”。我们把这个场景再细化一下:

场景设定:

有两台服务器:A(主)和 B(备)。
它们共同守护着一个核心业务:一个网站(比如是一个电商网站)。

1. 正常工作时(岁月静好)

  • 主节点(A服务器):
    • 手里握着 VIP(虚拟IP,例如 192.168.1.100。用户访问网站,实际上都是通过这个IP找到A服务器的。
    • 运行着网站服务(Nginx/Apache)、数据库等。
    • 状态: 累死累活,拼命工作。
  • 备节点(B服务器):
    • 也安装了同样的软件,但是服务没启动
    • 它只干一件事:竖起耳朵听A服务器的“心跳”(通过心跳线,可以是一根网线)。
    • 状态: 无所事事,但保持警觉。

2. 故障发生时(突发事件)

突然,A服务器的网线被人踢掉了(网络故障),或者网站服务进程挂了(服务故障)。

  • B服务器的反应:
    • “哎?怎么听不到A的心跳了?”
    • B不会立刻动手,它会再确认一下,比如通过串口线或者另一块网卡再问问(防止误判)。
    • 确认A真的死了,B就开始执行应急预案。

3. 故障转移时(动作执行)

B服务器开始干活,整个过程按秒计算:

  1. 抢夺/配置IP: B服务器说:“这个VIP(192.168.1.100)归我了!”它把VIP配置到自己的网卡上。
  2. 启动服务: B服务器“啪”的一下启动Nginx和数据库。
  3. 提供服务: 此时,用户再访问 192.168.1.100,流量已经自动跑到B服务器上了。
  • 用户体验: 可能网页卡顿了1-2秒,刷新一下就好了,没人知道后面换了一台服务器在工作。

4. 原主恢复后(事后处理)

A服务器修好了,重新开机上线。

  • 两种策略:
    • 自动切回: A一上线,B发现A活了,B会说“老大回来了,还是你来干活吧”,然后把VIP和服务还给A,自己继续当小弟。
    • 手动干预: A虽然上线了,但B说“你先歇着,让我看看情况”,B继续提供服务,直到管理员确认A完全正常后,手动把服务切回A。

第三讲:监控什么?—— 也就是你的“保镖”在看什么

你文中提到“监控的资源可以是网络、操作系统、也可以是服务”,这非常重要。高可用软件不是傻子,它分层次监控:

  1. 硬件/网络层(最低级): 服务器是否关机?网线是不是断了?电源有没有烧?
    • 例子:心跳线断了,备机发现主机没反应。
  2. 操作系统层(中间级): 系统是不是死机了(内核崩溃)?硬盘是不是满了?
    • 例子:系统卡死了,虽然机器没关机,但谁也连不进去。
  3. 应用/服务层(最高级): 你的网站程序还在运行吗?数据库还能连上吗?
    • 例子:Nginx进程虽然还在,但因为配置文件错了,返回的网页是502错误。备机通过访问网页检测发现不对劲,立马切换。

总结:用一句话描述双机热备

双机热备 = 两台电脑 + 一根心跳线 + 一套监控脚本 + 一个共享的IP地址。

平时主干活备看着;出事时备秒变主,抢过IP接着干;用户全程无感。

补充:Linux下常用的“保镖”软件

  • Heartbeat: 老牌的开源软件,非常经典,但配置相对复杂(代码比较古老了)。
  • Keepalived: 极其常用! 配置简单,主要擅长抢IP(VIP漂移)。如果你的场景主要是基于IP的切换(比如LVS负载均衡器的高可用),用这个最顺手。
  • RHCS (Red Hat Cluster Suite): RedHat企业版自带的套件,功能强大,但如果你用的是CentOS,配置起来略重。
  • Corosync + Pacemaker(但现在是主流): 这是目前Linux高可用的主流组合(Heartbeat的升级替代品)。Corosync负责传递心跳,Pacemaker负责管理资源和决定谁来干活。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注