美文网首页
【译】Flex: High-Availability Datac

【译】Flex: High-Availability Datac

作者: 亼珏 | 来源:发表于2022-06-24 11:54 被阅读0次

    论文地址:https://www.microsoft.com/en-us/research/publication/flex-high-availability-datacenters-with-zero-reserved-power/

    capping名词参考 https://ishare.iask.sina.com.cn/f/1xU0iD0lQCR.html

    摘要

          像亚马逊和微软这样的云服务提供商必须保证其大部分工作负载的高可用性。出于这个原因,他们建立了具有冗余基础设施的数据中心,用于电力输送和冷却。一般冗余资源只保留在基础设施故障或者维护保养期间使用,以此保护工作负载性能和可用性不会受到影响。不幸的是,冗余资源也会降低电力利用率,因此需要建设更多的数据中心。为了解决这些问题在本文中,我们提出了“zero-reserved-power”数据中心以及Flex系统来保证工作负载仍能获得它们所需的性能和可用性。Flex利用software-redundant工作负载的存在,可以容忍较低的基础设施可用性,同时对需要较高基础设施可用性的软件实施最低(如果有)性能分级。Flex主要包括:1)一个新的离线工作负载放置策略,该策略可在确保故障发生或维护保养期间安全性的同时减少闲置电源;2)一个分布式系统,可以监控故障并在检测到故障时快速根据工作负载的需求降低功耗。我们的评估表明Flex产生的闲置电力不足5%,部署的服务器数量增加了33%。这意味着每个数据中心站点可以节省数亿美元的建设成本。我们在文章最后总结了将Flex引入微软数据中心的经验。

    一、简介

    Motivation 动力

          随着对云服务的需求持续增长云服务提供商必须将设更多的数据中心。高度利用数据中心的每个基础设施(如:电力,空间,冷却)对于减少必须建设的数据中心数量和节约成本是至关重要的。由于电力通常是最重要的资源,大型提供商使用电力超订以及电力上限(限制性能),通过在每个数据中心部署更多的服务器来安全的提升利用率。他们小心的选择超发量来防止由于capping导致的性能降低。
          然而,由于提供商必须保证基础设施的高可用性,特别是IaaS产品,仍然存在大量的低效率问题。具体来说,提供商在数据中心提供冗余资源包括电力和冷却,来保证在计划内维护或者基础设施故障(非计划维护)下的可用性。这些冗余资源通常是被预留的reserved,仅在相对罕见的维护期间使用。例如,仅当部分电源供电中断时才使用预留电力。更糟糕的是,现有的电力超订方法都忽略了这种储备,旨在限制峰值电力利用率,以便在维护期间不必影响性能。换句话说,即使在正常的非维护期间,峰值功率消耗也不能超过故障功率预算(failover power budget)。
          预留的资源为提高数据中心利用率和降低成本提供了机会。比如在一个典型的高可用数据中心,有10-50%的电力和冷却资源被预留[20],[32],[36]。利用这些资源部署更多服务器将显著提高功耗,降低总成本,降低需要构建的新数据中心数量,并提高云提供商的可持续性。缺点是在维护期间必须使功耗低于故障切换预算,这可能会对性能和可用性造成影响。

    Our work 我们的工作

          在本文中我们提出了zero-reserved-power数据中心以及如何管理它们以便工作负载仍能获得所需的可用性和性能。详细来说,我们证明了大型云服务提供商可以在高可用数据中心分配所有的预留资源来部署额外的服务器,并且将维护期间产生的影响降到最低。我们的工作依赖于以下三个观察结果:

    1. 云服务通常表现出相对较低的电力利用率,偶尔会出现峰值。因此,即使在采用最先进的超发策略后,关键基础设施故障和功率峰值同时出现的概率也很小。
    2. 提供商通常在每个数据中心托管具有不同基础设施可用性要求的混合工作负载,其中一些软件冗余工作负载(比如web搜索、数据分析)可以容忍由于其内置冗余而导致的基础设施故障。
    3. 没有内置冗余的工作负载(比如在单独的IaaS虚拟机中)无法容忍基础设施的不可用。然而,其中一些通常可以容忍一些轻微的性能限制。事实上,这种工作负载的存在是结合电力超发和节流封顶的动力。

          观察结果1表明,维护事件很少需要采取纠正措施来降低功耗消耗,因为为我们提供预留资源的服务器电力利用率也只是偶尔出现峰值。观察结果2和3表示,在这些罕见事件中,一些工作负载可以shutdown(通过切断电源)另一些节流(throttled upon)
          不幸的是,完成这一切是一项挑战。首先,由于我们为服务器分配备用电力,基础设施必须立刻将故障下的负载转移到剩余电源,并在采取纠正措施将功耗降低到故障切换预算以下时临时支持透支。其次,提供商必须跨数据中心放置工作负载,以确保故障安全同时最大限度的减少闲置电力(也就是电力碎片)。最后,在维护事件期间,提供商必须在可以维持透支的短期内采取纠正措施。如果未能在此时间内关闭电源将导致断电。由于基础设施没有关于工作负载特性和需求的信息,因此必须在软件中心以及在存在潜在服务器和通信故障的情况下执行操作。这些限制使得零预留电力的数据中心的管理工具有挑战性。

          为了应对这些挑战我们构建了Flex系统。第一,我们找了最新一代微软数据中心的高可用电力基础设施以确保能够获得更多电力并创造足够的时间在软件中采取纠正措施。
          第二,我们引入了一种新的离线工作负载放置策略,该策略可以减少闲置电力并且可以确保维护期间的安全性。该策略利用数学编程和优化为每个工作负载(比如Web搜索引擎服务器,运行Iaas虚拟机的服务器)选择一个有效位置。我们将这种策略称之为Flex-offline
          第三,我们构建了一个高可用的分布式系统,该系统可以动态监控基础设施故障,并采取纠正措施,在几秒内将电源降至故障预算以下。监测依赖于我们也建造了一条高可用的电力遥测管道。这些操作,包括限流或关闭工作负载,都会尊重预定义的工作负载性能和可用性需求。我们将这个系统成为Flex-online

          我们在生产环境的多数数据中心中部署了Flex-Online,接下来是Flex-Offline。我们讨论了将系统投入生产所带来的的损失。
          我们的评估表明,当我们批量部署微软的工作负载时,Flex-Offline产生的平均闲置功耗不到4%,而简单的策略在平均闲置功耗上至少多出37%。通过模拟、仿真和大规模实验,我们还表明Flex Online可以快速有效地管理电源,同时满足工作负载的性能和可用性要求。总之,Flex可以将每个数据中心的服务器部署增加33%。根据每瓦特的确切建筑成本,这一增长意味着每个128MW发电站(多个数据中心)可节省2.11亿美元(5美元/瓦)至4.22亿美元(10美元/瓦)。节省下来的成本可以通过基于客户工作负载要求的差异化定价传递给客户。

    Related work 相关的工作

          之前的工作都专注于正常状态(非维护状态)下的电力超发和封顶 [3], [4], [6], [8], [9], [11], [13]–[18], [22], [28], [31], [34], [37], [39]。这些工作没有明确考虑为额外的服务器部署分配电源。图1展示了这种差异。超发利用了分配电力的利用率不足来部署更多的服务器,同时将峰值的功率消耗保持在预算之内。相反,Flex支持完全分配预留电力,同时减少电力中断。分配预留电力和电力超发是完全正交的,也就未被完全利用的被分配的电力也可以被超发。



           CapMaestro是之前唯一一个使用预留电力来部署更多服务器的系统。然而,它没有在工作负载的放置中考虑每个工作负载的可用性需求,也没有再故障切换期间考虑运行时决策。这导致了可使用的预留电力是有限的。相反,Flex可以使用服务器部署的全部预留电源,并提供每个工作负载所需的可用性。

    Summary 小结
    我们的主要贡献如下:

    • 我们提出了高可用、零备用电力数据中心的概念,并证明了它可以通过结合基础设施的支持和分布式软件来实现。
    • 我们设计并实现了Flex,一个对工作负载影响最小的管理零备用电源数据中心的系统。Flex包括一个负责智能放置工作负载的离线组件和一个动态管理电力可用性和性能的在线组件。
    • 我们通过模拟Flex和实际工作负载的实验,对Flex进行了全面评估,以表明它可以在对工作负载影响最小的情况下,在管理电力的同时减少备用电力。
    • 我们对微软数据中心的电力基础设施做了改变,并且在生产环境部署了Flex。我们将从这一经验中吸取经验。

    二、背景和动力

    Distributed redundant power infrastructure 分布式冗余电力基础设施

    名词参考:http://www.360doc.com/content/20/0511/22/29585900_911654512.shtml
    https://baijiahao.baidu.com/s?id=1661133021165361518&wfr=spider&for=pc

          为了提供高可用的基础设施,云提供商构造具有备用电力设备和线路的数据中心,比如不间断电源(Uninterruptible Power Supplies ),发电机(Generators),变压器(Transformers)和配电装置(Power Distribution Units)。备用可能有几种形式:单备份(N+1)、全备份(2N)或者分布式备份(xN/y),每种形式都在成本、可维护和容错性方面权衡。基于这些权衡,设计师通常在不同的电力层次结构的不同级别上使用不同的备份模式。

          比如图2中展示的单个数据中心机房的服务房间的电力层次结构,该寄放在在UPS级(x=4, y=3)使用分布式备份xN/y,在PDU级使用全备份2N;2N备份在电力结构的较低层级上更简单也更易于维护。一个数据中心由多个像这样具有独立电力分布结构的房间组成。在设计上,IT机架以active-active的方式链接两个PDU(一个PDU对儿)以便两个PDU支持大致相等的负载。然后将两个PDU链接到两个不同的UPS上,如图所示,确保每个UPS与其他三个UPS中的每一个共享大约三分之一的IP负载。
          当UPS停止运行时(由于计划内或计划外的维护)或者停止供电时(由于断电和发电机同时发生故障),根据PDU-UPS的营生,该UPS的全部负载会立刻转移到剩余的三个UPS中。4N/3和N+1的关键不同点在于N+1会将电力转移给单独的备份UPS。为了在这种情况下提供高可用性,在这种故障切换期间,三个UPS上的总负载不会超过他们的额定功率容量。这可以根据公式限制每个UPS上的电力分配:UPS_Allocation_Limit=UPS_capacity × y/x
          这意味着UPS_capacity × (1 - y/x)的电力被预留在每个UPS上并且未分配给任何服务器。这是效率低下的主要原因。我们建议将所有的这些预留电力分配给其他服务器,可以增加 x/y - 1 数量的服务(对于4N/3设计为33%)我们将UPS的备用和非备用容量之和称为“ provisioned”电力。
          对于Flex使用所有预留资源的能力,分布式备用体系结构是一个关键。N+1不能容纳Flex因为备用电源没激活所以我们不能用它来分配服务器。2N并不理想因为在最坏的情况下电源故障需要一个备用电源承担两倍于正常的负载。

    Workload and hardware heterogeneity 工作负载和硬件体系架构

    workloads 工作负载

          大型云提供商提供许多服务,从提供虚拟运行环境的IaaS到提供基于服务自己软件栈的SaaS。IaaS要求底层的基础设施具有高可用性,以确保单个或一组VM的SLA。单个VM不包含任何可用于容忍基础设施故障的冗余。相反SaaS通常是由提供商设计的一个分布式系统,可以容忍故障,最大限度的减少对高可用性基础设施的依赖。具体来说,SaaS组件是跨AZ的多副本,每个AZ都有独立的电力。SaaS通过服务修复或在另一个az扩容来容忍一个AZ中的服务器故障。因此,我们将SaaS称为software-redundant,所有其他的工作负载包括IaaS称为non-redundant
          SaaS可以在IaaS虚拟机或裸机硬件之上实现。比如谷歌的搜索引擎运行于一套专用的裸金属服务器之上。同样微软也在其共享与其他服务的数据中心的弹性裸金属服务器上运行了大量的SaaS(比如Bing搜索引擎和Exchange邮件服务)和其他的分布式系统(比如Cosmos数据处理系统)。
          从Flex数据中心的角度来看,“workloads”是那些够大(或需要特殊硬件)有自己机架部署的服务或系统。为了描述工作负载间的差异,Flex依赖于预定义工作负载的性能和可用想性要求被称为“impact functions”影响函数。

    Hardware 硬件

          提供商部署各种硬件配置(例如,计算群集、GPU群集、存储群集)以满足客户需求。不同的硬件配置对降低功耗有不同的支持,正如我们在Flex中所要求的那样。例如,服务器硬件通常包括CPU/内存功率上限机制,如Intel'sRuntime Average power Limit(RAPL)。RAPL通过限制CPU频率(可能还有电压)和内存访问(如有必要)来降低功耗。然而,其他耗电硬件(例如GPU、磁盘阵列)可能没有类似的能力。此外,服务可能无法进行限流。

          因此我们将云工作负载大致分为三类:software-redundant, non-redundant but power-cap-able, non-redundant and non-cap-able。图3展示了在微软的4个趋于这些类别的工作负载分布。显然很大一部分都是software-redundant或者non-redundant cap-able的。我们预计,其他大型云提供商会表现出类似的工作负载分布,并可以利用Flex来运行零保留电源数据中心。然而,对于non-redundant cap-able和non-capable工作负载,但没有software-redundant(例如,公共VM云)的数据中心,Flex仍然允许基于cap-able部署使用较小部分的预留功率。正如我们在Section VI中所描述的那样,Microsoft首次部署Flex就是针对这种情况的。

    Capacity planning and workload deployment 容量规划和工作负载部署

          提供商使用短期(几周到几个月)需求预测来采购IP资源(比如服务器)。这种短期规划和部署通常是在大型离散块(例如,20个服务器机架)中完成的,以优化供应链管道,并为工作负载提供可预测的、容量可观的增长。
          每个部署都有必须满足的电源、冷却、网络和间隔要求。特别是,网络部署要求通常迫使每个部署都被视为一个牢不可破的单元。由于电力通常是瓶颈资源,因此本文仅对其进行讨论。电力需求(按机架定义)是对通过在特定工作负载的预期平均利用率下运行现有基准测试(如SPECPower[12])获得的机架峰值功率的保守估计。此估计用于为数据中心中的部署分配电力。任何负责工作负载放置的系统都必须考虑到此类需求,并优化放置决策,以最大程度地减少部署规模过大导致的电力冗余(碎片化)。

    三、Flex可行性分析

          由于Flex数据中心可能涉及限流、关闭某些工作负载,我们首先需要确认这些纠正措施的预期频率将非常低。当维护停机时发生了电力利用率高于故障切换预算时,必须采用纠正措施。因此我们进行了数学分析,以估计这些因素的联合概率以及对工作负载的潜在影响。
          该分析使用2020年9月128个完全分配(non-Flex)的数据中心机房的数据,对数据中心的电力利用率(平均值和方差)以及电力设备计划内和计划外停机的分布进行建模。数据表明,在没有备用电源的情况下峰值利用率在65%-80%之间。计划外维护平均需要1小时/年的电源,而计划内维护平均需要40小时/年。由于可以在低利用率期间安排计划维护,因此这些事件不太可能真正参与Flex Online。事实上,在我们的数据集中,夜间或周末的利用率比工作日的峰值低15%-19%。这些低利用率持续6-12小时,为计划维护提供了足够的时间。
          假设只有计划外维护才能达到足够高的利用率,分析表明,数据中心机房99.99%的运行时间无需采取纠正措施。假设Flex-Online的默认行为是在关闭software-redundant工作负载下的任何服务器之前关闭所有有上限的服务器,分析还表明,必须关闭任何这样的服务器的概率大约只有0.005%。因此,software-redundant工作负载服务器的可用性至少为4个9(non-redundant工作负载服务器的可用性为5个9,因为数据中心是为这种高可用性而设计的,所以任何纠正措施最多都会涉及节流)。通过影响功能(第IV-D节),客户可以更改此默认行为:比如一个software-redundant工作负载可能会更积极地关闭以降低价格。
          综上,结果表明即使对于software-redundant的系统或服务也不会造成过度的不可用。

    四、Flex系统设计

          Flex的目标是尽可能多地使用预留电源,同时确保安全(即防止级联故障),并保证工作负载的性能和可用性SLA。分布式冗余电源层次结构加上混合工作负载需求是Flex的关键促成因素。

    A. 概览

          在具有4N/3分布式冗余度的传统非Flex数据中心中,只有75%的总调配功率分配给IT设备,其余部分保留。图4(左)展示了这样一个数据中心;75%的水平线表示故障切换预算,即可以安全分配和使用的已调配电源量。因为预留了电力,所以在故障切换期间(A),剩余电力设备(如UPS)上的总电力负载仍低于其总量(B)。这种情况下不需要采取纠正措施,但是需要以备用电力为代价。

          在Flex数据中心,我们使用全部的分配电力来部署IT设备。如图4所示(右),这可能会使功率使用峰值超出故障切换预算(A)。在正常运行期间,所有电力设备的总容量足以承受此高负载。然而当故障(或者计划维护)与高负载同时发生时(B),剩余设备上的总负载会超过它们的容量。如果这个透支持续时间过长,会导致级联故障也就是一个设备故障导致另一个设备shutdown,然后再导致下一个设备shutdown,以此类推。
          为了防止级联故障,我们必须快速将功率使用率降低到剩余设备的容量以下,并保持在其过载的容忍范围内(C)。我们建议结合shutdown software-redundant工作负载以及限制non-redundant cap-able工作负载的电力上限来做到这个事。一旦故障缓解或者维护完成,功率上限即刻取消然后服务重新开启(D)以恢复满容量运行。

    我们的方法涉及以下几个挑战:

    • IT设备的部署应该保证足够的software-redundant和cap-able工作负载的可用性,即使在最坏的情况下(100%功率利用率)也可以使功率低于故障切换预算。无法产生多样化的工作负载可能导致电力中断。
    • 设备遥测和Flex系统控制是关键环节,其必须是高可用的,来保证不会遗漏过载条件并在容忍持续时间(基于过载跳闸曲线)内采取措施。
    • 强制执行电力上限或者关闭服务可能会对工作负载产生重大影响,无论是在性能还是可用性方面。虽然保证安全性是至关重要的,但是将工作负载影响降至最低也是很重要的,并且操作只在服务器所需的最小子集上,以安全的将功率降低到故障切换预算以下。
          如图5所示,Flex通过三个组件解决了这些挑战。第一,一个离线组件(Flex-offline -> A)它可以满足不同工作负载的短期需求并优化服务器的位置(见4章C节)。第二,高可靠的电力遥测管道(B)可以提供电力设备的实时监控。第三,高可用的的Flex控制器(C)在故障发生期间做出并强制shutdown或限制服务器部署子集电力上限的决定。我们将这些控制器集合称为Flex-Online。       Flex-Online依赖于UPS和电池的临时过载容量;基础设施的其他部分(如配电盘、电缆、断路器)通常具有较高的容忍。比如图6展示了我们UPS在电池生命周期开始到结束的容忍曲线。在最坏故障负载133%时,UPS提供了10s的容忍,然后在100%时额外提供了3.5min(没展示)。这种额外的低于能力允许发电机情动并接收电池的负载。因此,我们对Flex-Online的终端延迟设置了10秒限制,包括故障检测,遥测采集和控制操作,来降低功率至UPS额定(100%)容量以下。

    B. Flex-Offline:工作负载放置优化

          正如我们在第II-C节中所述,每个服务器部署请求都指定了机架数量、每个机架的电源分配和工作负载(例如,Web搜索、IaaS虚拟机)。此外我们还将每个部署与其availablity属性相关联,以判断在故障发生期间不上中的服务器是否可以被关闭。同样的,capping属性定义了部署是可以被限制电力峰值还是不可以。最后对于cap-able的部署,我们关联了一个“flex power”的值定义这些机架上可以安装的最低功率上限。对于运营商自有的cap-able工作负载,我们通过运行试验来定义flex power的值,以找到产生最大可接受性能影响的功率上限。对于额外的cap-able工作负载(比如IaaS虚拟机)我们通过历史电力利用率和统计多路复用相结合,将高利用率(当Flex-Online实际生效时)下的平均电力降低到可接受的阈值(如10-15%)。这样不需要单独了解额外的工作负载,只需要知道机架的历史电力配置。因此,影响会分散在受影响的数据中心机房中的工作负载上,不会对任何特定客户造成过度的不利影响。最后对于云提供商自有的 software-redundant工作负载我们将flex power的值设置为0,因为如果需要可以关闭这些机架。
          我们的目标是在短期需求中部署所有要求的部署,以便最小化电力滞留(由于电力不足或缺乏工作负载多样性),同时确保在任何维护场景下都可以将电力控制在最坏(100%利用率)情况以内。因此我们假设可以从software-redundant机架中剔除的最大功率为全部被分配的功率,对non-redundant cap-able机架则是分配的功率和flex power之间的差值。没有功率可以从non-redundant non-cap-able的机架中恢复。
          从历史上看,这种布置是通过手动方式对每个数据中心房间进行的,每次使用简单的方法进行一次部署,比如在房间内的ups中进行首次匹配或循环。对这些方法的简单修改可以平衡整个UPS中shave-able和non-shave-able的工作负载,并确保在正常和故障切换操作期间满足电源限制。然而,简单的方法可能会由于不理想的布局而导致较高的电力闲置。

          因此我们提出了Flex-Offline这个自动的工作负载放置算法,它基于整数线性规划(ILP)可以在同时为短期需求中的所有请求找到最佳放置。接下来,我们将介绍一个简化的公式,重点关注正常和故障切换操作期间的UPS电力。为了简单我们省略了其他限制条件(如空间、了冷却)和其他电力设备(如PDU)。

          此ILP问题的解决方案决定(a)是否在数据中心放置一个部署(b)为选中的部署d放置哪一个PDU对儿p。注意,云提供商可能有其他软限,比如限制对外部non-redundant工作负载(如外部VM)的影响,我们在这里省略了,但是在评估的时候会包含这些。

    C. 高可用的电力遥测管道

          Flex的成功取决于电力设备的可靠、高保真和低延迟电力遥测。对于Flex,遥测管道的重要性明显要高于通常的电力超发方法。这是因为在Flex数据中心一个设备故障切换可能会导致瞬时负载转移,如果没有在设备容忍的时间内检测和处理那么就会引起级联故障。相比之下,正常运行期间的负载峰值通常是渐进的,尤其是在电力结构的高层,因此通常可以接受较慢的检测。另外在Flex数据中心,不可靠的遥测可能会导致不必要的限流或服务器关闭以确保数据丢失时的安全性,然后会导致高负载影响。

          考虑到这些因素,我们构建了一个没有单点故障的高可靠的遥测管道。图7展示了管道,从左侧监视电力设备的仪表开始,到右侧的Flex控制器。我们在每个管道阶段都建立了冗余和多样性。

          管道包括仪表(meter)、网络交换机(network switch)、轮询器(poller)和发布/订阅(publish/subscribe)系统。正如我们在下一节中所解释的,仅监视电力设备(图中的UPS)的功率就足够了;无需对设备故障进行监控。然而,依靠单个仪表会因仪表故障或误读而出现错误。因此,我们使用三个逻辑仪表提供设备功率的等效值(在考虑损耗后)。比如在图7中UPSMeter∼ITMeter∼(TotalMeter−MechMeter)测量UPS消耗的等效功率。这种冗余允许基于共识的方法,可以容忍仪表的故障或误读。
          为了防止网络交换机出现单点故障,我们通过将这些逻辑仪表连接到两个数据中心机房的管理交换机来构建网络多样性(除此之外的网络路径也是冗余的)。类似地,我们部署了独立的数据轮询器(在单独的容错域上,物理上是分离的),以及独立的发布/订阅系统来连接Flex控制器。
          我们的实验观察表明,遥测管道延迟小于1秒,其速度足以满足Flex的10秒端到端限制。

    D. Flex-Online:运行时决策

    Controller operation 控制器操作
          Flex控制器负责故障检测并采取纠正措施。虽然一些故障或维护事件(如UPS,发电机,公用变压器,主配电盘,母线槽等)可能会导致从一个UPS故障切换到其他UPS故障,但Flex控制器只需要在各个UPS设备上监控功率过载即可。因为分布式冗余体系结构加上工作负载放置约束可以确保UPS只有在故障期间才会发生过载(即使是100%利用率也不会)。
          与遥测管道一样,控制器必须是高可用的。因此我们以多主配置运行控制器,每个实例运行在一个特定的故障域(比如不同的PDU和机架顶部交换机)。因为电力遥测从UPS(1.5s频率)和单个机架(2s频率)到达每个控制器实例的时间是不同的,所以每个实例可能采取不同的措施。这可能会导致矫正过度,因为限流和shutdown操作是幂等的并且是独立执行的,但是这并不会影响安全性。
          算法1显示了当在任意UPS上发生电力过载时,控制器是如何执行选择机架去限流或shutdown的策略。目标是保证安全性并将对工作负载的总体影响降到最低。这个策略首先选择了一个software-redundant或non-redundant cap-able的工作负载 w(第6行)。PickRack(w)方法从给定的工作负载中随机或按工作负载优先级返回一个机架(第7行)。然后决定相应的操作Ar(第8行),计算恢复功率的估值Rr(第9行),计算在对机架进行capping或throttling期间对工作负载的总影响估值Iw(第10行)。为了完成内循环,该策略在不同的工作负载中累加具有相应影响、操作和估计恢复能力的候选机架(第11行)。它最终从候选机架中选择影响最小的一个机架(第13行)并根据机架在每个UPS上的负载更新UPS的功率估值(第15行)。这会一直持续到所有UPS设备的功率估值都降低到limit以下。策略返回要执行的操作集。

          由于策略需要从候选的机架中估计可恢复的电力,所以Flex控制器需要持续监控数据中心的所有机架。可以使用最近的快照或者基于时间序列模型的估计值(第3行)。为了保证安全,我们添加了一个小缓冲区来防止错误估值(第4行)。
          Flex-Online通过将所有的non-redundant cap-able机架限制为其相应的Flex pow或关闭software-redundant机架来实施纠偏操作。为了防止在自动恢复或扩容期间的不稳定性,Flex-Online会向software-redundant工作负载发送电力紧急通知,使这些工作负载会在不同的AZ进行扩容或恢复。
          一旦强制执行这些操作,控制器必须持续监控功耗,因为工作负载特性中的任何变化都可能再次使电力功耗超过设备limit并且可能需要额外的操作。相反,如果电力功耗显著下降,则可能会取消一些电力上限或恢复服务器以降低影响(此处未显示)。
          为了选出候选人,该策略还需要估计操作对工作负载的影响(第10行)。我们允许每个工作负载将感知到的性能或可用性影响定义为其受影响(关闭或节流)机架的百分比的函数。为此,我们使用impact函数。

    Impact function 影响函数
          图8展示了几个示例函数。每个工作负载定义其影响为从0到1(y轴),给定受影响的工作负载机架的百分比(x轴)。y=0表示限流或者关闭给定比例的机架不会对工作负载的性能或可用性造成影响,y=1表示机架百分比至关重要,不应被触及(除非极大影响到了安全性)。0<y<1意味着随着对工作负载影响的增加一定百分比的机架可以节流或关闭。注意,y=1并不意味着完全停止以向前推进,因为工作负载可以实现业务延续流程和故障转移到另一个数据中心。所有software-redundant工作负载通常都为这样的场景进行计划。

          图8中方法ABC说明微软运营的三种大型服务的潜在影响函数。函数(A)代表了一个典型的non-redundant cap-able工作负载(例如VM服务),对机架throttling产生的增量影响,以及一组必须保护的关键管理机架。相比之下,函数(B)是一个software-redundant的无状态工作负载,其中关闭大量机架不会产生任何影响,因为负载被无缝地迁移到剩余的机架或另一个数据中心。最后,函数(C)是一个跨机架的software-redundant有状态工作负载,它具有一个增长缓冲区(关闭时不会产生影响)、一组执行有用工作的机架(增量影响来自shutdown),以及一组必须受到保护的关键管理机架。
          在没有任何software-redundant工作负载的影响功能的情况下,Flex-Online只在必要的情况下才会对它们起作用:在non-redundant cap-able工作负载被throttled后。

    Summary 小结
          部署时工作负载放置优化(Flex Offline)与运行时Flex控制器(Flex Online)相结合,允许我们在故障切换场景中使用保留电源并安全的降低功率,同时为工作负载提供所需的性能和可用性。

    相关文章

      网友评论

          本文标题:【译】Flex: High-Availability Datac

          本文链接:https://www.haomeiwen.com/subject/szcevrtx.html