微软在2003年收购了推出虚拟化Virtual PC软件的Connectix公司标志着进入虚拟化领域,并在其后推出了Virtual Server服务器虚拟化软件。但是面对占据一大半市场份额的VMware/Xen等产品,微软对Virtual PC和Virtual Server的发布和宣传都十分低调。而现在随着Hyper-V的正式推出,微软走近大家的视野,并迅速改变市场格局。
微软Hyper-V架构篇
相比Hyper-V,大家更熟悉VMware以及其架构,所以为了让大家能深入全面了解Hyper-V在该专题中我们花一节篇幅介绍下Hyper-V的架构。Hyper-V同样也是一个服务器虚拟化Hypervisor(相当于VMware ESXi)技术,微软在Windows 2008开始支持Hyper-V,主要对服务器计算资源进行虚拟化,通过Hyper-V manager管理、调度虚拟机的创建和运行。当然,集群管理也有专门的管理工具System Center VMM。
微软提供不同的产品和部署方式方便用户或学习者部署Hyper-V。其中包括:
免费版Windows Hyper-V server精简版本用来部署虚拟化功能,但是无法提供集群和其他高级特性。
Window server完全安装后,配置Hyper-V角色。Hyper-V就是一个系统模块/Hyper-v角色,用户可以自定义开启或关闭虚拟化功能。
另外,微软也提供了Server Core操作系统安装模式,裁剪掉GUI等非必要模块增强系统可靠性。
Virtual Server、Virtual PC等产品是基于Hybrid虚拟化模式,VMM(Hypervisor)和Host sever都运行在同一层级在内核态交替访问CPU等资源;VMware workstation是在OS之上部署VMM程序作为VM的虚拟化层。
Hyper-V架构
在Windows serve 8 beta和 Windows 2012 R2中Hyper-V已经完全切换到64位系统中,作为一个虚拟化产品Hyper-V必须要求处理器必须支持AMD-V或者Intel VT CUP硬件辅助虚拟化技术。Hyper-V在构架上与之相比具有自己的独特性。
Parent partition(父分区)作为Hyper-V虚拟化程序的一部分为child partition(子分区)提供服务。子分区安装Guest Host主机,对系统资源和硬件的访问都通过父分区提供。
VSP(虚拟化服务提供者)负责对每个硬件设备直接对话,为每一个需求提供硬件服务和文件系统等服务。
VSC(虚拟服务消费者)是子分区里面的client组件,通过消费VSP提供的服务完成实际工作。
VMBus是虚拟机之间的通道连接VSP和VSC,对每一个硬件设备来说,都有一对VSP/VSC来完成对这种硬件资源的使用。
微软早期产品架构
微软之前的Virtual Server 2005 R2和VMware的产品来说,处理器辅助虚拟化VT/AMD-V这也只是一个可选的特性,不像Hyper-V那样是一个硬性的要求。
Hyper-V微内核架构
Hyper-V是一种微内核架构,在微内核中,最常用和核心的功能被精心挑选设计在内核态(Ring 0模式下)运行的一个或一组进程上,而其它大部分不怎么重要的核心功能都作为单独的进程在用户模式下(Ring 3模式下)运行,通常微内核只包含了进程调度、内存管理和进程间通信这几个根本的功能。它们通过消息传递(例如,Windows采用的进程间通信IPC机制,IPC就是InterProcess Communicate)进行通讯。只有核心任务在内核执行,所以微内核安全性比较好的轻量级架构。
大部分Linux系统(包括BSD在内的几乎所有的Unix、MS-DOS、Windows 9x、Sun
Solaris以及基于Linux的VMware ESX
Server)是基于分层的单内核架构。它的内部又能够被分为若干模块(或层次,或其他)。但是在运行的时候,它是一个单独的大二进制映象。因为是在同一个进程内,其模块间的通讯是通过直接调用其他模块中的函数实现的,而不是微内核那样在多个进程内进行消息传递。因此在运行效率上,单内核会具有一定的好处。
Hyper-V网络
Hyper-V虚拟网络通过VMBus和vSwitch进行互联,通过模拟一个标准的(ISO/OSI)二层交换机实现三种类型:
私有虚拟网络:只允许在运行Hyper-V服务器上的VMs间进行通信,VMs无法和Hyper-V服务器进行通信。
内部虚拟网络:允许Hyper-V上的VMs间通信,也允许这些VMs和Hyper-V服务器通信;但无法和外部网络进行通信。
外部虚拟网络:允许Hyper-V上的VMs之间,Hyper-V服务器和外部网络通信。
Hyper-V vSwitch
Hyper-V在vSwitch上很多实用的功能如:多租户隔离、通信调整(虚拟机队列)、非微软扩展开放(可扩展SDN功能如:OpenFlow,以太网端口聚合等)、通过网络设备接口规范(NDIS)筛选驱动和Windows筛选平台(WFP)标注驱动检查非Windows扩展的安全和合法性。另外,Hyper-V在网络上也进行了一些优化:
SR-IOV(Hyper-V Single Root IO Virtualization)
将物理网卡的部分功能直接映射给VM,VMs可以直接访问物理网卡,不需要经过vSwitch。
VMQ(VM Queue)
在物理网卡上为每个虚拟机分配一个接受队列,将VMQ映射到VM的地址空间,当物理网卡接收到数据时查找MAC把数据放到VM对于的VMQ中,VM直接访问数据,不需要vSwitch进行数据拷贝。
请搜索“ICT_Architect”关注公众号,获取更多精彩内容。
本文出自 “ICT架构师技术交流” 博客,谢绝转载!
原文地址:http://hardywang.blog.51cto.com/10985768/1727380