准备入手VPS或者云服务器的朋友,对于很多专有名词不太理解,比如有的服务商提供服务的架构是采用OVZ技术,有的则是KVM技术,有的则是Xen技术。细心的朋友会发现,同样配置VPS或云服务器,如果构架不同,价格差异也不同。其实,OVZ、KVM和Xen都是VPS或云服务器使用的虚拟技术种类,是一种基于内核虚拟机的应用。内核虚拟机相信很多人并不陌生,比如VMware。不同的技术特点必须有所区别,下面就市场常见的OVZ、KVM和Xen进行介绍和对比。
一、OpenVZ介绍
现实中,采用OpenVZ架构VPS和云服务器往往是最便宜,无论在哪个服务商那里都是价格都是最低的。很多人对一看到OVZ就嗤之以鼻,但OVZ真的那么不堪吗?OVZ是OpenVZ的简称。OpenVZ架构是基于Linux内核和操作系统级的虚拟化技术,采用的内核是SWsoft的Virtuozzo虚拟化服务器软件产品。OpenVZ实际是底层操作系统上的一层应用,即这意味着易于理解和低权重开销,也意味着更高优的性能。OpenVZ允许物理服务器运行多个操作系统,通过虚拟化技术把一个服务器虚拟化成多个可以分别安装操作系统的实例,虚拟出的实例不能单独修改内核,全部共用母机内核。这一共用内核特性使得OpenVZ成为KVM、Xen等架构中速度最快效率最高的,每一个实例几乎可以等同于一台专用服务器。
同时,部署OpenVZ是基于应用程序的模板,这意味着服务商可以在几分钟内用简单的方法创建新的虚拟服务器并投入使用。最重要的是,OpenVZ可以在每个CPU上运行几倍于其他虚拟化服务器技术的虚拟化服务器。
通过上面的介绍,相信很多人明白了为了OpenVZ最便宜了。没错,就是缘于易于理解、低权重开销和共用内核特性。这让OpenVZ配置起来比较灵活,给了服务商改低限制的机会。这也是OVZ架构价格低的原因——超卖、超卖、还是超卖。为了超卖,服务商可谓无所不用,过度分割CPU导致性能不如其标明的1/10、共享内存导致内存不足当机等等。相比较之下,OpenVZ架构 只能安装Linux操作系统,不能安装Windows系统的缺点就微不足道了。
二、KVM介绍
KVM是Kernel-based Virtual Machine缩写,现在已经逐渐成为主流架构。KVM是用于Linux内核中的虚拟化基础设施,作为内核的一个模块来提供虚拟化功能,它可以把Linux内核转化为一个hypervisor,是一种全虚拟技术。KVM是基于x86架构且硬件支持虚拟化技术(如 intel VT 或 AMD-V)的Linux全虚拟化解决方案,包含一个为处理器提供底层虚拟化可加载的核心模块。如果系统需要虚拟化功能,则KVM模块通过QEMU软件(qemu-kvm)作为虚拟机上层控制和界面,可以被Linux内核按需动态加载到内存运行。如果不需要的KVM功能,可以动态卸载该模块。这意味着KVM能在不改变linux或windows镜像的情况下同时运行多个虚拟机并为每一个虚拟机配置个性化硬件环境(网卡、磁盘、图形适配器),可以装各种LINUX发行版和各种WIN发行版。
KVM是全虚拟化,各个实例不共用母机内核,各自都是单独的,使得效率上要低于OpenVZ架构。同时,恰恰因为KVM可以装任意类型的操作系统,使得KVM构架资源占用需要看其他用户资源的使用情况。如果摊上的邻居中爱折腾的太多,也会导致自己的主机不稳定。
三、Xen介绍
与OpenVZ、KVM不同,Xen是一种半虚拟技术。无论是OpenVZ还是KVM,都是内核虚拟技术,而Xen则是Linux的一个应用。Xen采用ICA协议,通过一种准虚拟化技术(半虚拟化技术)获得高性能。这种技术会让Xen在应用中获得较少的效能损失, 典型的情况下大约损失 2%, 在最糟的情况下会有 8% 的效能耗损。与之相较的其它使用完全虚拟化技术的却造成最高到 20% 效能损耗。这使得Xen甚至在某些与传统虚拟技术极度不友好的架构上(x86)也有上佳的表现。作为半虚拟技术,Xen虚拟机可以在不停止的情况下在多个物理主机之间实时近乎无缝迁移。
Xen是半虚拟化技术,它并不是一个真正的虚拟机,可以自由的加载内核模块,虚拟的内存和IO,稳定而且可预测。Xen分为Xen+PV和Xen+HVM,区别就是分Xen+PV只支持Linux,而Xen+HVM支持Win系统。Xen是一个外部的Hypervisor程序(虚拟机管理程序),体积相较OpenVZ和KVM更大,而且需要更新Xen版本时需要重新编译整个内核,稍有设置不慎,系统就无法启动。当然,以上这些并不是最大的缺点,而是Xen只有核才开源,相较于KVM完全开源,Xen的前景不明。
四、OVZ、KVM和Xen对比结论
通过介绍不难看出,在不超售的情况OPENVZ效率最高,但不超售本身就是最大的难题,已慢慢退出市场。KVM完全开源,正在逐渐成为主流,相关技术支持也更多。Xen技术复杂,前景不明。如果只是简单应用,推荐KVM。