简介:这份文档面向中小企业IT运维与架构人员,提供一套基于VMware的三台物理机服务器虚拟化落地方案,用于替换老旧物理设备、提升资源利用率并实现业务系统平滑迁移。文档围绕客户八台物理服务器资源使用率偏低的现状,给出项目目标、虚拟化架构设计、方案优势及软硬件配置清单,涵盖集群搭建、双链路共享存储、单节点高可用与1至3年横向扩展思路,并附有CPU、内存、存储使用率统计表与架构图,便于读者对照自身环境评估改造可行性。资源包共1个docx文件,约87KB,内容为完整方案文档,结构清晰、可直接参考或改写为项目建议书。目前已有88人学习,适合需要制定虚拟化改造方案、撰写技术选型材料的运维与集成人员参考。
1. 三台物理机做虚拟化:为什么这个配置比你想的更值得认真对待
手里只有三台物理服务器,预算批不下来,但业务系统要跑十几个服务,还要做高可用和资源隔离——这是很多中小团队和实验室环境真实面对的局面。三台物理机虚拟化解决方案,核心就是用 VMware vSphere 把这三台裸金属服务器组成一个集群,让 CPU、内存、存储变成可动态分配的池子,虚拟机在集群内自由迁移,单台硬件故障时业务自动在其他节点拉起。它解决的不是“能不能跑虚拟机”的问题,而是“三台机器怎么跑出接近十台机器的利用率,同时还不怕坏一台”的问题。适合谁?适合运维工程师、实验室管理员、中小企业 IT 负责人,以及正在准备 vSphere 部署实验的技术人员。三台是 vSphere 集群的最小可行规模——少于三台,DRS 和 HA 的很多能力发挥不出来;多于三台,对多数中小场景又浪费。这个数字卡在一个很微妙的位置上,值得把方案做扎实。
2. 三台物理机的角色分配与 vSphere 集群规划
2.1 为什么三台机器不能“平均用力”
很多人拿到三台物理机,第一反应是三台装一样的配置,跑一样的负载。这个思路在 vSphere 集群里会出问题。vSphere HA 的接入控制策略需要预留故障切换容量,如果三台机器全部跑满,任何一台宕机都会导致资源不足,HA 要么拒绝切换,要么强行切换后所有虚拟机性能雪崩。
常见做法是:两台作为主力计算节点,承载生产虚拟机;第三台作为“冗余+管理”节点,同时跑 vCenter Server、ESXi 管理组件和部分非关键业务。这样任意一台计算节点故障,第三台有足够余量接管关键虚拟机。如果三台配置完全一致,也可以采用“每台预留 33% 资源”的策略,但实际利用率会降到 67% 左右,对预算紧张的场景不太友好。
我一般会建议按下面的角色分配来规划:
| 节点 | 角色 | 建议配置 | 承载内容 |
|---|---|---|---|
| 节点 A | 主力计算 | CPU 32 核以上,内存 256GB | 核心业务虚拟机、数据库 |
| 节点 B | 主力计算 | 同节点 A | 应用服务器、中间件 |
| 节点 C | 管理+冗余 | CPU 16 核以上,内存 128GB | vCenter、备份代理、轻量服务 |
这个分配不是死的。如果三台配置完全相同,可以把 vCenter 单独放在一台虚拟机上,但要注意 vCenter 本身不能依赖它管理的集群来启动——这是个先有鸡还是先有蛋的问题。常见做法是把 vCenter 部署在集群外的独立 ESXi 主机上,或者用 vCenter Server Appliance 的备份恢复机制来兜底。
2.2 ESXi 安装与网络规划的具体步骤
三台物理机第一步是装 ESXi。从 VMware 官网下载 ESXi ISO 镜像,制作启动 U 盘,逐台安装。安装过程本身不复杂,但网络规划如果没做好,后面集群配置会反复翻车。
每台物理机至少需要两个物理网卡:一个用于管理流量,一个用于虚拟机流量。如果要做 vMotion 和存储流量分离,建议四个网卡。三台机器最少需要一台千兆交换机,有条件上万兆。
安装 ESXi 时,管理 IP 规划如下:
# 示例:三台 ESXi 主机的管理网络配置 # 节点 A esxcli network ip interface ipv4 set -i vmk0 -I 192.168.10.11 -N 255.255.255.0 -t static esxcli network ip route ipv4 add -n default -g 192.168.10.1 # 节点 B esxcli network ip interface ipv4 set -i vmk0 -I 192.168.10.12 -N 255.255.255.0 -t static esxcli network ip route ipv4 add -n default -g 192.168.10.1 # 节点 C esxcli network ip interface ipv4 set -i vmk0 -I 192.168.10.13 -N 255.255.255.0 -t static esxcli network ip route ipv4 add -n default -g 192.168.10.1这三条命令分别设置三台主机的管理 IP 和默认网关。-i vmk0指定管理接口,-I后面跟 IP 地址,-N是子网掩码,-t static表示静态配置。执行完后用esxcli network ip interface ipv4 get确认配置生效。注意每台机器的 IP 不能冲突,网关要指向同一台三层交换机或路由器。
DNS 配置同样重要。ESXi 主机需要能解析 vCenter 的 FQDN,否则加入集群时会报证书错误。在每台 ESXi 的 DNS 配置里加上内部 DNS 服务器地址,并确保正向和反向解析都正确。这个细节很多人忽略,后面 vCenter 添加主机时反复失败,排查半天才发现是 DNS 反解没做。
2.3 vCenter Server 部署与集群创建
vCenter 是整个集群的大脑。三台物理机的场景下,vCenter Server Appliance 可以部署在节点 C 上的一台虚拟机里,也可以部署在独立的管理主机上。如果只有三台物理机,我倾向于把 vCenter 放在节点 C 的虚拟机中,但前提是节点 C 本身不参与 HA 的故障切换范围,或者接受 vCenter 短暂中断的风险。
部署 vCenter Server Appliance 的步骤:
# 挂载 VCSA ISO 后,从安装器执行部署 # 第一阶段:部署 OVA # 在安装器界面选择“安装”,输入 ESXi 主机 IP、凭据 # 设置 vCenter 的 FQDN、IP、SSO 域名和密码 # 第二阶段:启动 vCenter 服务 # 部署完成后,通过 https://<vcenter-ip>:5480 访问 VAMI 界面 # 检查所有服务状态,确保 vmware-vpxd、vmware-vpostgres 等正常运行部署完成后,用浏览器访问https://<vcenter-ip>/ui进入 vSphere Client。第一次登录用administrator@vsphere.local和部署时设置的密码。
创建集群的步骤:在 vSphere Client 中右键数据中心,选择“新建集群”,勾选 vSphere HA 和 vSphere DRS。集群名称建议用有意义的命名,比如PROD-CLUSTER-01。创建完成后,把三台 ESXi 主机依次拖入集群。添加主机时需要输入 ESXi 的 root 凭据,并接受 SSL 证书指纹。
主机加入集群后,检查每台主机的状态是否显示“已连接”。如果显示“未连接”或“维护模式”,检查管理网络连通性和 DNS 解析。三台主机全部连接后,集群的“摘要”页会显示总 CPU、总内存和总存储容量。
3. 存储与网络配置:三台物理机最容易翻车的地方
3.1 共享存储的三种可行方案
vSphere 集群的核心能力——vMotion、HA、DRS——都依赖共享存储。三台物理机如果没有共享存储,虚拟机无法在主机之间迁移,HA 也只能在本地存储上做有限的重启。所以存储方案是三台物理机虚拟化能否落地的关键。
方案一:外置 SAN/NAS。这是最标准的做法。一台支持 iSCSI 或 NFS 的存储设备,三台 ESXi 通过交换机连接。iSCSI 配置时,每台 ESXi 添加 iSCSI 软件适配器,绑定 vmkernel 端口,然后动态发现存储目标。NFS 更简单,直接挂载即可。这个方案性能稳定,但需要额外硬件预算。
方案二:vSAN。三台物理机每台贡献本地磁盘,组成 vSAN 分布式存储。这是三台机器场景下最优雅的方案,因为不需要外置存储。但 vSAN 对磁盘控制器和网络有要求:每台主机至少一块 SSD 做缓存层,一块 HDD 做容量层,网络建议万兆。三台主机组成 vSAN 集群时,允许一台故障而不丢数据。配置 vSAN 的步骤:
# 在每台 ESXi 主机上,通过 CLI 标记磁盘 # 查看磁盘列表 esxcli storage core device list # 标记 SSD 为缓存盘 esxcli vsan storage add -s <ssd-device-id> -d <hdd-device-id> # 在 vSphere Client 中启用 vSAN # 集群 -> 配置 -> vSAN -> 常规 -> 启用-s指定缓存层设备,-d指定容量层设备。设备 ID 从esxcli storage core device list的输出中获取。三台主机都添加磁盘后,vSAN 数据存储会自动创建。注意 vSAN 需要至少三台主机才能形成有效集群,两台主机做 vSAN 需要见证节点,三台刚好满足最小要求。
方案三:虚拟共享存储。如果预算实在紧张,可以用一台物理机或虚拟机跑 FreeNAS/TrueNAS,提供 iSCSI 或 NFS 共享。这个方案性能一般,但能跑通 vMotion 和 HA 的基本功能。适合实验室和测试环境。
3.2 网络配置:vMotion、HA 和虚拟机流量的分离
三台物理机的网络配置直接决定集群的稳定性和性能。核心原则是:管理流量、vMotion 流量、虚拟机流量、存储流量尽量分离。如果物理网卡不够,至少把 vMotion 和虚拟机流量分开。
标准 vSphere 网络配置包括以下 vSwitch 和端口组:
| vSwitch | 端口组 | 用途 | VLAN |
|---|---|---|---|
| vSwitch0 | Management Network | ESXi 管理 | 10 |
| vSwitch0 | vMotion | 虚拟机迁移 | 20 |
| vSwitch1 | VM Network | 虚拟机流量 | 30 |
| vSwitch1 | Storage Network | iSCSI/NFS | 40 |
如果每台主机只有两个网卡,可以把 vSwitch0 和 vSwitch1 分别绑定一个网卡,vMotion 和存储共享 vSwitch1。但这样 vMotion 时会和存储流量抢带宽,迁移速度会受影响。
配置 vMotion 的步骤:在 vSphere Client 中,选中 ESXi 主机,进入“配置”->“网络”->“虚拟机交换机”,编辑 vSwitch0,添加 vmkernel 端口,勾选“vMotion”服务。给 vMotion 接口分配独立的 IP 段,比如 192.168.20.11/24。三台主机都配置后,在集群的“配置”->“vSphere DRS”中确认 vMotion 网络已识别。
注意:vMotion 的 vmkernel 端口必须能互相通信。配置完后用
vmkping从一台主机的 vMotion 接口 ping 另一台的 vMotion 接口,确认连通性。
3.3 配置 DRS 和 HA 的关键参数
集群创建后,DRS 和 HA 的默认参数不一定适合三台物理机的场景。需要手动调整几个关键项。
DRS 自动化级别:如果业务对性能敏感,建议设为“半自动”或“手动”。全自动虽然省心,但 DRS 在资源紧张时可能频繁迁移虚拟机,导致性能抖动。半自动模式下,DRS 给出迁移建议,由管理员决定是否执行。
HA 接入控制策略:三台主机场景下,建议选择“集群资源百分比”策略,预留 33% 的 CPU 和内存。这样任意一台主机故障,剩余两台有足够资源接管。如果选择“指定故障切换主机”,需要明确指定哪台主机作为备用,灵活性较差。
HA 心跳数据存储:至少配置两个心跳数据存储,避免单点故障。如果使用 vSAN,vSAN 数据存储本身可以作为心跳存储。如果使用外置存储,建议配置两个不同的 LUN。
# 通过 PowerCLI 查看集群 HA 配置 Connect-VIServer -Server <vcenter-ip> -User administrator@vsphere.local -Password <password> Get-Cluster -Name "PROD-CLUSTER-01" | Get-HAConfiguration这段 PowerCLI 脚本连接 vCenter 后,获取集群的 HA 配置信息。Connect-VIServer建立连接,Get-Cluster获取指定集群对象,Get-HAConfiguration输出 HA 相关参数。执行前需要安装 VMware PowerCLI 模块。通过这个命令可以确认接入控制策略和心跳存储是否符合预期。
4. 虚拟机部署与资源调度:让三台机器跑出最大价值
4.1 虚拟机创建与操作系统安装
集群配置完成后,就可以创建虚拟机了。在 vSphere Client 中右键集群或主机,选择“新建虚拟机”。关键参数包括:CPU 数量、内存大小、磁盘容量和网络适配器类型。
对于 Windows 虚拟机,建议使用 VMXNET3 网络适配器和 Paravirtual SCSI 控制器,性能比默认的 E1000 和 LSI Logic 更好。对于 Linux 虚拟机,同样推荐 VMXNET3。磁盘格式选择“厚置备延迟置零”或“精简置备”,前者性能稳定,后者节省空间但可能在高负载时出现延迟。
安装操作系统时,通过 vSphere Client 的“打开控制台”挂载 ISO 镜像。Windows Server 2022 和 Ubuntu 22.04 是常见选择。安装 VMware Tools 是必须的,它提供更好的显示性能、内存管理和心跳检测。在 vSphere Client 中右键虚拟机,选择“客户机操作系统”->“安装 VMware Tools”,然后在虚拟机内挂载并安装。
# Linux 虚拟机安装 VMware Tools(open-vm-tools) sudo apt update sudo apt install open-vm-tools open-vm-tools-desktop -y sudo systemctl enable vmtoolsd sudo systemctl start vmtoolsd这几条命令在 Ubuntu/Debian 系统上安装 open-vm-tools。open-vm-tools是核心包,open-vm-tools-desktop提供桌面环境支持。安装后启用并启动vmtoolsd服务。安装完成后,vSphere Client 的虚拟机摘要页会显示 VMware Tools 状态为“正在运行”。
4.2 资源池与份额分配
三台物理机的资源有限,必须通过资源池和份额来分配优先级。vSphere 的资源调度基于份额、预留和限制三个维度。
份额决定资源竞争时的分配比例。比如给数据库虚拟机分配“高”份额(CPU 和内存各 2000),给测试虚拟机分配“低”份额(各 500)。当资源紧张时,数据库虚拟机获得的比例更高。
预留是保证给虚拟机的最低资源。比如给核心业务虚拟机预留 4 核 CPU 和 8GB 内存,即使主机过载,这些资源也不会被其他虚拟机抢占。但预留会降低集群的整体利用率,需要权衡。
限制是虚拟机可用的最大资源。一般不建议设置限制,除非需要防止某台虚拟机占用过多资源影响其他业务。
创建资源池的步骤:在集群或主机上右键,选择“新建资源池”,设置 CPU 和内存的份额、预留和限制。然后把虚拟机拖入资源池。资源池可以嵌套,但层级不要太深,否则管理复杂。
4.3 用 DRS 规则控制虚拟机分布
DRS 规则可以控制虚拟机在主机之间的分布。常见规则类型包括:
- 聚集规则:将多个虚拟机放在同一台主机上,适合需要低延迟通信的应用。
- 分离规则:将多个虚拟机分散到不同主机上,适合互为冗余的服务。
- 虚拟机-主机规则:将虚拟机限制在特定主机上,适合许可证绑定或硬件依赖的场景。
配置分离规则的步骤:在集群的“配置”->“规则”中,新建“虚拟机反亲和性”规则,添加需要分离的虚拟机,选择“必须分离”。这样 DRS 会确保这些虚拟机不会运行在同一台主机上。三台物理机场景下,把互为冗余的应用服务器配置分离规则,可以避免单台主机故障导致服务全挂。
5. 避坑与排查:三台物理机虚拟化最常见的五个翻车点
5.1 主机加入集群失败,报证书错误
现象:在 vCenter 中添加 ESXi 主机时,提示“无法验证 SSL 证书”或“证书指纹不匹配”。
原因:ESXi 主机的 SSL 证书是自签名的,vCenter 首次连接时需要确认指纹。如果之前添加过同一台主机但未清理旧证书,或者主机 IP 变更后证书未更新,就会报错。
解决:在 vSphere Client 中添加主机时,仔细核对 SSL 证书指纹,确认后继续。如果之前添加过,先在 vCenter 中移除旧主机,然后在 ESXi 上重启管理代理:/etc/init.d/hostd restart和/etc/init.d/vpxa restart。如果 IP 变更,用dcui或esxcli更新管理网络配置后重新添加。
5.2 vMotion 迁移失败,提示“无法连接到远程主机”
现象:手动或 DRS 触发 vMotion 时,任务失败,错误信息为“无法连接到远程主机”或“vMotion 网络不可达”。
原因:vMotion 的 vmkernel 端口配置错误,或者防火墙规则阻止了 vMotion 流量。三台主机之间 vMotion 网络不通是最常见的原因。
解决:用vmkping从源主机的 vMotion 接口 ping 目标主机的 vMotion 接口。如果不通,检查 vSwitch 的 VLAN 配置和物理交换机端口。确认 ESXi 防火墙允许 vMotion:esxcli network firewall ruleset list | grep vMotion。如果规则未启用,用esxcli network firewall ruleset set -e true -r vMotion启用。
5.3 HA 切换后虚拟机无法启动,提示“资源不足”
现象:一台主机故障后,HA 尝试在其他主机上重启虚拟机,但部分虚拟机启动失败,提示“资源不足”或“无法满足预留”。
原因:HA 接入控制策略预留的资源不够,或者故障主机的虚拟机总资源超过了剩余主机的可用容量。三台主机场景下,如果每台都跑满,故障一台后剩余两台无法承载全部虚拟机。
解决:调整 HA 接入控制策略,增加预留百分比。或者接受部分非关键虚拟机在故障时不自动重启,通过“虚拟机覆盖”设置将它们的 HA 重启优先级设为“低”。更根本的解决办法是控制单台主机的资源使用率不超过 70%,给 HA 留出余量。
5.4 vSAN 磁盘组创建失败,提示“磁盘不合格”
现象:在 vSAN 配置中尝试添加磁盘组时,磁盘显示为“不合格”或“不可用”。
原因:磁盘未被 ESXi 识别为本地磁盘,或者磁盘上有残留的分区信息。vSAN 要求磁盘是干净的、未被其他文件系统占用的。
解决:用esxcli storage core device list确认磁盘状态。如果磁盘有残留分区,用partedUtil清除:partedUtil delete /vmfs/devices/disks/<device-id> <partition-number>。或者通过 ESXi 的“存储”->“设备”界面,将磁盘标记为“清除分区”。确保磁盘控制器处于直通模式或 RAID 模式,vSAN 需要直接访问物理磁盘。
5.5 虚拟机性能远低于预期,CPU 就绪时间高
现象:虚拟机运行缓慢,vSphere Client 中虚拟机的 CPU 就绪时间(Ready Time)持续偏高。
原因:主机 CPU 过载,或者虚拟机的 CPU 份额设置过低。三台物理机跑大量虚拟机时,CPU 资源竞争激烈。
解决:检查集群的 CPU 使用率,如果持续超过 80%,需要减少虚拟机数量或升级 CPU。调整关键虚拟机的 CPU 份额为“高”,确保资源竞争时优先分配。检查虚拟机是否安装了 VMware Tools,未安装时 CPU 调度效率会降低。另外,检查虚拟机的 CPU 限制是否被误设,限制会强制虚拟机等待资源。
6. 三台物理机的进阶技巧:用快照链和克隆做低成本容灾
三台物理机跑虚拟化,除了 HA 和 DRS,还有一个很实用的技巧:用快照链和链接克隆做低成本容灾和快速回滚。这个技巧在预算有限、没有专业备份软件的场景下特别管用。
快照不是备份,但用好了可以当“后悔药”。在给虚拟机打补丁或升级应用之前,先打一个快照。如果升级失败,回滚到快照只需几分钟。但快照链不能太长,超过三个快照会显著影响磁盘性能。我一般建议:操作前打快照,操作完成后确认无误就删除快照,不要长期保留。
链接克隆是另一个省空间的办法。以某个虚拟机的快照为父本,创建链接克隆,子虚拟机只存储差异数据。三台物理机存储有限时,用链接克隆可以快速部署多台测试虚拟机,每个克隆占用的空间可能只有几百 MB。但链接克隆依赖父本,父本损坏会导致所有克隆不可用。所以父本虚拟机要放在可靠的存储上,并且不要删除父本的快照。
# 通过 PowerCLI 创建链接克隆 Connect-VIServer -Server <vcenter-ip> -User administrator@vsphere.local -Password <password> $vm = Get-VM -Name "Template-VM" $snapshot = Get-Snapshot -VM $vm -Name "Base-Snapshot" New-VM -Name "Clone-VM-01" -VM $vm -Snapshot $snapshot -LinkedClone -Datastore "vsanDatastore"这段脚本先连接 vCenter,获取父本虚拟机和指定快照,然后创建链接克隆。-LinkedClone参数指定创建链接克隆,-Datastore指定存储位置。创建完成后,克隆虚拟机立即可以启动,但它的磁盘依赖父本快照。注意链接克隆的虚拟机不能直接删除父本快照,否则克隆会损坏。
验证链接克隆是否正常工作:启动克隆虚拟机,检查系统是否正常引导,然后在克隆虚拟机内创建一个测试文件,重启后确认文件还在。再回到父本虚拟机,确认父本快照仍然存在。如果一切正常,说明链接克隆配置成功。
还有一个技巧是用 vSphere Replication 做虚拟机级别的复制。三台物理机场景下,可以把关键虚拟机复制到第三台主机上,RPO 可以做到 15 分钟。虽然不如存储级复制,但胜在配置简单,不需要共享存储。在 vSphere Client 中安装 vSphere Replication 插件,然后对虚拟机启用复制,指定目标主机和 RPO 即可。
我自己的习惯是:三台物理机的集群,至少留一台主机的 30% 资源作为“缓冲池”。所有关键虚拟机都配置 HA 重启优先级为“高”,非关键虚拟机设为“中”或“低”。每季度做一次故障演练,手动关闭一台主机,观察 HA 切换是否正常,DRS 是否按预期重新平衡。演练中发现的配置问题,比真实故障时才发现要划算得多。希望帮到你。
本文还有配套的精品资源,点击获取