从零到一:在ESXi 6.7上构建Ubuntu 22.04 Server生产环境
1. 环境准备与镜像获取
在开始构建生产环境之前,我们需要做好充分的准备工作。首先确保你的ESXi 6.7主机已经正确安装并联网,建议至少预留50GB存储空间和4GB内存用于Ubuntu Server的部署。我遇到过不少因为资源不足导致安装失败的案例,所以提前规划好资源分配很重要。
1.1 获取Ubuntu 22.04 LTS镜像
Ubuntu 22.04 LTS(长期支持版)是最适合生产环境的版本,它提供了5年的安全更新支持。我推荐从阿里云镜像站下载,速度会比官网快很多:
http://mirrors.aliyun.com/ubuntu-releases/22.04/下载时注意选择ubuntu-22.04-live-server-amd64.iso这个标准服务器版本。曾经有同事误下载了桌面版,结果浪费了半天时间才发现问题。文件大小约1GB左右,下载完成后记得校验SHA256值:
echo "5e38b55d57d94ff029719342357325ed3bda38fa80054f9330dc789cd2d43931 *ubuntu-22.04-live-server-amd64.iso" | shasum -a 256 --check1.2 上传镜像到ESXi存储
登录ESXi管理界面后,按照这个流程操作:
- 进入"存储" → "数据存储浏览器"
- 新建名为
iso的目录(保持命名规范很重要) - 点击"上传"按钮,选择下载好的ISO文件
这里有个实用技巧:如果网络不稳定导致上传中断,可以使用ESXi命令行工具scp直接传输:
scp ubuntu-22.04-live-server-amd64.iso root@esxi-host:/vmfs/volumes/datastore1/iso/2. 创建虚拟机的最佳实践
2.1 虚拟机规格设计
点击"创建/注册虚拟机"开始配置,这里有几个关键参数需要特别注意:
| 参数项 | 生产环境推荐值 | 说明 |
|---|---|---|
| 虚拟机版本 | ESXi 6.7虚拟机 | 兼容性最佳 |
| 客户机OS类型 | Linux/Ubuntu 64位 | 必须准确选择 |
| CPU | 2核以上 | 建议开启硬件虚拟化 |
| 内存 | 4GB起步 | 根据实际负载调整 |
| 磁盘 | 50GB厚置备延迟置零 | 确保性能和数据安全 |
| 网络适配器 | VMXNET3 | 比E1000性能提升30%以上 |
我在实际项目中发现,使用VMXNET3网卡能让网络吞吐量显著提升,特别是在高并发场景下。
2.2 高级配置技巧
展开"虚拟机选项"标签页,有两个重要设置:
- 引导选项 → 固件改为"EFI"(未来兼容性更好)
- 高级 → 配置参数中添加:
monitor_control.restrict_backdoor = "TRUE"
这个参数可以增强虚拟机安全性,防止某些恶意软件利用VMware后门。安装完成后记得移除ISO挂载,否则下次启动会进入安装循环。
3. 系统安装与生产级配置
3.1 安装过程关键步骤
启动虚拟机后,你会看到Ubuntu安装界面。以下是需要特别注意的配置点:
网络配置:强烈建议使用静态IP
ens33: Method: Manual Address: 192.168.1.100/24 Gateway: 192.168.1.1 DNS: 8.8.8.8 114.114.114.114磁盘分区:选择LVM方案
- /boot: 1GB
- swap: 内存的1.5倍(针对生产环境优化)
- /: 剩余空间的70%
- /var: 20%(日志密集型应用可适当增加)
- /home: 10%
软件选择:务必勾选:
- OpenSSH server
- Standard system utilities
3.2 安全加固措施
安装完成后立即执行以下命令:
# 更新系统 sudo apt update && sudo apt upgrade -y # 配置防火墙 sudo ufw allow ssh sudo ufw enable # 禁用root远程登录 sudo sed -i 's/PermitRootLogin yes/PermitRootLogin prohibit-password/' /etc/ssh/sshd_config sudo systemctl restart sshd我曾经遇到过因为没及时更新导致的安全漏洞,所以这些操作一定要在联网后第一时间完成。
4. 生产环境优化配置
4.1 网络性能调优
编辑/etc/sysctl.conf添加以下参数:
net.core.rmem_max=4194304 net.core.wmem_max=4194304 net.ipv4.tcp_keepalive_time=600 net.ipv4.tcp_fin_timeout=30然后执行sudo sysctl -p生效。这些参数特别适合Web服务器环境,能显著提升TCP连接性能。
4.2 资源监控设置
安装常用的监控工具:
sudo apt install -y htop iotop iftop nmon配置日志轮转(编辑/etc/logrotate.conf):
weekly rotate 8 compress delaycompress notifempty4.3 备份方案实施
设置每日自动备份(编辑/etc/crontab):
0 2 * * * root tar -zcpf /backups/$(date +\%Y\%m\%d).tar.gz --exclude=/backups --exclude=/proc --exclude=/sys --exclude=/dev --exclude=/mnt --exclude=/media --exclude=/run --exclude=/tmp /记得创建备份目录并测试恢复流程:
sudo mkdir /backups sudo chmod 700 /backups5. 常见问题排查
5.1 网络连接失败
如果安装后无法联网,检查以下位置:
- ESXi虚拟交换机配置
- 虚拟机端口组VLAN设置
- Ubuntu网络配置文件:
/etc/netplan/00-installer-config.yaml
5.2 性能瓶颈分析
使用这套命令组合快速诊断:
# CPU mpstat -P ALL 1 5 # 内存 free -h # 磁盘 iostat -x 1 5 # 网络 nicstat 1 55.3 系统日志审查
关键日志文件位置:
/var/log/syslog:系统主日志/var/log/auth.log:认证相关/var/log/kern.log:内核消息/var/log/cloud-init.log:初始化日志
使用journalctl -xe可以查看详细的系统服务日志,配合grep过滤关键信息能快速定位问题。
