用于改进虚拟化环境中的TCP性能的系统和方法技术方案

技术编号:13622007 阅读:46 留言:0更新日期:2016-09-01 09:46
本文中描述的示例实施方式提供了用于在具有处在虚拟化主机内的协议发送方或协议接收方的云环境中的协议发送方与协议接收方之间传输数据包的系统和方法。协议加速模块可以观测使用协议发送方的协议堆栈配置信息沿协议发送方与协议接收方之间的数据路径传输的数据包。协议加速模块可以用基于策略的协议堆栈配置信息来覆盖协议堆栈配置信息,使得从协议加速模块传输至协议接收方的数据包使用基于策略的协议堆栈配置信息。对于各种实施方式,不修改协议发送方的协议堆栈配置信息。

【技术实现步骤摘要】
【国外来华专利技术】本申请要求于2014年5月29日提交的美国专利申请号14/290,509、于2014年1月7日提交的美国专利申请序列号14/149,621、以及于2013年9月26日提交的美国临时专利申请序列号61/882,768的优先权,每个上述申请的全部内容通过引用并入本文中。
本申请涉及一种根据一个实施方式在虚拟化计算环境中使用的方法和系统,并且更具体地涉及用于改进虚拟化计算环境中的网络协议性能的方法和系统。
技术介绍
当今,大型企业主要使用虚拟化数据中心作为其信息技术(IT)的基础架构。虚拟化为企业的计算前景提供两个益处。第一个益处是,随着每个物理CPU具有大量内核的多核架构的出现,物理机变得显著强大,因此虚拟化可以对效率提供显著改进。此外,当今存储器已经变得极为廉价。例如,在许多商业服务器中经常可以见到数百吉比特的RAM是可用的。因此,人们可以将大量的虚拟机向上整合成一台物理机。第二个益处是,虚拟化提供对基础架构的显著控制。随着计算资源成为可替代的资源如云模型,对计算基础架构的供应和管理变得非常容易。因此,企业IT工作人员建议,除了虚拟化提供的效率和更好的投资回报率(ROI)以外,在数据中心中提供虚拟化集群以用于企业IT工作人员的管理利益。虽然虚拟化正在全球范围内被广泛采用,但是现代操作系统和网络协议在历史上还没有考虑到用虚拟化来进行设计。因此,传统的操作系统(OS)存在在虚拟化环境中执行效率较低的局限性。基本上,当管理程序(hypervisor)形式的中间层被添加至物理服务器以将CPU、存储器和I/O资源进行抽象时,产生了之前不存在的新的类型的性能瓶颈,如网络协议吞吐量的减少(例如,互联网协议/传输控制协议(TCP/IP)吞吐量)。虚拟机(VM)通常被分配有称为vCPU(或虚拟CPU)的虚拟计算实例。随着虚拟化服务器在数据中心中被很大程度地整合,存在共享可用CPU资源即可用物理内核(物理CPU或pCPU)的大量的VM。分配给所有运行中的VM的vCPU与总可用pCPU的比率通常称为过载使用率。不同环境中的过载使用的程度变化很显著,但是很少接近于1。其主要原因是在许多虚拟化环境中平均CPU使用率相当低的事实。由于这个原因,高过载使用率对于从可用计算资源中得到最佳ROI是理想的。遗憾的是,服务器整合对于传输协议如TCP的性能具有显著的负面影响。在虚拟化数据中心中,通常存在运行在TCP协议上的很多服务器至服务器的流量。网络延迟(测量为从一个服务器的网络接口卡(NIC)至其他服务器的NIC所花费的时间)通常在几微秒的量级。管理程序如VMware在下述方面变得极为有效:将被执行以处理个体包的指令的数目保持到非常小的数目。因此,当包从网络到达并且VM被调度时,由于虚拟化,包经历非常小的附加延迟。然而,关键问题是,当给定VM未被调度时,用于该VM内的给定连接的网络数据传递被有效地阻止,因为TCP需要两端活动以用于数据传递的进展。因此即使当只有一端正在将数据传输到另一端时,仍然需要另一端在发送端能够传输更多数据之前用确认进行回应。实证分析表明,实际企业集群中的流量模式遵循称为幂律分布的规律。在任何给定时间处,在给定数目的VM中,只少数VM实际上会有效地产生流量。此外,即使在时域中该幂律也是适用的。也就是说,给定VM会时不时地产生流量,而不是在所有时间都产生流量。基于这些条件,我们可以观测到,如果存在共享可用CPU资源的其他面向计算机的VM,则不是所有可用网络资源都由发送或接收流量的VM使用,这使得网络密集型VM被来回调度,从而显著降低TCP性能。随着服务器被更高程度地整合(在如虚拟桌面基础架构(VDI)空间的环境中会出现),吞吐量下降得更加显著。由于TCP是双向协议,因此我们在接收侧和发送侧两个方向上观测TCP吞吐量下降。当虚拟化TCP发送方在将包传输至虚拟化TCP接收方时,问题变得更糟,因为两端被独立调度,即意味着这些端中的任何一端可能在给定时间处彼此独立地掉线。由于各端的调度轮次可能未对齐的概率可能要高得多,因此吞吐量的下降大致是当各端中仅有一端被虚拟化并且争夺CPU资源时的两倍。当今存在用于改进虚拟化环境中的TCP处理的各种方法。一种方法是将CPU过量使用保持得非常低(接近于1)。在这种情况下,CPU连接的问题甚至不会出现,并且该问题不会显现。这种方法的缺点是在很大程度上丧失了虚拟化即服务器整合的主要益处。第二种方法是使VM将TCP处理卸载至称为TCP卸载引擎(TOE)的专用硬件。由于TOE具有用于卸载TCP处理的专用硬件,因此即使在VM未被调度时也能够执行TCP处理。遗憾的是,这种方法要求专门的硬件,并且该硬件可能昂贵且难以被改变和重新配置。此外,这种方法可能要求客户端OS中具有专有驱动器,这在许多环境如云环境中可能难以做到。由于这些和其他可能的原因,还没有证明这种方法在当今的商业数据中心网络中特别受欢迎。第三种可能的方法是改变调度器以利于发送和接收数据包的与网络绑定的VM。遗憾的是,难以实现这第三种方法,因为总是存在确保争夺CPU资源的不同VM之间的公平性的内在需要。第四,拥塞控制和确认生成可以通过在专门的插件的帮助下将协议责任卸载至管理程序来执行。这是侵入性更小的选项,因为这不会完全终止TCP连接;然而,由于管理程序通常在专用的CPU内核上被调度,或者被赋予较高的优先级,因此这些管理程序可以显著提高不同VM的TCP性能。这种方法已在以下两个学术论文中被先前提出:(1)2010年11月在路易斯安那州新奥尔良市(New Orleans,LA)的ACM Supercomputing的论文集中由Ardalan Kangarlou,Sahan Gamage,Ramana Rao Kompella,Dongyan Xu发表的vSnoop:Improving TCP Throughput in Virtualized Environments via Acknowledgement Offload;以及(2)2011年10月在葡萄牙的卡斯卡伊斯(Cascais,Portugal)的ACM Symposium on Cloud Computing(SOCC 2011)中由Sahan Gamage,Ardalan Kangarlou,Ramana Rao Kompella,Dongyan Xu发表的Opportunistic Flooding to Improve TCP Transmit Performance in Virtualized Clouds。然而,这两篇论文中描述的Xen管理程序方法存在各种局限性。例如,关于接收路径,仅当在称为“共享缓冲器”的小缓冲器中存在空间时,vSnoop才确认包,该“共享缓冲器”位于管理程序与客户端OS之间的虚拟NIC中。该vSnoop方法依赖于Xen管理程序的特定vNIC缓冲器,并且受限于Xen vNIC缓冲器的设计和实现方式。如果该缓冲器中没有空间,则vSnoop不能确认包,因为该包可能已丢失。此外,在实际部署情形中,访问该缓冲器既难度大又具有侵入性。另一个限制是关于传输路径的。这些论文中描述的特定实现方式使用Xen管理程序,该Xen管理程序具有称为Xen本文档来自技高网...

【技术保护点】
一种方法,包括:观测用于使用协议发送方的TCP堆栈配置信息在所述协议发送方与协议接收方之间传输多个数据包的多个数据流中的一个数据流,其中,所述协议发送方和所述协议接收方中的至少一个处在虚拟化主机内;使用机器的处理器来识别用于所述多个数据流中的所述一个数据流的基于策略的TCP堆栈配置信息;在协议加速模块与所述协议接收方之间用所识别出的用于所述多个数据流中的所述一个数据流的所述基于策略的TCP堆栈配置信息来覆盖所述协议发送方的所述TCP堆栈配置信息;以及在所述协议发送方与所述协议加速模块之间使用所述发送方的所述TCP堆栈配置信息、并且在所述协议加速模块与所述协议接收方之间使用所述基于策略的TCP堆栈配置信息来传输所识别出的所述多个数据流中的所述一个数据流。

【技术特征摘要】
【国外来华专利技术】2013.09.26 US 61/882,768;2014.01.07 US 14/149,621;1.一种方法,包括:观测用于使用协议发送方的TCP堆栈配置信息在所述协议发送方与协议接收方之间传输多个数据包的多个数据流中的一个数据流,其中,所述协议发送方和所述协议接收方中的至少一个处在虚拟化主机内;使用机器的处理器来识别用于所述多个数据流中的所述一个数据流的基于策略的TCP堆栈配置信息;在协议加速模块与所述协议接收方之间用所识别出的用于所述多个数据流中的所述一个数据流的所述基于策略的TCP堆栈配置信息来覆盖所述协议发送方的所述TCP堆栈配置信息;以及在所述协议发送方与所述协议加速模块之间使用所述发送方的所述TCP堆栈配置信息、并且在所述协议加速模块与所述协议接收方之间使用所述基于策略的TCP堆栈配置信息来传输所识别出的所述多个数据流中的所述一个数据流。2.根据权利要求1所述的方法,其中,在所述协议加速模块与所述协议接收方之间用所识别出的用于所述多个数据流中的所述一个数据流的所述基于策略的TCP堆栈配置信息来覆盖所述协议发送方的所述TCP堆栈配置信息进一步包括:在所述协议加速模块与所述协议接收方之间用所识别出的用于所述多个数据流中的所述一个数据流的所述基于策略的TCP堆栈配置信息来覆盖所述协议发送方的所述TCP堆栈配置信息而不改变所述协议发送方的所述TCP堆栈配置信息。3.根据权利要求1所述的方法,其中,用于所述多个数据流的所述基于策略的TCP堆栈配置信息代表用于使用特定准则将具有不同特性的所述多个数据包组织成不同类的流分类信息。4.根据权利要求3所述的方法,其中,所述流分类信息能够将所述多个数据包中的一个或更多个数据包根据具体应用进行分类。5.根据权利要求1所述的方法,进一步包括:由所述协议加速模块生成与在所述协议发送方与所述协议接收方之间传输的所述数据包的TCP性能相关的诊断信息;以及将所述诊断信息传输至管理接口。6.根据权利要求5所述的方法,其中,所述诊断信息包括来自所述协议发送方与所述协议加速模块之间的以及所述协议加速模块与所述协议接收方之间的数据路径的一个或更多个部分的测量信息。7.根据权利要求6所述的方法,其中,所述诊断信息包括一个或更多个TCP连接特性。8.根据权利要求6所述的方法,进一步包括:从管理接口接收用于所述多个数据流的所述基于策略的TCP堆栈配置信息;以及存储用于所述多个数据流的所述基于策略的TCP堆栈配置信息。9.根据权利要求5所述的方法,进一步包括:从所述管理接口接收用于所述多个数据流中的所述一个数据流的经调整的基于策略的TCP堆栈配置信息,所述多个数据流中的所述一个数据流具有对应的分类器信息,所述经调整的基于策略的TCP堆栈配置信息是基于所述诊断信息而调整的。10.根据权利要求1所述的方法,进一步包括:其中,存储所述基于策略的TCP堆栈配置信息进一步包括:将所述基于策略的TCP堆栈配置信息存储在所述协议加速模块内,所述基于策略的TCP堆栈配置信息被存储在流表中;其中,观测所述多个数据流中的所述一个数据流进一步包括:由所述协议加速模块观测所述多个数据流中的所述一个数据流;以及其中,使用所述机器的所述处理器来识别用于所述多个数据流中的所述一个数据流的所述基于策略的TCP堆栈配置信息进一步包括:由所述协议加速模块识别用于所述多个数据流中的所述一个数据流的所述基于策略的TCP堆栈配置信息。11.一种方法,包括:创建用于通过协议加速模块与协议接收方之间的数据路径的一部分在协议发送方与所述协议接收方之间传输多个数据包的多个数据流的基于策略的TCP堆栈配置信息而不修改所述协议发送方的TCP堆栈配置信息,其中,所述协议发送方和所述协议接收方中的至少一个处在虚拟化主机内;以及将所述基于策略的TCP堆栈配置信息提供给至少一个协议加速模块。12.根据权利要求11所述的方法,其中,创建所述基于策略的TCP堆栈配置信息包括:调整用于所述多个数据流中的至少一个数据流的所述基于策略的TCP堆栈配置信息中包含的一个或更多个TCP堆栈配置值。13.根据权利要求12所述的方法,其中,调整用于所述多个数据流中的所述至少一个数据流的所述基于策略的TCP堆栈配置信息中包含的所述一个或更多个TCP堆栈配置值包括:调整所述一个或更多个TCP堆栈配置值中包含的一个或更多个TCP头字段值。14.根据权利要求12所述的方法,其中,调整用于所述多个数据流中的所述至少一个数据流的所述基于策略的TCP堆栈配置信息中包含的所述一个或更多个TCP堆栈配置值包括:在所述协议发送方与所述协议接收方之间建立连接之前或者在所述协议发送方与所述协议接收方之间所建立的连接期间一次或更多次地调整用于所述多个数据流中的所述至少一个数据流的所述一个或更多个TCP堆栈配置值。15.根据权利要求12所述的方法,其中,调整用于所述多个数据流中的所述至少一个数据流的所述基于策略的TCP堆栈配置信息中包含的所述一个或更多个TCP堆栈配置值包括:调整用于所述多个数据流中的所述至少一个数据流的所述一个或更多个TCP堆栈配置值,以在所述协议发送方与所述协议接收方之间的连接期间传递预定量的数据。16.根据权利要求12所述的方法,其中,调整用于所述多个数据流中的所述至少一个数据流的所述基于策略的TCP堆栈配置信息中包含的所述一个或更多个TCP...

【专利技术属性】
技术研发人员:拉马纳·康佩拉苏米特·辛格
申请(专利权)人:阿普福米克斯有限公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1