定义
维基百科
在计算机技术中,虚拟化(技术)或虚拟技术(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源(CPU、内存、磁盘空间、网络适配器等),予以抽象、转换后呈现出来并可供分割、组合为一个或多个电脑配置环境。由此,打破实体结构间的不可切割的障碍,使用户可以比原本的配置更好的方式来应用这些电脑硬件资源。这些资源的新虚拟部分是不受现有资源的架设方式,地域或物理配置所限制。一般所指的虚拟化资源包括计算能力和数据存储。
可以看到,虚拟化的定义是非常宽泛的,虚拟机、虚拟应用环境、服务器集群都可以应用到虚拟化技术。
典型应用场景
软件的开发需要在多种操作系统上进行运行测试, 过去, 我们需要复数的硬件设备或以更麻烦的形式将多种操作系统安装到一台测试机上, 现在, 我们使用虚拟机轻松的搞定这件事.
由于工作需求, 我们临时需要一个局域网络, 而我们需要进行连接的机器来自天南海北, 想要组起局域网是一件非常困难的事情, 而现在, 我们使用VPN(Virtual Private Network)就够了.
有一些所谓的”绿化软件”, 实际上也是对软件程序本身进行了封装, 开发者通过技术手段, 将程序临时映射到正常安装时所在的目录, 达到模拟出”在系统上安装完毕”的效果, 在程序结束运行后, 停止映射并保存运行时产生的数据, 最终, 一切就像这个软件没有在你的机器上运行过一样, 不留痕迹. 我们平常所提到的一些沙盘, 沙箱, 使用的就是类似的虚拟化技术, 同时, 也可以用这种技术进行安全性测试, 用于杀毒软件和防火墙, 可以说是功不可没.
场景一
由于种种原因我不得不经常重装Windows操作系统, 通常来说, 每一次重装Windows系统, 都会失去我安装的软件的注册表等很多信息, 即使软件程序本身还存在我的硬盘上, 但很可能配置已经丢失了, 或者由于缺失一些被安装到系统盘的文件而导致无法启动, 不得不重装软件来解决. 如果此时我们使用虚拟化技术, 将平时用的软件都封装成虚拟化软件, 并通过特定的平台进行管理, 就可以实现重装系统后软件配置依然完整保留的情况, 从而避免遭遇短时间内反复重装软件的窘境.
场景二
在大多数民间站长都不可能为了运行几个网站而耗尽一台服务器的资源的情况下, 服务器供应商为了将资源分离成多个部分进行分别租借, 同时又要保证与使用单台服务器时的操作方式一致, 使用了基于资源虚拟化技术的虚拟机来对一台服务器的资源进行虚拟, 使一台服务器的资源能够分成多个部分以VPS的形式进行租借. 这么做, 一方面提升了供应商的销量和利润, 另一方面降低了民间站长架设网站的资金门槛, 达到了双赢的局面.
场景三
在云计算场景下, 服务器硬件成为了资源, 并以集群的形式而存在, 在架构云计算应用时, 如果以单台服务器作为单位来计算资源量, 实现应用程序必然要考虑到服务器之间的资源交换和并发时间等问题, 开发与维护都会变得异常痛苦. 此时使用虚拟化技术将服务器集群化整为一个巨大的资源, 将底层的资源交换问题解决, 开发和维护都会变得容易很多, 成本也随之降低, 实际上, 目前大多数的云计算架构, 都是这么做的.
场景四
这可能是普通PC用户最常遇到的场景, 几个小伙伴一起联机打游戏, 该怎么做呢? 基本上, 单机游戏的联机功能仅限于局域网联机, 这意味着小伙伴们在地理上必须离得很近, 通过组建局域网来实现联机功能, 这是很难做到的, 所以, 使用VPN技术的联机软件应运而生, 满足了天南海北的小伙伴们联机玩游戏的需求, 造福了许多人.
以上四个场景, 我们可以轻易的得出结论, 虚拟化并不单单是一个模拟和封装的过程, 它同时还会带来创新, 并创造出新的应用环境, 让人们能在新的平台上自由地施展拳脚.
PC虚拟化主流:KVM、XEN、OpenVZ等等
国内外vps主机提供商所提供的主机大多是基于Xen、OpenVZ、KVM、Hyper-V、VMWare五种虚拟化技术。
一、Xen 官网:http://xen.org/
Xen 由剑桥大学开发,它是基于硬件的完全分割,物理上有多少的资源就只能分配多少资源,因此很难超售。可分为Xen-PV(半虚拟化),和Xen-HVM(全虚拟化)。
Xen是不能超售内存和硬盘的,当母服务器只有16G内存以及100G硬盘时,当开Xen架构(任意一个虚拟化)的1G内存、25G硬盘的子机时,会直接占用服务器1G内存,以及25G硬盘,所以Xen的性能,相比OpenVZ在超售的情况下要好。
Xen-PV:半虚拟化,所以它仅仅适用于linux系列VPS,但它的性能损失比较少,大概相对于母机的4%-8%左右。
Xen-HVM:全虚拟化,可以安装windows或自由挂载ISO文件安装任意系统,由于是全虚拟化,所以性能损失较大,大概相对于母机性能损失8%-20%左右。
Xen适用人群:预算较为充足,且希望VPS有较高性能的客户
Xen注意事项:注意Xen-PV和Xen-HVM的区别。
Xen可用系统:Xen-PV:纯Linux,Xen-HVM:支持Windows、Linux等。
Xen代表商家:Linode.com
二、OpenVZ 官网:http://openvz.org/
OpenVZ(简 称OVZ)采用SWsoft的Virutozzo虚拟化服务器软件产品的内核,是基于Linux平台的操作系统级服务器虚拟化架构。这个架构直接调用母服务器(母机)中的内核,模拟生成出子服务器(VPS,小机),所以,它经过虚拟化后相对于母服务器,性能损失大概只有的1-3%。
当然 OpenVZ可以超售,意思味着一台服务器总共16G内存,他可以开出配置为1G内存×17台以上的子服务器。因为他的虚拟架构关系属于:客户用多少,就扣除母服务器多少,所以OpenVZ架构的VPS较为便宜。但由于存在超售因素,如果服务商毫无休止的超售会导致服务器的性能急剧下降。
OpenVZ另一个特点是,它是直接调用母服务器的内核,所以会导致部分软件无法使用,以及部分内核文件是无法修改。
OpenVZ适用人群:新手、低预算客户
OpenVZ注意事项:资源不是自己独有的,安装VPN服务需要注意检测虚拟网卡支持。
OpenVZ可用系统:Linux(不支持Windows)
OpenVZ代表商家:Buyvm.net
三、KVM 网站:http://www.linux-kvm.org/
KVM是Linux下的全功能虚拟化架构,基于KVM架构的VPS,默认是没有系统的,可自己上传ISO或调用服务商自带的ISO手动安装系统。这个非常适合热爱DIY自己VPS的客户。
由于KVM架构全功能虚拟化架构,甚至拥有独立的BIOS控制,所以对母服务器性能影响较大,所以基于KVM的VPS较贵,但KVM VPS相对其它架构的VPS较为自由。
KVM适用人群:折腾帝
KVM注意事项:虚拟化性能比Xen略低
KVM可用系统:Windows、Linux系列
KVM代表商家:Hostgation.com
四、Hyper-V 网站:http://www.microsoft.com/zh-cn/server-cloud/
Hyper-V是微软的一款虚拟化产品,大部分国内的VPS服务商使用这个架构,主要是因为其转为Windows定制,管理起来较为方便。目前的Hyper-V也支持Linux,只不过性能损失比较严重。
Hyper-V完美支持Windows系统,包括32位和64位。如果大家选购Hyper-V架构的VPS,强烈建议使用Windows。
Hyper-V目前不能超售内存,但可超售硬盘,硬盘是根据客户使用情况扣除。一般来说,服务器的硬盘不会100%用完,这点不用担心。
Hyper-V适用人群:Windows系统爱好者
Hyper-V注意事项:Linux操作系统性能较低
Hyper-V可用系统:Windows、Linux
五、VMWare 网站:http://www.vmware.com/
VMWare 是全球桌面到数据中心虚拟化解决方案的领导厂商开发的一款全功能完全虚拟化的软件。但由于VMWare用于开设类似VPS(含独立面板)的系列产品授权费用非常昂贵,所以大部分使用VMWare服务商会使用 VMware工作站(VMware Workstation)提供VPS。
使用VMware工作站(VMware Workstation)开设的VPS是无控制面板的,操作系统需要服务商手动安装,但现在网上寻找VMware Workstation的神KEY非常容易,对于VPS服务商来说节省不少成本。一般用于新创业的VPS服务商。
使用VMWare Workstation实质上的VPS可以超售,因为其和OpenVZ架构一样,子机用多少内存,就扣除系统多少内存,但如果物理内存不足时可能导致母服务器使用Windows虚拟内存。
VMWare适用人群:认真建站或挂机的客户
VMWare注意事项:无控制面板
VMWare可用系统:Windows、Linux系列
以上衡量超售指的是内存、磁盘,其它硬件条件,如网络带宽、CPU等不在考虑范围内。
六、Xen和OpenVZ的区别
Xen由dom0和domU组成,Dom0是虚拟出CPU, IO总路线等资源,供工作于DomU上的不同的kernel运行。
这样的好处是,
1. 对可以运行的操作系统限制较少。
2. domU上系统的crash不会影响其他的dom. 当然Dom0发生故障时还是会有问题。
坏处:
1. 由于需要虚拟CPU,BUS等物理资源,开销会更大点。
OpenVZ使用了完全不同的方式,它所创造的虚拟机都使用工作在同一个kernel下。
这样的好处是
1. 性能好。
坏处:
1. 任何一个kernel bug都会危及所有的虚拟机。 因kernel bug所crash的可能性大大增加。
2. 他需要对内核作很多的改动。
区分上最明显的,XEN VPS有swap区,基于RHEL5的OpenVZ VPS没有swap区,基于RHEL6的OpenVZ VPS有VSwap区。
参考文章
虚拟化
why-do-we-need-virtualization-technology