头图

折腾手记:PVE启动!

从ESXI到PVE的折腾续篇

书接上回,上篇文章分享了从ESXI转向PVE的决策过程,这篇就来详细聊聊PVE实际操作中的各种折腾经历,从系统安装到服务部署,再到那些让人头大的BUG排查,希望能给同样在折腾的朋友一些参考。

一、PVE系统安装与基础配置

准备工作

下载了最新的PVE 9.1.2镜像,通过Ventoy制作了启动盘。Ventoy确实方便,一个U盘就能搞定多个系统镜像的引导,省去了反复格式化的麻烦。安装过程比较顺利,按照官方文档一步步操作,选择了默认的LVM分区方案,毕竟后续还要扩展存储。

PVE毕竟是基于Debian设计的逻辑操作起来还是要方便不少的,自身的shell也是可以直机连接,而ESXI还需要在本地开启root密码连接,对于个人玩家来说确实更方便一些。

2025-12-15T08:01:29.webp
2025-12-15T08:01:29.webp

脚本一键配置

安装完成后第一件事就是用PVE-Tools-9脚本做基础优化,这个脚本确实省了不少事:

  • 一键更换清华源,解决了官方源下载慢的问题
  • 移除了烦人的订阅弹窗
  • 自动配置了一些基础优化参数
  • 开启了硬件直通所需的IOMMU支持

执行方法很简单:

wget https://raw.githubusercontent.com/Mapleawaa/PVE-Tools-9/main/PVE-Tools.sh
chmod +x PVE-Tools.sh
sudo ./PVE-Tools.sh

脚本界面交互友好,按照提示选择需要的功能即可,新手也能轻松上手。特别推荐使用它的"系统更新"和"硬件直通配置"功能,比手动操作省心多了(目前shell脚本已经达到一定上限了,据作者说已经在转Go语言了,只有Intel核显直通可以用)。

PVE-Tools-9脚本使用界面
PVE-Tools-9脚本使用界面

二、存储扩展与虚拟机迁移

LVM存储扩展

我的机器上有两块500G硬盘,需要将它们加入到PVE的存储中。通过PVE的Web界面中节点的shell操作进行LVM扩展:

  1. 先在数据中心->存储中确认当前存储情况
  2. 进入节点->磁盘,找到新硬盘并初始化
  3. 使用pvcreate创建物理卷,vgextend扩展卷组
  4. 最后用lvextend将空间分配给local存储
    关于lvm的使用可以直接点击左侧卡片中的Linux命令搜索自行查询使用(这也是个开源项目喜欢的可以通过访问作者的仓库自行部署)。

Linux命令搜索
Linux命令搜索

这样就把两块硬盘的空间都整合到了PVE的存储池里,后续创建虚拟机就方便多了。

虚拟机迁移体验

从ESXI导出了两个主要的VMDK镜像:iStoreOS和RockyLinux。

iStoreOS的导入非常顺利:

  • 新建虚拟机时选择"导入磁盘镜像"
  • 直接选择VMDK文件,PVE会自动转换格式
  • 启动后无需任何配置就能正常运行
    类似这样-添加硬盘选择vmdk文件即可-和ESXI中很像
    类似这样-添加硬盘选择vmdk文件即可-和ESXI中很像

但RockyLinux的迁移就遇到了麻烦:

  • 导入后启动卡在引导阶段
  • 更换不同的BIOS/UEFI模式又卡到了新的阶段

考虑到这台机器上的数据不多,最终决定放弃迁移,直接新建虚拟机重新部署。这次选择了 RockyLinux 9 的ISO重新安装,然后部署了MCSM面板和我的世界服务端整合包。

三、运行中的问题与排查

服务端崩溃与系统死机

新环境运行几天后发现了两个严重问题:

  1. MC服务端会不定期崩溃
  2. 偶尔会出现PVE主机直接死机的情况

首先查看MC服务端日志,发现了明显的OOM(内存溢出)错误,起初以为是分配的资源不足,于是给虚拟机增加了内存,但问题依旧。

直到有一次PVE主机死机后,重启查看系统日志,发现了这样的错误信息:

BUG: unable to handle page fault for address: 00000000000fff8b
#PF: supervisor write access in kernel mode
#PF: error_code(0x0002) - not-present page

这明显是系统级别的内存错误,结合之前的服务端崩溃,开始怀疑是不是PVE的内存管理配置有问题。

动态内存配置问题

回想在ESXI中,只需要设置好虚拟机的内存大小和预留内存即可稳定运行,但PVE在这方面有差异。查阅资料后发现,PVE的动态内存管理需要配合qemu-guest-agent才能正常工作:

  1. 配置内存气球(Balloon)功能:

    • 在硬件->内存设置中
    • 勾选"启用内存气球"
    • 根据需要设置最小内存和最大内存
  2. 在PVE的虚拟机配置中启用QEMU Guest Agent:

    • 进入虚拟机->选项->QEMU Guest Agent
    • 勾选"启用"选项
    • 重启虚拟机使配置生效
  3. 首先需要在虚拟机中安装qemu-guest-agent:

    # RockyLinux/CentOS
    yum install qemu-guest-agent -y
    systemctl enable --now qemu-guest-agent
    
    # Debian/Ubuntu
    apt install qemu-guest-agent -y
    systemctl enable --now qemu-guest-agent

完成这些配置后,系统已经稳定运行了一段时间,暂时没有再出现死机和服务崩溃的情况,看来问题确实出在动态内存配置上。

四、总结与后续计划

从ESXI转到PVE的过程虽然有些波折,但整体还是顺利的。PVE的Web界面虽然不如ESXI华丽,但功能更丰富,自定义程度也更高。PVE-Tools-9脚本极大简化了初期配置工作,非常推荐新手使用。

目前还在持续测试中,主要关注:

  1. 内存配置优化后的系统稳定性
  2. 硬件直通功能的实际应用效果

如果你也在考虑从ESXI转向PVE,建议提前做好数据备份,预留足够的时间解决可能出现的兼容性问题。PVE的社区资源很丰富,遇到问题多搜索多尝试,大部分问题都能找到解决方案。

后续会继续分享PVE的硬件直通等内容,感兴趣的朋友可以持续关注收藏网页。

折腾手记:PVE启动!
https://reeskysui.xyz/index.php/archives/73/
本文作者 明关
发布时间 2025-12-15
许可协议 CC BY-NC-SA 4.0
发表新评论