【www.hj8828.com】如何为服务器虚拟化挑选合适的模式

到底哪种模式最好?

虚拟化对于计算的抽象,大家可能相对熟悉,也许都有在单机使用诸如Virtual
PC或者Virtual
Box的经验。使用的这些虚拟化软件的第一印象就是我们的CPU可以同时运行多套不同的操作系统,并且其上应用程序并行不悖。计算的抽象使得同一套硬件设备上的操作系统之间得以相互隔离,犹如一个身体拥有两个甚至更多灵魂,这是什么鬼?那么接下来很自然的一件事就是,这些灵魂之间该如何沟通呢?依然只有一个身体,如何相互握手和交流,如何对外联系和提供服务。因而对于虚拟化而言,最重要的基础设施除了存储外,再就是网络,即需要实现网络的虚拟化。这里我们粗略描述Windows
Server 2012 R2和System Center Virtual Machine Manager 2012
R2(以下简称SCVMM)实现网络的虚拟化的基本原理,有需要详细了解的可以看微软的电子书Microsoft
System Center: Network Virtualization and Cloud
Computing。

虚拟化对于计算的抽象,大家可能相对熟悉,也许都有在单机使用诸如Virtual
PC或者Virtual
Box的经验。使用的这些虚拟化软件的第一印象就是我们的CPU可以同时运行多套不同的操作系统,并且其上应用程序并行不悖。计算的抽象使得同一套硬件设备上的操作系统之间得以相互隔离,犹如一个身体拥有两个甚至更多灵魂,这是什么鬼?那么接下来很自然的一件事就是,这些灵魂之间该如何沟通呢?依然只有一个身体,如何相互握手和交流,如何对外联系和提供服务。因而对于虚拟化而言,最重要的基础设施除了存储外,再就是网络,即需要实现网络的虚拟化。这里我们粗略描述Windows
Server 2012 R2和System Center Virtual Machine Manager 2012
R2(以下简称SCVMM)实现网络的虚拟化的基本原理,有需要详细了解的可以看微软的电子书Microsoft
System Center: Network Virtualization and Cloud
Computing。

虚拟化如今已经成为一个被过分夸大的流行语。

一、什么是网络虚拟化

一、什么是网络虚拟化

在大型机领域,它已经是一张盘桓了数年的老面孔。它的主要功绩在于将原本只为大型科技服务的概念移植到了x86机之中,并让人民大众从中得到帮助。

现在有一种流行的说法叫做软件定义网络,网络中有不同的解释,我自己简单理解为是更多通过软件编程来实现对网络的集中管理。比如之前在交换机上的VLAN功能,需要在每台交换机进行配置,不同厂商就有不同的配置方式,配置复杂且管理成本高昂,那么通过一个开放、统一和标准的软件平台对网络硬件进行控制,那将极大改善这一状况。当然由于商业竞争的因素,让各个厂商拥有开放包容的心,不是件容易的事,因而软件定义网络还有很长的路要走。那么回到网络虚拟化,即可以认为是一种在特殊情形下的软件定义网络,即在一个或者多个数据中心里实现软件定义网络的美好图景。除了通过统一软件平台来管理网络外,网络虚拟化也有自己特殊的应用目的和需求。

现在有一种流行的说法叫做软件定义网络,网络中有不同的解释,我自己简单理解为是更多通过软件编程来实现对网络的集中管理。比如之前在交换机上的VLAN功能,需要在每台交换机进行配置,不同厂商就有不同的配置方式,配置复杂且管理成本高昂,那么通过一个开放、统一和标准的软件平台对网络硬件进行控制,那将极大改善这一状况。当然由于商业竞争的因素,让各个厂商拥有开放包容的心,不是件容易的事,因而软件定义网络还有很长的路要走。那么回到网络虚拟化,即可以认为是一种在特殊情形下的软件定义网络,即在一个或者多个数据中心里实现软件定义网络的美好图景。除了通过统一软件平台来管理网络外,网络虚拟化也有自己特殊的应用目的和需求。

虚拟化这种一方面简单明了、另一方面却实施模型有限的技术一旦爆发,可以想象其影响力之巨大。如今每一个我们能想象的地方都有它的身影,即使是在智能手机中也不例外。

1、需要实现每个虚拟机都可以像单个物理机一样的网络功能。同一台物理机上的不同虚拟机之间,不同物理机上的虚拟机之间,虚拟机与物理机之间,虚拟机与外部网络能够屏蔽底层的硬件差异,在虚拟化网络上互联互通。

1、需要实现每个虚拟机都可以像单个物理机一样的网络功能。同一台物理机上的不同虚拟机之间,不同物理机上的虚拟机之间,虚拟机与物理机之间,虚拟机与外部网络能够屏蔽底层的硬件差异,在虚拟化网络上互联互通。

新功能完全没有为极力避免使用虚拟化的不同意见者提供任何帮助。有些人认为这一选择值得大力推广,另一些则宣称使用所涉及的技术是“唯一正确的发展方向”。

2、需要实现物理网络的更高效的利用。在一个物理网络上(通物理机上同一个物理网卡)承载更多的相互隔离且负载均衡的网络(这点类似VLAN)。数据中心往往需要配置多种相互隔离的网络以承载各类应用,例如域网络、集群心跳网络、集群管理网络、虚拟机迁移网络和外部网络等等,如果在硬件上通过VLAN或者直接增加硬件的方式实现,那将是一件费时费力费钱的工作。

2、需要实现物理网络的更高效的利用。在一个物理网络上(通物理机上同一个物理网卡)承载更多的相互隔离且负载均衡的网络(这点类似VLAN)。数据中心往往需要配置多种相互隔离的网络以承载各类应用,例如域网络、集群心跳网络、集群管理网络、虚拟机迁移网络和外部网络等等,如果在硬件上通过VLAN或者直接增加硬件的方式实现,那将是一件费时费力费钱的工作。

直接连接型虚拟化与分布式模式,二者的冲突给意识形态带来了新的战场。

3、需要实现网络的高可用性。物理设备,包括网线、网卡和交换机等都有损坏的可能,需要有一种方案降低他们损坏后对网络造成的影响。

3、需要实现网络的高可用性。物理设备,包括网线、网卡和交换机等都有损坏的可能,需要有一种方案降低他们损坏后对网络造成的影响。

直接连接型虚拟化比较简单,说起来也就是一台服务器,配备着托管数套虚拟机的本地存储。它们利用由管理程序提供的虚拟交换机即vSwitch)进行互相通信,而无需将数据包经过网络接口卡简称网卡)发送至网络的每个角度。

4、需要保障虚拟化平台上高可用的虚拟机的动态迁移。当物理网络或者物理主机损坏而掉线后,其上具有高可用性的虚拟机将执行迁移操作,在另一台物理主机上重新上线,甚至让外界无法感知其迁移的过程,这要求虚拟化网络能够保证虚拟机上的所有网络配置在另一台物理主机上是依然有效的。

4、需要保障虚拟化平台上高可用的虚拟机的动态迁移。当物理网络或者物理主机损坏而掉线后,其上具有高可用性的虚拟机将执行迁移操作,在另一台物理主机上重新上线,甚至让外界无法感知其迁移的过程,这要求虚拟化网络能够保证虚拟机上的所有网络配置在另一台物理主机上是依然有效的。

讨论环节

以上每一项都不是件容易的事,那么我们接下来看看SCVMM如何在统一软件管理平台上实现这所有目的和需求。

www.hj8828.com,以上每一项都不是件容易的事,那么我们接下来看看SCVMM如何在统一软件管理平台上实现这所有目的和需求。

通常情况下,托管在直接连接方案中的虚拟机能够与处于主机系统之外的服务器及客户机进行沟通,但大部分交流仍然发生在同一套系统中的虚拟机之间。

二、Windows 2012 R2中的网络虚拟化

二、Windows 2012 R2中的网络虚拟化

分布式虚拟化则完全不同。主机服务器被尽可能当作一套彻头彻尾的一次性处理单元。存储资源采用集中式管理方案,并通过存储区域网络简称SAN)中虚拟机与物理交换机之间的通信被提供给多台主机。

实现网络虚拟化的本质是对物理网络的抽象,也就是在物理网络上构建虚拟网络以适应不同的应用场景。这里的核心技术是IP数据包的包装协议。各家的虚拟化平台采用的IP包装协议并不同,例如主要有:Virtual
eXtensible Local Area Network (VXLAN),Stateless Transport Tunneling
Protocol for Network Virtualization (STT)和Generic Routing Encapsulation
(GRE)。 SCVMM采用特殊的GRE协议,称为Network Virtualization using Generic
Routing Encapsulation
(NVGRE)。这些协议的主要目的就是对原始IP数据包进行封装,以实现网络数据传输的隔离。

实现网络虚拟化的本质是对物理网络的抽象,也就是在物理网络上构建虚拟网络以适应不同的应用场景。这里的核心技术是IP数据包的包装协议。各家的虚拟化平台采用的IP包装协议并不同,例如主要有:Virtual
eXtensible Local Area Network (VXLAN),Stateless Transport Tunneling
Protocol for Network Virtualization (STT)和Generic Routing Encapsulation
(GRE)。 SCVMM采用特殊的GRE协议,称为Network Virtualization using Generic
Routing Encapsulation
(NVGRE)。这些协议的主要目的就是对原始IP数据包进行封装,以实现网络数据传输的隔离。

不过每种模式都有各种的局限性。

SCVMM可以通过几个层次对物理网络进行重新定义,这里我们考虑如下场景:两台物理主机通过两个独立的物理网络相连,这在数据中心中应该是最为常见的状况。

SCVMM可以通过几个层次对物理网络进行重新定义,这里我们考虑如下场景:两台物理主机通过两个独立的物理网络相连,这在数据中心中应该是最为常见的状况。

直接连接式虚拟化速度更快。每块10Gb
网卡目前SAN的标准接口)在理论上可以提供最大1280兆字节每秒MBps)的传输速度。而目前相当普遍的PCIe
8x 2.0 RAID卡理论上的传输速度更高达4000MBps。

www.hj8828.com 1

www.hj8828.com 1

不过一用在实际工作中数字就没那么乐观了。我在10Gb网络附加存储系统上所能得到的上限速度仅为900MBps,而我自己的RAID卡SSD
RAID
10)也只能带来2200MBps的实际表现。不过2200MBps已经足以将900MBps碾压到不成人形,并且这样的存储速度优势已经极具价值,而且请记住,这种优势是直接连接模式所提供的。

下面我们来看看物理主机的网络在下面各个层面的配置:

下面我们来看看物理主机的网络在下面各个层面的配置:

网上有这样一个类似的故事。某款管理程序的虚拟交换机为每台虚拟机提供了一块10Gb的虚拟网卡。这使得处于同一台主机内的每套本地虚拟机系统以10Gb的理论数值进行通信;如果如果大家愿意为某台指定的虚拟机搭配多套虚拟网卡,那么速度还将进一步提升。

1、建立网卡组(NIC Team)

1、建立网卡组(NIC Team)

困境

将物理主机上2个及以上物理网卡合并为网卡组,可以在这些物理网卡之间形成冗余和实现负载均衡。如下图所示,在物理主机的操作系统层面,合并的网卡组表现为一张网卡,相互连接为一个网络。网卡组的功能其实由Windows
2012 R2提供的,SCVMM可以充分调用Windows 2012 R2、Hyper-V和Failover
Cluster的所有资源和功能。

将物理主机上2个及以上物理网卡合并为网卡组,可以在这些物理网卡之间形成冗余和实现负载均衡。如下图所示,在物理主机的操作系统层面,合并的网卡组表现为一张网卡,相互连接为一个网络。网卡组的功能其实由Windows
2012 R2提供的,SCVMM可以充分调用Windows 2012 R2、Hyper-V和Failover
Cluster的所有资源和功能。

当将分布式的非主机设备引入余下的网络中时,这些虚拟机就要为争夺硬件所提供的有限带宽资源而奋战。如果我们有三十套虚拟机系统,那么为它们各自配备10Gb带宽,与只拿出一块10Gb带宽的网卡让它们共同使用、而由物理交换机负责网络处理是完全不同的感觉。

www.hj8828.com 3

www.hj8828.com 3

如果仅从目前提出的数字出发,那么分布式虚拟化看起来简直就是疯狂而不可理喻的。但它仍然具备独特的优势,而对于许多而言,一切缺点在这优势面前都可以算是必要的成本。

在Windows Server
2012中输入命令lbfoadmin可以查看和配置网卡组,如下图在物理主机cloud-pm-ds01上创建了两个网卡组,每个网卡组中包含2张物理网卡。

在Windows Server
2012中输入命令lbfoadmin可以查看和配置网卡组,如下图在物理主机cloud-pm-ds01上创建了两个网卡组,每个网卡组中包含2张物理网卡。

直接连接式虚拟化所无法实现的就是从一台主机上的虚拟机中迅速迁移至另一台。虚拟机本身可能就体积庞大,因此通过网络实施迁移无疑会耗费大量时间。

www.hj8828.com 5

www.hj8828.com 5