OpenVZ 是一种操作系统级虚拟化技术。这意味着主机操作系统被划分为多个隔间/容器,并将资源分配给嵌套在其中的每个实例。
OpenVZ 中有两种类型的资源:专用资源和突发资源。专用资源是一种保证 VPS 在请求时获得此类资源的资源;这些是“你的”。突发资源来自系统剩余未使用的容量。当第二个 VPS 不使用时,系统可能允许一个 VPS 从另一个 VPS 借用 RAM 等资源。既然是借,那么这样的资源就得尽快归还。如果其他 VPS 想要收回其专用资源,您的进程可能会变得不稳定或终止。
由于 OpenVZ 是操作系统级虚拟化,因此每个 VPS 容器消耗的资源远少于完整虚拟环境。在具有相同硬件和订阅费率的两台主机上,OpenVZ 的性能应该比 KVM 更好,因为它没有进行完全模拟。例如,它不需要运行多个完整的操作系统内核,因为它可以在多个 VPS 之间共享单个内核。结果就是内存和 CPU 节省显著。事实上,大部分内核内存使用量根本不会计入 VPS,而是只计入每个特定 VPS 除了主内核之外所需的内存。
KVM 是一种硬件虚拟化技术。这意味着服务器上的主操作系统模拟硬件,以便另一个操作系统在其上运行。它还充当虚拟机管理程序,管理和公平分配共享资源,如磁盘和网络 IO 以及 CPU 时间。
KVM 没有突发资源;它们都是专用或共享的。这意味着 RAM 和磁盘空间等资源通常很难在不危及所有用户数据的情况下过度使用。 KVM 的缺点是,如果达到限制,VPS 必须进行交换(从而导致重大性能损失),或者开始终止其进程。与 OpenVZ 不同,KVM VPS 无法通过向同行借用来获得暂时的缓解,因为它们的专用资源是完全隔离的。
因为 KVM 模拟硬件,所以您可以在其上运行任何您喜欢的内核(在限制范围内)。这意味着 KVM 不限于安装在根节点中的 Linux 内核。 KVM 还可以运行其他 x86 操作系统,例如 BSD 和 Microsoft Windows。拥有完全独立的内核意味着VPS可以进行内核修改或加载自己的模块。这可能很重要,因为 OpenVZ 不支持一些更晦涩的功能。
OpenVZ 和 KVM 都是成熟的技术,各有优缺点。选择合适的技术可能会避免您未来的麻烦。为此,请查看以下列表以了解适合您的用途。
| 虚拟化 | 关键点 | 成本 |
|---|---|---|
| OpenVZ |
|
低成本($) |
| KVM |
|
价格实惠($$) |