实现一台虚拟服务器(VPS)的主流的虚拟化技术分为3种:
1、全虚拟化:如vmware
2、半虚拟化:如xen
3、操作系统虚拟化:如Virtuozzo、OpenVZ,OpenVZ是开源的,而Virtuozzo是它的商业版。
其中1和2都是虚拟硬件模式,是真正意义上的虚拟化技术,通过虚拟一套完整的硬件,这一套完整的硬件具有超强的兼容能力,在这个虚拟层上可以运行各种不同的操作系统平台。半虚拟化需要修改宿主操作系统的内核,因此比全虚拟化有更好的性能。现在的趋势是vmware在发展半虚拟化的技术,而xen也在发展全虚拟化的技术。而操作系统虚拟化事实上不是真正意义上的虚拟化技术,但由于能够达到类似的功能,也把它归为其中。操作系统虚拟化技术要求虚拟机和宿主服务器上使用同一个操作系统,通过拦截虚拟机的操作来实现隔离,也就是说在windows下只能再虚拟windows,linux下只能再虚拟linux,虚拟安装一个的操作系统仅仅占用200M的空间,其他文件都是使用宿主机上的文件。
一般我们把1和2的虚拟化服务器称为vm,把3称为vz。
既然vm和vz都能达到我们的目的,那这两者技术上有什么区别呢?
vm:占用系统资源多,因此成本高,虚拟的操作系统不受主机操作系统的限制,稳定性、安全性高。
vz:占用系统资源少(你想想一个服务器上就算有100个vps也只有一套操作系统,一台服务器上的所有VPS都共享部分操作系统资源),成本低,只可以虚拟和主机的操作系统一样的操作系统,性能好。
一般相同配置的服务器上能能够建立30-40个vps那么只能建立10-20个vm,这也就是相同配置vm往往比vps价格贵一倍的原因。
对vps性能、稳定性影响最大的是内存,下面看看在内存方面两者的区别:
vm:支持虚拟内存(交换分区)
vz:不支持虚拟内存(交换分区),只要一超过就容易死机之类的。
所有的OpenVZ的VPS都不支持虚拟机自己定义虚拟内存,而基于Xen技术的主机可以。OpenVZ系统里面所有的虚拟机共享一个内核,而虚拟内存是需要内核支持的,所以OpenVZ里面的虚拟机都不能再定义虚拟机级别的虚拟内存。OpenVZ可以在母机操作系统里设置的虚拟内存,但在虚拟机看来就是真的内存,加上虚拟机共享资源可以动态调配,所以OpenVZ主机可以超卖。
有种说法:运行同样的程序,如长时间运行sql server,vm需要512M就能稳定了,而vz最少需要1024M才会稳定。为了弥补虚拟内存上的缺陷,vz引入了一个爆炸内存(Burst RAM)的概念,允许短时间内占用超出分配大小的内存。那么这些内存是哪里来的?显然是占用了同一台服务器上其他用户的空闲内存。并不是说vm在内存方面就一定比vz好,vm的虚拟内存理论上可以设的很大(局限于硬盘容量),但会增加对IO的读写,而vps毕竟不是独立的服务器,在这方面有所限制,因此也不宜设得过大。而且虚拟内存毕竟比不上Burst RAM那样真正的内存的速度。
再从商业运营的角度看看两者的区别:
vm:vm的解决方案使得每个vps独立性很好,分配了多少资源就是多少资源,不存在超卖现象。
vz:从前面的Burst RAM就可以看出vz的隔离性并不好,你可以占用同一台机器上其他vps的资源,这也就给服务商浑水摸鱼的机会,往往存在超卖现象,一台服务器本该40个vps,卖到了60、70个,性能(本该是vz的优点)、稳定性都很难保证。另外,安全性上也存在风险。
因此外在因素一样的情况下(配置,价格等),vm的肯定比vz的好。但一般vm要贵些。服务器以稳定性为主,所以大多数客户会用vm的vps,国外的一些数据中心也同样是这个技术,国内一般是vz!
VM主机和Vz的vps的对比总结
网络安全:
如果同台服务器的1台Vz被攻击,将直接影响其他的所有VPS无法运行。同等情况下只影响被攻击VM主机,其他同服务器的VM主机不受影响。
技术:
Vz是基于软件层的虚拟化技术,具体来说就是操作系统的虚拟化,VM是基于硬件层的虚拟化技术,VM主机使用vmware server搭建,是vmware workstation的服务器版,非常成熟,1998年VM服务器系列开始商用,被广泛应用于银行、航空领域。是非常稳定及性能卓越的虚拟服务器产品,Vz是2006年才进入市场的一个产品。
数量:
Vz可以在1台服务器上将一个操作系统虚拟上百个独立操作系统,VM只能虚拟大概3到4个独立操作系统
资源:
VM运行前会预先将硬件内存分配好,如果服务器上有4G内存绝不能分配出5G的内存出来,而VPS服务器自生拥有4G内存可以虚拟100G的内存,并分配给100个独立操作系统。
本质:
VM运行和真正的一台物理服务器是无区别的,因为获得了独立资源,Vz相当于一个人的几个面,是不独立的,从操作系统占用空间可以看出来,VM安装操作系统所需要的空间和在独立服务器上安装所需的体积相同,而Vz安装操作系统只要100来M,因此购买VM主机需要更大的容量。为此同网在标准容量基础上特别赠送5G磁盘空间。
性能差别:
如1台独立服务器只开3到4个vps主机和VM主机运行速度上差别不大。
成本差别:
Vz对运营商来说成本很低,因为1台服务器可以虚拟上百个VPS主机,VM对运营商来说相当于独立服务器出租。成本略低于独立服务器出租,需要有相当实力的运营商才能提供。
总结:选择vps的时候强烈建议购买vmware的虚拟化技术(硬件虚拟化技术),不要选择操作系统虚拟化技术的vps(这种技术属于共享同样的硬件资源,这些只是你的突发可达的理论峰值而已,还有进程数量的限制)