常见的虚拟化技术:Xen,KVM 与 OpenVZ

学习一下常见的 Linux VPS 虚拟化方法。VPS,virtual private server,中文翻译叫虚拟专用服务器,是常见的个人服务器。VPS 提供商会将大型的,性能强的服务器,虚拟成多个小型的,虚拟服务器,多台虚拟服务器共用一台物理机资源。在租 VPS 前要明白这些。

#Xen

Xen 分为 PV 与 HVM,Xen PV 是半虚拟化,Xen HVM 是全虚拟化。Xen 很难超售[1],硬件有多少资源,最多就能分配多少资源,所以卖的贵。

#KVM

KVM是全虚拟技术,你可以将 KVM 的 VPS 当成一台真正的计算机,还可以自己手动重装系统,自由度非常高,性能损失也很小。但是,KVM 虚拟化会共用 IO,所以如果一台物理机上的一台 VPS 进行大量的读写操作,会影响到其他 VPS。同时,KVM 可分配的内存并不受物理机真实内存大小限制,所以可能存在内存超售现象。

#OpenVZ

OpenVZ,简称 OVZ,是操作系统级的虚拟化技术。OpenVZ 虚拟内核,多个 OpenVZ VPS 共用一个内核,因此用户不能自己修改内核。一些程序,脚本,如魔改 BBR 等,不能运行在使用 OpenVZ 技术的 VPS 上,就是因为在 OpenVZ VPS 上无法修改内核。在租用 VPS 前一定要弄清楚你有没有自定义内核的需求,然后再下单。OpenVZ 的内存与 CPU 资源都可以超售,所以超售很普遍。我曾听一个小 VPS 提供商这样讲:“不超售我怎么赚钱?”


  1. 超售,指卖的东西比拥有的多。 ↩︎