温馨提示×

centos虚拟机如何实现高可用性

小樊
61
2025-08-22 15:42:59
栏目: 云计算

在CentOS虚拟机上实现高可用性,可通过以下方案配置,核心思路是通过集群软件实现故障转移和资源管理:

一、基础环境准备

  1. 硬件与网络
    • 至少2台物理主机,配置虚拟机时确保网络互通(建议配置静态IP和主机名解析)。
    • 同步系统时间:使用ntpchrony配置时间同步。
  2. 软件依赖
    • 安装基础工具:yum install -y pcs corosync pacemaker fence-agents-all

二、核心高可用方案

1. 基于Pacemaker+Corosync的集群配置

  • 步骤
    1. 配置主机名和/etc/hosts,确保节点间可互相访问。
    2. 启动pcsd服务并设置密码认证:
      systemctl start pcsd  
      systemctl enable pcsd  
      echo "password" | passwd --stdin hacluster  
      pcs cluster auth node1 node2 -u hacluster -p password  
      
    3. 创建集群并启动:
      pcs cluster setup --name mycluster node1 node2  
      pcs cluster start --all  
      
    4. 配置虚拟IP(VIP)资源:
      pcs resource create VirtualIP ocf:heartbeat:IPaddr2 ip=192.168.1.100 cidr_netmask=24 op monitor interval=30s  
      
    5. 测试故障转移:手动停止主节点服务,观察VIP是否自动切换到备用节点。

2. 虚拟机高可用(结合KVM/QEMU)

  • 共享存储配置
    • 使用DRBD或NFS实现虚拟机磁盘共享,确保主备节点数据一致。
    • 示例(DRBD):
      yum install drbd-utils  
      drbdadm create-md r0  # 创建DRBD元数据  
      drbdadm up r0         # 启动DRBD服务  
      
  • 虚拟机监控与自动恢复
    • 通过virshvirt-manager配置虚拟机资源,结合Pacemaker监控虚拟机状态,故障时自动重启或迁移。

3. 负载均衡与高可用服务

  • Web服务场景
    • 使用Keepalived实现VIP漂移,搭配Nginx实现负载均衡。
    • 配置示例(/etc/keepalived/keepalived.conf):
      vrrp_instance VI_1 {  
        state MASTER  
        interface eth0  
        virtual_router_id 51  
        virtual_ipaddress {  
          192.168.1.200  
        }  
      }  
      

三、关键注意事项

  • 存储同步:确保虚拟机磁盘数据通过DRBD、NFS或共享存储(如iSCSI)实现冗余。
  • 网络配置:集群节点需在同一局域网,开放Corosync默认端口(5404-5405)。
  • 安全加固:限制集群通信端口访问,定期备份集群配置。

四、验证与维护

  • 使用pcs status查看集群状态,确认节点和资源运行正常。
  • 定期测试故障转移,确保VIP和虚拟机服务可自动恢复。

以上方案可根据业务需求选择,Pacemaker+Corosync适用于通用场景,DRBD适合对存储一致性要求高的场景。

0