针对CentOS服务器的热备(高可用性)方案,核心目标是实现业务连续性,确保在硬件故障、维护或其他意外情况下服务不中断。以下是常见的几种热备方案及其实现思路:
1. 基于共享存储的高可用方案(如 RHCS、Pacemaker+Corosync)
原理:
- 多台服务器共享同一块存储(如SAN/NAS/iSCSI)。
- 主节点挂载存储运行服务,备用节点监控主节点状态。
- 主节点故障时,备用节点接管存储并启动服务。
部署步骤:
配置共享存储:
# 安装iSCSI客户端(如使用iSCSI)
yum install iscsi-initiator-utils
iscsiadm -m discovery -t st -p <存储服务器IP>
iscsiadm -m node -T <目标名称> -p <存储服务器IP> -l
安装集群管理工具:
yum install pacemaker corosync pcs
systemctl enable pcsd corosync pacemaker
systemctl start pcsd
配置集群:
passwd hacluster # 设置集群密码
pcs cluster auth node1 node2 # 节点互信
pcs cluster setup –name my_cluster node1 node2
pcs cluster start –all
pcs property set stonith-enabled=false # 禁用STONITH(测试环境)
定义资源(以虚拟IP和Nginx为例):
pcs resource create Virtual_IP ocf:heartbeat:IPaddr2 ip=192.168.1.100 cidr_netmask=24 op monitor interval=30s
pcs resource create Web_Server systemd:nginx op monitor interval=5s
pcs constraint colocation add Web_Server Virtual_IP INFINITY
pcs constraint order Virtual_IP then Web_Server
优点:
- 数据一致性高(共享存储)。
- 切换速度快(秒级)。
缺点:
- 依赖共享存储硬件,成本较高。
- 需要避免脑裂(Split-Brain),需配置STONITH。
2. 基于数据同步的热备方案(如 DRBD + Keepalived)
原理:
- DRBD(Distributed Replicated Block Device)实现磁盘级实时同步。
- Keepalived 管理虚拟IP,实现故障转移。
部署步骤:
安装DRBD:
yum install drbd kmod-drbd84
modprobe drbd
配置DRBD资源(/etc/drbd.d/resource.res):
resource my_res {
protocol C; # 同步模式(完全同步)
on node1 {
device /dev/drbd0;
disk /dev/sdb1;
address 192.168.1.1:7788;
meta-disk internal;
}
on node2 {
device /dev/drbd0;
disk /dev/sdb1;
address 192.168.1.2:7788;
meta-disk internal;
}
}
初始化并启动DRBD:
drbdadm create-md my_res
systemctl enable drbd
systemctl start drbd
drbdadm primary my_res –force # 主节点初始化
mkfs.ext4 /dev/drbd0 # 格式化文件系统
配置Keepalived(主备节点配置不同优先级):
vrrp_instance VI_1 {
state MASTER # 备用节点设为BACKUP
interface eth0
virtual_router_id 51
priority 100 # 备用节点设为50
virtual_ipaddress {
192.168.1.100/24
}
}
优点:
- 纯软件方案,无需共享存储硬件。
- 数据实时同步,可靠性高。
缺点:
- DRBD同步可能对网络带宽和延迟敏感。
- 需要手动处理脑裂问题。
3. 应用层热备(Nginx/HAProxy + Keepalived)
原理:
- 使用负载均衡器(如Nginx/HAProxy)作为前端代理。
- Keepalived管理负载均衡器的虚拟IP,实现双机热备。
部署步骤:
安装负载均衡器(以Nginx为例):
yum install nginx
systemctl enable nginx
systemctl start nginx
配置Keepalived(主备节点):
vrrp_script chk_nginx {
script "pgrep nginx || exit 1"
interval 2
weight 2
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
virtual_ipaddress {
192.168.1.100/24
}
track_script {
chk_nginx
}
}
配置后端服务器:
- 确保应用服务器(如Web、数据库)已配置集群或主从复制。
优点:
- 实现负载均衡和高可用双重功能。
- 适用于无状态服务(如Web应用)。
缺点:
- 需结合后端服务的高可用方案(如数据库主从)。
4. 数据库热备(如 MySQL主从复制 + MHA)
原理:
- 主数据库实时同步数据到从库。
- MHA(Master High Availability) 自动监控主库状态并切换。
部署步骤:
配置MySQL主从复制:
— 主库配置
CREATE USER 'repl'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
SHOW MASTER STATUS; # 记录File和Position
— 从库配置
CHANGE MASTER TO
MASTER_HOST='主库IP',
MASTER_USER='repl',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=107;
START SLAVE;
部署MHA:
yum install mha4mysql-manager mha4mysql-node
配置MHA管理节点(/etc/mha/app1.conf):
[server default]
manager_workdir=/var/log/mha/app1
manager_log=/var/log/mha/app1/manager.log
ssh_user=root
[server1]
hostname=master_ip
[server2]
hostname=slave_ip
启动MHA监控:
masterha_manager –conf=/etc/mha/app1.conf
优点:
- 数据库层高可用,自动故障转移。
- 支持数据一致性检查。
缺点:
- 配置复杂度较高。
- 主从同步可能存在延迟。
5. 云环境热备(如 AWS/Aliyun 负载均衡 + 多可用区)
原理:
- 利用云平台的负载均衡(如AWS ELB、阿里云SLB)将流量分发到多台ECS实例。
- 结合云存储(如EBS、OSS)实现数据持久化。
部署步骤:
创建云服务器实例:
- 在多个可用区部署CentOS实例。
配置负载均衡器:
- 添加监听规则,绑定后端服务器组。
挂载共享存储:
# 例如挂载阿里云NAS
yum install nfs-utils
mount -t nfs nas.aliyuncs.com:/ /mnt
优点:
- 无需自行管理物理硬件。
- 弹性扩展能力强。
缺点:
- 依赖云服务商,成本可能较高。
选择建议
- 关键业务:共享存储 + Pacemaker/Corosync。
- 预算有限:DRBD + Keepalived。
- Web应用:Nginx/HAProxy + Keepalived。
- 数据库:MySQL主从 + MHA 或 Galera Cluster。
- 云环境:云平台负载均衡 + 多可用区部署。
注意事项
通过上述方案,可显著提升CentOS服务器的可用性,根据实际场景选择最适合的架构。
评论前必须登录!
注册