虚拟化的定义就是“将计算机的资源不断抽象化的过程”。在抽象的过程,对于不同的资源(如存储设备、cpu、内存、网络等),而有不同的虚拟化类别,较为常见的有:
1、资源虚拟化:主要是将计算机的某些系统资源抽象化。如存储设备、网络、网络名称等。
磁盘分区和RAID就是存储设备虚拟化的例子。
虚拟主机是网络名称虚拟化的例子。
2、应用软件虚拟化:主要将软件抽象化,使之不需要依赖特定的运行环境,就是我们常说的绿色软件(portable)
常用的应用软件虚拟化工具有:softGRID、XenAPP 以及VMware的ThinAPP
能用于企业级的厂商主要三个:VMware,Citrix,MS
三个厂商对应的较成熟产品是VMware
ESXi,Xenserver,Hyper-V,都是裸机虚拟化
VMware ESXi重点于服务器虚拟化,技术较成熟,功能也多,支持虚机系统多;
Xenserver重点在于桌面虚拟化,性价比高,网络性能好,适用于快速与大规模部署,支持系统也不少,但做桌面能发布出来的只有MS系统;
Hyper-V起步的最晚,目前貌似只支持MS自家的系统,属于服务器级的
3、平台虚拟化:主要就是将计算机的主要资源(cpu、内存、网卡)抽象化,并且让访问这些资源的对象都通过抽象层访问,也就是虚拟机。
(一) 虚拟化起因及技术分类
a、最常见的虚拟机软件包括以下几个重要产品:
VMware Workstation/Server/ESX Server;
微软的Virtual PC/Server/Hyper-V;
Citrix的Xen;
Sun的xVM、QEMU等。
b、企业采用虚拟机的起因
就是因为硬件资源的浪费,主要针对的问题就是硬件资源效率的低落。
c、不同的虚拟技术
在软件方面,针对不同的实现技术,虚拟机的产品也分成几个类别:
1)完全虚拟化:目前主流都是这种。主要是客户端操作系统在这种虚拟产品上运行时,不需要做任何修改。如VMware
Workstation、vSphere、微软的Hypervisor等。
2)硬件辅助虚拟化(硬件虚拟机HVM):操作系统在其上运行时,必须靠系统的硬件来完成虚拟化的过程。如Intel的VT和ADM的ADM-V还有VMware的Workstation6.5.1。
3)部分虚拟化:虚拟机在运行时,系统只提供部分虚拟化,无法正常安装完整的操作系统。
4)半虚拟化(泛虚拟化):操作系统在此产品上运行时,必须修改核心才能顺利安装。如早起的Xen
5)操作系统等级虚拟化:这一类虚拟机只能仿真出主机的系统。如windows上只能运行windows,linux上只能运行linux系统。
6)寄居环境:最常见的是linux下User
Mode,可以在一个linux下,以应用软件的方式来运行其他的linux。!这和寄居架构的完全虚拟化是有区别的。
d、虚拟机产品运行层。
不管哪个架构,所有的虚拟机既然要抽象化计算机的硬件资源,就必须有一个仲裁机制来管理抽象化之后的资源。这个仲裁机制一般称为Hypervisor或者是Virtual
Machine Monitor(VMM)。
*Hypervisor*:
Hypervisor是一种运行在物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用共享一套基础物理硬件,因此也可以看作是虚拟环境中的“元”操作系统,它可以协调访问服务器上的所有物理设备和虚拟机,也叫虚拟机监视器(Virtual
Machine
Monitor)。Hypervisor是所有虚拟化技术的核心。非中断地支持多工作负载迁移的能力是Hypervisor的基本功能。当服务器启动并执行Hypervisor时,它会给每一台虚拟机分配适量的内存、CPU、网络和磁盘,并加载所有虚拟机的客户操作系统。
原生架构(Bare-Metal):
虚拟机在安装时,会在系统的硬件之上插入一层Hyperviso接管硬件,然后再安装操作系统。操作系统和硬件之间几乎没有直接关系。
原生架构上,Hypervisor直接安装在硬件上,将所有的硬件资源接管。由于Hypervisor层极小(可小到32MB
footprint),并且不管理太复杂的事项,仅负责和上层的VM操作系统沟通及资源协调,蓝屏的概率更小。在其上的任何一个操作系统蓝屏了,都不会影响其他的客户端,因此较适合于企业应用。
在原生架构下,Hypervisor直接和计算机的硬件接触(如上图)。
当然原生架构的虚拟机为了保持其稳定性及微内核,自然不可能将所有桌面产品的驱动程序都放入,因此最大的问题就是硬件兼容性。大部分的原生架构产品都支持主流服务器及存储设备,如NAS、iSCSI或FC
SAN,并且强调这些设备都经过了官方测试,为的就是确保在企业运行环境中的稳定性。一般PC所使用的硬件,大部分无法在原生架构的虚拟机下运行。
原生架构的主流产品:
VMware vSphere
微软Hyper-V 2008 R2(免费)
微软Windows 2008 R2 Hyper-V Role
Citrix XenServer/XenDesktop
Xen(Linux,开源)
Qemm(Linux,开源)
原生架构为了保证稳定性,必须是硬件兼容表中(HCL)支持的硬件才能运行。
在开始安装配置ESXi之前,建议先根据VMware官方的VSAN兼容性指南来验
证一下硬件配置。VSAN兼容性指南可以在下面的网站找到:
http://vmwa.re/vsanhcl
http://readynas.netgear.cn/Hardware_Compatibility_List/
VSAN对磁盘、闪存设备和磁盘控制器有严格的要求。
因为选择众多,配置一台完美的VSAN主机可能是一件复杂的事情。
在逐个讨论这些组件之前,你应该知道还有另外一个选择:VSAN Ready
Nodes。
*寄居架构*(Hosted):
在寄居架构中,Hypervisor是存在于操作系统之上的。寄居架构,则是Hypervisor被看成一个应用软件或是服务,运行在已经安装好的操作系统上才能运行。
这一类产品最大的特色就是必须在一个已经安装好的操作系统上进行,称为寄居架构(Hosted)。这么做的好处就是硬件的兼容性。只要寄居的操作系统能使用的硬件,虚拟机中的操作系统都能使用到。然而这种运行在桌面操作系统上的Hypervisor,被视为寄居操作系统上的一个应用软件,虽然在安装时会将不少Hypervisor的部件放入内核,但在寄居的操作系统出现任何问题时,VM中的操作系统将无法使用,无法满足重视安全及稳定的企业应用上。
举例来说,最有名的虚拟产品VMware Workstation或是微软的Virtual PC/Server,都必须安装在一个操作系统之上,如Windows
7或Windows Server 2003。如果这个操作系统蓝屏了,其上运作的VM客户端当然就全部一起蓝屏。这就是寄居架构。
寄居架构的主流产品
VMware Workstation(有Windows及Linux版本)
VMware Server(有Windows及Linux版本,免费)
VMware Player(有Windows及Linux版本,免费)
微软Virtual PC 2007
微软Virtual Server 2005 SP2(免费)
微软Windows Virtual PC(只能在Windows 7上运行,免费)
Parallels Workstation
UN Virtual Box(已被Oracle收购)
e、硬件支持的虚拟化
目前大部分的X86厂商都推出了支持虚拟机指令的CPU,如Intel的VT以及AMD
的AMD-V。这些硬件上的技术对虚拟机有什么帮助吗?
1)在没有虚拟机的时候,操作系统在硬件上运行时,通常核心会在Ring0层次运行应用程序在Ring3的层次运行。
2)在原生架构的虚拟机上,Hypervisor在Ring0的地方进行操作,操作系统被降级到Ring1。
3)使用了硬件支持的虚拟化,Hypervisor降至Ring1,操作系统重新回到Ring0
硬件支持的虚拟化好处是:
1)加快客户端操作系统的运行速度,解决了兼容性问题。
2)在做虚拟机环境测试时,可以做出巢状(Nested)虚拟环境。
(二) 企业环境注重的虚拟机
硬件选择正确后,企业用的虚拟机架构要考虑的因素有安全、稳定、高运行效率、高可用性、成本以及管理。
1)服务隔离(Isolation)的原则。
一个操作系统上只安装一个服务。
2)提高硬件资源效率。
在单一的实体服务器上运行多个操作系统。这样可以让每一个系统服务可以在单一的操作系统上运行,而多个操作系统可以在同一台实体服务器上并行运行,
不仅保持了服务隔离,更提高了硬件资源效率。这就是:服务器合并(Server Consolidation)。
3)高可用性。
可以一并解决High Availability、容错、负载均衡、备份等复杂问题。
可以解决目前设备无法解决的问题。如动态主机迁移、快速删除数据、统一桌面管理、企业集成环境(永不宕机)。
在VDI环境中,一个桌面操作系统就是一个虚拟文件,可以快速部署。
4)企业桌面环境管理(多人)
是将客户端的桌面操作系统全部移到服务器的虚拟机上。每一个桌面用户都连入自己的虚拟机(使用RDP或者是特殊的联机软件,如Citrix的ICA)。
好处是除了可以省下一大笔升级硬件的预算外,更可以将所有的桌面操作系统集中管理,无论是打补丁、安装应用程序、管理用户权限等都很方便。
VMware的企业桌面管理产品是:VMware View
Citrix的企业桌面管理产品是:XenDesktop和XenServer5
原生标杆产品:
VMware V13/vSphere
各种不同专用功能:
最大特色是多台ESX加入后,可以完成虚拟机转移的魔法。
VMotion是V13中最重要的功能,可选择最需要的资源来运行。
HA可以让虚拟机在实体机死机时立即在另一台重启。