温馨提示×

CentOS虚拟机如何进行集群搭建

小樊
41
2025-12-21 09:04:57
栏目: 云计算

CentOS 虚拟机集群搭建实操指南

一、方案选型与网络规划

  • 工具选型
    • 快速批量:使用 Vagrant + VirtualBox,用一份 Vagrantfile 定义多台 CentOS 虚拟机,一键起停与复用。
    • 精细控制:使用 VMware Workstation/Player/ESXi 手工安装首台后克隆,便于定制与快照管理。
  • 网络模式
    • Private network(Host-only):仅宿主机与虚拟机互通,多台虚机在同一网段可互访,适合本地集群。
    • NAT:借助宿主机的 VMnet8 网段上网,适合需要访问外网但内网隔离的场景。
    • Bridged:虚机加入宿主机所在物理网络,获取与宿主机同网段 IP,便于与同网设备互通。
  • 基础规划示例(可按需调整)
    • 节点数:3 台(如 node1、node2、node3)
    • 系统:CentOS 7/8 Stream
    • 内存:2–4 GB/台
    • CPU:1–2 核/台
    • 私有网段:192.168.56.0/24(示例)

二、快速起步 Vagrant + VirtualBox

  • 安装与准备
    • 安装 VirtualBoxVagrant;准备 CentOS box(如官方 centos/7centos/8)。
  • 生成集群
    • 创建目录并初始化:
      • mkdir ~/centos-cluster && cd ~/centos-cluster
      • vagrant init
    • 编辑 Vagrantfile(示例为 3 台,使用私有网络):

      Vagrant.configure("2") do |config|
        (1..3).each do |i|
          config.vm.define "node#{i}" do |node|
            node.vm.box = "centos/7"
            node.vm.hostname = "node#{i}"
            node.vm.network "private_network", ip: "192.168.56.#{100+i}"
            node.vm.provider "virtualbox" do |vb|
              vb.name   = "node#{i}"
              vb.memory = 2048
              vb.cpus   = 1
            end
          end
        end
      end
      
    • 启动集群:vagrant up(首次会自动下载 box,国内可提前下载 .box 离线导入以提速)。
  • 常见问题
    • 共享目录挂载失败(mount: unknown filesystem type ‘vboxsf’):安装增强插件 vagrant plugin install vagrant-vbguest。
    • 离线 box 下载:在 app.vagrantup.com/centos/boxes/7/versions/ 页面获取对应 provider.box 直链后下载,再用 vagrant box add 导入。

三、VMware 手工安装与克隆

  • 安装首台虚机
    • 新建虚机(如 CentOS 7.9),安装系统;配置 静态 IP(示例 192.168.19.151/24,网关 192.168.19.2),编辑 /etc/sysconfig/network-scripts/ifcfg-ens33
      • ONBOOT=yes,BOOTPROTO=static
      • IPADDR=192.168.19.151,GATEWAY=192.168.19.2,DNS1=192.168.19.2
      • 重启网络:systemctl restart network 或 service network restart
  • 克隆与批量
    • 关机后克隆出 node2/node3/…,为每台设置唯一 IP主机名(如 hadoop151/152/153)。
  • 集群基础配置(所有节点)
    • 主机名与解析:编辑 /etc/hosts
      • 192.168.19.151 hadoop151
      • 192.168.19.152 hadoop152
      • 192.168.19.153 hadoop153
    • 安全与基础
      • 关闭防火墙:systemctl stop firewalld && systemctl disable firewalld
      • 关闭 SELinux:编辑 /etc/selinux/config,设 SELINUX=disabled(重启生效)
      • 时间同步:选一台为 NTP 服务器,其余节点同步至该服务器
      • SSH 免密:各节点 ssh-keygen,将公钥汇总到 authorized_keys,实现节点间免密互通
    • 软件源
      • 可选:搭建 本地 YUM 源(如用 Everything ISO),提升内网安装速度。

四、集群通用初始化清单

  • 网络与主机名
    • 固定 IP、统一 /etc/hosts、确保节点间 ping 通与 SSH 免密可用。
  • 时间与 NTP
    • 安装并启用 chronyntpd,所有节点向同一时间源同步,避免分布式系统时钟漂移。
  • 软件与仓库
    • 更新索引:yum clean all && yum makecache
    • 安装常用工具:wget、vim、net-tools、telnet、bind-utils
    • 如离线环境,部署 本地 YUM 源HTTP/NFS 共享仓库。
  • 安全基线
    • 生产环境不建议长期关闭防火墙,改为按需开放端口(如 22/80/443/3306/6379/9092 等)。
    • SELinux 建议保持 enforcing,通过策略放行;测试环境可临时 disabled。

五、可选高可用与负载均衡

  • 高可用集群(Corosync + Pacemaker)
    • 安装组件:yum install -y pacemaker pcs corosync fence-agents-all
    • 启动 pcsd:systemctl start pcsd && systemctl enable pcsd
    • 设置 hacluster 用户密码,节点认证:pcs host auth node1 node2 -u hacluster -p
    • 创建并启动集群:pcs cluster setup my-cluster node1 node2 && pcs cluster start --all && pcs cluster enable --all
    • 资源示例:创建 VIP(ocf:heartbeat:IPaddr2)与 systemd:httpd,设置 colocationorder 约束,验证故障转移。
  • 轻量高可用(Keepalived)
    • 通过 VRRP 实现 VIP 漂移,配置健康检查脚本,适用于无共享存储的双机热备。
  • 负载均衡(HAProxy/Nginx)
    • 部署 HAProxy 做四层/七层转发与健康检查,后端指向业务实例,实现流量分发与故障隔离。

0