首页> 中国专利> 非侵入式动态可缩放的网络负载生成

非侵入式动态可缩放的网络负载生成

摘要

本公开的实施例涉及非侵入式动态可缩放的网络负载生成。一种用于非侵入式网络负载生成的方法可以包括确定分布式计算系统中的可用资源,其中分布式计算系统包括多个计算设备和目标部署。基于目标部署和多个源计算设备之间的可用资源量,可以选择多个源计算设备以生成从多个源计算设备指向目标部署的网络负载。多个源计算设备可以是分布式计算系统中的多个计算设备的子集。可以向多个源计算设备提供网络业务生成器服务,以便生成从多个源计算设备指向目标部署的网络负载。可以监测分布式计算系统响应于所生成的网络负载的性能。

著录项

  • 公开/公告号CN113079115A

    专利类型发明专利

  • 公开/公告日2021-07-06

    原文格式PDF

  • 申请/专利权人 微软技术许可有限责任公司;

    申请/专利号CN202110334120.5

  • 申请日2015-09-07

  • 分类号H04L12/911(20130101);H04L12/24(20060101);H04L12/26(20060101);H04L29/06(20060101);H04L29/08(20060101);

  • 代理机构11256 北京市金杜律师事务所;

  • 代理人彭梦晔

  • 地址 美国华盛顿州

  • 入库时间 2023-06-19 11:44:10

说明书

本申请是国际申请号为PCT/US2015/048747、国际申请日为2015年09月07日、于2017年05月03日进入中国国家阶段、中国国家申请号为201580059805.6、发明名称为“非侵入式动态可缩放的网络负载生成”的发明专利申请的分案申请。

背景技术

在分布式计算系统中,计算或存储集群的新的或修改后的部署可能需要特定能力或吞吐量。在将该部署发布给客户之前,需要进行测试以确保提供给部署的网络连接足以满足规定的服务水平。

发明内容

提供本发明内容以便以简化的形式介绍将在以下详细描述中进一步描述的概念的选择。本发明内容不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在单独用于帮助确定所要求保护的主题的范围。

本发明的实施例提供了用于执行非侵入式动态可缩放网络负载生成的方法、系统和计算机存储介质。这可以用于在分布式计算系统中验证针对新的和/或现有的云基础设施(诸如存储或计算集群(例如,多个计算设备)的部署)的网络连接。网络连接可以包括例如网络带宽和网络等待时间(例如,在与客户的服务水平协议中规定的带宽和等待时间)。还可以执行负载生成,以模拟拒绝服务(“DoS”)攻击并且确保各种网络部件优雅地管理模拟DoS攻击。

为了生成以期望的云基础设施为目标的网络负载,可以跨不同的源站点(诸如不同的数据中心)在多个源计算设备处执行网络业务生成器服务。被选择来生成网络负载的计算设备可以基于在计算设备处可用的资源(诸如带宽和计算能力)来选择。具体地,可以确定可用资源(例如,没有用于支持实时操作的资源),并且可以基于计算设备与一定量的可用资源的关联来选择计算设备用作源计算设备。以这种方式,用于测试的网络负载可以利用网络中的未使用或“备用”资源来生成,并且网络负载可以与实时网络业务并行生成。可用资源的这种使用使得能够以非侵入式方式生成网络负载,使得生成不中断支持其他客户的实时操作的实时网络业务。

最初,所生成的网络负载可能相对较小。如果分布式计算系统响应于该负载而令人满意地执行,则可以增加负载的大小。然后可以递增地增加网络负载,直到负载足以验证期望水平的网络连接和/或模拟目标基础设施处的DoS攻击。随着负载增加,用于生成负载的源计算设备可以改变和/或附加源计算设备可以被采用。另外,现有的源计算设备可以被释放回来以减少资源使用。以这种方式,负载的大小可以是动态可缩放的,并且可以动态地选择网络负载的起点。网络负载的大小在每个特定源站点内以及跨多个源站点可以动态地缩放。

可以在生成的每个增量网络负载处监测分布式计算系统。该监测可以包括生成指示不同网络负载处的各种系统部件的性能的参考点。监测还可以包括在负载生成期间监测性能度量,以确定分布式计算系统是否响应于所生成的网络负载而令人满意地执行。

如果在测试期间发生性能问题,诸如目标基础设施处的网络故障或故障,则可以减少和/或消除网络负载。另外,如果需要现有的源计算设备的计算能力,则可以减少和/或消除现有起点。因此,负载的大小可以基于各种性能度量而动态地可缩放。自动节流可以防止实时业务事故。

附图说明

下面参考附图详细描述本发明的实施例,在附图中:

图1是适于在实现本发明的实施例时使用的示例性计算环境的框图;

图2是其中可以采用本发明的实施例的示例性网络环境的框图;

图3是其中可以采用本发明的实施例的示例性网络环境的框图;

图4是根据本发明的实施例的包括用于生成网络负载的多个源位置的示例性地理区域的框图;

图5是示出根据本发明的实施例的用于分布式计算系统中的非侵入式网络负载生成的示例性方法的流程图;

图6是示出根据本发明的实施例的用于非侵入式网络负载生成的示例性方法的流程图;以及

图7是示出根据本发明的实施例的用于非侵入式网络负载生成的示例性方法的流程图。

具体实施方式

本文中具体地描述了本发明的实施例的主题以满足法定要求。然而,描述本身并不旨在限制本专利的范围。相反,预期所要求保护的主题还可以以其它方式实施,以包括与本文档中描述的步骤类似的、结合其他现有或未来技术的不同步骤或步骤组合。此外,尽管术语“步骤”和/或“框”在本文中可以用于指示所采用的方法的不同元素,但是这些术语不应当被解释为暗示本文中公开的各种步骤间或之间的任何特定顺序,除非和除了在明确地描述了个体步骤的顺序时。

为了本公开的目的,词语“包含(including)”具有与词语“包括(comprising)”相同的广泛含义。此外,除非另有相反指示,否则诸如“一(a)”和“一个(an)”的词语包括复数以及单数。因此,例如,在存在一个或多个特征的情况下,满足“一个特征”的约束。此外,术语“或”包括连接、转折和两者(a或b因此包括a或b、以及a和b)。

本发明的实施例提供了用于执行非侵入式动态可缩放网络负载生成的方法、系统和计算机存储介质。该生成的负载可以用于验证针对新的和/或现有的云基础设施(诸如计算和/或存储基础设施的部署)的网络连接。例如,可以在诸如“存储集群”或“存储戳记(storage stamp)”的存储基础设施处验证网络连接。在存储集群处可能需要特定水平的网络连接,以便满足需要在与各种客户的服务水平协议(“SLA”)之下提供的特定服务水平。在一些情况下,存储集群是一个客户具有对其的排他性访问的专用存储集群。在这种情况下,在存储集群处可能需要特定水平的网络连接,以便满足在与该客户的SLA之下的特定客户要求。因此,在向一个或多个客户发布存储集群之前(例如,利用存储集群“推出(golive)”),可以执行模拟客户行为的端到端测试,以确保存储集群在网络基础设施内被正确地配置。端到端测试还可以确保存储集群处的网络连接足以符合在SLA中阐述的标准。例如,测试可以确认存储集群与提供足够的带宽、等待时间和/或吞吐量并且还将等待时间和/或故障维持在可接受水平(例如在SLA中阐述的那些)内的连接相关联。在其中实时业务在存储群集周围流动的实时环境中的端到端测试示出了存储群集在其推出时将如何表现。应当注意,存储集群仅仅是可以根据本发明的实施例测试的部署的一个示例。可以测试其他基础设施的部署(诸如计算集群的部署)以用于足够的网络连接。

网络负载生成还可以用于使网络基础设施内的各种部件经受模拟DoS攻击。真正的DoS攻击可以包括通过用使得部件和/或资源不能合理地支持合法业务(例如,部件和/或资源的响应时间变得非常慢,使得其不能支持合法业务)的如此多的外部请求充满目标部件和/或资源来使特定网络部件和/或资源不可用于用户的努力。例如,DoS攻击可以洪泛(flood)网络连接和/或填充存储能力。可以执行如本文中所描述的模拟DoS攻击,以便评估各种网络部件对攻击的响应。这可以被进行以便确定部件是否被配置为优雅地管理真正的DoS攻击。例如,目标部署可以在目标部署推出之前经受模拟攻击。该模拟可以确保目标部署被配置为优雅地管理真正的攻击。另外地或备选地,目标部署可以是现有的基础设施,并且仿真可以确保现有的基础设施被配置为优雅地管理真正的攻击。优雅的管理可以包括实现防御性响应。这种防御性响应可以包括检测攻击,用适当的工具响应攻击,和/或防止将来的攻击。适当的工具可以包括防火墙、交换机和路由器。这些工具可以帮助阻止非法业务,同时允许合法业务。

为了验证网络基础设施内的网络连接和/或模拟DoS攻击,可以生成大规模网络负载。例如,可能需要每秒40吉字节的负载来测试目标存储集群处的网络连接。生成该大的负载可能需要多个计算设备的带宽和/或计算资源来最小化对大的网络使用的源的影响。例如,在位于多个数据中心的多个计算设备处可用的资源的总和可能足以生成测试所需的大的负载。因此,可以选择跨多个源站点的多个计算设备作为用于生成负载的源计算设备。

有利地,本文中所描述的网络负载生成使能完整规模测试(例如,测试每秒40吉字节的负载),同时使对实时操作的干扰最小化。这出于几个原因是很重要的。首先,完整规模测试确保整个网络管道中的网络基础设施被正确地设置和/或配置用于完整规模操作。换句话说,测试不限于本地网络基础设施,因为这种小规模测试不会揭示本地基础设施之外的问题。网络设备管理实时业务和为测试目的生成的网络业务,这表示针对完整规模操作测试网络设备。其次,当前的网络负载生成提供了在实时网络环境中的完整规模测试而不干扰实时网络操作的优点。因此,负载生成是“非侵入式的”并且最小化实时操作中的故障。

具体地,非侵入式网络负载生成目的在于最小化对网络上的实时业务的损害或侵入。这可以通过动态地选择用于生成负载的最合适的源位置集合来实现。特定源位置和/或特定源计算设备的适当性可以基于源和目标部署之间的当前网络带宽。还可以考虑该网络带宽的利用(例如,针对实时操作的当前利用)和剩余可用能力。例如,被选择来发起针对测试生成的网络负载的计算设备可以不同于当前支持实时操作的计算设备。可用资源的使用使得能够以非侵入式方式生成网络负载,使得其生成不中断支持其他客户的实时操作的实时网络业务。基于网络能力和计算能力的可用性,网络业务生成器服务可以被部署到地理分布式源计算设备。网络业务生成器服务可以用于生成网络负载。

最初,网络负载可以相对较小。然后网络负载可以递增地增加,直到负载足以验证目标服务处的期望水平的网络连接和/或模拟期望规模的DoS攻击。随着负载增加,用于生成负载的源计算设备可以改变和/或附加源计算设备可以被采用。以这种方式,负载的大小可以是动态可缩放的,并且网络负载的起点可以动态地选择。

当执行负载生成时,可以监测分布式计算系统。例如,可以监测针对网络业务生成器服务的各种度量、针对网络的健康度量和针对目标部署的度量。这些被监测的度量可以用作针对分布式计算系统在特定网络负载处的性能的参考点。例如,参考点可以提供在任何数目的网络负载处的分布式计算系统性能的快照。这些参考点可以用于理解分布式计算系统在各种负载处如何表现。参考点可以用于评估在继续满足与客户的当前SLA的同时是否可以生成附加网络负载,以及帮助设置针对分布式计算系统的未来性能的期望。

另外,基于对响应于所生成的网络负载的分布式计算系统性能的监测,网络负载可以跨源计算设备被动态地缩放。例如,负载可以在各种源计算设备处被扩大和/或缩小。这种监测和相关联的缩放可以帮助最小化中断和成本。

如果在测试期间发生问题,诸如在目标部署处的网络故障或故障,则可以减少和/或消除网络负载。同样,以这种方式,负载的大小可以基于各种性能度量而动态地可缩放。动态缩放可以防止资源耗尽。另外,自动节流可以适应源计算设备处的可用资源(例如,网络带宽和/或计算能力)的减少和/或防止实时业务事故。在一些情况下,

有利地,在实时网络环境中的该端到端测试允许跨整个分布式计算系统的错误检测。另外,实时环境中的端到端测试将分布式计算系统中的部件的真实世界行为与模拟网络负载相结合。例如,使用网络业务生成器服务生成的网络负载可以从不同的位置生成,并且在不同时间到达目标部署,并且网络负载也可以与实时网络业务并行地通过分布式计算系统而被处理。

因此,一个示例性实施例涉及一种用于非侵入式网络负载生成的计算机实现的方法。该方法可以包括确定分布式计算系统中的可用资源。分布式计算系统可以包括多个计算设备和目标部署。部署可以包括例如计算设备的集群,诸如存储和/或计算集群。基于目标部署和多个源计算设备之间的可用资源量,可以选择多个源计算设备以生成从多个源计算设备指向目标部署的网络负载。多个源计算设备可以包括分布式计算系统中的多个计算设备的子集。该方法还可以包括向多个源计算设备提供网络业务生成器服务,以便生成从多个源计算设备指向目标部署的网络负载。可以监测分布式计算系统的性能,其中性能是响应于所生成的网络负载。

另一示例性实施例涉及一种或多种其上实施有计算机可执行指令的计算机存储介质,计算机可执行指令在被执行时执行用于非侵入式网络负载生成的方法。该方法可以包括确定分布式计算系统中的总资源中的作为可用资源的部分。可用资源可以包括与分布式计算系统中的计算设备相关联的计算能力和网络带宽能力。另外,该方法可以包括选择与可用资源量相关联的多个源计算设备,其中可用资源量满足预定能力阈值。可以向多个源计算设备提供网络业务生成器服务。然后可以执行网络业务生成器服务,以便生成从多个源计算设备指向目标部署的第一网络负载。第一网络负载可以与和实时操作相关联的正在进行的网络活动同时传送。最后,该方法可以包括监测分布式计算系统以评估响应于第一网络负载的分布式计算系统的性能。

在又一实施例中,提供了一种用于非侵入式动态可缩放网络负载生成的系统。该系统可以包括与计算能力和网络带宽能力相关联的多个源计算设备。该系统还可以包括目标部署。另外,系统可以包括验证服务器。验证服务器可以被配置为选择多个源计算设备以生成从多个源计算设备指向目标部署的网络负载。选择多个源计算设备可以基于多个源计算设备和目标部署之间的可用资源量。验证服务器还可以被配置为向多个源计算设备提供网络业务生成器服务,以便生成网络负载,并且然后监测响应于所生成的网络负载的系统的性能。

已经简要描述了本发明的实施例的概述,下面描述可以实现本发明的实施例的示例性操作环境,以便为各种方面提供一般上下文。首先具体参考图1,用于实现本发明的实施例的示例性操作环境被示出并且总体上被表示为计算设备100。计算设备100仅是合适的计算环境的一个示例,而非旨在对本发明的实施例的使用或功能的范围提出任何限制。计算设备100也不应当被解释为具有与所示的部件中的任一个或组合相关的任何依赖性或要求。

本发明的实施例可以在计算机代码或机器可使用指令的一般上下文中描述,包括由计算机或其他机器(诸如个人数字助理或其他手持设备)执行的计算机可执行指令(诸如程序模块)。通常,程序模块指(包括例程、程序、对象、部件、数据结构等)是指执行特定任务或实现特定抽象数据类型的代码。本发明的实施例可以在各种系统配置中实现,包括手持设备、消费电子产品、通用计算机、更专业的计算设备等。本发明的实施例也可以在分布式计算环境中实践,其中任务由通过通信网络链接的远程处理设备执行。在分布式计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机存储介质中。

参考图1,计算设备100包括直接或间接耦合以下设备的总线110:存储器112、一个或多个处理器114、一个或多个呈现部件116、输入/输出(“I/O”)端口118、I/O部件120、和说明性电源122。总线110表示可以是一个或多个总线(例如地址总线、数据总线或其组合)的事物。虽然图1的各个框为了清楚起见用线条示出,但实际上,描绘各种部件不是那么清楚,并且隐喻地,线条将更准确地是灰色和模糊的。例如,可以将诸如显示设备的呈现部件视为I/O部件。此外,处理器具有存储器。认识到,这是本领域的本质,并且重申图1的图仅是可以结合本发明的一个或多个实施例使用的示例性计算设备的说明。在诸如“工作站”、“服务器”、“膝上型计算机”、“手持设备”的类型之间不进行区分,因为所有这些类型都在图1的范围内并且引用“计算设备”。

计算设备100通常包括各种计算机可读介质。计算机可读介质可以是可以由计算设备100访问的任何可用介质,并且包括易失性和非易失性介质、可移除和不可移除介质。作为示例而非限制,计算机可读介质可以包括计算机存储介质和通信介质。

计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据的信息的任何方法或技术实现的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字通用盘(DVD)或其他光盘存储装置、磁带盒、磁带、磁盘存储装置或其他磁存储设备、或者可以用于存储所需信息并且可以由计算设备100访问的任何其他介质。计算机存储介质排除信号本身。

通信介质通常在诸如载波或其它传输机制的调制数据信号中实施计算机可读指令、数据结构、程序模块或其他数据,并且包括任何信息传递介质。术语“调制数据信号”表示具有以使得能够在信号中编码信息的方式来设置或改变其一个或多个特性的信号。作为示例而非限制,通信介质包括诸如有线网络或直接有线连接的有线介质以及诸如声学、RF、红外和其他无线介质的无线介质。任何上述的组合也应当被包括在计算机可读介质的范围内。

存储器112包括易失性和/或非易失性存储器的形式的计算机存储介质。存储器可以是可移除的、不可移除的或其组合。示例性硬件设备包括固态存储器、硬盘驱动器、光盘驱动器等。计算设备100包括从诸如存储器112或I/O部件120的各种实体读取数据的一个或多个处理器。一个或多个呈现部件116向用户或其他设备呈现数据指示。示例性呈现部件包括显示设备、扬声器、打印部件、振动部件等。

I/O端口118允许计算设备100逻辑地耦合到包括I/O部件120的其他设备,其中一些可以内置。说明性部件包括麦克风、操纵杆、游戏板、卫星天线、扫描仪、打印机、无线设备等。

现在转到图2,描述了描绘适用于在实现本发明的实施例时使用的示例性分布式系统200的框图。通常,系统200示出了可以用于,除了其他以外,生成非侵入式动态可缩放的网络负载以便验证针对新的和/或现有的云服务的网络连接的环境。系统200还可以用于模拟DoS攻击并且评估系统响应。在未示出的其他部件中,系统200通常可以包括目标部署212、多个计算设备214、可以用于在监测网络性能的同时验证网络连接和/或模拟DoS攻击的验证服务器222、以及数据储存库232,全部都经由网络210彼此通信。网络210可以包括但不限于一个或多个局域网(LAN)和/或广域网(WAN)。网络210还可以包括云计算网络,诸如公共云、私有云和/或专用云。这种网络环境在办公室、企业范围的计算机网络、内联网和因特网中是常见的。

在一些实施例中,所示部件和/或模块中的一个或多个可以被实现为独立的应用。在另外的实施例中,所示部件和/或模块中的一个或多个可以经由计算设备被实现为基于因特网的服务和/或验证服务器222内的模块。普通本领域技术人员将理解图2中所示的部件和模块在性质和数目上是示例性的,而不应被解释为限制。可以采用任何数目的部件和/或模块来实现本文中所描述的功能。例如,在本发明的实施例的范围内,可以在计算系统200中采用任何数目的计算设备、目标部署、验证服务器、数据储存库和网络。每个可以包括单个设备/接口或在分布式环境中协作的多个设备/接口。例如,布置在分布式环境中的多个设备和/或模块可以共同提供本文中所描述的验证服务器功能。如本文中所使用的短语“应用”或“服务”可以广泛地指代在计算设备和/或多个计算设备之上运行或访问计算设备和/或多个计算设备(诸如数据中心中的多个计算设备)内的存储位置的任何软件或软件的部分。

应当理解,本文中所描述的这种和其他布置仅作为示例阐述。除了或代替所示的布置和元素,可以使用其他布置和元素(例如,机器、接口、功能、顺序和/或功能分组),并且一些元素可以一起省略。此外,本文中所描述的很多元件是可以被实现为分立或分布式部件或与其他部件结合以及以任何合适的组合和位置实现的功能实体。本文中描述为由一个或多个实体执行的各种功能可以由硬件、固件和/或软件来执行。例如,各种功能(包括以下关于分布式计算系统200描述的功能)可以由执行存储在存储器中的指令的处理器执行。

现在转向可以被包括在系统200中的各种部件,目标部署212可以包括网络基础设施的任何部署,诸如计算群集和/或存储群集的部署。计算集群可以包括提供计算能力并且可以共享计算工作负载的链接的计算设备的集合。存储集群(其也可以被称为“存储戳记”)可以包括可以耦合到一个或多个处理器的物理驱动器和/或其他计算机可读存储器的任何集合。例如,存储集群可以包括一组节点、提供存储的机架的集群或集合、或一个或多个数据中心。计算和/或存储能力的部署可以与其他设备和服务一起位于特定数据中心。应当注意,下面关于目标部署212讨论的各种特征可以应用于任何新的和/或修改后的部署,诸如计算和/或存储能力的部署。

目标部署212可以是新的和/或现有的部署。例如,目标部署212可以是作为针对新能力的部署、网络重新配置和/或更新、设备替换、软件升级、DoS模拟测试、以及这些和其他活动的任何组合的目标的存储集群。在使用新部署或对现有部署的修改(例如,新存储集群或对现有存储集群的修改)推出之前,可以执行测试以验证针对新的和/或现有的部署的网络连接。例如,测试可以确认目标存储集群与提供足够的带宽和/或吞吐量的连接相关联,并且还将等待时间和/或故障维持在可接受的水平内。测试还可以确认向目标存储集群提供该连接不会中断在网络210上发生的实时操作。下面更详细地讨论测试的这些方面。

在一个示例中,目标部署212可以是数据中心中的现有存储集群。在这种情况下,目标部署212可能需要增加能力,这可能需要群集处的附加硬件和/或软件。为了确保附加部件正确地运行并且提供给存储集群的网络连接满足增加的能力需求,可以执行网络负载测试。在另一情况下,现有存储集群可能需要修改其硬件和/或软件部件,诸如硬件替换和/或软件升级。在完成这种修改后,可以执行网络负载测试以确认硬件和/或软件部件正确地运行。另外地或备选地,目标部署212可以是新的存储集群。例如,可以在数据中心处实现新的存储集群,以便提供新的能力。可以执行网络负载测试,以便验证针对该新的集群的网络连接,并且确保所有部件正确地运行。此外,新的和/或现有的目标存储集群可以经受模拟DoS攻击,并且可以评估目标存储集群的性能以确定目标存储集群是否被配置为优雅地管理真正的DoS攻击。如所述,上述讨论也适用于网络内的其他部署,诸如计算集群的部署。

在实施例中,目标部署212是专用存储集群。例如,单个实体(诸如单个客户)可能对目标存储集群具有排他性访问,诸如读取和写入访问。在这种情况下,针对该特定客户的所有数据业务可以去往一个或多个专用存储集群。可能需要特定水平的网络连接来支持该业务。另外,与作为存储集群的端用户的客户的SLA可以包含建立要在存储集群处提供的最低服务水平的条款。例如,SLA可以提供每秒特定数目的吉字节、每秒I/O、每秒读取/写入、或服务性能的任何其他测量。可能需要足够的网络连接以满足规定的服务水平。因此,可以执行网络负载测试以验证针对专用存储集群的网络连接。如果目标部署212是共享和/或公共存储群集,则可以应用不同的SLA。也可以执行测试以验证针对这些布置的网络连接。

上述用于负载生成的网络负载的源可以包括任何数目的计算设备,例如多个计算设备214。将理解的是,尽管多个计算设备214被示出在集群中,但是实际上,这些计算设备可以在地理上分布在大的区域上。例如,计算设备216可以位于IL的芝加哥,而计算设备218可以位于WA的昆西。可能需要在各种地理位置中采用计算设备,以便生成用于验证目标部署212处的网络连接的足够的负载。将关于图4讨论该地理分布。还应当理解,尽管多个计算设备214被描绘为个体项目并且被描述为“一个计算设备”(例如,计算设备216和计算设备218),但是实际上,每个所描绘的项目可以实际上表示多个计算设备。例如,计算设备216可以表示多个计算设备。另外,计算设备可以不包括单独的物理设备,而是可以替代地包括虚拟机的阵列。物理机和虚拟机的组合可以被包括在多个计算设备214中。

多个计算设备214可以与资源相关联,该资源包括网络带宽能力和/或计算能力。计算设备和相关联的资源可以用于生成网络负载,以便测试被提供给目标部署212的网络连接,和/或测试目标部署212对模拟DoS攻击的响应。网络负载(也称为网络业务负载)可以包括网络业务,该网络业务基于通过多个连接生成如I/O请求、Web、电子邮件等的网络会话,以便利用预定量的计算和/或带宽。在多个计算设备处生成的网络负载又可以导致在测试期间从目标部署212生成的附加负载。例如,在计算设备处生成的用于生成网络负载的请求可以响应于该请求而触发来自目标部署212的确认,诸如来自目标存储集群的确认。如所述,为了生成足够的网络负载,可以采用多个计算设备。例如,可以采用作为多个计算设备214的子集的源计算设备220的组。有关该功能的附加细节如下。

验证服务器222可以包括用于实现非侵入式网络业务负载生成以测试各种端到端场景的各种部件。例如,验证服务器222可以包括资源证实部件224、网络业务生成器部件226、监测部件228和清理部件230。应当理解,图2所示的部件224、226、228和230在性质和数目上是示例性的,而不应当被解释为限制。验证服务器222可以实现支持执行验证服务器222的功能的服务。作为示例,服务应用可以提供处理接口以向内部和外部部件和模块发送和接收服务请求。可以采用任何数目的部件和验证服务来实现在本发明的实施例的范围内的期望功能。

在高水平处,验证服务器222可以实现使得诸如多个计算设备214中的一个或多个的多个源计算设备生成以目标部署212或网络基础设施内的任何其他部署为目标的网络负载的自动化服务。验证服务器222可以动态地缩放指向目标部署212的负载,直到在目标部署212处的足够的网络连接已经被确认。另外地或备选地,网络负载可以被生成和缩放以模拟期望严重性的DoS攻击。在这些各种情况期间,验证服务器222可以监测分布式计算系统200的性能,以便在各种水平的网络负载处为系统200生成性能参考点,以及最小化在系统200内的各种部件处的干扰和成本。

网络连接的该测试和/或DoS攻击的该模拟可以与在网络210上发生的实时操作同时发生。如本文中所使用的,短语“实时操作”和/或“实时业务”可以指代支持网络上的实时活动(诸如客户活动)的正在进行的操作和/或业务。在实施例中,短语“实时操作”和/或“实时业务”可以指代与为测试目的生成的网络业务负载无关的业务。“实时操作”和/或“实时业务”可以与为测试目的生成的网络业务负载同时发生。测试业务和实时业务可以同时指向类似的位置,并且可以共享网络流水线。因此,这两种类型的业务可以并行发生。例如,至少一个源计算设备可以在源计算设备为测试目的生成网络负载时与实时操作相关联。另外,当为测试生成网络负载时,源计算设备和目标部署212之间的网络基础设施可以支持实时操作。实时业务因此可以被称为围绕目标部署212流动。以这种方式,测试可以验证目标部署212以及网络和其他网络部件在包括实时业务的环境中的性能,从而确保当目标部署212推出时的令人满意的性能。同时,验证服务器222可以确保测试不干扰实时操作。在实施例中,在目标部署212已经被集成到生产环境中(例如,连接到生产系统)之后,但是在它“推出”之前(例如,在其被发布给客户使用之前)执行测试。因此,针对目标部署212的测试可以被描述为“预推出”测试。

现在将更详细地描述由被包括在验证服务器222中的示例性部件提供的功能。

资源证实部件224可以证实用于测试的设置和/或参数。例如,资源证实部件224可以证实目标部署212处所需的网络连接(例如,如果目标部署212是存储集群,则可以在SLA中定义所需的网络连接)。还可以确定与目标部署212相关联的目标位置(诸如数据中心)中的总带宽。资源证实部件224可以利用网络监测基础设施来确定与系统200相关联的其他设置和/或参数。例如,可以确定网络路由器可以处理的负载。

另外,资源证实部件224可以确定与目标部署的位置相关联的网络链接。例如,可以标识与目标部署212所位于的目标位置相关联的网络链接。如系统200中所示,多个计算设备214可以经由网络210链接到目标部署212,并且资源证实部件224可以这样标识它们。

资源证实部件224然后可以检测与这些链接相关联的特性,诸如资源。例如,可以确定与目标位置和多个计算设备214中的每个之间的连接相关联的带宽能力。还可以确定与链接到目标位置的多个计算设备214相关联的计算能力。

以这种方式,资源证实部件224可以确定与可以链接到目标部署212的计算设备相关联的资源总量。资源证实部件224还可以确定资源总量的当前正在系统200内用于实时操作的部分。资源的剩余部分可以被认为是可用资源,诸如可用于测试目标部署212处的网络连接的资源。

例如,资源证实部件224可以确定与计算设备216和针对目标部署212的目标位置(例如目标部署212所位于的数据中心)之间的连接相关联的特定带宽。资源证实部件还可以确定该带宽的一部分正被用于在计算设备216和目标位置之间进行实时操作。例如,40%的带宽可以用于正在进行的实时操作,诸如视频流。然后,资源证实部件224可以确定计算设备216和目标位置之间的总带宽的60%是可用资源。资源证实部件224可以针对具有到目标部署212的位置的连接(诸如网络连接)的其他计算设备进行类似的确定。

基于可用资源的确定,资源证实部件224可以选择一个或多个计算设备以用作用于在测试期间生成网络负载的源计算设备。例如,可以选择多个计算设备214的子集。在示例性系统200中,选择源计算设备220。该选择可以基于源计算设备220与足够的可用资源相关联以运行测试的发现。例如,假定目标部署212需要支持特定服务水平(例如,如在SLA中规定的),并且必须生成特定网络负载以测试该服务水平。作为附加示例,假定需要特定网络负载来模拟DoS攻击。在任一示例中,可以基于源计算设备220的组合可用资源足以生成该特定网络负载的确定来选择源计算设备220。例如,选择可以基于满足预定阈值的可用资源量(例如,基于提供在SLA中规定的服务水平所需的资源量和/或模拟DoS攻击所需的资源量的预定阈值)。在一个示例中,与到目标部署212的位置的最大可用带宽量相关联的计算设备被标识并且被考虑用于选择。以这种方式,选择可以基于与计算设备相关联的可用资源的绝对量。例如,可用资源可能需要足以满足目标部署212处的每秒特定数目的吉字节、每秒I/O、每秒写入/读取、和/或任何其他服务测量的服务水平。

选择还可以基于与计算设备相关联的可用资源的相对量。例如,可以基于与该计算设备相关联的总资源的可用部分满足预定的个体阈值的确定来选择诸如源计算设备218的特定源计算设备。例如,如果预定阈值被设置为80%,则如果在该设备处可用的带宽资源的部分大于或等于80%(或换句话说,正在进行的实时操作消耗小于或等于与设备相关联的总带宽资源的20%),则计算设备可以仅被选择为用作源计算设备。资源证实部件224可以在将计算设备选择为源计算设备之前确定计算设备是否满足预定阈值。在实施例中,满足预定阈值可以是用于选择的前提条件。该预定阈值可以被设置在0%到100%之间的任何地方(或指示相对部分的任何类似测量)。例如,可以基于不支持任何实时操作的确定来选择源计算设备。以这种方式,为测试目的(例如,网络连接测试或模拟DoS测试)生成网络负载的源计算设备可以与支持实时操作的计算设备分离。

源计算设备220的选择也可以基于其他因素。例如,选择可以基于可以利用与计算设备相关联的可用资源的预定义部分(诸如与所有源计算设备相关联的可用资源和/或与特定源计算设备相关联的可用资源)来生成所需的网络负载的确定。例如,假定确定与源计算设备218相关联的40%的带宽资源正用于支持实时操作,并且剩余的60%的带宽资源可用。在这种情况下,可以确定只有50%的可用带宽资源(或与源计算设备218相关联的总带宽资源的30%)将用于测试目的。用于测试的可用资源量可以被限制在预定阈值(例如,前述示例中的50%),以便确保测试不干扰实时操作。例如,即使在被消耗以支持实时操作资源量中存在尖峰,仅利用可用资源的一部分也可以防止这种干扰。因此,可以基于源计算设备使用其可用资源的一部分(其中该部分落在指定限制以下)来生成特定网络负载的能力来选择源计算设备。如上所述,该限制可以在每个个体设备的水平以及在与多个源计算设备相关联的源位置的水平实现。例如,用于在单个源位置处的测试的资源的部分可以在预定阈值处被限制。针对个体计算设备和/或源位置的预定义阈值可以被设置在0%到100%之间的任何地方(或指示相对部分的任何类似测量)。在实施例中,阈值可以是资源的绝对测量,诸如每秒特定数目的吉字节的限制。在另外的示例中,阈值可以对应于资源的成本(例如,网络带宽的成本和/或计算资源的成本)。这种成本可以是线性或非线性的。例如,成本可以通过基于需求的定价来确定。

资源证实部件224还可以确定在被认为用作源的计算设备处是否存在足够的计算资源。例如,如果计算设备满足与可用带宽有关的准则,则如果计算设备缺乏足够的计算资源用于生成需要的网络负载,则该计算设备仍然可以被拒绝作为源计算设备。因此,资源证实部件224可以在选择源计算设备时考虑带宽能力、计算能力以及与计算设备相关联的其他资源。

源计算设备220的选择可以基于任何数目的其他因素。例如,可以考虑位置约束。如果确定负载测试不应跨地理区域边界,则该因素可以影响源计算设备220的选择(例如,在这种情况下,只有与目标部署212在相同地理区域内的计算设备可以被选择为源计算设备)。

响应于选择源计算设备220,网络业务生成器部件226可以将网络业务生成器服务部署到源计算设备220。例如,源计算设备220中的每个可以被提供有网络业务生成器服务。然后可以执行网络业务生成器服务,以便生成从每个源计算设备220(例如,从源计算设备218)指向目标部署212的网络负载。例如,批处理服务可以被调用以部署计算资源。负载生成还可以包括在目标部署212处发起数据写入,诸如在目标存储集群处的数据写入,或者以其他方式在目标部署的方向上生成业务。仪表板可以示出被包括在测试中的活动作业,并且还可以显示关于被选择来生成与特定作业相关联的负载的源计算设备的信息。

在实施例中,网络业务生成器部件226配置要被生成的相对较小的初始网络负载。小规模的初始负载可以最小化测试对源计算设备220、目标部署212、网络210、以及被包括在系统200中的任何其他部件的影响。例如,在正常操作期间,某些源计算设备和/或目标部署部件可能处于睡眠模式。当初始网络负载导致业务增加时,这些计算设备和/或目标存储集群部件可能唤醒。在该初始时间帧期间,在这些设备处可能发生一些故障。以最小的初始负载开始可以最小化这种故障。

在已经生成初始网络负载之后,网络业务生成器部件226可以等待负载稳定。如上所述,所有源计算设备、目标存储集群部件和/或网络基础设施内的其他部件可能需要时间变为活动。负载稳定性的一个指示可以是源计算设备220在给定时间段上提供一致的数据。另一指示可以是观察到的故障数目的一致性。例如,如上所述,如果一个或多个源计算设备最初处于睡眠模式,则在那些设备活动并且提供一致的数据之前,并且在所观察到的故障的数目回落到低于预定义的限制(诸如在SLA中建立的限制)之前,可以经过某个时间段。

在整个测试过程中,监测部件228可以监测系统200的性能。例如,可以监测性能以便确定负载是否已经稳定。另外,监测部件228可以评估针对系统200的各种性能度量,以确定系统200是否响应于所生成的网络负载令人满意地执行。令人满意的性能可以对应于满足在SLA中规定的标准的性能和/或不干扰正在进行的实时操作的性能。SLA性能度量还可以包括可用性、响应时间、信道能力、等待时间、完成时间、服务时间、带宽、吞吐量、相对效率、可缩放性、每瓦性能、压缩比、指令路径长度和加速。预期性能度量的其它变化和组合落入本发明的实施例的范围内。性能度量也可以解释系统对模拟DoS攻击的响应。例如,性能度量可以指示网络基础设施部件是否优雅地管理DoS攻击。

由监测部件228考虑和解释的度量可以包括针对网络基础设施的度量、针对网络业务生成器服务的度量(包括针对源计算设备220的度量)和针对目标部署212的度量。例如,针对网络设备(诸如接入路由器、DC路由器和其他网络部件)的健康数据可以被传送到监测部件228或由监测部件228检索以被监测和解释。另外,如果检测到部件处的问题,则监测部件228可以从这些部件中的一个或多个接收到警告。例如,如果网络监测基础设施在网络处检测到问题(诸如网络故障),则网络监测基础设施可以生成由监测部件228接收的警告。

如果确定针对这些部件中的一个或多个的性能度量未能满足预定性能阈值和/或如果监测部件228接收到关于这些部件中的一个或多个的警告,则可以基于特定的未能满足的度量和/或警告来选择行动过程。例如,如果确定网络基础设施处存在问题(例如,全部能力、更高的成本、不足的吞吐量和/或其他网络约束),则可以跨现有的源计算设备和/或跨附加源计算设备重新分配负载(该方面将在下面更详细地讨论)。如果这不成功,则测试可以被终止。

在另一示例中,如果在目标部署212处发生意外的错误和/或故障,则可以终止测试,如将关于清理部件230描述的。可以在测试重新发起之前解决导致错误和/或故障的问题。具体地,监测部件228可以确保目标部署212能够执行某些功能。例如,如果目标部署212是存储集群,则监测部件可以确保存储集群能够写入数据,负载平衡以及执行存储集群处可能需要的任何其他功能。存储诊断服务(未示出)可以向监测部件228提供相关信息。

如果在源计算设备220处观察到错误和/或故障(例如,等待时间和/或吞吐量度量是在SLA中规定的故障标准),则可以采取若干动作中的一个。这些错误和/或故障可能引起警告。基于监测,可以确定是否应当进行附加尝试以满足性能度量。例如,如果负载实际上尚未稳定(例如,不正确地进行了稳定性的确定),则允许附加时间过去可以产生改进的性能度量和/或导致警告的条件的解决。如果监测部件228确定不应当进行后续尝试和/或如果进行重复尝试并且性能并未改善,则可以减少网络负载。另外地或备选地,可以完全终止测试。这种终止可以避免实时操作的故障。下面将关于清理部件230更详细地讨论测试的终止。

另一方面,如果确定系统的性能是令人满意的,例如当没有警告和/或所监测的性能度量满足预定性能阈值时,则可以确定是否需要更多负载。例如,如果仅已经生成最小初始负载,则可能需要大于最小初始负载的增加的负载。在这种情况下,网络业务生成器部件226可以发起附加负载的生成。这可以被称为“扩大”负载和/或“扩大”网络业务生成器服务,以便增加网络负载。

扩大负载可以采取各种形式。在一些情况下,这可以涉及增加从现有的源计算设备生成的负载。例如,可以增加从源计算设备220生成的负载。另外地或备选地,这可以包括采用附加设备作为源计算设备。如果确定在不损害系统200的性能的情况下,不能从现有的源计算设备生成增加的负载,则可以采用附加设备。在这种情况下,由现有的源计算设备220生成的负载可以保持不变,但是可以通过添加更多的源计算设备来生成增加的负载。这在图3的示例性分布式系统300中示出,其中源计算设备300的数目大于先前选择的源计算设备220。(应当注意,贯穿该组附图,相同的附图标记用于指示各种视图中的类似配置的部件;然而,这些部件共享相同的附图标记的一些方面可以根据本发明的实施例而改变。)在这种情况下,网络业务生成器服务可以被部署到附加源计算设备,以便从附加源计算设备生成附加网络负载。应当注意,附加源计算设备可以是物理机和/或虚拟机。附加虚拟机可以是现有的虚拟机和/或新提供的虚拟机。可以使用这些活动的组合(例如,增加现有设备生成的负载和/或添加新设备,诸如添加现有物理设备,添加现有虚拟机和/或提供新虚拟机)以增加为测试目的生成的网络负载。

在负载增加之后,网络业务生成器部件226可以再次等待一段时间通过,以便允许增加的负载稳定。然后,监测部件228可以监测和/或评估各种性能度量,以便确定系统200是否满足预定性能阈值,并且可以重复上述过程。具体地,可以在增加网络负载的情况下重复该过程,直到所生成的网络负载足够大以验证目标部署212处所需的网络连接,和/或模拟期望规模的DoS攻击。例如,可以重复该过程,直到已经确定提供给目标存储集群的网络连接足以满足预定义服务水平,诸如在SLA中规定的标准。网络负载可以递增地增加。这些增量可以基于响应于所生成的网络负载的分布式计算系统的性能。

在已经验证期望水平的网络连接和/或已经模拟DoS攻击之后,已经发现系统200的性能满足性能阈值,并且测试已经成功完成,则可以终止测试。将在下面关于清理部件230更详细地讨论终止。

当根据上述过程中的一个或多个来缩放负载时,监测部件228可以连续地监测系统200的性能。基于所监测的性能,可以调整从特定源计算设备生成的负载。例如,可以确定特定源计算设备响应于增加的负载执行得不好。另外地或备选地,可以确定网络负载生成正在消耗太多的资源(例如,超过先前讨论的资源阈值的资源量)。基于这种确定,可以减少和/或消除从该源计算设备生成的负载,并且可以替代地在另一现有的和/或新的源计算设备处生成所需的负载。因此,可以在整个测试过程中动态地选择用于测试目的的源计算设备。另外,虽然总体目标可以是连续地增加为测试生成的总网络负载,但是负载可以在一些测试迭代之间减小。例如,当观察到故障和/或源计算设备处的可用资源量减少时,可以在再次增加总网络负载之前降低总网络负载。以这种方式,可以基于对系统200的性能的实时监测来动态地缩放所生成的负载,包括可以基于特定系统部件的性能的动态缩放。

例如,假定在测试开始时确定特定计算设备的总带宽资源的90%可用。基于该水平的可用资源,计算设备可以被选择为源计算设备。但是假定在测试开始之后,该特定源计算设备支持的实时业务量增加,使得其带宽资源的仅50%可用于测试。因此,继续利用与该计算设备相关联的资源用于测试可能干扰该计算设备所支持的实时操作。因此,可以减少或甚至消除由该源计算设备生成的网络负载,以便避免干扰实时操作。类似地,响应于与该设备相关联的错误和/或故障,可以减少和/或消除特定源计算设备处的网络负载。可以通过增加由另一源计算设备生成的负载以及通过添加新的源计算设备来补偿所生成的负载的该减少和/或消除。这些示例示出了与由本发明的实施例提供的网络负载测试相关联的动态性的方面。

如上所述,终止可以由未能满足预定性能阈值的性能度量以及通过期望水平的网络连接的成功验证来触发。在任一情况下,这种终止可以包括终止网络业务生成器服务和触发清理部件230的动作。清理部件230可以被配置为诸如通过清理图2中的源计算设备220(以及图3中的源计算设备310)和目标部署212来清理环境。该清理可以包括拆除虚拟机设置,并且通常撤消为启动测试所采取的动作。批量作业可以被删除,并且目标部署212处的测试工件也可以被删除。清理部件230还可以根据需要收集与测试相关联的所有日志,创建结果报告,以及向与测试相关联的任何文档发送电子邮件。清理部件230可以采取与结束测试过程相关联的其他动作。

如前所述,在整个上述测试过程中,监测部件228可以监测系统200的性能。除了监测系统以评估系统性能并且动态地缩放所生成的网络负载之外,监测部件228可以监测系统200,以便捕获在所生成的各种网络负载处的参考点。参考点可以对应于系统200在特定网络负载处的系统200的快照。例如,当生成每秒20吉字节的网络负载时,针对每秒20吉字节的网络负载的参考点可以包括针对系统200内的各种部件的性能度量。如果网络负载增加到每秒25吉字节,则可以生成对应于每秒25吉字节的负载的参考点,以便以每秒25吉字节的负载提供系统200的性能的快照。以这种方式,参考点可以对应于特定网络负载,并且参考点可以在多个不同的网络负载处生成和/或捕获。在实施例中,参考点提供系统200的性能的概述。在另外的实施例中,在特定网络负载处为系统200中的每个部件生成参考点,使得每个部件的性能被捕获。由参考点捕获的性能度量可以包括可用性、响应时间、信道能力、等待时间、完成时间、服务时间、带宽、吞吐量、相对效率、可缩放性、每瓦性能、压缩比、指令路径长度和加速。因此,参考点可以提供在特定负载处在系统200内发生的事件的整体图像。

出于多种原因,这些参考点可以是有益的。例如,在特定网络负载处,系统200的性能可以满足特定性能阈值,诸如基于SLA的阈值,但是为了实现这一点,系统内的各种部件可能被推到不期望的限制。例如,如果90%的可用资源用于满足针对网络连接的性能阈值,则这可能是不期望的,并且可以采取校正动作。另外地或备选地,在这种情况下,可以确定应当重新评估当前SLA和/或不能向新客户提供某个SLA,因为可能会发生故障。参考点也可以是有用的,因为它们可以指示系统200在各种网络负载处的性能。这可以用于规划目的,以及用于预测未来的系统行为。

现在转到数据储存库232,如所述,多个计算设备214、目标部署212和验证服务器222可以都经由网络210与数据储存库232通信。数据储存库232可以被配置为存储供例如验证服务器222使用的信息。与数据储存库232相关联存储的信息可以被配置为可搜索与其相关联地存储的信息。与数据储存库232相关联存储的信息可以包括由验证服务器222使用的一般信息,诸如关于网络基础设施的信息(例如,与系统200相关联的设置和/或参数,诸如由资源证实部件224证实的设置和/或参数)、来自与目标部署212相关联的SLA的信息、在各种网络负载处生成的参考点、监测部件228可以将针对系统200的性能度量与其相比较的性能阈值、测试结果和/或日志、报告(例如,由清理部件230生成的报告)、以及与系统200相关的任何其他信息、目标部署212处的网络连接的验证、和/或DoS攻击的模拟。数据储存库232中的这种信息的内容和量不旨在以任何方式限制本发明的实施例的范围。此外,虽然被示出为单个独立部件,但是数据储存库232事实上可以是多个存储设备,例如数据库群集。

现在转到图4,示出了包括地理位置的集合的说明性地理区域400。将参考图4讨论分布式计算系统(诸如图2的系统200)中的可用资源的确定。如地理区域400中所示,目标部署410与一个地理位置相关联。目标部署410可以是任何网络基础设施的部署,诸如关于图2的目标部署212所描述的计算和/或存储能力的部署。可以表示潜在源计算设备的多个计算设备可以与诸如源位置412、414、428、430、432和434的多个其他位置相关联。例如,计算设备436与源位置434相关联。在实施例中,源位置表示数据中心。地理区域400仅是示例性的,并且将理解,包括其他源位置和/或计算设备的其他布置的其他配置被包括在本发明的范围内。

每个源位置和目标部署410之间的箭头表示与这两者之间的链接相关联的资源。例如,箭头可以表示与源位置和目标部署410之间的链接相关联的带宽能力。考虑例如源位置414和目标部署410之间的箭头。该箭头可以表示带宽能力416。箭头的宽度418可以指示与源位置414和目标部署410之间的链接相关联的带宽能力的总量。如具有变化的宽度的箭头所示,与各种源位置和目标部署410之间的链接相关联的带宽能力可以改变。例如,与源位置412和目标部署410之间的箭头的宽度相比,源位置414和目标部署410之间的箭头的宽度可以指示与源位置414相关联的带宽能力416大于与源位置412相关联的带宽能力438。分别与源位置428、430、432和434相关联的带宽能力440、442、444和446也可以以这种方式进行比较。应当理解,该配置仅是示例性的,并且其仅仅旨在示出变化的资源能力可以与不同的源位置相关联的方式。

与源位置相关联的箭头的阴影可以指示与这些位置相关联的总资源的分配。例如,源位置414和目标部署410之间的箭头的总宽度418可以表示与该链接相关联的带宽能力的总量。实心区域可以表示用于支持实时操作420的带宽。因此,剩余宽度426(例如,总宽度418与对应于实时操作420的实心区域的宽度之间的差)可以表示可用资源的相对量,诸如可用带宽。这些可用资源的一部分可以用于在目标部署410处的网络连接验证,如上所述。阴影区域可以表示用作网络连接和/或DoS模拟测试资源422的资源的一部分,诸如带宽能力。剩余的白色区域可以表示在考虑由实时操作420和测试422二者消耗的带宽之后的可用资源424。

在任何数目的源位置处的任何数目的计算设备可以用于执行网络连接验证。生成足够的网络负载可以包括采用与多个不同地理位置相关联的计算设备,诸如被包括在地理区域400中的源位置中的一个或多个。网络负载可以基于网络链接和可用资源动态地从源位置被发起,从而利用备用的资源能力用于验证。这可以最小化分布式计算系统中的总成本。

转向图5,示例性流程图500示出了被包括在用于在分布式计算系统中生成网络业务负载的示例性过程中的各种步骤和决策点。该过程可以在框510开始。在框512,可以证实测试参数,并且可以确定分布式计算系统内的可用资源。例如,可以如关于图2的资源证实部件224所描述地来执行这些步骤。基于该确定,可以在框514选择源计算设备。例如,可以基于目标部署和源计算设备之间的可用资源量来选择源计算设备。源计算设备可以是被包括在分布式计算系统中的计算设备的总数的子集。

在框516,可以向源计算设备提供网络业务生成器服务。网络业务生成器服务可以用于在框518生成网络负载,其中网络负载从源计算设备指向目标部署。在框520,可以允许一段时间通过,以便网络负载稳定。例如,可以允许时间通过,直到源计算设备提供一致的数据,并且以一致的速率观察到错误。这些步骤可以如关于图2的网络业务生成器部件226所描述地来执行。

可以在上述步骤期间监测分布式计算系统,并且在框522,具体地,可以监测其性能以捕获参考点和/或确定分布式计算系统如何响应所生成的网络负载。这可以如关于图2的监测部件228所描述地来实现,并且可以包括接收关于网络部件的性能的警告。在框524,确定分布式计算系统的性能是否满足预定性能阈值。这可以通过将针对分布式计算系统的各种部件的性能度量与针对每个相应部件的性能阈值进行比较来实现。另外地或备选地,这可以基于是否接收到指示部件中的一个或多个处的问题的警告来实现。

如果在框524发现性能不满足性能阈值,则在框526,可以确定是否应当进行满足性能阈值的另一尝试。例如,如果在网络内观察到错误,则可以在框528采取校正动作(例如,可以重新分配网络负载),并且该过程可以返回到框520,在框520,允许用于重新分配的负载稳定的时间。框528的校正动作还可以包括减少所生成的网络负载,取消供应和/或消除源计算设备使得其不再为测试目的而生成网络业务,以及可能需要的任何其它校正动作。在某些情况下,可能不需要肯定的校正措施。例如,如果在网络业务生成器服务和/或源计算设备处观察到错误,则该过程可以简单地返回到框520,因为可能没有足够的时间被允许用于负载最初稳定。附加时间可以允许负载稳定,并且观察到的错误可以被减少和/或消除。如果负载重新分配和/或重复尝试不成功,则在框526,可以确定不进行附加尝试以满足性能阈值,并且网络负载可以缩小,和/或测试可以在框534完全终止。类似地,可以进行框526的判决以在目标存储集群处观察到意外错误的情况下终止测试。在这种情况下,负载重新分配和/或附加时间可能不可能解决所观察到的问题。

如果在框524发现性能满足性能阈值,则过程可以进行到框530,在框530,可以确定是否需要更多网络负载。如果当前网络负载不足以验证目标部署处所需的网络连接和/或模拟具有期望严重性的DoS攻击,则可以肯定地回答该查询。在这种情况下,还可以在框532确定当前源计算设备是否与足以生成增加的网络负载的资源相关联。如果是,则该过程可以返回到框518,以利用现有的源计算设备生成增加的网络负载。这可以包括在现有的源计算设备之间重新分配负载。如果在框532确定现有的源计算设备没有与足以生成增加的网络负载的资源相关联,则可以在框514选择和/或供应附加源计算设备。网络业务生成器服务可以被部署到这些附加设备。因此,如参考图2所解释的,生成增加的网络负载可以包括以下各项的任何组合:增加由现有的源计算设备生成的负载,添加新的源计算设备以生成附加网络负载,在源计算设备之间重新分配负载,以及动态地发起和/或缩放负载的任何其他方式。

在框530,可以确定不需要增加的网络负载。这种确定可以基于在目标部署处的网络连接的成功验证,以及满足性能阈值的分布式计算系统性能。在成功测试的情况下,可以在框534终止测试。

在框534终止测试和清理环境可以包括关于图2的清理部件230所描述的活动。例如,可以删除批作业,可以清理在目标存储集群处的测试工件,可以生成报告,并且可以诸如通过电子邮件分发与测试相关联的文档。该过程可以在框536结束。

现在转到图6,示出了图示用于执行非侵入式网络负载生成的示例性方法600的流程图。该方法可以在包括多个计算设备和诸如存储集群和/或计算集群的目标部署的分布式计算系统中执行。在框610,可以确定分布式计算系统中的可用资源。可用资源可以包括与分布式计算系统中的多个计算设备相关联的计算能力和网络带宽能力。在框612,可以选择多个源计算设备以生成从多个源计算设备指向目标部署的网络负载。多个源计算设备可以是被包括在分布式计算系统中的多个计算设备的子集。源计算设备的选择可以基于目标部署和多个源计算设备之间的可用资源量。在一个示例中,选择包括确定多个源计算设备和目标部署之间的可用资源量满足预定阈值。在实施例中,目标部署是目标存储集群,并且预定阈值可以基于被包括在与目标存储集群的端用户的SLA中的服务水平。

在框614,可以向多个源计算设备提供网络业务生成器服务,以便生成从多个源计算设备指向目标部署的网络负载。在一些情况下,从多个源计算设备中的一个指向目标部署的个体网络负载使用在多个源计算设备中的一个和目标部署之间的可用资源的个体量的预定义部分。在另一示例中,确定多个源计算设备中的每个与目标部署之间的个体资源的可用部分满足预定的个体阈值。多个源计算设备中的至少一个可以在多个源计算设备生成网络负载时与实时操作相关联。

在框616可以监测分布式计算系统的性能。具体地,可以监测分布式计算系统响应于所生成的网络负载的性能。

示例性方法600还可以包括例如动态地缩放从多个源计算设备指向目标部署的网络负载。在一些情况下,动态地缩放网络负载包括配置要由多个源计算设备生成的初始最小负载,其中初始最小负载从多个源计算设备指向目标部署。然后可以确定初始最小负载是稳定的。可以监测针对分布式计算系统的性能度量,并且基于那些性能度量满足预定性能标准,可以扩大网络业务生成器服务,以便生成从多个源计算设备指向目标部署的增加的网络负载。增加的网络负载可以大于初始最小负载。在一些情况下,网络业务生成器服务可以被扩大,直到从多个源计算设备指向目标部署的网络负载满足与预定义服务水平相关联的预定阈值。另一方面,如果性能度量未能满足预定性能标准,则可以基于该未能满足终止网络业务生成器服务。

在另一示例中,动态地缩放网络负载可以包括配置要由多个源计算设备生成的初始最小负载,其中初始最小负载从多个源计算设备指向目标部署。初始最小负载可以被确定为是稳定的。可以监测针对分布式计算系统的性能度量,并且基于性能度量满足预定性能标准,可以向附加源计算设备提供网络业务生成器服务,以便生成从附加源计算设备指向目标部署的附加网络负载。在一些情况下,向附加源计算设备提供网络业务生成器服务可以包括供应虚拟机并且向所供应的虚拟机提供网络业务生成器服务。

在另一示例中,动态地缩放网络负载可以包括确定多个源计算设备中的至少一个将生成指向目标部署的减少的网络负载。该确定可以基于以下事实:需要与多个源计算设备中的至少一个相关联的资源来支持实时操作。

图7中示出了图示用于执行非侵入式网络负载生成的示例性方法700的流程图。在框710,可以确定分布式计算系统中的总资源的作为可用资源的部分。可用资源可以包括与分布式计算系统中的计算设备相关联的计算能力和网络带宽能力。可用资源的确定可以基于与计算设备相关联的总资源与用于实时操作的资源量之间的差。

在框712,可以选择与满足预定能力阈值的可用资源量相关联的多个源计算设备。在框714,可以向多个源计算设备提供网络业务生成器服务。在框716,可以执行网络业务生成器服务,以便生成从多个源计算设备指向目标部署的网络负载,诸如第一网络负载。具体地,目标部署可以是目标存储集群和/或目标计算集群。第一网络负载可以与和实时操作相关联的正在进行的网络活动同时地生成和/或传送。

在框718,可以监测分布式计算系统。监测可以包括评估分布式计算系统响应于网络负载的性能。监测分布式计算系统可以包括监测网络基础设施度量、网络业务生成器服务度量和目标部署度量。具体地,监测网络基础设施度量可以包括接收应当重新分配第一网络负载的警告。监测还可以包括在各种网络负载处生成参考点,其中参考点对应于针对分布式计算系统的性能度量。

在实施例中,方法700还可以包括确定分布式计算系统的性能是否满足预定性能阈值。基于确定性能满足阈值,网络业务生成器服务可以被扩大以便生成从多个源计算设备指向目标部署的第二网络负载。第二网络负载可以大于第一网络负载。相反,基于确定性能未能满足预定性能阈值,可以终止网络业务生成器服务。

从前述内容可以看出,本发明的实施例很好地适于实现上文所阐述的所有意图和目的以及结构明显和固有的其它优点。应当理解,某些特征和子组合是有用的,并且可以在不参考其它特征或子组合的情况下使用。这是权利要求的范围所涵盖的并且在权利要求的范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号