CentOS 虚拟机集群搭建步骤
一 环境准备与规划
- 宿主机准备:安装虚拟化软件(推荐 VirtualBox 或 VMware Workstation),预留磁盘空间(例如每台 ≥100GB)、内存与 CPU 资源。
- 系统镜像:选择 CentOS 7/8(Minimal 或 DVD 镜像)。
- 节点规划:至少 3 台(如 node1/node2/node3),便于通用中间件与分布式系统部署。
- 网络规划:使用 Host-Only/Private Network 或 NAT;为每台机器配置固定 IP、统一 主机名 与 /etc/hosts 映射,便于互通与后续服务发现。
- 工具选择:可手工在 VMware/VirtualBox 安装,也可使用 Vagrant 编排快速生成多台虚拟机。
二 快速起步 Vagrant 编排
- 安装 VirtualBox 与 Vagrant;创建项目目录并初始化:
mkdir ~/centos-cluster && cd ~/centos-cluster && vagrant init
- 编辑 Vagrantfile(示例创建 3 台 CentOS 7 节点,使用私有网络):
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 |v|
v.name = "node#{i}"
v.memory = 2048
v.cpus = 1
end
end
end
end
- 启动集群:vagrant up(首次会自动下载 box;若下载慢,可手动构造下载链接:
https://app.vagrantup.com/centos/boxes/7/versions/<版本号>/providers/virtualbox.box)。
- 常见问题:共享目录挂载报错 “mount: unknown filesystem type ‘vboxsf’”,安装增强插件:vagrant plugin install vagrant-vbguest。
三 手工创建与克隆三节点集群(VMware/VirtualBox)
- 安装首台 CentOS(如 node1):创建 VM → 挂载镜像 → 安装系统 → 设置 root 密码与用户。
- 网络与静态 IP:编辑网卡配置(如 /etc/sysconfig/network-scripts/ifcfg-ens33),设置
BOOTPROTO=static、ONBOOT=yes、IPADDR(如 192.168.88.161)、NETMASK(如 255.255.255.0)、GATEWAY(如 192.168.88.2,与 VMware NAT 网关一致)、DNS(如 8.8.8.8/114.114.114.114),重启网络(systemctl restart network)。
- 克隆节点:关闭 node1 → 克隆两台(完整克隆)→ 分别为 node2/node3 生成新的 MAC 地址,避免冲突。
- 分别配置 node2/node3 的静态 IP(如 192.168.88.162/163),保持网关与 DNS 一致。
- 主机名与域名映射:
- 每台执行:hostnamectl set-hostname nodeX(或编辑 /etc/hostname 后 reboot)。
- 三台统一编辑 /etc/hosts:
192.168.88.161 node1 node1.itcast.cn
192.168.88.162 node2 node2.itcast.cn
192.168.88.163 node3 node3.itcast.cn
- 验证:ping node2、ping node3 应互通。
四 集群通用基础配置
- 关闭防火墙(测试环境常用,生产按需放通端口):
systemctl stop firewalld && systemctl disable firewalld
- 关闭 SELinux(测试环境常用,生产建议 targeted 策略与端口放通):
编辑 /etc/selinux/config:SELINUX=disabled,重启后验证 getenforce 为 Disabled。
- 免密登录(以 node1 免密登录 node2/node3):
ssh-keygen -t rsa(一路回车)
ssh-copy-id node2、ssh-copy-id node3
- 时间同步:
- 外网可用:crontab -e 添加 “*/1 * * * * /usr/sbin/ntpdate -u ntp4.aliyun.com”
- 无外网:以 node1 为 NTP 服务器,其他节点同步 node1。
- 安装 JDK(三台一致):
上传 jdk-8u241-linux-x64.tar.gz 至 /export/software → 解压至 /export/server → 配置 /etc/profile:
export JAVA_HOME=/export/server/jdk1.8.0_241
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile && java -version
五 验证与常见网络模式选择
- 连通性验证:
ping node2、ping node3;ssh node2 应无需密码;date 对比各节点时间差。
- 网络模式要点:
- 桥接(Bridged):虚拟机处于与宿主机同一网段,IP 随所处网络变化,换网需重配。
- NAT:通过 VMnet8 访问外网,虚拟网段固定,网关常为 x.x.x.2,适合稳定内网实验。
- Host-Only/Private Network:仅宿主机与虚拟机互通,适合隔离的集群环境。
- 排错提示:
- 静态 IP 不通:核对 GATEWAY/DNS 与 VMware 虚拟网络编辑器设置。
- 共享目录挂载失败:安装 vagrant-vbguest 插件或改用 NFS/SFTP 同步。
- 克隆后网卡名变化:确认网卡配置文件名与实际接口一致(如 ens33/eth0)。