高可用架构起点是系统初始化,须为集群协同奠基:关SELinux、停NetworkManager、配静态网络;主机名与hosts双向映射;chrony时间同步误差≤3秒;双网卡bond0绑定;内核参数优化;VIP写入网卡别名;corosync/pacemaker部署前验证连通性、端口、fencing及资源监控。

服务器系统安装不是装完操作系统就结束,而是高可用架构的起点。核心在于:初始化必须为集群协同打基础,单机配置要预留多节点联动空间,所有服务部署都要考虑故障转移路径。
系统初始化必须一步到位
最小化安装后立即执行三件事:关SELinux(vi /etc/sysconfig/selinux → disabled)、停NetworkManager(systemctl disable NetworkManager)、配静态网络(ifcfg-eth0中设BOOTPROTO=static + IPADDR + ONBOOT=yes)。别依赖DHCP,集群里IP漂移、VIP绑定、心跳检测全靠稳定地址。
- 主机名和/etc/hosts必须双向映射,比如node1对应192.168.1.100,node2对应192.168.1.101,不能只写IP不写主机名
- 时间同步不是可选项——chrony服务必须启用,且所有节点指向同一NTP源,误差超3秒可能触发Pacemaker资源抢占失败
- 挂载光盘配本地yum源(mount /dev/cdrom /media + dvd.repo),避免后续装ipvsadm、corosync时因网络波动中断
网络与内核层要提前加固
高可用不是靠上层软件堆出来的,底层网络和内核参数决定容错上限。业务网卡建议双网卡绑定(bond0),模式选active-backup;管理网必须独立VLAN,避免心跳包被业务流量挤压丢包。
- 修改/etc/sysctl.conf:提升连接队列(net.core.somaxconn = 65535)、禁用IPv6(net.ipv6.conf.all.disable_ipv6 = 1)、关闭反向路径过滤(net.ipv4.conf.all.rp_filter = 0)
- 添加VIP不能只用ip addr add临时命令,必须写进网卡别名配置(如ifcfg-eth0:0),否则重启失效
- 检查内核模块:LVS需ip_vs,Pacemaker需drbd或qdiskd,用lsmod | grep确认已加载
高可用组件部署讲顺序、重验证
Corosync + Pacemaker不是装完就能用,节点间密钥、认证方式、quorum策略必须一致。先做基础连通性测试(ping + ssh免密 + corosync-cfgtool -s看ring状态),再导入资源配置,最后逐项验证fencing是否生效。
- 集群通信端口(默认5404/5405 UDP)必须在防火墙放行,但业务端口如80、3306仍按需开放,不要全开firewalld
- 资源定义必须带监控操作,例如VIP资源要配ocf:heartbeat:IPaddr2并设置monitor interval=10s,否则故障无法自动感知
- 测试fencing前先手动模拟节点宕机(echo c > /proc/sysrq-trigger),观察另一节点是否成功STONITH,日志查/var/log/cluster/corosync.log
负载均衡与后端服务需解耦设计
LVS调度器和后端Real Server之间不是简单转发关系,要区分角色边界。调度器不处理业务逻辑,只做四层分发;后端节点专注服务响应,不参与集群仲裁。
- LVS策略用ipvsadm -A -t VIP:80 -s rr定义虚拟服务,用-a -r RIP:80 -g添加真实服务器(DR模式),别混用NAT或TUN
- 后端Web服务(如Nginx)配置里禁止监听VIP,只绑本机IP,否则ARP冲突导致流量黑洞
- 健康检查必须由LVS自身完成(ipvsadm --set调整超时参数),不依赖后端应用层探活,降低耦合度











