用于迁移工作负载的方法和机架系统与流程

文档序号:14910951发布日期:2018-07-10 23:23阅读:177来源:国知局

技术领域

本公开总体涉及一种包括固态驱动器(SSD)的机架(rack)系统,更具体地,涉及一种用于提供减少高性能SSD的长尾延迟的机架级调度器的系统和方法。



背景技术:

高速非易失性存储器(NVMe)为主机软件定义了寄存器级接口以通过外围组件互连高速(PCIe)总线与非易失性存储器子系统(例如,SSD)通信。结构上NVMe(NVMe over fabrics,NVMeoF)(或简称NVMf)定义了通过大范围的存储网络结构(诸如以太网、光纤信道、无限带宽和其他网络结构)支持NVMe块存储协议的通用架构。NVMeoF在底层结构上与针对传输控制协议(TCP)/互联网协议(IP)和远程直接存储器访问(RDMA)的不同网络堆栈兼容。

以各种应用程序为目标的许多大规模服务(例如,基于云的服务)可以由数据中心内的多个服务器托管。这种服务通常需要交互,从而对响应时间敏感。因此,在当今的数据中心中,能够在提供高吞吐量的同时具有低数据访问延迟的高性能存储装置变得流行。

具体地,基于NVMe的SSD和NVMeoF装置由于其高带宽、低延迟和优异的随机输入/输出(I/O)性能正变为数据中心所选择的存储。然而,这些高性能存储装置会由于诸如垃圾回收的后台任务而引起周期性延迟尖峰。另一方面,当运行在同一服务器上同地协作(co-located)的多个服务的应用程序在底层结构上竞争诸如中央处理单元(CPU)、存储器以及存储装置的磁盘带宽的共享系统资源时,这些服务会增加延迟的不可预测性。

对于将资源分配给租户应用程序的多租户应用程序服务器而言,工作负载调度是关键问题。应用程序容器控制在一种虚拟化方案内运行的应用程序实例(instance)。这被称为基于容器的虚拟化。在基于容器的虚拟化中,应用程序的个体实例可以与用于函数库(library)和其他资源的不同的代码容器来共享系统的操作系统(OS)。

数据中心的典型大规模系统具有数据中心级调度器。数据中心级调度器通过考虑到应用程序的服务质量(QoS)要求以及包括CPU核和存储器资源的底层服务器级资源来使工作负载迁移的决策集中化。然而,服务器级资源对存储系统资源提供有限的支持。通常,数据中心级调度器试图使从一个存储装置到另一个存储装置的数据移动最小化。例如,当对工作负载进行迁移时,数据中心级调度器基于与存储数据的当前节点的接近度和/或基于可用于从当前节点到目标节点的数据移动的带宽来从多个候选节点中选择目标节点。

虽然数据中心级调度器可以提供全局级资源可见性以及复杂的调度算法,但是其具有一些缺点。首先,数据中心级调度器无法考虑具有较低延迟的高性能存储驱动器。高性能的存储驱动器可以支持高存储容量的存储装置并可以有效地共享服务器资源以管理并编排存储装置的各种内部任务,诸如垃圾回收、磨损平衡、坏块重新映射、写入放大、预留空间等。然而,数据中心级调度器不会把高性能存储驱动器有效地利用达到其最大能力。此外,在数据中心级调度器在数据中心中的机架系统中错误地定位工作负载的情况下,该调度器在采取纠正动作时引起额外的复杂性。尽管数据中心级调度器可以在数据中心级执行纠正动作,但是其不能有效地利用最新的存储装置协议支持的数据局部性和远程执行能力。



技术实现要素:

根据一个实施例,用于迁移工作负载的方法包括:接收从机架系统的多个服务器节点中运行的多个应用程序生成的多个工作负载;监视所述多个工作负载的延迟要求并检测工作负载对所述延迟要求的违反;收集机架系统的系统利用率信息;计算将所述工作负载迁移至机架系统中的其他服务器节点的奖励;确定在所述多个服务器节点中的使奖励最大化的目标服务器节点;执行所述工作负载到目标服务器节点的迁移。

根据另一实施例,机架系统包括:多个服务器节点;多个存储装置,附属到机架系统;结构,在所述多个服务器节点和所述多个存储装置之间提供连接性;以及机架级调度器,包括尾延迟异常监视器(TLAM)以及目标发现单元(TDU)。TLAM被配置为监视多个工作负载的延迟要求并检测工作负载对所述延迟要求的违反。TDU被配置为:收集机架系统的系统利用率信息;计算用于将所述工作负载迁移至机架系统中的其他服务器节点的奖励;确定在所述多个服务器节点中的使奖励最大化的目标服务器节点。

现在将参照附图更具体地描述以上和其他优选的特征,并在权利要求书中指出这些特征,其中,这些特征包括对事件进行实现和组合的各种新颖的细节。将理解的是,仅以说明的方式而不作为限制来示出这里描述的具体系统和方法。如本领域技术人员将理解的,在不脱离本公开的范围的情况下,可以在各种各样的实施例中采用在这里描述的原理和特征。

附图说明

作为本说明书的一部分被包括的附图示出当前优选实施例,并与上面给出的总体描述以及下面给出的优选实施例的详细描述一起用于解释并教导在这里描述的原理。

图1示出运行数据中心级调度器的示例SSD的随机写入访问延迟分布;

图2示出示例SSD的归一化延迟分布;

图3示出针对各种调度和资源管理方案的协作执行的容器化应用程序的吞吐量和延迟特性;

图4示出根据一个实施例的包括机架级调度器的示例存储系统;

图5示出根据一个实施例的由目标发现单元采用的示例令牌环的拓扑;

图6示出根据一个实施例的包括机架级调度器的机架系统的示例;以及

图7是根据一个实施例的用于迁移工作负载的流程图。

附图未必按照比例绘制,出于说明性的目的,贯穿附图的相似结构或功能的元件通常由相似的附图标记表示。附图仅意图有助于描述在这里描述的各种实施例。附图不描述在这里公开的教导的每个方面,并且不限制权利要求的范围。

具体实施方式

在这里公开的每个特征和教导可以单独利用或与其他特征和教导结合利用以提供用于减少高性能SSD的长尾延迟的机架级调度器。参照附图进一步详细描述单独以及结合地利用很多这些额外特性和教导的代表性示例。本详细描述仅意图教导本领域技术人员用于实践本教导的方面的进一步细节,而不意图限制权利要求的范围。因此,上述在详细描述中公开的特征的组合对以最广泛意义实践教导而言可能不是必需的,相反仅意图描述本教导的具体的代表性示例。

在以下的描述中,仅出于说明的目的,阐明具体的命名法以提供对本公开的彻底的理解。然而,本领域技术人员将清楚的是,不需要这些具体细节来实践本公开的教导。

在这里详细描述的一些部分是按照计算机存储器内的对数据位的操作的算法和符号表示来呈现的。由数据处理领域的技术人员使用这些算法描述和表示以向本领域其他技术人员有效地传达他们工作的实质。在这里,算法通常被认为是导致期望结果的步骤的自洽序列。步骤是需要对物理量进行物理操作的步骤。通常,尽管不是必需的,这些量采用能够被存储、被传输、被组合、被比较以及被进行其他操作的电信号或磁信号的形式。主要出于常见用途的原因,已经证明了将这些信号称为比特、值、元件、符号、字符、术语、数字等是方便的。

然而,应该牢记于心,全部这些术语以及相似的术语将与适当的物理量关联,并仅是应用于这些量的方便的标号。除非明确指出,否则,如从下面的讨论中显而易见的,应当理解的是,在整个描述中,利用诸如“处理”、“计算”、“运算”、“确定”、“显示”等术语的讨论指操作计算机系统的寄存器和存储器内的表示为物理(电子)量的数据并将其转换为计算机系统存储器或寄存器或其他这样的信息存储、传输或显示装置内的类似地表示为物理量的其他数据的计算机系统或类似的电子计算装置的动作和进程。

在这里呈现的算法并非固有地涉及任何具体的计算机或其他装置。各种通用系统、计算机服务器或者个人计算机可以按照这里的教导与程序一起使用,或者其可以为构造更专业的设备来执行需要的方法步骤而提供方便。各种这样的系统需要的结构将从下面的描述而清楚。将理解的是,可以利用各种编程语言实现如在这里描述的公开的教导。

此外,为了提供本教导的另外的有用的实施例,代表性示例的各种特征和从属权利要求可以以没有特别且明确地枚举的方式结合。还应特别注意的是,为了原始公开的目的以及为了限制所要求保护的主题的目的,实体的组的所有值范围或指示均公开了每个可能的中间值或中间实体。还应特别注意的是,在图中示出的组件的尺寸和形状被设计为帮助理解本教导是如何实践的,而不意图限制示例中示出的尺寸和形状。

本系统和方法提供能够在数据中心中的机架系统内有效地调度工作负载的机架级调度器。在不偏离本公开的范围的情况下,在这里可以交换使用术语“机架系统”、“机架(rack)”、“机箱(chassis)”、“服务器机架”和“机架服务器”。单个机架单元的机箱可以包括一个或更多个服务器。

本机架级调度器可以在机架系统中的多个服务器之间动态地检测并移动具有长尾延迟的工作负载。具体地,本机架级调度器可以使诸如基于NVMe的固态驱动器(SSD)的高性能存储驱动器以及诸如NVMeoF装置的分布式高性能存储驱动器的性能最大化。本机架级调度器与传统的全局资源管理方案的区别在于:其使在不同机架中的节点之间传递消息的数据移动和开销最小化。最小化的数据移动和开销可以为减少工作负载的长尾延迟提供有效的解决方案。

另外,本机架级调度器提供能够在分布式高性能存储系统中管理工作负载的可扩展的(scalable)机架级调度解决方案。本机架级调度器可以在驱动器中实现,并在现有的服务器机架中部署,而不需要对附连的存储装置、操作系统(OS)以及机架系统的其他子系统和组件进行大量修改。

根据一个实施例,本调度器提供对数据中心级调度器进行补充的机架级工作负载调度。本机架级调度器可以比数据中心级调度器的工作负载调度优先地对协同操作(co-operate)的工作负载迁移采取纠正动作。在存储装置附连于网络的情况下,本机架级调度器可以提供基于驱动器的存储管理解决方案以使附连的存储装置(诸如高性能NVMeoF兼容SSD装置)的性能最大化。

本调度器在机架级引入与数据中心级调度互补的第二级的调度智能。具体地,本机架级调度器可以用来在NVMeoF网络堆栈中管理高性能分布式SSD的工作负载,使得容器化应用程序可以在不受应用程序级干扰的情况下运行以使系统利用率最大化。

图1示出运行数据中心级调度器的示例SSD的随机写入访问延迟分布。数据中心级调度器对由容器化应用程序生成的工作负载进行调度。图1中示出的延迟分布显示出数据中心级调度器的固有问题在于:数据中心级调度器对于减少工作负载的长尾延迟不是十分有效。在本示例中,80%的延迟在100us内,1%的请求具有长于3.9ms的延迟。

图2示出示例SSD的归一化延迟分布。归一化延迟分布示出:长尾延迟随着更多的服务在同一服务器上同时运行而呈指数增加。即,这些服务对包括CPU、存储器(memory)、存储(storage)和网络资源的公共服务器资源进行竞争,导致延迟增加。

图3示出针对各种调度和资源管理方案的协同执行的容器化应用程序的吞吐量和延迟特性。在本示例中,示出了总计八个工作负载,这八个工作负载包括针对本地(Native)、Mesos和Cgroup以及NVMeoF调度资源管理方案中的每个的最佳p99延迟和最差p99延迟。比较结果显示,在同时执行多个工作负载时,诸如Mesos和Cgroup的现有调度和资源管理方案在减少工作负载的长尾延迟方面不如本地方案和NVMeoF方案有效。比较结果的有趣观察在于:与本地方案和NVMeoF方案相比,最差情况p99延迟和最佳p99延迟之间的差对于Mesos方案和Cgroup方案更大。这表明将最差执行的工作负载从当前节点移动至具有更多资源的另一节点可以造成最佳情况的延迟与最差情况的延迟之间的差减小。

传统上,由于在移动工作负载时需要迁移与工作负载有关的数据,而数据迁移是艰巨并耗时的任务,因此在不同节点之间移动工作负载已经成为艰巨的任务。然而,基于NVMeoF的系统允许在一个机架中运行的多个服务器节点通过诸如以太网的高速结构同步连接至附连于同一机架的多个NVMeoF存储装置。例如,以太网可以在同地协作(co-located)的服务器之间提供40Gbp或更多的高速/带宽链路。使用高速/带宽链路,可以比现有的数据中心级调度器更快而且更容易地把没有满足尾延迟要求(例如,最差99%延迟)的工作负载从一个服务器节点迁移至另一个服务器节点。

图4示出根据一个实施例的包括机架级调度器的示例存储系统。机架系统400包括多个容器化应用程序401a-401n以及多个附连(本地或远程)的存储装置421a-421m。存储驱动器410可以管理并调度由容器化应用程序401a-401n生成的工作负载,以访问附连的存储装置421a-421m中的一个或更多个。存储驱动器410可以方便地称为守护程序(daemon)、内核模块(kernel module)或装置驱动器。存储装置421a-421m可以被插入到机架系统400的多个装置端口中。

机架系统400可以包括多个服务器节点。每个服务器节点可以运行一个或更多个容器化应用程序401。例如,服务器节点可以运行八个(或更多个)容器化应用程序。一些服务器节点可以运行一个或更多个虚拟机,所述虚拟机运行常见的主机操作系统,例如,WINDOWS和LINUX。容器化应用程序401可以同时访问存储在一个或更多个附连存储装置421中的数据。

每个存储装置421a-421m包括硬件组件(例如,片上系统(SoC)模块)和/或用于控制对存储在存储装置的存储介质(诸如闪存)中的数据的进行访问的固件。根据一个实施例,存储驱动器410可以采用与存储装置421的固件通信的反馈回路。在机架系统400中同地协作的多个服务器节点可以运行容器化应用程序401a-401n。在运行时间期间,容器化应用程序401a-401n可以对存储驱动器410生成工作负载。存储驱动器410在机架级管理所关联的存储装置421a-421m的控制与操作。

对于具体的服务器节点来说,存储驱动器410可以在主机OS的内核空间或用户空间中运行。存储驱动器410将工作负载传送至目标存储装置421的固件。目标存储装置421的固件执行目标存储装置421上的工作负载的实际操作(例如,读取、写入和修改)。

根据一个实施例,固件可以在存储装置421的硬件组件(例如,片上系统(SoC)模块)中实现,其中,该硬件组件在访问存储装置421上的数据时管理数据压缩和/或重复删除(deduplication)。一旦完成了所指示的操作,SSD固件可以生成并向存储驱动器410返回响应(例如,成功或失败)。存储驱动器410可以将响应发送回主机OS以报告所指示的操作的完成。响应可以包括从一个服务器节点向另一个服务器节点迁移工作负载的成功或失败的指示。

根据一个实施例,存储驱动器410可以包括尾延迟异常监视器(tail latency anomaly monitor,TLAM)411、目标发现单元(TDU)412以及服务迁移单元(SMU)413。TLAM 411可以作为后台守护程序来启动,或者作为存储驱动器410的一部分(所述一部分在对应的服务器节点启动之后启动)来启动。

根据一个实施例,TLAM 411可以不断监视并标记具有违反预定延迟要求的阈值延迟(例如,p99延迟)的每个工作负载。当工作负载的尾延迟高于预定的阈值延迟时,可以检测到违反对工作负载的延迟要求。如果TLAM 411检测到违反预定延迟要求的工作负载,则TLAM 411可以标记并将工作负载的ID编号发送至TDU 412。

TDU 412可以在本地对系统利用率信息进行采样以与在机架系统400中运行的其他服务器节点共享。TDU 412可以基于系统利用率信息做出本地决策以将工作负载从一个服务器节点迁移至另一个服务器节点。

根据一个实施例,TDU 412可以与利用令牌环拓扑的同一机架内的其他服务器节点交换系统利用率信息。图5示出根据一个实施例的由TDU采用的示例令牌环的拓扑。机架系统包括服务器节点N1至N5。可以以循环(round robin)的方式在服务器节点N1至N5之中传递令牌501。只有持有正传递的令牌501的服务器节点可以做出与工作负载迁移有关的决策。在一些实施例中,对于每个常驻主机操作系统可以使用多个令牌。在其他实施例中,对于可以访问互斥的不同存储装置的不同组容器化应用程序来说,可以使用多个令牌。图5中示出的令牌环拓扑说明:降低了在不知道其他服务器节点的同时动作的情况下转移工作负载时由多个服务器节点淹没同一候选服务器节点的风险。

根据一个实施例,TDU 412可以使用奖励函数来执行对工作负载从一个节点迁移至另一节点的奖励的计算。可以使用不同的奖励函数来确定能够使迁移特定工作负载的利益最大化的最优候选服务器节点。为了确定效率,例如,为了确定对工作负载迁移的奖励,TDU 412应当知晓活动运行的服务器节点的系统利用率信息。

根据一个实施例,奖励函数是一个或更多个系统利用率参数的线性权重函数。一个或更多个系统利用率参数被赋予各自的权重以计算奖励函数。具有更大权重的系统利用率参数意味着与其他系统利用率参数相比,该系统利用率参数提供更多的奖励。为了计算可以应用至各种系统利用率参数的奖励值,可以对系统利用率参数进行归一化。例如,由在候选服务器节点处可用的资源(一个无量纲的数)相对于在当前服务器节点处可用的资源的比来表示系统利用率参数。这样的系统利用率参数的示例包括但不限于可用CPU的数量、可用存储器的大小、可用网络带宽以及可用磁盘带宽。可以根据对应的系统资源的当前可用性及使用来动态地改变系统利用率参数。

例如,奖励函数可以由以下等式表示:

Reward(j,i)=Ai*Rcpuj+Bi*Rmemj+Ci*Rnetj+Di*Rdiskj

其中:节点i是做出迁移工作负载的决策的节点,节点j是用于迁移工作负载的候选节点。Ai、Bi、Ci和Di是分别基于对CPU、存储器、网络带宽以及磁盘带宽的工作负载的要求而调整的服务器节点i的权重。

例如,Rcpuj、Rmemj、Rnetj和Rdiskj是候选服务器节点j中的与服务器节点i的可用资源相比增加的资源delta(δ)与工作负载所需要的资源的量的比。例如,磁盘带宽Rdisk可以等同于当节点正在远程访问同一机架系统内的存储(storage)时的NVMeoF网络带宽。如果计算出的将工作负载迁移至候选节点的奖励小于阈值,则TDU 412可以确定不迁移工作负载。如果奖励高于阈值,则TDU 412可以在机架系统的全部候选服务器节点中确定能够使奖励最大化的候选节点。可以基于权重A、B、C和D的选择来确定奖励函数的阈值。此外,可以在运行时间期间动态地调整阈值以反映系统资源利用率的改变。虽然给出的奖励函数侧重于减少尾延迟,但是TDU 412也可以采用其他奖励函数,所述其他奖励函数可以额外地考虑用于迁移工作负载的成本(例如,功率成本和冷却成本),从而不仅出于当前的性能而且出于工作负载迁移的整体成本来做出综合的决策。

在TDU 412做出迁移工作负载的决策之后,TDU 412可以指示SMU 413执行实际的工作负载迁移。对于基于NVMeoF的系统,同一机架上的多个服务器节点连接至共享的存储网络,与工作负载迁移有关的数据可以存储在共享的存储网络中。在此情况下,由于数据通过共享的存储网络容易用于任意服务器节点,因此在共享的存储网络中的服务器节点之间的工作负载迁移变得更容易。

根据一个实施例,SMU 413可以将驻留在系统高速缓存以及内存中的进程状态冲入(flush)目标存储装置421。如果至目标存储装置的NVMeoF带宽是不可用的,则SMU 413可以将进程状态暂时冲入机架中的本地磁盘或者替代的存储装置。SMU 413可以在一定的延迟(例如,2分钟)之后继续尝试将进程状态冲入目标存储装置421,直到预定数量的重试失败为止。

参照图4,本机架级调度器的TLAM 411可以作为后台守护程序运行或作为内核存储驱动器410的一部分运行。TLAM 411可以确认由机架系统400中同时运行的容器化应用程序401生成的工作负载的延迟异常。TLAM 411可以保持对具有更高QoS要求的进程以及关键的并需要保持本地化的进程的追踪。根据一个实施例,TLAM 411与TDU 412可以以相似的机制实现。为了加快做出决策,TLAM 411和TDU 412两者可以在同一硬件或同一内核存储驱动器410中实现。例如,TLAM 411以及TDU 412可以在诸如PCIe的系统接口上的单独的(standalone)硬盘加速器中实现,或者可以实现为SSD硬盘或网络处理单元加速器的一部分。根据一个实施例,SMU 413可以以单独的方式或作为分布式存储装置的一部分在软件模块中实现,以在确认目标服务器节点之后开始工作负载迁移。

根据一个实施例,TLAM 411、TDU 412和SMU 413可以在机架系统400内运行的特定存储驱动器410中实现。可以同时运行多于一个存储驱动器410。根据另一个实施例,TLAM 411、TDU 412和SMU 413可以在机架系统400内实现为以节点为基础分布。在此情况下,服务器节点的子集可以包括TLAM和TDU。根据再一个实施例,TLAM 411、TDU 412和SMU 413可以仅在机架系统400内的一个主服务器节点上实现或者仅在架顶式(TOR)交换机硬件中实现。在此情况下,在每个组成的服务器节点上运行的分布式模块可以具有将节点级信息周期性地提供至主服务器节点的应用程序编程接口(API)调用。

图6示出根据一个实施例的包括机架级调度器的机架系统的示例。数据中心可以具有很多机架系统,数据中心机架600可以是数据中心中的多个机架系统中的一个。数据中心机架600可以包括多个服务器节点601a至601n并实现机架级调度器。

在数据中心中,多个机架级调度器可以同时运行。根据另一实施例,可以按照分布在数据中心机架600内的每个服务器节点601来实现每个机架级调度器。根据另一实施例,可以在数据中心机架600内的主服务器节点中或者在架顶式(TOR)交换机硬件中实现至少一个机架级调度器。

机架级调度器可以包括TLAM、TDU和SMU。TLAM可以不断地监视并标记违反预定的延迟要求的工作负载。如果TLAM检测到违反服务器节点601a中运行的特定工作负载,则TLAM将工作负载的ID编号标记并发送至TDU。TDU对其自身的服务器级系统利用率信息进行采样并将其与数据中心机架600中的其他服务器节点共享。同样地,TDU可以收集其他机架级服务器节点601b至601n的系统利用率信息并计算将工作负载迁移至其他机架级服务器节点601b至601n的奖励。基于最大奖励,TDU可以确定服务器节点601b至601n中的服务器节点601m可以使奖励最大化。一旦TDU确认出目标节点601m,TDU就指示SMU执行工作负载的实际迁移进程。

根据一个实施例,机架级调度器的TLAM、TDU和SMU中的每个可以被赋予适当的进程优先级以有效地确认并执行满足数据中心机架600的QoS要求的工作负载迁移。TLAM可以周期性地对系统利用率进行轮询并监视对进来的工作负载的延迟要求。TLAM的轮询率可以取决于主机CPU资源的可用性以及对于不同应用程序和工作负载的QoS要求的关键性。TLAM、TDU和SMU的适当设定的进程优先级可以使由机架级调度器引发的开销最小化。

根据一个实施例,通过SMU的迁移进程可以被用户控制。例如,用户可以以精细的间隔度来设定并控制用于数据和进程迁移的存储区的速度、大小、顺序、时序以及分配,以在机架系统内有效地为工作负载迁移服务,同时改善其性能。当执行工作负载迁移时,SMU可以考虑在机架级调度器的存储(storage)和网络堆栈中处于不同级处的其他相关系统参数(包括缓冲器大小及其延迟和带宽)。

根据一个实施例,进程和数据迁移协议与各种数据传输结构兼容。这种数据传输结构的示例包括但不限于以太网和RDMA。数据中心机架600内的数据结构(data fabric)允许服务器节点601与各种现有的服务器硬件架构一起工作。

根据一个实施例,本机架级调度器可以通过反馈回路来提供目标服务器节点答复(acknowledgement)的机制。例如,目标服务器节点可以将工作负载迁移答复为成功或失败。失败的迁移可以通过TDU和SMU重复直到其变为成功为止。重试的最大数量可以限制为用户配置的数量。机架级调度器可以在成功后将工作负载迁移的成功报告回主机操作系统,或者在进行了用户配置数量的重试后将工作负载迁移的失败报告回主机操作系统。

图7是根据一个实施例的用于迁移工作负载的流程图。机架级调度器在机架系统中实现。机架级调度器的TLAM监视对进来的多个工作负载的延迟要求(701),所述多个工作负载是从多个服务器节点中运行的应用程序生成的。TLAM检测工作负载对所述延迟要求的违反(702)。机架级调度器的TDU收集系统利用率信息(703)并计算将所述工作负载迁移至机架系统中的其他服务器节点的奖励(704)。在机架系统中运行的服务器节点可以同时访问附属的存储装置,从而不必在用于迁移的服务器节点之间迁移与待迁移的工作负载有关的数据。一旦TDU确定使奖励最大化的目标服务节点(705),TDU调用SMU来执行工作负载到目标服务器节点的迁移(706)。机架级调度器通过将状态报告给主机OS来将反馈提供给主机OS(707)。重复该进程以在机架系统内执行工作负载迁移。用于确定工作负载迁移的阈值可以根据应用程序和/或工作负载的QoS要求以及机架系统的系统利用率而动态地改变。例如,可以利用临时增大的延迟阈值来处理标记有高QoS要求的工作负载,从而确保以严格的阈值要求来处理工作负载。延迟阈值越高,工作负载被迁移至其他节点的可能性越低。

本机架级调度器可以在软件/固件模块中或在硬件(例如,SoC模块)中实现。工作负载监视和节点之间的迁移可以执行为分布在机架系统中的节点间或集成在主服务器节点中。本机架级调度器可以执行第二级的纠正调度决策以考虑到高性能存储资源并可以在机架内执行自主的工作负载或应用程序容器迁移。本机架调度器可以执行尾延迟异常检测以在每个节点基础上确认无法满足QoS要求的有问题的工作负载。另外,本机架级调度器可以智能地检测通告其能力的潜在候选节点并使用决策算法来确认工作负载迁移的奖励。自主的工作负载迁移可以通过利用NVMeoF技术的好处而在工作负载迁移期间和之后保持系统状态的同步性和一致性,以达到即使远程地执行工作负载迁移也能获得类似本地节点的存储延迟。

根据一个实施例,用于迁移工作负载的方法包括:接收从机架系统的多个服务器节点中运行的多个应用程序生成的多个工作负载;监视所述多个工作负载的延迟要求并检测工作负载对所述延迟要求的违反;收集机架系统的系统利用率信息;计算将所述工作负载迁移至机架系统中的其他服务器节点的奖励;确定在所述多个服务器节点中使奖励最大化的目标服务器节点;执行所述工作负载到目标服务器节点的迁移。

所述方法还可以包括向主机操作系统提供包括迁移状态的反馈。

机架系统可以包括多个存储装置。

机架系统可以与结构上高速非易失性存储器(NVMeoF)标准兼容,所述多个存储装置可以是NVMeoF装置。

当所述工作负载的尾延迟比延迟阈值高时,可以检测到所述工作负载违反了所述延迟要求。

延迟阈值可以根据所述多个应用程序和/或所述多个工作负载的服务质量(QoS)要求以及机架系统的系统利用率而动态地改变。

可以通过奖励函数来计算奖励,奖励函数可以是多个系统利用率参数的线性权重函数。

系统利用率参数可以包括可用CPU的数量、可用存储器的大小、可用网络带宽以及可用磁盘带宽中的一个或更多个。

所述方法还可以包括以循环(round robin)的方式在所述多个服务器节点之间传递令牌,其中,所述多个服务器节点之间仅持有令牌的服务器节点可以确定迁移工作负载。

根据另一实施例,机架系统包括:多个服务器节点;多个存储装置,附属到机架系统;结构(fabric),在多个服务器节点和多个存储装置之间提供连接性;以及机架级调度器,包括尾延迟异常监视器(TLAM)以及目标发现单元(TDU)。TLAM被配置为监视多个工作负载的延迟需求并检测工作负载对所述延迟需求的违反。TDU被配置为:收集机架系统的系统利用率信息;计算将所述工作负载迁移至机架系统中的其他服务器节点的奖励;在多个服务器节点中确定使奖励最大化的目标服务器节点。

机架级调度器还可以包括被配置为执行把所述工作负载迁移到目标服务器节点的服务迁移单元(SMU)。

SMU还可以被配置为向机架系统的主机操作系统提供包括迁移状态的反馈。

机架系统可以与NVMeoF标准兼容,所述多个存储装置可以是通过以太网彼此连接的NVMeoF装置。

当所述工作负载的尾延迟比延迟阈值高时,TLAM可以检测到所述工作负载违反了所述延迟要求。

延迟阈值可以根据所述多个应用程序和/或所述多个工作负载的服务质量(QoS)要求以及机架系统的系统利用率而动态地改变。

TDU可以使用奖励函数计算奖励,奖励函数可以是多个系统利用率参数的线性权重函数。

系统利用率参数可以包括可用CPU的数量、可用存储器的大小、可用网络带宽以及可用磁盘带宽中的一个或更多个。

所述多个服务器节点可以以循环的方式传递令牌,其中,所述多个服务器节点之间仅持有令牌的服务器节点可以确定迁移工作负载。

所述多个服务器节点的子集可以包括TLAM和TDU。

所述多个服务器节点中的主服务器节点可以包括TLAM和TDU。

机架级调度器可以在片上系统(SoC)模块中实现。

机架级调度器可以在架顶式(TOR)交换机硬件的固件中实现。

已经在上面描述了上述示例实施例以示出实现用于提供减少高性能SSD的长尾延迟的机架级调度器的系统和方法的各种实施例。本领域普通技术人员将会想到对公开的示例实施例的各种修改和偏离。在权利要求书中阐述了意图包括在发明的范围内的主题。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1