服务器虚拟化的阴暗面 (服务器虚拟化软件)

教程大全 2025-07-16 13:41:33 浏览

服务器 虚拟化的阴暗面

2010-08-05 09:54:54服务器虚拟化可减少服务器的数量,所需的制冷能力和功率都更小,同时也大幅增加了灵活性,因此可以有效地降低总体拥有成本(TCO)。对于业务和服务器团队而言,这的确是好消息,但对于网络的管理来说,它又会产生怎样的影响呢?事实情况是,它会使网络管理变得更加复杂。

服务器虚拟化在数据中心领域中正得到越来越广泛的实际应用。经济因素与这一趋势密不可分。服务器虚拟化可减少服务器的数量,所需的制冷能力和功率都更小,同时也大幅增加了灵活性,因此可以有效地降低总体拥有成本(TCO)。对于业务和服务器团队而言,这的确是好消息,但对于网络的管理来说,它又会产生怎样的影响呢?事实情况是,它会使网络管理变得更加复杂。

服务器虚拟化会牵涉到两项重大的网络问题。首先是虚拟局域网(VLAN)的配置问题。网络管理者必须确认当物理服务器运行虚拟机时,同样的交换机端口也被分配给了虚拟机使用的虚拟局域网。

解决方法之一是,服务器虚拟化团队将虚拟机可能启动的每一台服务器告诉网络管理团队,并且对交换机端口进行预先配置。但这并不是理想的解决方案,因为这将导致在很大比例的交换机端口上定义VLAN。由于服务器团队可能并不清楚镜像启动时所用的所有服务器,特别在灾难恢复情况下他们要采取紧急措施的时候,情况将变得更加复杂。

第二个问题是指定服务质量(QoS)和执行网络协议,例如访问控制列表(ACL)。传统上,这项工作是在与应用所运行的服务器相连的网络交换机上完成的。当有了服务器虚拟化后,就出现了运行在物理服务器的Hypervisor下的软件交换机,而非传统意义上的连接到物理服务器的物理网络交换机。

在软件交换机上执行协议还是很重要。例如,有两台虚拟机,我们本意是这两台虚拟机相互通信,但如果有人控制了虚拟机1,便可以打开与虚拟机2的连接并盗取数据。而我们如果对服务器上的软件交换机实施了访问控制列表,这种入侵活动便可被阻止。

在虚拟化之前,此类行为一般都可阻止,由于虚拟机1和虚拟机2运行在不同的服务器上,因而可以通过在网络交换机上定义访问控制列表来阻止这种通信。在软件交换机上执行这种协议可以保持安全性。但问题在于,如何让软件来实施协议。

要想使服务器虚拟化顺利开展,克服这些挑战将至关重要。目前,共有四种方法来解决这些问题。

虚拟化厂商的应对之法

市场上有多家提供虚拟化解决方案的厂商,例如VMware、思杰、微软、红帽等。不过,Vmware的解决方案应用最为广泛,因此我们以它来举例说明。

在图1中,VMware的vCenter控制着虚拟流程并指导虚拟机应在哪里启动。Hypervisor控制着服务器和运行在物理服务器上的虚拟机。vSwitch是VMware提供的一种2层软件交换机。每台虚拟机都有一个虚拟网卡(vNIC)。vNIC使用的是来自虚拟化厂商的访问控制清单地址池,或者是企业建立和分配的访问控制清单地址。该图的目的并不是显示真实环境下所有可能的变化情况,它只是展示整个虚拟化流程是如何运转的。

步骤1是由服务器团队定义出虚拟机的所有网络特性和协议。操作员会告诉vCenter在步骤2中启动虚拟机2。该过程中,vCenter和服务器上的Hypervisor之间会互相传递多条消息,例如,vCenter会将网络协议信息推送给Hypervisor。在步骤3中,Hypervisor会为vSwitch配置正确的VLAN、QoS和协议信息。当虚拟机2上的应用开始发送包时,该协议会在vSwitch上实施(图1中的蓝点表示)。

这种方法解决了在vSwitch上实施协议的问题,但并没有解决网络交换机中的VLAN配置问题。虚拟化团队需要告诉网络管理团队,应在虚拟机开始发送流量之前,为VLAN配置交换机端口,这就要求进行快速协调或者对交换机进行预先配置。当虚拟化团队需要对虚拟机进行动态迁移时,协调问题会变得更加复杂。在移动服务器时,虚拟化团队需要与网络团队进行协调,而且网络团队需要在成功迁移后完全清除老交换机上的配置。

使用该方法最大的问题是,虚拟化和网络团队之间进行协调的工作量将很大。虚拟化团队必须对vCenter中的参数进行配置,例如VLAN编号、QoS和ACL等,而这些参数又是由网络团队控制的。这意味着服务器虚拟化团队和网络团队之间需要不间断的良好协调。VLAN或协议中的任何变化都必须立即反映到虚拟服务器配置中,而这其实意味着一个潜在的故障点。

另外一个值得担忧的问题是,网络团队难以了解vSwitch内部的工作情况。因为vSwitch处在vCenter的控制下,而非传统的网络管理软件。此外,对网络团队而言,虚拟机的透明度也极低。一些网络厂商已经要求vCenter将变化或者对变化的抽样调查通知给网络团队,并将其与传统的网络数据一同显示出来。这些方法在一定程度上解决了可视性的问题。

服务器虚拟化的阴暗面

四大方案破解VLAN配置问题

第一种方案是实现交换机与虚拟机管理软件的同步。Blade Networks目前提供了一种在其交换机上运行的应用,而Force10公司的下一版操作系统也可以解决VLAN的配置问题。这两家公司的交换机会对vCenter进行查询,监测各种变化,也可以收到vCenter发出宣告变化的消息。如果交换机发现vCenter配置有变化,它会自动执行配置。虚拟化操作员不必与网络运营部门进行协调,因此能够使虚拟机的启动过程变得非常顺利。交换机查询间隔一定要小于一台虚拟机启动的时间,从而确保交换机能够以足够快的速度看到变化。在Force10的第一个版本中,它惟一监视的参数就是VLAN的参数。Blade Network则更进一步,根据vNIC或VM的UUID(通用唯一识别码)对网络交换机实施了全系列的协议。该解决方案仍然需要在vSwitch中实施协议。

第二种解决VLAN配置问题的方法是通过中间件协调控制虚拟机管理软件和交换机。例如,使用惠普或Juniper等厂商提供的协调软件,但这些软件只能在其原厂的交换机上运行。Scalent和CA等管理厂商也提供了自己的解决方案。在这种情况下,协调软件会与网络交换机和vCenter对话,并协调两个环境之间的配置变化。这种方法有一定的潜在优势,即能够广泛适用于众多交换机和虚拟化厂商。

第三种方案来自于思科。思科提供了一种称为”1000V”的软件交换机解决方案,用于替代vSwitch。1000V由两个组件组成:VSM(Virtual Switch Module)是虚拟交换机模块,用于替代运行在Hypervisor内的vSwitch软件;VEM(Virtual Element Manager)则用于配置和存储VSM网络协议。

图2显示的是该过程的工作原理。首先根据虚拟机的UUID或vMAC地址,在VEM中对虚拟机的VLAN和协议进行配置。在步骤2中,vCenter启动一台新的虚拟机或移动一台虚拟机。在步骤3中,Hypervisor向VSM发出通知。接下来,VSM在第四个步骤中从VEM中提取协议信息。如果网络交换机属于Nexus产品线,它也可以从VEM中提取必要的VLAN和协议信息。至此,Hypervisor中的交换机和Nexus交换机都获得了处理虚拟机2的正确信息。当虚拟机2开始发送流量时,所有正确的协议都会在Hypervisor中的1000V交换机上开始实施(以蓝点表示)。

思科方案的好处与第一种方法相同。如果将1000V与已经为虚拟化做好准备的Nexus交换机一同使用,那么就可以解决网络交换机中的VLAN问题。该方案的另一个好处在于,可以移动在网络管理软件的控制下的Hypervisor中的交换机,从而能够清楚地划分网络团队应担负的责任。当然,它也有不足的一面。目前,思科只能提供适用于VMware的解决方案,对于Xen和HyperV则无能为力。

第四种方法采用了一种以网络设备为中心的视角来解决问题。如附图3所示,在步骤1中,按照虚拟网卡在网络管理软件中对虚拟机进行了定义。在步骤2中,vCenter指导Hypervisor启动虚拟机。在第三个步骤中,Hypervisor会发送一个公告包,宣布它正在启动二号虚拟机。该公告中包含二号虚拟机的vNIC及其UUID。在步骤4中,交换机发现了该公告并发送其VLAN和其它协议信息的请求。接下来,交换机会向进入网络的任何流量实施这些协议。

该方案的重点是交换机只在网络交换机中实施协议,以蓝点表示,而不会在vSwitch中实施。交换机还会监视来自Hypervisor的消息,这些消息表明虚拟机是否移动。如果发现此类消息,交换机便会清除与该vNIC相关的VLAN和协议信息。使用该解决方案的厂商包括Arista Networks、Blade and Enterasys,另外惠普和Juniper也在通过其协调方法使用该解决方案。Brocade等其它厂商也在计划提供该解决方案。Extreme Networks将该技术用于QoS和协议,但未用于VLAN。

这种方法努力想让虚拟化团队不再被牵连到网络协议的实施工作中来。然而,还有两个问题。首先是服务器虚拟化和联网团队仍然必须就VLAN的编号进行协调。目前,Enterasys可以向vSwitch自动提供VLAN编号,而Arista也计划在近期加入该功能。

这种方法最大的问题是,它没有在vSwitch上实施协议,因而使得同一服务器上的虚机之间的交通流量绕过访问控制列表和其它安全协议。为解决这一问题,Enterasys和Arista计划添加在vSwitch上实施协议的能力,如图3中A所示。

在未来,解决这一问题的办法之一是允许交换机做”180度急转弯”。这样,可对vSwitch进行配置,规定其将所有的流量,甚至包括虚拟机1至虚拟机2的流量,都直接发送给网络交换机。网络交换机接下来会实施协议并指定QoS。虚拟机1至虚拟机2的流量可以回传至vSwitch,由它将其发送至虚拟机2。

这将使vSwitch变成一个只担负转发职责的”哑巴”交换机。问题是,所有2层交换机对应的802.1D标准不允许从一个端口发出的流量沿原路返回到该端口。因此,在现行的规则下,网络交换机无法将从虚拟机1发往虚拟机2的包沿原路返回,因为这样是违反规则的。该规则的目的是防止出现回路。IEEE目前正在对802.1D进行修订,允许交换机执行”180度急转弯”,并且正在开展其它一些工作,实现”哑”交换机在Hypervisor中的标准化。当这种方式普及后,它将能够解决这一问题,并且可以免去网络和服务器团队之间绝大多数的协调工作。

Enterasys目前还有一种变通办法,可以指导vSwitch将每台虚拟机安置在独立的VLAN中。即选择目前没有使用的VLAN编号,来预防任何潜在的问题。由于虚拟机处于不同的VLAN中,它们无法相互通信。当数据包到达网络交换机时,交换机会使用真正分配给虚拟机的编号来替换VLAN编号,让网络及其目的地以为虚拟机一直处于正确的VLAN中。

问题仍未彻底解决

另外,还有一个VLAN配置问题是上述技术仍然没有解决的。当向某个端口分配一个新的VLAN编号时,需要使用该VLAN编号连接所有其它的端口。这就要求聚集在这条在路径上的所有交换机都要对VLAN进行定义。

例如,如果VLAN 5支持某项应付账应用。所有支持该应用的虚拟机都位于一台机架式交换机上,且该交换机已经针对VLAN 5进行了配置。由于负载的原因,一台运行应付账应用的虚拟机需要被迁移到数据中心另外一个带有自己交换机的机架服务器上。

保留VLAN意味着所有的中间交换机都需要针对VLAN5进行配置;如果未对其进行配置,则等于破坏了VLAN。目前没有那个解决方案说清楚如何自动分配交换机中的虚拟局域网。这就意味着如果虚拟机可以在数据中心内部迁移,虚拟局域网数量必须在所有的核心交换机和集合交换机上事先进行配置。。此外,这个问题在近期内不太可能得到解决。

业界已经开发出一系列解决端口VLAN和协议问题的解决方案。但是,短期内,网络和虚拟化团队需要进行大量的协调工作,以保障工作的顺利运行。”180度急转”是最好的长期性解决方案,而且业界正在朝这个方向努力。由于目前市场上还没有出现能够适用于所有虚拟化解决方案的全系列解决方案,因此网络管理者们应当充分了解各种解决方案。

【深度点评】

为了更加全面地看待本文所探讨的问题,本报特地邀请服务器虚拟化方面的专家,对此文进行深度点评,期冀能给读者呈现更深更广的视角。

本文讨论的是网络厂商针对服务器虚拟化所做出的技术反映。文章讨论了4种技术方案,VMware的vSwitch(方案1)和思科的1000v(方案3)的基本思路是一致;方案2的orchestration类似于一种中间件,这符合惠普一贯的作风,不过他们擅长做管理软件吗?而且我不喜欢这种方式,层次太多更不好管理;方案4是较好的方案,更有可能在虚拟机管理软件和网络设备间建立一种标准协议,从而实现不同虚拟机厂商和网络厂商的兼容。

对这个问题,我希望的解决方案是这样的:

应该是以虚拟化管理软件为中心,这个软件管理的不仅是虚拟机和物理服务器,而且包括所有的网络设备;传统上网络系统中链接主机的最后一条(last hop)是硬件交换机,而在虚拟化环境中一定是软交换机(如vSwitch或v1000);不论是软交换机还是硬交换机,要提供可编程的控制接口或者标准协议,所有网络设备由统一的管理软件(如虚拟化管理软件,类似vCenter或更上层的管理软件)进行管理。总地说来,这篇文章很好,提的问题很实际,有一定深度。不过文章的标题看起来有点夸张,实际上虚拟化是未来的一种趋势,当一种技术带来更大的灵活性,使人们能够完成以前无法完成的任务的同时,必然会带来更大的复杂性。虚拟化是一种潮流,从处理器到服务器,然后将是网络,再接着是整个IT基础设施,再之后呢,无限的空间可以想象……

——中国移动研究院云计算研究员 张志宏

文中提到的由服务器虚拟化所引起的两个重大的网络问题,即虚拟局域网(VLAN)的配置问题以及服务质量(QoS)和执行网络协议问题,确实是一直以来困扰服务器虚拟化厂商和网络管理厂商的难题,也在某种程度上影响了服务器虚拟化的顺利开展。

针对这两个问题,文中提到了四种解决方案,但这四种方案都存在一定的局限性。

VMware通过对内置于Hypervisor中的vSwitch进行配置来解决实施协议的问题,但对VLAN的配置问题依然没有触及。

为了解决VLAN的配置问题,虚拟化组件群和网络组件群之间的协调是关键所在,Force10和Blade Networks通过在交换机上安装监控程序来监听vCenter的变化,惠普和Juniper等厂商也提供了协调软件,但这些软件只能在其自家生产的交换机上运行,Scalent和CA等管理厂商推出了会与网络交换机和vCenter对话的协调软件。

思科的解决方案与VMware有异曲同工之处,配合为虚拟化做好准备的Nexus交换机一同使用,也可以解决VLAN的配置问题,但该方法主要针对VMware的服务器虚拟化产品提出的,对其它服务器虚拟化产品则束手无策,局限性很明显。

第四种方法以网络设备为中心的视角来解决问题,主要体现在Hypervisor直接与网络交换机进行通信,仅在网络交换机上实施协议,支持厂商有Arista Networks, Blade and Enterasys等。该方法旨在让虚拟化团队不再参与网络协议的实施工作,但同时也产生了两个问题,其一是服务器虚拟化和网络团队仍然必须就VLAN的编号进行协调,对该问题,Enterasys目前提供了一种变通办法;其二是由于没有在vSwitch上实施协议,使得同一服务器上的虚机之间的交通流量绕过访问控制列表和其它安全协议,该问题是一个非常重要的问题,Enterasys和Arista等都在寻求积极的解,甚至IEEE也参与到这一热潮中,正在通过对802.1D进行修订,以及对vSwitch的标准化来对解决这些问题提供支持。

从上面的解决方案及其演进过程中,我们不难看出,这些方法多是互联网和虚拟化团队在短期内协调各项活动,甚而是特定厂商特定产品之间的协调,而非长久之计。

——运软网络科技(上海)有限公司研究工程师 熊丽 博士

【编辑推荐】


java中,什么是云计算?

广义云计算是指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需的服务。 这种服务可以是IT和软件、互联网相关的,也可以是任意其他的服务。 解释: 这种资源池称为“云”。 “云”是一些可以自我维护和管理的虚拟计算资源,通常为一些大型服务器集群,包括计算服务器、存储服务器、宽带资源等等。 云计算将所有的计算资源集中起来,并由软件实现自动管理,无需人为参与。 这使得应用提供者无需为繁琐的细节而烦恼,能够更加专注于自己的业务,有利于创新和降低成本。 有人打了个比方:这就好比是从古老的单台发电机模式转向了电厂集中供电的模式。 它意味着计算能力也可以作为一种商品进行流通,就像煤气、水电一样,取用方便,费用低廉。 最大的不同在于,它是通过互联网进行传输的。 云计算是并行计算(Parallel Computing)、分布式计算(Distributed Computing)和网格计算(Grid Computing)的发展,或者说是这些计算机科学概念的商业实现。 云计算是虚拟化(Virtualization)、效用计算(Utility Computing)、IaaS(基础设施即服务)、PaaS(平台即服务)、SaaS(软件即服务)等概念混合演进并跃升的结果。 总的来说,云计算可以算作是网格计算的一个商业演化版。 早在2002年,我国刘鹏就针对传统网格计算思路存在不实用问题,提出计算池的概念:“把分散在各地的高性能计算机用高速网络连接起来,用专门设计的中间件软件有机地粘合在一起,以Web界面接受各地科学工作者提出的计算请求,并将之分配到合适的结点上运行。 计算池能大大提高资源的服务质量和利用率,同时避免跨结点划分应用程序所带来的低效性和复杂性,能够在目前条件下达到实用化要求。 ”如果将文中的“高性能计算机”换成“服务器集群”,将“科学工作者”换成“商业用户”,就与当前的云计算非常接近了。 云计算具有以下特点: (1) 超大规模。 “云”具有相当的规模,Google云计算已经拥有100多万台服务器, Amazon、IBM、微软、Yahoo等的“云”均拥有几十万台服务器。 企业私有云一般拥有数百上千台服务器。 “云”能赋予用户前所未有的计算能力。 (2) 虚拟化。 云计算支持用户在任意位置、使用各种终端获取应用服务。 所请求的资源来自“云”,而不是固定的有形的实体。 应用在“云”中某处运行,但实际上用户无需了解、也不用担心应用运行的具体位置。 只需要一台笔记本或者一个手机,就可以通过网络服务来实现我们需要的一切,甚至包括超级计算这样的任务。 (3) 高可靠性。 “云”使用了数据多副本容错、计算节点同构可互换等措施来保障服务的高可靠性,使用云计算比使用本地计算机可靠。 (4) 通用性。 云计算不针对特定的应用,在“云”的支撑下可以构造出千变万化的应用,同一个“云”可以同时支撑不同的应用运行。 (5) 高可扩展性。 “云”的规模可以动态伸缩,满足应用和用户规模增长的需要。 (6) 按需服务。 “云”是一个庞大的资源池,你按需购买;云可以象自来水,电,煤气那样计费。 (7) 极其廉价。 由于“云”的特殊容错措施可以采用极其廉价的节点来构成云,“云”的自动化集中式管理使大量企业无需负担日益高昂的数据中心管理成本,“云”的通用性使资源的利用率较之传统系统大幅提升,因此用户可以充分享受“云”的低成本优势,经常只要花费几百美元、几天时间就能完成以前需要数万美元、数月时间才能完成的任务。 云计算可以彻底改变人们未来的生活,但同时也用重视环境问题,这样才能真正为人类进步做贡献,而不是简单的技术提升。

一个vCPU和多个vCPU的最大性能有区别么

多核的优势在于多线程任务处理,单线程任务无什么区别的,

虚拟化技术有什么用

虚拟化计算机的本质 虚拟化,原本是指资源的抽象化,也就是单一物理资源的多个逻辑表示,或者多个物理资源的单一逻辑表示。 具体到服务器虚拟化,就是多个物理资源的单一逻辑表示。 另外,存储虚拟化就是这种模式的一个例子。 对不了解虚拟化的终端用户来说,听到上面说“单一物理资源的多个逻辑表示”,往往会认为“虚拟化技术也太抽象了”。 可是,如果要看计算机架构的话,虚拟化正是计算机的本质。 想一下,PC同时启动使用邮件和Web浏览器等多个应用,这时候你就会理解虚拟化技术。 在这个情况下,操作系统把PC物理资源抽象化了,将多个应用集中到一个物理资源环境下。 因为虚拟化hypervisor是运行在操作系统上层的,所以会被认为有些抽象。 不过,如果试着从计算机结构来理解的话,也不是那么晦涩。 虚拟化的主要类型:主机型和hypervisor型 虚拟化的类型大致可以分为主机型和hypervisor型。 当虚拟化最初应用于PC时的主流类型是主机型。 主机型是将虚拟化软件作为一个应用安装的主机操作系统中。 虚拟硬件包括主机操作系统中的虚拟化软件、操作系统和应用。 因为是被作为一个应用,所操作系统不是那么快。 主机型虚拟化的问题在于,如果主机操作系统发生故障,就会波及到作为该操作系统一个应用的虚拟化软件。 而且,在硬件模拟过程中也会发生诸多问题。 接下来是hypervisor型。 hypervisor型是指通过低层级软件让多个操作系统得以共享相同的硬件设备。

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐