Proxmox VE 9.1 新特性解析:OCI镜像直接创建LXC容器、精细化嵌套虚拟化控制

本文深入介绍了Proxmox VE 9.1版本的重要更新,包括直接从OCI镜像创建LXC容器、以QCOW2格式存储vTPM状态以实现快照兼容性、精细化的嵌套虚拟化CPU标志控制、改进的软件定义网络界面以及核心组件更新。

Proxmox VE 9.1:从OCI镜像创建LXC容器,精细的嵌套虚拟化CPU控制等

在之前的博客文章中,我回顾了Proxmox VE 9.0的新功能。Proxmox VE 9.1带来了多项重要的升级,包括能够直接从OCI(开放容器倡议)镜像创建LXC容器,无需单独的LXC模板。该版本还引入了基于qcow2的TPM状态存储,以实现完全支持快照的vTPM设置,并增加了精细化的嵌套虚拟化CPU标志控制,使虚拟化更加灵活。除了改进的SDN界面和核心组件更新,这些增强功能显著减少了管理摩擦,简化了虚拟机和容器管理。

从OCI镜像创建LXC容器

如果您的CI流水线生成了OCI镜像,您可以在容器主机上运行它,或将其转换为传统的LXC模板。历史上,将相同的构建产物部署到LXC需要重新构建或管理不同的产物。从Proxmox VE 9.1开始,您可以直接从OCI镜像或注册表创建LXC容器。这一改变最小化了容器构建产物与Proxmox之间的重复。

要亲自尝试,请选择OCI镜像的存储位置,点击“CT模板”,然后选择“上传”或“从OCI注册表拉取”,如下面的截图所示。

一旦OCI镜像在Proxmox存储中可用,点击“创建CT”启动容器创建向导。在模板选项卡上,选择存储和OCI镜像来创建容器。

Proxmox VE 9.1支持使用OCI镜像运行系统和应用容器。请注意,应用容器目前处于技术预览阶段。请记住,并非所有OCI镜像都能生成完整的系统容器;应用容器运行单个服务,而系统容器包含根文件系统、初始化系统和附加工具。在Proxmox上从OCI镜像创建的容器继续在LXC框架内运行。

以QCOW2格式存储TPM状态

以前,为虚拟机使用虚拟可信平台模块(vTPM)通常需要选择支持快照的存储,例如ZFS、BTRFS或LVM-thin。如果vTPM状态以原始文件形式存储在缺乏快照支持的存储上,您将无法对该虚拟机创建快照。这对于使用BitLocker或基于虚拟化的安全(VBS)的Windows虚拟机尤其成问题。在Proxmox 9.1中,vTPM状态现在可以存储在QCOW2磁盘中。创建虚拟机时,TPM存储下将出现一个新的格式字段,如下面的截图所示。

此外,如果您的存储后端支持卷链快照(这是在Proxmox VE 9.0中作为技术预览引入的功能),Proxmox 9.1现在允许对带有虚拟TPM的虚拟机进行离线快照。以前这是不可行的,因为TPM状态存储在原始磁盘上,而原始磁盘不支持快照。

下面的截图显示,我的Windows 11虚拟机的TPM状态以qcow2格式存储在目录存储中,并且我成功创建了快照而没有错误。如果TPM状态是原始格式,我会遇到“快照功能不可用”的错误。

如果您有一个虚拟机,其TPM状态以原始格式存储在基于目录的存储上,并且这一直阻碍快照创建,您现在可以将TPM状态磁盘转换为qcow2格式。请谨慎操作,因为修改TPM状态可能会导致虚拟机无法启动或引起BitLocker/安全启动问题。在更改任何TPM配置之前,请务必备份重要的虚拟机。

精细的嵌套虚拟化控制

嵌套虚拟化曾经是一个生硬的设置:要么暴露主机CPU,要么尝试模拟一个更新的CPU型号,这在旧硬件上经常会失败。当客户机虚拟机因为模拟的CPU缺少主机CPU的某些功能而无法启动时,这会导致挫败感。管理员发现这尤其麻烦——每当一个虚拟机需要嵌套虚拟化(例如用于Hyper-V)时,他们必须将CPU设置为‘host’,这授予虚拟机所有CPU功能,有时超出了必要。

Proxmox VE 9.1引入了一个新的nested-virt标志,可以添加到指定的CPU模型中。这允许您有选择地仅暴露虚拟化扩展,同时模拟特定的CPU模型。当您需要在客户机中特定的CPU指纹,同时仍然支持嵌套虚拟化时,这非常有用。要启用此标志,请将客户虚拟机的CPU类型设置为与您主机CPU的供应商和型号匹配。例如,如果您的主机有Intel CPU,请从列表中选择一个Intel CPU,如截图所示。

或者,您可以使用以下命令启用nested-virt标志:

1
qm set 107 -cpu Icelake-Server,flags=+nested-virt

107替换为您的虚拟机ID,将Icelake-Server替换为与您主机CPU相似的型号。要禁用此标志,请将+nested-virt替换为-nested-virt,或者直接省略flags参数。

如果您选择了一个您的硬件无法模拟的CPU类型,Proxmox将阻止虚拟机启动。在这种情况下,只需使用-cpu host。此选项暴露您的处理器支持的所有功能,并且与几乎所有系统兼容。

更好的SDN视图

使用EVPN、VRF或路由结构的高级网络通常需要使用IP、网桥或供应商特定工具进行手动故障排除。以前,Proxmox GUI对哪个客户机连接到哪个网络以及学习到的地址提供的洞察有限。Proxmox 9.1中的新SDN UI现在显示连接到网桥或VNet的客户机,显示EVPN学习到的MAC和IP,并在资源树中高亮显示结构、路由和邻居。这一增强减少了管理复杂拓扑、调试和故障排除所需的时间。

核心更新

除了上述功能,Proxmox VE 9.1还包括对几个核心组件的更新。其中大部分是内部的,但值得回顾一下,因为一些更新可能对您的环境或特定用例特别有益。

  • 基于: Debian 13.2 (Trixie)
  • 内核: Linux 6.17.2
  • QEMU: 10.1.2
  • LXC: 6.0.5
  • ZFS: OpenZFS 2.3.4
  • Ceph: Squid 19.2.3

除了这些主要功能,Proxmox VE 9.1在整个平台中提供了许多修复和改进。用户将注意到HA管理器更可靠的性能、更无缝的备份和恢复过程,以及对集群和单个节点管理的几项增强。

已知问题

Proxmox VE 9.1包含Linux 6.17内核,该内核增强了性能,改进了硬件兼容性,并解决了使用ice驱动且MTU为9000的Intel网卡的内存泄漏问题。尽管如此,这个新内核也可能存在一些已知问题。

  • 与NVIDIA vGPU驱动程序的兼容性问题
  • 与LINSTOR/DRBD模块的兼容性问题
  • 在某些Dell PowerEdge服务器上引导至Kernel 6.17时的潜在问题

如果您正在使用任何这些,建议延迟内核更新。您可以通过执行以下命令将内核锁定到版本6.14,这将阻止您的服务器引导至6.17内核。

1
2
3
4
5
# 列出可用的内核版本
proxmox-boot-tool kernel list

# 固定特定的内核版本
proxmox-boot-tool kernel pin <version>

当这些问题在未来的更新中得到解决时,请记住通过执行proxmox-boot-tool kernel unpin命令来解除内核固定,以确保您可以引导至最新版本。

升级到Proxmox 9.1

升级前请务必备份虚拟机和容器。要更新您的Proxmox VE主机,选择节点,转到“更新”,然后点击“刷新”以检查可用更新。您将看到类似Proxmox VE 9.1的更新,如下面的截图所示。

点击“升级”按钮开始安装。在过程中,将出现弹出窗口,要求您选择控制台编码和键盘布局。安装成功后,重新启动系统以使用Proxmox VE 9.1的新功能。

结论

Proxmox VE 9.1解决了管理员面临的关键问题。LXC的OCI支持简化了与CI流水线的集成。用于TPM状态的qcow2格式使得无需转移存储即可对安全敏感的客户机进行快照。增强的嵌套虚拟化控制和SDN可见性有助于减少故障排除工作。

如果您在实验室或生产环境中使用Proxmox VE,值得评估9.1版本。升级过程简单,新功能提供了即时好处。您可以考虑先在非关键节点上测试升级,以探索新功能。当您准备好后,可以继续将所有节点升级到Proxmox VE 9.1。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计