KVM vs OpenVZ / LXC
KVM 与 OpenVZ:虚拟化类型为何重要
简短回答
KVM 是完全硬件虚拟化:你的实例运行自己的内核,且无法看到宿主机。OpenVZ 和 LXC 是共享宿主内核的容器技术,这意味着无法使用自定义内核模块、在旧宿主机上无法使用 WireGuard、Docker 不可靠,并且内存记账允许提供商超卖。如果 VPS 异常便宜,通常是 OpenVZ。
| 维度 | KVM | OpenVZ / LXC |
|---|---|---|
| 内核 | 独立 | 与宿主机共享 |
| 自定义内核模块 | 是 | 否 |
| Docker | 完全支持 | 不可靠或不受支持 |
| 嵌套虚拟化 | 是 | 否 |
| 非 Linux 系统 | FreeBSD, OpenBSD, Windows | 仅 Linux |
| 内存保证 | 真正预留 | 经常超卖 |
| 开销 | 2–5% | 接近零 |
| Swap | 真实交换 | 模拟或缺失 |
你应该选择哪个?
KVM
选择KVM用于任何真实用途。每个OnionVPS实例都是KVM,无一例外。
OpenVZ / LXC
OpenVZ仅适用于最便宜的单用途容器,在这些容器中你无法控制内核的任何部分。
常见问题
我能在OpenVZ VPS上运行Docker吗?
通常不能,即使看似可行,也依赖于不安全的宿主机配置。Docker需要cgroups和命名空间,而基于容器的虚拟化不提供这些。使用KVM。
如何判断VPS是KVM还是OpenVZ?
运行systemd-detect-virt,或者检查uname -r是否显示你可以更换的内核。在OpenVZ上,你根本无法安装不同的内核。