微软和VMware可算是服务器虚拟化的两大巨头,VMware在此领域已经超过了10年,而微软凭借Windows Server产品,也开始在服务器虚拟化领域崭露头角。本文,我们将向IT组织者或企业介绍微软Hyper-V和VMware vSphere之间的架构差异,以及两者之间的优势和劣势。 无论选择哪种产品,VMware vSphere或是Hyper-V,我们都需要考虑很多因素,但从架构的角度来看,想要选择合适的服务器虚拟化产品,我们需要重点考虑以下组件: 1.设备驱动程序的架构位置; 2.控制层组件; 3.hypervisor层组件。 一般情况下,有三种类型的虚拟化技术架构: • Type 2 VMM • Type 1 VMM • Hybrid VMM 本文并不会详细介绍以上所有的技术架构,我们将会着重介绍Type 1 VMM,因为微软和VMware的服务器虚拟化技术都使用的是Type 1 VMM架构。Type 1 VMM又可以分为两个子类,分别是Monolithic Hypervisor和Microkernelized Hypervisor。 通常我们把最底层称为”硬件层“,虚拟化“Hypervisor层”运行在”硬件层“之上。最上层是“控制层”,其作用是控制该层中运行的组件,以及为虚拟机提供必要的组件,以用来与“Hypervisor层”进行通信。 注:“Hypervisor层”有时也称为”VMM层“或者”VM Kernel层“。 Microkernelized Hypervisor架构 Microkernelized Hypervisor架构被使用于微软的Hyper-V中。在这种设计中,设备驱动程序并不是hypervisor层的一部分,设备驱动程序是独立运行的, 其运行在“控制层”。如下图所示: Microkernelized Hypervisor架构的优点如下: • 设备驱动程序并不需要为每个设备纳入Hypervisor层或VMM内核; • 由于微软并没有提供用来访问“hypervisor层”的API,这种做法将被攻击的面减到最小,因为没有人可以在“hypervisor层”注入外部代码; • 由于设备驱动程序不需要被hypervisor感知,所以该架构所支持的硬件设备非常广; • 无需关闭“hypervisor层”来加载设备驱动程序。设备驱动程序可以安装在运行于“控制层”的操作系统之中。(包括Windows Server 2008 R2以及Windows Server 2012),用于虚拟机访问“硬件层”中的硬件。 • 在维护和管理设备驱动程序方面,“hypervisor层”的成本更低; • Microkernelized Hypervisor架构允许你在“控制层”中安装任何服务器角色,当然,除了服务器虚拟化角色(Hyper-V)外; • 初始化时间更少。微软hypervisor的代码仅有600KB左右,所以,“hypervisor层”无需使用更多的时间来初始化组件。 与此同时,Microkernelized Hypervisor架构也有一些缺点,具体内容如下: • Microkernelized Hypervisor架构需要在“控制层”安装操作系统,“hypervisor层”才可以进行操作,这是该架构本身最大的缺点; • 如果在“控制层”运行的操作系统无故崩溃,那么其他所有的虚拟机也都将崩溃; • 运行在“控制层”的操作系统需要更多的资源(或者说是开销),以用来管理虚拟机和“hypervisor层”之间的通信; • 为了保证Windows系统的安全,在“控制层”运行的操作系统必须及时应用微软官方的安全更新。作为安全更新的一部分,操作系统将会被重启,同时,这需要所有虚拟机离线;如果你希望没有停机时间,可以借助Hyper-V实时迁移功能解决。 来源:51cto.com