【虚拟化技术 03】Xen 为何被 KVM 淘汰?低价 VPS 虚拟化路线图的十年更迭

从 AWS 弃用 Xen 转向 KVM 说起,讲清 Xen(PV/HVM)与 KVM 的架构差异、OpenVZ 为何消亡、如今低价 VPS 为何几乎全是 KVM,以及这对你选购和重装系统意味着什么。

结论先说在前面:如果你今天去买一台低价 VPS,几乎一定会拿到 KVM 架构的机器,Xen 和 OpenVZ 已经基本退出这个市场。这个变化不是厂商偷懒,而是 AWS 在 2017 年带头把 EC2 从 Xen 迁到自研的 KVM 方案后,整个行业跟着转向的结果。Xen 在技术上有它的优势,但维护成本太高、无法跟上容器化时代的需求;OpenVZ 则因为共享内核,直接被 Docker 和 WireGuard 这类现代负载排除在外。下面把来龙去脉讲清楚,顺便告诉你买机器时该怎么认标签、避开坑。

延伸阅读

更多相关攻略推荐:Ollama AI系列(2):VPS上的AI推理与API应用Ollama AI系列(2):VPS上的AI推理与API应用【CPU选型 01】搭载 AMD Ryzen 9950X 的 VPSARM / Ampere 席卷 VPS:性价比真香还是兼容陷阱?Ollama AI系列(2):VPS上的AI推理与API应用

一、Xen 与 KVM 架构对比:半虚拟化 vs 硬件辅助全虚拟化

要理解为什么 Xen 会输,得先看两种技术本来长什么样。它们解决的是同一个问题——在一台物理机上同时跑多个互相隔离的客户操作系统,但底层思路完全不同。

Xen 是一个真正的裸金属(Type 1)虚拟机监控器。它直接装在硬件上,自己先启动,然后创建一个特权管理域叫 Dom0,由 Dom0 负责设备驱动、硬件访问和调度其他客户机。真正跑业务的客户虚拟机叫 DomU,它们没有特权,所有硬件请求都要经过 Dom0 中转。这种"微内核"设计的好处是 Hypervisor 本体非常小,代码量比一整套 Linux 内核少得多,攻击面随之缩小,审计和维护起来更可控。

KVM 的路线相反。它本质上是Linux 内核里的一个模块(/dev/kvm),把 Linux 内核直接变成了一个虚拟机监控器。每个客户虚拟机在宿主机看来就是一个普通的 Linux 进程,由内核调度器(配合 cgroups)去分配 CPU、内存和 I/O。硬件模拟交给 QEMU,磁盘和网络的性能优化则用 VirtIO 这套半虚拟化驱动。因为 KVM 寄生在 Linux 内核里,它天然就能享受内核里所有成熟的调度、内存管理和驱动生态。

两者对"虚拟化方式"的选择也不同。Xen 早期靠半虚拟化(PV)出名:客户机内核要打补丁、主动知道自己跑在虚拟环境里,以此绕开昂贵的指令模拟,性能很好,但代价是客户机内核必须配合。后来 CPU 普遍支持 Intel VT-x / AMD-V 这种硬件辅助虚拟化后,Xen 也支持全虚拟化(HVM),可以跑未修改的内核。KVM 则一开始就是硬件辅助全虚拟化为主,再叠加 VirtIO 做 I/O 半虚拟化。换句话说,KVM 默认就能跑任何未改过的系统镜像(包括 Windows、FreeBSD),而老式 Xen PV 对内核有要求。

对比维度XenKVM
所在层级裸金属微内核 HypervisorLinux 内核模块
客户机形态DomU(无特权域)普通 Linux 进程
虚拟化模式PV 半虚拟化 + HVM 全虚拟化硬件辅助全虚拟化 + VirtIO
调度来源自带调度器(Credit2 / RTDS 等)复用 Linux 调度器 + cgroups
驱动与生态依赖 Dom0,工具栈独立(XAPI / XCP-ng)复用整套 Linux 驱动与生态
嵌套虚拟化支持有限、看硬件成熟稳定

从运维角度看,KVM 最大的杀手锏是简单:在一台标准 Linux 上加载内核模块就能用,和既有发行版的更新节奏、运维流程完全一致;而 Xen 要装独立 Hypervisor、配 Dom0、再上专属工具栈,层次更多,维护更重。在云厂商追求快速迭代、海量节点统一管理的背景下,这一点被无限放大。

二、历史节点:AWS 弃 Xen 转 Nitro/KVM,Citrix 转向,低价厂商统一 KVM

真正让 Xen 在公众视野里"掉队"的转折点,是 AWS。早期 EC2 跑的是高度定制的 Xen,这也是 Xen 当年最光鲜的招牌。但 AWS 后来发现 Xen 的 Dom0 管理虚拟机会和业务虚机抢宿主资源,Hypervisor 本身也要管 CPU、存储、网络、管理功能,过于笨重,限制了 EC2 的增长潜力。

AWS 的解法是自研 Nitro 系统:把网络(VPC)、存储(EBS)、安全这些功能卸载(offload)到专用的 Nitro 硬件卡上,Hypervisor 本身被大幅削弱,只负责最精简的 CPU 和内存分配。关键的迁移里程碑是这样的:

  • 2013 年:C3 实例首次用上定制芯片(来自 Annapurna Labs 的网络接口),但 Hypervisor 仍是传统架构。
  • 2015 年:C4 把网络虚拟化卸载到定制硬件;同年 AWS 收购了以色列公司 Annapurna Labs。
  • 2017 年 11 月:发布 C5 实例,首次用基于 KVM 的 Nitro Hypervisor 替换 Xen,彻底移除 Xen 的 Dom0,宿主资源被极大释放;同期发布首个裸金属实例 i3.metal。

从这时起,AWS 第四代及更早的实例还跑在 Xen 上,第五代及以后、加上自研的 Graviton 实例,全部基于 KVM/Nitro。对 AWS 来说,这带来了接近裸金属的性能,以及更简单的软件栈。对其他云和 VPS 厂商来说,AWS 用真金白银验证了"KVM + 硬件卸载"这条路走得通,行业风向就此转变。

与此同时,Xen 背后的商业力量也在收缩。Citrix 早年把 XenServer 作为重要产品线,但后来战略重心调整,Xen 相关的企业虚拟化业务几经转手与重整,社区层面的热度明显不如 KVM 生态。如今 Xen 主要活在几个特定角落:汽车电子等安全关键(safety-critical)场景(因为代码量小、更容易做安全认证)、嵌入式实时负载,以及 Qubes OS 这类强调强隔离的桌面安全系统,还有 XCP-ng 这样的开源 Xen 发行版。换句话说,Xen 没有"死",只是离开了通用 VPS 这个主战场。

低价 VPS 厂商的转向更直白。以搬瓦工BandwagonHost)为例,它在 2019 年宣布停止销售 OpenVZ 套餐、全面转向 KVM;维护两套架构的人力成本太高,而 OpenVZ 用户占比又在下降,继续养着不划算。类似的,Hostinger 等厂商也陆续宣布在 2025—2026 年淘汰 OpenVZ VPS,换成 KVM。到 2026 年,主流低价厂商的套餐页几乎清一色写着 KVM。

三、OpenVZ 为何消亡:内核锁定、cgroup 冲突、跑不了 Docker/k8s

如果说 Xen 是"被更复杂的维护成本拖慢",那 OpenVZ 就是"被自己的架构决定了上限"。OpenVZ 根本不是传统意义上的虚拟机,它是操作系统级容器:同一台宿主机上的所有 VPS 共享同一个宿主机内核,彼此之间只是被内核的命名空间和资源配额隔开。正因为共享内核、几乎没有额外抽象层,它的密度极高、开销极低——一台机器能塞下比 KVM 多得多的实例,所以早年能做出几美元甚至一两美元的超低价套餐。

但共享内核这个"优点"恰恰是它后来的死穴,主要有三道坎:

  • 内核锁定,无法加载内核模块:你没有自己的内核,自然不能装 WireGuard 这类需要特定内核模块或最低内核版本的软件,也不能改内核参数。宿主机跑什么版本的内核,你就永远被锁在那个版本,通常由厂商为了稳定而停留在较老的长期支持版。
  • cgroup 冲突,与现代容器编排不兼容:OpenVZ 基于很老的内核(如 2.6 / 3.10 体系)和 cgroups v1 做资源管理。而现代 Docker、Kubernetes 依赖 cgroups v2 以及完善的命名空间(namespaces)支持,systemd 等现代初始化系统也更偏好 v2 层级。OpenVZ 7(Virtuozzo 商业版)声称"支持 Docker",但实际测试中受限于共享内核,条件苛刻、并不可靠。结论很残酷:OpenVZ 里基本跑不了真正的 Docker 和 k8s
  • 资源超卖与噪声邻居:OpenVZ 用 beancounters 做"软分配"内存,号称 1GB 实际由一小块有保障内存加一大块可抢占的突发内存组成。邻居一忙,你的内存就被收回,进程可能被 OOM 杀掉。这种超卖模型直接催生了"噪声邻居"问题,稳定性不在你手里。

当云计算工作负载从"跑个 WordPress"进化到"跑容器、跑微服务、跑 VPN 和编排平台"时,OpenVZ 的三道坎同时爆发。2025 年的行业统计里,OpenVZ 在服务器虚拟化市场的占有率已经跌到约 0.4%,仅剩少量老系统和对价格极度敏感的场景还在用。它的历史贡献不可否认——正是它用极低成本把 VPS 普及给了个人和小团队,但它已经不适合现代开发栈。

四、对用户的现实影响:现在还能买到 Xen/OpenVZ 吗、KVM 才能跑 Docker/k3s/WireGuard

站在 2026 年,普通用户最关心的是:我还能不能买到 Xen 或 OpenVZ 的机器?答案是极难,但没绝迹。少数主打极致低价的商家(如 Hostnamaste、Lonex 等)仍提供 OpenVZ 套餐,价格可以低到每月 3—4 美元,但基本都是老内核、老模板;Xen 在主流低价 VPS 里几乎绝迹,只在某些企业级或特定硬件方案里出现。如果你是新购机器,默认拿到的就是 KVM。

为什么现在所有人都该认 KVM?因为你要跑的现代软件几乎都要求"自己的内核":

  • Docker / Kubernetes / k3s:容器运行时需要 cgroups v2 和完整的命名空间,KVM 里每个 VM 有独立内核,装好就能用;OpenVZ 共享内核跑不了,LXC 虽能嵌套跑 Docker 但仍被宿主内核版本锁死。
  • WireGuard:这个轻量 VPN 需要内核模块(或较新的内核原生支持),OpenVZ 无法加载模块,基本无缘;KVM 里你可以用包管理器直接装。
  • 自定义内核模块与内核参数:比如 ZFS、特定 iptables 模块、TCP 调优参数,只有 KVM(以及 Xen HVM)能让你自由加载和修改。
  • 非 Linux 系统:想装 Windows、FreeBSD 或者做内核级实验,只有 KVM 和 Xen 这类真虚拟化能做到,OpenVZ / LXC 只能跑 Linux。

一个简单的自查方法:登录机器后执行 virt-whatsystemd-detect-virt,输出含 kvm / qemu 就是 KVM;输出 openvz 就是 OpenVZ;什么都没有或显示 lxc 则是容器。买之前在厂商页面看"虚拟化类型"这一栏,正规商家都会写清楚。

五、选购建议:认准 KVM 标签,避开 LXC/OpenVZ 陷阱

结合上面的事实,给想买低价 VPS 的朋友几条实在建议:

  • 首选明确标注 KVM 的套餐。它能跑 Docker、k3s、WireGuard,能装 Windows,能做内核实验,资源也有硬隔离,长期看最省心。
  • 把 OpenVZ 当成"只跑静态站 / 简单代理"的玩具。除非你确认需求极其简单、且价格敏感到极致,否则不要拿它做生产环境,尤其别指望在里面跑容器或 VPN。
  • 谨慎看待 LXC / LXD。它比 OpenVZ 现代(用上游内核的 namespaces/cgroups),密度高、启动快,但仍然共享宿主内核,不能换内核、不能装内核模块、不能跑 Windows。适合你自己信任的多个 Linux 环境,不适合多租户强隔离场景。别把它当 KVM 的等价物。
  • 警惕"便宜得不正常"的套餐。4GB 内存卖 2 美元/月这种,大概率是超卖严重的 OpenVZ 或 LXC,稳定性没有保障。价格区间请以各厂商官网实时报价为准。
  • 买前问清虚拟化类型。如果商家页面不写、客服也说不清,那通常就是不想让你知道——直接换一家。

一句话总结:Xen 输在维护复杂、跟不上云的快速迭代,OpenVZ 输在共享内核、被容器时代抛弃,而 KVM 因为寄生在 Linux 内核上、简单又能跑一切现代负载,成了低价 VPS 的默认答案。认准 KVM,你就避开了大部分虚拟化层面的坑。

#Xen #KVM #OpenVZ #VPS虚拟化 #选购指南