详细讲解Hyper-V虚拟机的网络配置
近几年最火热的IT术语就是虚拟化、云计算,随着Hyper-v2.0的发布,服务器虚拟化又一次走近我们的身边,在任何虚拟化环境,都需要考量虚拟网络的配置,那么,hyper-v如何支持网络,又是如何配置的呢?本文简单介绍了hyper-v的架构,并针对Hyper-V在实际应用中的网络架构及设置进行详尽的讲解,使您可以对其虚拟网络运行机制有一个全面的了解。
术语说明:
运行在hyper-v服务器上的虚拟机:子分区、虚拟机、guest
运行hyper-v的物理服务器:父分区、管理操作系统、host
Hyper-v的简介及架构
Hyper-V是微软伴随Windows Server 2008推出的服务器虚拟化解决方案,最新的版本为Hyper-v 2.0,随windows 2008 R2发布,其单独版本为Hyper-V Server 2008 R2,与上一个版本增加了大量新特性,特别是动态迁移(Live Migration)、故障转移集群(Failover Cluster)、新版服务器配置工具等等,同时物理系统处理器、内存支持(4路/24核心、32GB-->8路/64核心、1TB),另外最多可运行的虚拟系统也从192增加到了384个,在增加容量的同时不需要重新启动系统。利用hyper-v管理器及SCVMM2008,提供了动态、可靠以及可伸缩的虚拟化平台,并以之管理物理和虚拟资源,可实现更低的总体拥有成本(TCO)。
Hyper-v核心代码仅有几百K,且不包含任何第三方驱动,驱动程序和全新的 IO 共享模型一起托管在父分区中,Hyper-V的架构简化了虚拟机和硬件之间的层数,这种构架使得虚拟机和硬件之间只通过很薄的一层进行连接,因此虚拟机执行效率非常高,可以更加充分的利用硬件资源,使虚拟机系统性能非常的接近真实的操作系统性能。
Hyper-V采用基于VMbus的高速内存总线架构,来自虚机的硬件请求(显卡、鼠标、磁盘、网络),可以直接经过VSC,通过VMbus总线发送到根分区的VSP,VSP调用对应的设备驱动,直接访问硬件,中间不需要Hypervisor的帮助。
Hyper-v架构如下图所示:
Hyper-v网络运行机制
Hyper-v通过模拟一个标准的(ISO/OSI二层)交换机来支持以下三种虚拟网络:
External(外部虚拟网络):虚拟机和物理网络、本地主机都能通信
在希望允许子分区(虚拟机或guest)与外部服务器和父分区(管理操作系统或host)进行通信时,可以使用此类型的虚拟网络。此类型的虚拟网络还允许位于同一物理服务器上的虚拟机互相通信。
Internal(内部虚拟网络):虚拟机之间互相通信,并且虚拟机能和本机通信
在希望允许同一物理服务器上的子分区与子分区和父分区之间进行通信时,可以使用此类型的虚拟网络。内部虚拟网络是一种未绑定到物理网络适配器的虚拟网络。它通常用来构建从管理操作系统连接到虚拟机所需的测试环境。
Private(专用虚拟网络):仅允许运行在这台物理机上的虚拟机之间互相通信
在希望只允许同一物理服务器上的子分区之间进行通信时,可以使用此类型的虚拟网络。专用虚拟网络是一种无需在父分区中装有虚拟网络适配器的虚拟网络。在希望将子分区从父分区以及外部网络中的网络通信中分离出来时,通常会使用专用虚拟网络。
建议在运行hyper-v的服务器上至少两个网络适配器,其中:一个网络适配器专供进行远程管理的使用,另外一个或多个网络适配器专门用于虚拟机(子分区);如果你使用到SAN、iSCSI等共享网络存储,需要两个高速(Gbit铜缆或光纤)专门用于网络存储,因此生产环境建议至少四个网络适配器。
实践建议:为每个网络适配器重命名为易记、易懂的标识,如:专供远程管理的网络适配器——manager
下图为某企业生产环境hyper-v拓扑图:
如果使用System Center Virtual Machine Manager 2008(以下简称SCVMM)的话,可以很方便的看到全局或单独虚拟的网络拓朴图,如下:
外部虚拟网络
对于hyper-v服务器,最值得关注的是外部虚拟网络,理解外部虚拟网络也就理解了hyper-v的网络结构。Hyper-v外部虚拟网络的网络通信,通过在物理网卡上运行“Microsoft Virtual Network Switch Protocol(微软虚拟交换机协议)”,模拟出一个标准的(ISO/OSI二层)交换机,支持Vlan划分。对于生产环境基本上都将使用到外部虚拟网络,结合vlan的设置,可以轻松构建适合企业使用的网络。
在安装 Hyper-V 并创建外部虚拟网络后,计算机将以不同的方式运行。安装后,父分区将使用虚拟网络适配器连接到物理网络。在父分区的“网络连接”上,您将看到原始的网络适配器和一个新的虚拟网络适配器,在原始物理网络适配器只绑定“Microsoft 虚拟网络交换协议”,而虚拟网络适配器绑定了所有标准协议和服务(如ipv4、ipv6、Microsoft网络客户端)。在“网络连接”下显示的虚拟网络适配器将使用与其关联的虚拟网络交换机相同的名称。在创建或删除外部虚拟网络时,将会暂时中断外部网络连接。
创建外部虚拟网络后,除了交换机是基于软件以及可以根据需要动态添加或删除端口之外,虚拟网络与物理网络的工作原理基本相同,虚拟交换机发挥物理交换机的功能,所有的网络通信将通过外部虚拟网络传送到其目的地。
因此,建议使用至少一个其他物理网络适配器来管理网络通信。
通常我们使用SCVMM来配置虚拟网络,在SCVMM提供更多的选项比如VLAN的trunk模式。在外部虚拟网络中,我们需要配置网络的连接类型(外部)、选择绑定的网络适配器、VLAN的模式等,下图为Hyper-v管理器——外部虚拟网络配置:
内部虚拟网络及专用虚拟网络
相对于外部虚拟网络来说,内部及专用虚拟网络就好理解多了。
添加内部虚拟网络的步骤及添加外部虚拟网络相似,但不需要选择绑定的物理网卡,在父分区的“网络连接”上将新增一个新的虚拟网络适配器,但不会对已有的物理卡做任何修改。内部虚拟网络仅提供子分区与子分区及父分区之间的通信。
添加专用虚拟网络的步骤及添加内部虚拟网络一样,在父分区的“网络连接”不会新增虚拟网络适配器。专用虚拟网络仅提供子分区之间的通信。
设置全局MAC地址
可以通过hyper管理器设置子分区能够使用的MAC地址范围,通常我们不需要特别去设置。在P-V时,某些特殊需求的情况下,我们只需要单独为虚拟机(子分区)的网卡分配MAC地址。
虚拟机中的网络
当在Hyper-V中创建虚拟机,需要连接到虚拟网络时,将会使用虚拟网络适配器。有两种类型的网络适配器可用于 Hyper-V:
l 网络适配器:SCVMM中称为综合网络适配器
综合网络适配器是 Hyper-V 所使用的一种新设备,可比仿真网络适配器提供更佳的性能。合成网络适配器要求在虚拟机上安装hyper-v的集成服务(VGS、虚拟来宾服务)。
l 旧版网络适配器:SCVMM中称为仿真网络适配器
模拟基于 Intel 21140网络适配器,可以在所有虚拟化软件(Virtual PC、Virtual Server等)平台上使用,并支持PXE启动。通常因为操作系统原因(如版本太旧)无法安装集成服务。
虚拟机(子分区)连接到虚拟交换机的一个端口。为了使虚拟机上的网络应用程序能够与外部网络的应用程序一起工作,它首先会通过虚拟网络适配器路由到外部虚拟网络上的虚拟端口(连接虚拟机的端口),然后将网络数据包通过物理网络适配器向外发送到外部物理网络。
通常我们需要配置虚拟机网络适配器的:网络连接、MAC地址、VLAN,如下图:
虚拟局域网 (VLAN)
Hyper-v支持Vlan,同时支持access及trunk。首先你的网络需要支持vlan,至少你的父分区网络适配器支持Vlan。Access模式相对比较简单,只需要在子分区网络适配器中设置对应的Vlan ID,Trunk 模式允许多个 VLAN ID 共享物理网络适配器和物理网络之间的连接。若要使虚拟机能够外部访问多个 VLAN 中的虚拟网络,您需要将物理网络上的端口配置为 trunk 模式。还需要知道所使用的特定 VLAN,以及虚拟网络支持的虚拟机使用的所有 VLAN ID。Trunk模式需要在System Center Virtual Machine Manager 2008 中设置。
以太网交换机端口的三种链路类型:access、trunk、hybird。
l Access类型的端口只能属于1个VLAN,一般用于连接计算机的端口;
l Trunk类型的端口可以允许多个VLAN通过,可以接收和发送多个VLAN的报文,一般用于交换机之间连接的端口;
l Hybrid类型的端口可以允许多个VLAN通过,可以接收和发送多个VLAN的报文,可以用于交换机之间连接,也可以用于连接用户的计算机。
总结
通过以上内容的介绍,我们将学习到三种的虚拟网络架构,各种虚拟网络不同的用途,特别对常用于生产环境的外部虚拟网络,以及VLAN的支持做了详尽的介绍。Hyper-v的网络架构与vmware的网络架构,有着很大的区别,但hyper-v的网络架构更简单,更合适企业生产环境。在实际生产环境中,更多时候将使用功能强大的system center(主要是scvmm、scom、dpm)来管理整个虚拟化平台。