4. 部署环境评估
好,环境准备这块,我把它看作是整个虚拟化大厦的地基。地基没打好,后面楼盖得再高也悬。这一章咱们就把物理服务器、BIOS、操作系统和网络这四件事儿捋清楚。
4.1 物理服务器选型建议
选服务器,说白了就是选「CPU、内存、存储、网卡」这四大件。我这些年经手过的项目,从几台的小集群到上百台的数据中心,踩过的坑不少,给你几个实在的建议。
核心原则:虚拟化场景下,CPU核心数 > 主频,内存容量 > 频率,存储IOPS > 容量,网卡带宽 > 数量。
4.1.1 CPU选型
- 必须支持硬件虚拟化:Intel VT-x 或 AMD-V。这是底线,没有这个你连Hypervisor都跑不起来。
- 核心数:我个人习惯,至少16核起步。你想想看,一个物理核通常能承载4-8个轻量级虚拟机,核心数不够后面扩容很痛苦。
- 型号推荐:Intel Xeon Silver/Gold系列,或者AMD EPYC系列。EPYC的性价比在虚拟化场景下确实能打。
我的经验:曾经有个项目为了省钱买了桌面级CPU,结果跑3台虚拟机就开始卡顿。后来换了Xeon Gold,同样的负载跑了12台还很稳。这笔钱不能省。
4.1.2 内存与存储
| 组件 | 最低配置 | 推荐配置 | 备注 |
|---|---|---|---|
| 内存 | 64GB | 128GB+ | ECC内存必须,RDIMM优先 |
| 系统盘 | 240GB SSD | 480GB NVMe | 用于安装Ubuntu Server |
| 数据盘 | 1TB HDD | 2TB+ NVMe/SSD | 存放虚拟机镜像和数据 |
| 网卡 | 1Gbps x2 | 10Gbps x2+ | 建议Intel X710或Mellanox |
嗯,这里要注意:数据盘强烈建议用NVMe SSD。我在项目中遇到过用SATA SSD跑数据库虚拟机,IO延迟高得离谱,换成NVMe后性能直接翻倍。
4.2 BIOS虚拟化设置
服务器买回来,第一件事不是装系统,是进BIOS。很多新手栽在这一步——系统装好了才发现虚拟化没开。
4.2.1 必须开启的选项
- Intel VT-x / AMD-V:通常在「Processor Configuration」或「CPU Configuration」下。
- VT-d:Intel的定向I/O虚拟化技术。如果你打算做PCIe直通,这个必须开。
- Execute Disable Bit (XD):硬件防溢出保护,建议开启。
- SR-IOV Support:如果网卡支持,开启后可以大幅提升网络性能。
避坑指南:我曾经在一台Dell R740上折腾了半小时,发现VT-x选项是灰色的。后来查手册才知道,必须先关闭「Trusted Execution Technology (TXT)」才能解锁VT-x。不同厂商的BIOS逻辑不一样,建议先看手册。
4.2.2 常见服务器BIOS路径
| 服务器品牌 | BIOS路径 | 关键选项 |
|---|---|---|
| Dell PowerEdge | System BIOS → Processor Settings | Virtualization Technology, VT-d |
| HPE ProLiant | System Configuration → BIOS/Platform Configuration | Intel (R) Virtualization Technology |
| Supermicro | Advanced → CPU Configuration | VMX, VT-d |
| Lenovo ThinkSystem | System Settings → Processors | Intel Virtualization Technology |
4.3 Ubuntu Server 22.04 LTS安装
系统安装这块,我推荐Ubuntu Server 22.04 LTS。为什么?因为它的内核版本新(5.15+),对KVM和Docker的支持非常成熟,而且社区活跃,遇到问题好找答案。
4.3.1 安装步骤
- 下载镜像:从ubuntu.com下载ubuntu-22.04.3-live-server-amd64.iso。
- 制作启动盘:用Rufus(Windows)或dd命令(Linux)写入U盘。
- 启动安装:选择「Try or Install Ubuntu Server」。
- 语言和键盘:默认English,键盘选US。
- 网络配置:先配一个临时IP,后面我们会详细规划。
- 磁盘分区:我建议手动分区,至少分三个区:
分区方案(推荐):
/boot - 1GB - ext4
/ - 50GB - ext4 (系统根目录)
/var - 100GB - ext4 (日志和虚拟机数据)
swap - 16GB - swap (内存的1-2倍)
/data - 剩余空间 - ext4 (虚拟机镜像存储)
我的习惯:把/var单独分区,因为虚拟机日志和快照文件都在这里。曾经有个同事没分/var,结果日志把根分区写满了,整个系统直接挂掉。嗯,血的教训。
- 设置用户名和密码:建议用强密码,或者直接配SSH密钥。
- 安装OpenSSH Server:勾选这个,方便后续远程管理。
- 安装完成,重启。
4.3.2 安装后基础配置
系统装好后,先做几件事:
# 更新系统
sudo apt update && sudo apt upgrade -y
# 安装常用工具
sudo apt install -y vim net-tools htop iotop curl wget
# 关闭防火墙(如果是在内网环境)
sudo ufw disable
# 设置主机名
sudo hostnamectl set-hostname hypervisor-01
4.4 网络规划
网络规划是虚拟化部署中最容易被低估的环节。你想想看,所有虚拟机之间的通信、对外服务、管理访问,全都要走网络。规划不好,后面全是坑。
4.4.1 网络架构设计
我推荐使用「管理网络 + 业务网络 + 存储网络」三网分离的方案。说白了就是物理上或逻辑上把三种流量隔开。
4.4.2 IP地址规划表
| 网络类型 | 网段 | 网关 | 用途 |
|---|---|---|---|
| 管理网络 | 192.168.1.0/24 | 192.168.1.1 | SSH管理、Web UI、监控 |
| 业务网络 | 10.0.0.0/24 | 10.0.0.1 | 虚拟机对外提供服务 |
| 存储网络 | 192.168.100.0/24 | 192.168.100.1 | NFS/iSCSI存储通信 |
| 虚拟机内部网络 | 172.16.0.0/16 | — | 虚拟机之间内部通信 |
注意:存储网络建议使用独立的物理网卡和交换机。我在项目中遇到过把存储流量和管理流量混在一起,结果一次大流量备份直接把管理SSH给卡死了。嗯,从那以后我再也不混用了。
4.4.3 Ubuntu网络配置
Ubuntu Server 22.04使用netplan管理网络。配置文件在/etc/netplan/目录下。
# /etc/netplan/00-installer-config.yaml
network:
version: 2
ethernets:
ens33:
dhcp4: no
addresses:
- 192.168.1.10/24
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 114.114.114.114]
ens34:
dhcp4: no
addresses:
- 10.0.0.10/24
ens35:
dhcp4: no
addresses:
- 192.168.100.10/24
# 应用配置
sudo netplan apply
小技巧:配置完netplan后,用sudo netplan try先测试,如果SSH没断再apply。我曾经手滑写错网关,结果远程服务器直接失联,只能跑机房去接显示器。别问我怎么知道的。
4.5 验证环境
所有配置完成后,做一次快速验证:
# 检查CPU虚拟化支持
grep -E "vmx|svm" /proc/cpuinfo
# 检查内存
free -h
# 检查磁盘
lsblk
# 检查网络连通性
ping -c 4 192.168.1.1
ping -c 4 10.0.0.1
ping -c 4 192.168.100.1
如果以上命令都正常输出,恭喜你,环境准备阶段就完成了。接下来我们就可以开始安装Hypervisor和部署虚拟机了。