在VMware ESXi上部署Proxmox VE的实战指南
1. 为什么要在VMware ESXi上跑Proxmox VE?
很多技术爱好者可能都会有这样的疑问:既然已经有了VMware ESXi这个成熟的虚拟化平台,为什么还要在上面再部署一个Proxmox VE呢?这个问题其实很有意思。我刚开始接触这个方案时也有同样的困惑,直到实际用起来才发现其中的妙处。
首先,Proxmox VE作为开源的虚拟化管理平台,提供了很多ESXi没有的功能。比如它内置的LXC容器支持就比ESXi的容器方案要完善得多。我在测试环境中发现,同样的应用跑在LXC容器里,资源占用能比虚拟机少30%以上。而且Proxmox的Web管理界面整合了存储、网络、备份等所有功能,操作起来特别顺手。
其次,这种"套娃"式的部署方式特别适合学习和测试。比如你想体验Proxmox的功能,但又不想专门准备一台物理服务器,这时候在现有的ESXi环境里部署就是个完美的解决方案。我自己的开发环境就是这么搭建的,ESXi作为底层提供稳定的硬件虚拟化支持,Proxmox VE则负责运行各种测试用的虚拟机和容器。
最后也是最重要的,这种方案能充分发挥两个平台的各自优势。ESXi的稳定性和性能有目共睹,而Proxmox VE的开源特性和丰富功能又能弥补ESXi的不足。特别是在需要同时管理虚拟机和容器的场景下,这个组合简直完美。
2. 准备工作:下载镜像和检查环境
2.1 获取Proxmox VE安装镜像
工欲善其事,必先利其器。在开始安装前,我们需要准备好Proxmox VE的安装镜像。这里有个小技巧分享给大家:建议直接从Proxmox官网下载最新稳定版ISO,避免使用第三方修改的版本。
具体操作步骤:
- 打开浏览器访问Proxmox官网的下载页面
- 找到"Proxmox Virtual Environment"板块
- 选择最新稳定版的ISO镜像下载(目前最新是7.4版本)
- 建议同时下载SHA256校验文件,确保下载的镜像完整无误
我实测下载速度还不错,大概20分钟就能下完。如果网络环境不太理想,可以考虑用下载工具或者换个时间段再试。
2.2 检查ESXi环境配置
在ESXi上跑Proxmox VE,有几个关键配置需要特别注意:
首先是CPU虚拟化支持。虽然ESXi本身已经启用了硬件虚拟化,但为了让Proxmox VE里的虚拟机也能获得最佳性能,我们需要确保:
- 在BIOS中开启Intel VT-x或AMD-V功能
- ESXi主机的CPU支持嵌套虚拟化
- 在ESXi高级设置中启用vhv.enable参数
检查方法很简单,通过SSH登录ESXi主机,执行:
esxcli system settings advanced list -o /VMkernel/Boot/hypervisor如果返回值是"TRUE",说明嵌套虚拟化已启用。
其次是存储空间。Proxmox VE安装需要至少32GB磁盘空间,但考虑到后续要创建虚拟机,建议分配100GB以上。我一般会专门创建一个datastore给Proxmox使用,这样管理起来更方便。
最后是网络配置。建议为Proxmox VE准备至少两个网络接口:
- 一个用于管理流量(建议用VMkernel端口)
- 一个用于虚拟机流量(可以用标准交换机)
3. 创建Proxmox VE虚拟机
3.1 新建虚拟机基础配置
现在进入正题,开始在ESXi上创建Proxmox VE虚拟机。这个过程和创建普通Linux虚拟机类似,但有几个关键点需要注意:
- 在ESXi Web管理界面点击"创建/注册虚拟机"
- 选择"创建新虚拟机",类型选"Linux"
- 版本选择"Ubuntu Linux (64位)"(虽然Proxmox基于Debian,但这样选兼容性最好)
- 给虚拟机取个有意义的名字,比如"pve-node01"
- 存储位置选择之前准备好的datastore
在配置硬件时,建议按以下规格分配:
- CPU:至少4核(如果要在Proxmox里再跑虚拟机,建议8核以上)
- 内存:最少8GB,推荐16GB
- 硬盘:系统盘100GB(类型选厚置备延迟置零)
- 网卡:VMXNET3(性能最好)
这里有个我踩过的坑要提醒大家:一定要记得勾选"预留所有客户机内存",否则Proxmox里的虚拟机可能会因为内存不足无法启动。
3.2 安装Proxmox VE系统
虚拟机创建好后,接下来就是安装系统了:
- 右键点击新建的虚拟机,选择"编辑设置"
- 在CD/DVD驱动器处选择"数据存储ISO文件"
- 上传之前下载的Proxmox VE ISO镜像并选中
- 确保"启动时连接"选项已勾选
- 启动虚拟机,就会进入Proxmox安装界面
安装过程其实很简单,基本上就是一路Next:
- 同意许可协议
- 选择安装目标磁盘(就选我们分配的100G那个)
- 设置国家、时区和键盘布局
- 配置root密码和管理邮箱(这个邮箱很重要,用于接收通知)
- 设置网络,包括主机名、IP地址、网关和DNS
这里特别要注意网络配置。建议使用静态IP而不是DHCP,因为Proxmox服务器需要固定的IP地址。我一般会把它放在管理网段,比如192.168.1.100/24这样的地址。
安装完成后,系统会提示重启。记得在重启前弹出ISO镜像,否则又会进入安装界面。
4. 初始配置和网络调优
4.1 首次登录和基本设置
系统重启后,你会看到Proxmox VE的命令行登录界面。用root账号和之前设置的密码登录后,第一件事就是更新系统:
apt update && apt dist-upgrade -y更新完成后,就可以通过浏览器访问Proxmox的Web管理界面了。地址是https://你设置的IP:8006。首次登录时会提示证书不安全,这是正常的,点击继续即可。
登录后我建议立即做以下几件事:
- 在"数据中心"→"权限"→"用户"中添加新管理员账号
- 在"数据中心"→"存储"中添加额外的存储空间
- 检查系统→网络配置是否正确
4.2 网络性能优化
在ESXi上跑Proxmox VE,网络配置是个重点也是难点。根据我的经验,以下几个优化措施效果显著:
首先是网卡类型选择。在ESXi虚拟机设置中,一定要选VMXNET3这个类型,它的性能最好。如果发现网络速度不理想,可以尝试以下命令优化参数:
ethtool -K eth0 tx off rx off sg off tso off gso off其次是启用巨帧。如果你的网络设备支持,建议将MTU设置为9000:
ip link set eth0 mtu 9000最后是防火墙配置。Proxmox默认的防火墙规则比较严格,如果只是内网使用,可以考虑适当放宽:
iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT iptables -F5. 常见问题排查
5.1 虚拟机无法启动问题
在Proxmox VE里创建虚拟机时,可能会遇到无法启动的情况。最常见的原因是嵌套虚拟化没配置好。检查方法是在Proxmox的shell中执行:
cat /proc/cpuinfo | grep vmx如果没有任何输出,说明嵌套虚拟化没生效。
解决方法是在ESXi主机的SSH中执行:
vim-cmd vmsvc/getallvms 找到Proxmox虚拟机的ID vim-cmd vmsvc/get.summary ID | grep hw如果发现vhv.enable是false,需要关闭虚拟机后执行:
vim-cmd vmsvc/reload ID5.2 网络连接问题
另一个常见问题是Proxmox VE里的虚拟机无法访问外网。这通常是因为ESXi的端口组配置问题。解决方法:
- 登录ESXi管理界面
- 进入网络→虚拟交换机
- 找到Proxmox使用的端口组
- 编辑设置,确保"混杂模式"、"MAC地址更改"和"伪传输"都设置为接受
如果还是不行,可以尝试在Proxmox的网络配置中添加一个Linux Bridge:
auto vmbr1 iface vmbr1 inet manual bridge_ports none bridge_stp off bridge_fd 06. 进阶技巧:在Proxmox VE中部署OpenWRT
6.1 准备OpenWRT镜像
在Proxmox VE里跑OpenWRT软路由是个很实用的方案。首先需要下载OpenWRT镜像:
- 访问OpenWRT官网下载页面
- 选择最新稳定版的x86_64镜像
- 下载combined-ext4.img.gz格式的镜像
下载完成后解压:
gunzip openwrt-23.05.2-x86-64-generic-ext4-combined-efi.img.gz6.2 创建OpenWRT虚拟机
在Proxmox中创建OpenWRT虚拟机有特殊技巧:
- 新建虚拟机时不使用任何ISO
- 系统类型选Linux,版本选5.x
- 删除默认的硬盘
- 在硬件中添加串行端口(用于控制台访问)
然后通过命令行导入镜像:
qm importdisk 100 openwrt-23.05.2-x86-64-generic-ext4-combined-efi.img local-lvm导入完成后,在虚拟机硬件设置中添加这个磁盘,并设置为启动设备。
6.3 配置OpenWRT网络
启动OpenWRT虚拟机后,需要通过控制台进行初始配置:
- 修改网络配置:
vi /etc/config/network- 设置LAN口IP(要和Proxmox管理网络同网段)
- 重启网络服务:
/etc/init.d/network restart- 设置root密码:
passwd最后在Proxmox的网络设置中,将OpenWRT的网卡桥接到正确的端口组上。这样所有经过Proxmox的流量都可以被OpenWRT路由了。
