centos

centos虚拟机集群怎么搭建

小樊
54
2025-10-04 21:12:51
栏目: 云计算

CentOS虚拟机集群搭建指南(以高可用集群为例)

一、前期准备

  1. 虚拟化环境
    使用VMware Workstation、VirtualBox或KVM等虚拟化软件创建多台CentOS虚拟机(建议至少3台,以满足集群多数决机制)。虚拟机需配置2张网卡:一张用于业务通信(如NAT或桥接模式),一张用于集群心跳(建议用Host-Only或专用网卡,避免业务流量干扰)。
  2. 系统配置
    • 最小化安装:选择CentOS Minimal版本,减少不必要的服务占用资源。
    • 网络配置:为每台虚拟机设置静态IP(如192.168.1.101192.168.1.102192.168.1.103),并配置网关、DNS(如8.8.8.8)。通过vi /etc/sysconfig/network-scripts/ifcfg-ens33修改配置,关键参数如下:
      BOOTPROTO=static
      IPADDR=192.168.1.101
      NETMASK=255.255.255.0
      GATEWAY=192.168.1.1
      DNS1=8.8.8.8
      ONBOOT=yes
      
      修改后重启网络:systemctl restart network
    • 主机名与hosts解析:通过hostnamectl set-hostname node1设置主机名(如node1node2node3),并在每台节点的/etc/hosts文件中添加集群节点映射:
      192.168.1.101 node1
      192.168.1.102 node2
      192.168.1.103 node3
      
      确保节点间能通过主机名互相ping通。
    • 关闭防火墙与SELinux:临时关闭防火墙:systemctl stop firewalld;永久禁用:systemctl disable firewalld。修改SELinux配置:sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config,并执行setenforce 0使其生效。
    • 时间同步:安装NTP服务并开启:yum install -y ntp && systemctl start ntpd && systemctl enable ntpd,确保节点间时间误差小于1秒(可通过ntpdate node1手动同步)。

二、核心组件安装

高可用集群的核心组件为Corosync(心跳管理)、Pacemaker(资源调度)、PCS(命令行配置工具)及Fence Agents(故障隔离)。
在所有节点上执行以下命令安装:

yum install -y corosync pacemaker pcs fence-agents-all resource-agents

安装完成后,启动pcsd服务(PCS的守护进程)并设置开机自启:

systemctl start pcsd && systemctl enable pcsd
```。  


#### **三、集群配置**
1. **认证集群节点**  
   在任意一台节点(如`node1`)上,使用`pcs`命令认证所有集群节点(密码为`hacluster`用户的密码,需保持一致):  
   ```bash
   pcs cluster auth node1 node2 node3 -u hacluster -p your_password --force

执行成功后会显示“Authentication succeeded”。

  1. 创建并启动集群
    node1上执行以下命令创建集群(集群名称自定义,如my_ha_cluster):

    pcs cluster setup --start --name my_ha_cluster node1 node2 node3
    

    参数说明:--start表示创建后立即启动集群,node1 node2 node3为集群节点列表。
    启用集群自动启动:

    pcs cluster enable --all
    

    验证集群状态:

    pcs cluster status
    

    正常输出应显示所有节点为“Online”状态。

  2. 配置Fencing(防脑裂)
    Fencing是高可用集群的关键机制,用于在节点故障时强制隔离(如重启节点),防止“脑裂”(多个节点同时认为自己是主节点)。

    • 添加Fencing设备(以虚拟机为例,可使用fence_virt代理):
      pcs stonith create fence_node1 fence_virt pcmk_host_list="node1" ipaddr=192.168.1.101 login=root passwd=your_password
      pcs stonith create fence_node2 fence_virt pcmk_host_list="node2" ipaddr=192.168.1.102 login=root passwd=your_password
      pcs stonith create fence_node3 fence_virt pcmk_host_list="node3" ipaddr=192.168.1.103 login=root passwd=your_password
      
    • 启用Fencing:
      pcs property set stonith-enabled=true
      

    验证Fencing配置:

    pcs stonith list
    ```。  
    
    
    

四、资源部署(以Web服务为例)

  1. 创建虚拟IP资源
    虚拟IP(VIP)是集群对外提供服务的统一入口,当主节点故障时,VIP会自动漂移到备用节点。

    pcs resource create virtual_ip ocf:heartbeat:IPaddr2 ip=192.168.1.100 cidr_netmask=24 op monitor interval=10s
    

    参数说明:ip为VIP地址(需在业务网段内且未被使用),cidr_netmask为子网掩码(如24表示255.255.255.0)。

  2. 创建Web服务资源
    使用ocf:heartbeat:apache资源代理管理Apache服务(需提前安装Apache:yum install -y httpd)。

    pcs resource create web_server ocf:heartbeat:apache configfile=/etc/httpd/conf/httpd.conf statusurl="http://localhost/server-status" op monitor interval=20s
    

    参数说明:configfile为Apache配置文件路径,statusurl为服务状态检测接口。

  3. 配置资源约束

    • 共置约束:确保VIP和Web服务运行在同一节点(避免VIP漂移到无Web服务的节点)。
      pcs constraint colocation add virtual_ip with web_server INFINITY
      
    • 顺序约束:确保VIP先启动,再启动Web服务(避免Web服务启动时VIP未就绪)。
      pcs constraint order virtual_ip then web_server
      

    验证约束:

    pcs constraint list
    ```。  
    
    
    

五、测试集群

  1. 查看集群状态

    pcs status
    

    确认所有节点为“Online”,资源(VIP、Web Server)已启动。

  2. 模拟节点故障

    • node1上停止Pacemaker和Corosync服务(模拟节点宕机):
      systemctl stop pacemaker && systemctl stop corosync
      
    • 观察pcs status输出,确认VIP和Web服务已漂移到node2node3
    • 重启node1,观察资源是否自动回迁(取决于资源约束配置)。

注意事项

通过以上步骤,即可完成CentOS虚拟机高可用集群的搭建,实现服务的自动故障转移与业务持续可用。

0
看了该问题的人还看了