基于云的应用的单点故障消除的方法和装置制造方法
【专利摘要】多种实施例提供了为基于云的应用提供SPOF消除的方法和装置,所述方法和装置提供了支持快速缩放、基础设施维护和预防性维护的规则,其中所述基础设施维护,例如为软件/固件/硬件的升级、更新、改进和增长;其中所述预防性维护诸如清扫风扇过滤器和更替失效的硬件组件。特别地,由所述方法和装置提供的所述SPOF消除除了基于虚拟机至主机实例映射之外,还基于网络架构和永久性存储考虑。
【专利说明】基于云的应用的单点故障消除的方法和装置
【技术领域】
[0001] 本发明一般地涉及为基于云的应用提供单点故障消除的方法和装置。
【背景技术】
[0002] 本节介绍的内容可有助于更好的理解本发明。因此,本节中对相应内容所做的陈 述不应被理解为承认这些内容属于或不属于现有技术。
[0003] 在一些现有的高可用性系统中,网络架构被明确地设计为包含充分的冗余以确 保在提供的网络中不存在单点故障(SPOF)。在一些现有的基于z?的系统中,施加抗未和 (anti-affinity)规则来确保在应用虚拟机(VM)实例与物理主机的映射之间不存在单点故 障。
【发明内容】
[0004] 多种实施例提供了为基于云的应用提供SPOF消除的方法和装置,其提供了支持 快速伸缩(rapid elasticity)和基础设施发展的规则。特别地,由所述方法和装置提供的 SPOF除了基于VM到主机实例的映射之外还基于网络架构和永久存储的考虑。
[0005] 在一个实施例中,提供了用于提供单点故障消除的装置。所述装置包括数据存储 器和通信地连接至数据存储器的处理器。所述处理器被编程为:确定一个或多个应用资源 需求;确定资源池以及与资源池相关联的网络架构;确定一个或多个规则;基于所述一个 或多个应用资源需求、所述资源池、所述网络架构以及所述一个或多个规则,确定一个或多 个组件实例的分布。
[0006] 在上述实施例的任意一个中,所述处理器被进一步编程为确定一个或多个所述链 路和节点的网络状况,并且进一步基于所述网络状况确定一个或多个组件实例的分布。
[0007] 在第二实施例中,提供了用于提供单点故障消除的系统。所述系统包括:一个或多 个数据中心,所述一个或多个数据中心包括资源池以及与通信地连接至所述多个数据中心 的云管理器。所述云管理器被编程为:确定一个或多个应用资源需求;确定所述资源池和 与资源池相关联的网络架构;确定一个或多个规则;并且基于所述一个或多个应用资源需 求、所述资源池、所述网络架构和所述一个或多个规则的确定一个或多个组件实例的分布。
[0008] 在第三实施例中,提供了用于提供单点故障消除的方法。所述方法包括:确定分布 触发已经发生;确定一个或多个应用资源需求;确定资源池以及与该资源池相关联的网络 架构;确定一个或多个规则;并基于所述分布触发、所述一个或多个应用资源需求、所述资 源池、所述网络架构以及所述一个或多个规则,确定一个或多个组件实例的分布。
[0009] 在上述实施例中的任意一例中,所述分布触发基于从所述资源池中的一个或多个 资源迁移至少部分所述组件实例。
[0010] 在上述实施例中的任意一例中,确定所述网络架构包括解析网络架构表达。
[0011] 在上述实施例中的任意一例中,所述一个或多个规则包括一个或多个抗亲和规 贝1J,并且确定所述一个或多个抗亲和规则包括分析抗亲和规则表达。
[0012] 在上述实施例中的任意一例中,所述方法进一步包括确定一个或多个链路或网络 节点的网络状况,所述网络架构包含所述一个或多个链路或网络节点;并且对所述一个或 多个组件实例的分布进行确定的步骤进一步基于所述网络状况。
[0013] 在上述实施例中的任意一例中,所述网络架构包括第一网络设备;并且对一个或 多个组件实例的分布进行的确定包括基于确定所述第一网络设备的故障将违反一条或多 条抗亲和规则中的至少一条,确定所述一个或多个组件实例的第一组件实例可不与所述资 源池中的第一资源相关。
[0014] 在上述实施例中的任意一例中,对一个或多个组件实例的分布进行确定的步骤包 括使用目标函数。
[0015] 在上述实施例中的任意一例中,所述目标函数最小化应用的访问延时。
[0016] 在上述实施例中的任意一例中,所述网络架构包括链路和网络节点。
[0017] 在上述实施例中的任意一例中,所述一个或多个应用资源需求包括一个或多个资 源的当前分配,所述一个或多个资源为所述资源池的成员;以及一个或多个当前应用资源 需求,所述一个或多个当前应用资源需求与应用相关。
[0018] 在上述实施例中的任意一例中,对所述一个或多个应用资源需求的确定基于从所 述应用接收到的应用资源请求。
[0019] 在上述实施例中的任意一例中,对所述一个或多个应用资源需求的确定包括编程 所述处理器以监控所述应用的资源使用。
[0020] 在上述实施例中的任意一例中,所述一个或多个规则包括一个或多个抗亲和规 则。
[0021] 在上述实施例中的任意一例中,所述一个或多个规则进一步包含一个或多个业务 规则。
[0022] 在上述实施例中的任意一例中,所述一个或多个业务规则包括为了维护作业而对 所述资源池中部分资源的预约。
[0023] 在上述实施例中的任意一例中,进一步基于故障点的集合确定一个或多个组件实 例的分布。
【专利附图】
【附图说明】
[0024] 附图中示出了多个实施例,其中:
[0025] 图1示出了云网络,该云网络包括用于基于云的应用的单点故障消除系统100的 实施例;
[0026] 图2示意性地示出了数据中心200A和部分网络200B,其为图1中数据中心150之 一以及网络140中的一部分的实施例;
[0027] 图3描绘的流程图示出了为云管理器(例如,图1中的云管理器130)在图1的 SPOF消除系统100中分配组件实例的方法300的实施例;
[0028] 图4描绘的流程图示出了为云管理器(例如,图1中的云管理器130)确定如图3 步骤340中示出的规则的方法400的实施例;
[0029] 图5A示出了需要组件实例Al - A2和BI - B4的示例性应用的可靠性框图;
[0030] 图5B示出了组件实例Al - A2和BI - B3的组件实例的初始组件即时分配;
[0031] 图5C示出了在图5A中的组件实例500A的第一示例性分布中组件实例M的分 配;
[0032] 图示出了在图5A中的组件实例500A的第二示例性分布中的组件实例M的分 配;并且
[0033] 图6示意性地示出了的多种装置600--例如图1中的云管理器130中的一 个--的实施例。
[0034] 为方便理解,使用同一参考数字标注的元素具有实质上相同或相似的结构或实质 上相同或相似的功能。
【具体实施方式】
[0035] 以上叙述和描绘仅仅示出了本发明的原理部分。因此需要指出本领域技术人员能 够遵循本发明的原理设计出多种本文中没有明确描述或展示的实施例以具现化本发明的 原理,并仍然包括在本发明的范围之中。此外,所有在此列举的例子主要为了教导和帮助读 者理解本发明的原理以及发明人提出的概念以推动本领域技术的发展,并且所举示例还应 被理解为不限于本文这些特别列举的例子和条件。此外,此处使用的术语"或",除非有其他 的表示(例如,"否则"或"或替代方案"),意为非排他的或。并且,此处描述的多种实施例 不一定相互排斥,因为一些实施例可与一个或多个其他实施例结合以形成新的实施例。
[0036] 多种实施例提供了为基于云的应用提供SPOF消除的方法和装置,其提供了支持 快速伸缩、基础设施维护--例如软件/固件/硬件的升级、更新、改进和增长,以及预防性 维护,例如,清洗风扇过滤器和替换故障的硬件组件--的规则。特别地,由所述方法和装 置提供的所述SPOF消除除了基于虚拟机至主机实例映射之外,还基于网络架构和永久性 存储考虑。
[0037] 此处使用的术语"no SP0F"和"SP0F消除"意为没有单部件故障引起的不可接受 的服务影响。例如,电话业务提供商可接受通话掉线,但不能接受长时间的服务中断,即不 能完成已掉线通话的重拨,因为单点故障事件不但影响了主要的/激活的服务部件,还影 响了次要的/冗余的服务部件,并且因此没有可用的部件或足够的能力来在预先确定的阈 值期限内服务用户请求。需指出自动故障检测机制或者自动恢复机制的故障可能会妨碍业 务恢复机制的激活,并且导致长时间的业务失败并超出"no SP0F"需求的范围。
[0038] 图1不出的云网络包括用于基于云的应用的SPOF消除系统100的实施例。所述 SPOF消除系统100包括一个或多个客户端120-1 - 120-n (统称为客户端120),所述客户端 访问通信路径上的属于位于一个或多个数据中心150-1 - 150-n(统称为数据中心150)的 一个或多个被分配的应用实例(为了清晰而没有示出)。所述通信路径包含客户端通信通 道125-1 - 125-n (统称为客户端通信通道125)中的适当的一条、网络140和数据中心通信 通道155-1 - 155-n(统称为数据中心通信通道155)中的一条。所述应用实例被云管理器 130分配给数据中心150中的一个或多个,所述云管理器通过云管理器通信通道135、网络 140和数据中心通信通道155中适当的一条与数据中心150通信。
[0039] 客户端120可包括有能力通过一个或多个客户端通信通道125,在网络140上接收 或发送信息的任何类型的通信设备。例如,通信设备可为轻薄型客户端、智能电话(例如, 客户端120-n)、个人或手提电脑(例如,客户端120-1)、服务器、网络设备、平板电脑、电视 机顶盒、媒体播放器及类似物。通信设备可依靠示例系统内的其他资源来执行部分任务,如 处理或存储,或可具有独立执行任务的能力。需指出虽然此处示出了两个客户端,系统100 可包括更少或更多的客户端。并且,客户端的数目在任何时候都可以是动态的,即可以在操 作过程中的任何时间从所述系统中添加或减去客户端。
[0040] 所述通信通道125、135和155支持在一个或多个通信通道上通信,比如:无线通信 (例如,1^£、6511、00嫩、蓝牙);1^^通信(例如,11?1);分组网络通信(例如,1?) ;宽带通 信(例如,DOCSIS 和 DSL);存储通信(storage communications)(例如光纤通道,iSCSI) 及类似物。需指出虽然被描述成单独的连接,通信通道125U35和155可以为任意数目或 通信通道的结合。
[0041] 云管理器130可为向一个或多个应用实例分配和解除分配数据中心150中的资源 的任意装置。特别地,数据中心150中的部分资源是成池的并且通过组件实例被分配至应 用实例。需指出,虽然此处仅示出了一个云管理器,系统1〇〇可包括多个云管理器。
[0042] 此处使用的术语"组件实例"指为来自特别的客户端应用的服务请求预留的一个 或多个被分配的物理资源的性能。例如,分配的物理资源可为处理/计算、存储器、网络、储 存装置及类似物。在一些实施例中,组件实例可为包括处理/计算、存储器和网络资源的虚 拟机。在一些实施例中,组件实例可以是虚拟存储。
[0043] 网络140包括任意数目的接入和边缘节点和网络设备以及任意数目和配置的链 路。此外,需指出网络140可包括任意数目和任意结合的无线或有线网络,包括:LTE、GSM、 CDMA、局域网(LAN)、无线局域网(WLAN)、广域网(WAN)、城域网(MN)等等。
[0044] 数据中心150可为地理上分散的,并且可包括任意类型或配置的资源。资源可为 应用实例利用以服务来自客户端120的应用请求的任意适当的设备。例如,资源可为:服务 器、处理器内核、存储设备、储存设备、网络设备等等。
[0045] 在一些实施例中,云管理器130可以是分层布局的云管理器。
[0046] 图2示意性阐明了数据中心200A和部分网络200B,所述数据中心200A和网络 200B为图1中的数据中心150的实施例和网络140的一部分。所述数据中心200A包括资 源220-1-1-1 - 220-y-z-5 (统称为资源220)。资源220被配置在"y"行,其中每行包括多个 (例如,示为"x"或"y")机架的资源(例如,机架205),所述资源可通过通信路径被访问。 所述通信路径通过机架顶部交换机210-1-1 - 210-y-z (统称为TOR交换机210)中的适当 的一台、行尾交换机240-1 - 240-n (统称为EOR交换机240)中适当的一台、层2聚合交换机 250-1 - 250-n (统称为聚合交换机250)中适当的一台,以及适当的链路230-1 - 230-2(统 称为链路230)(为了清晰的目的,剩余的链路标签被省略),可通信地连接资源220与网络 200B。数据中心200A与网络200B之间的通信经由聚合交换机250之一、路由器260-1 - 260-3(统称为路由器260)中适当的之一,以及适当的链路230。需指出数据中心以任何适 当的配置构架,并且所述数据中心200A仅为一种用于说明目的的示例性架构。例如,所述 通信路径可包括在资源220和网络200B之间交换数据的任何适当的设备配置(例如,交换 机、路由器、集线器等等)。
[0047] TOR交换机210在位于相关机架中的资源与适当的EOR交换机之间交换数据。例 如,TOR交换机210-1-1经由适当的EOR交换机(例如,EOR交换机240-1)从机架205中的 资源交换数据至网络200B。
[0048] 资源220可为如此处描述的任何适当的设备。需指出虽然在每个机架(例如,机 架205)中示出了 5个资源,每个机架可包括更少或更多的资源,并且每个机架可包括不同 类型或数目的资源。
[0049] 如图所不,每个资源220使用行-列-资源号(row-column-resource number)命 名法来标识。例如,资源220-2-3-4是位于第二行第三列的机架中的第四个资源。
[0050] EOR交换机240在相关的TOR交换机与适当的聚合交换机之间交换数据。例如, EOR交换机240-1经由适当的聚合交换机(例如,聚合交换机250-1或250-2)从TOR交换 机210-1-1 - 210-1-x交换数据至网络200B。
[0051] 聚合交换机250在EOR交换机(例如,机架205)与适当的路由器之间交换数据。 例如,TOR交换机210-1-1经由适当的EOR交换机(例如,EOR交换机240-1)和适当的聚合 交换机(例如,聚合交换机250-1或250-2),从机架205中的资源交换数据至网络200B。
[0052] 路由器260经由适当的聚合交换机在网络200B与数据中心200A之间交换数据。 例如,路由器260-1经由聚合交换机250-1从网络200B交换数据至数据中心200A。
[0053] 在一些实施例中,TOR交换机220或EOR交换机240为以太网交换机。
[0054] 在一些实施例中,TOR交换机220或EOR交换机240可被安排为冗余的。例如,机 架205可由两个或多个TOR交换机210提供服务。
[0055] 在一些实施例中,聚合交换机250为层2以太网交换机。
[0056] 图3描绘的流程图示出了用于云管理器(如图1中的云管理器130)的方法300 的实施例,其用于在图1中的SPOF消除系统100中分布(分配或解除分配)组件实例。所 述方法包括:一经确定分配触发已经发生(步骤310),基于下述对是否应修改组件实例的 分布进行确定(步骤350) :(i)已确定的资源池和与所述资源池相关联的网络架构(步骤 320) ;(ii)已确定的应用资源需求(步骤330);和(iii)已确定的规则集合(步骤340)。 执行所述方法的装置随后基于所述对是否应修改组件实例的分布进行的确定的结果,根据 分配或解除分配组件实例(步骤360)和资源确定组件实例的分布。
[0057] 在所述方法300中,步骤310包括确定分配触发已经发生。基于所述触发的确定, 所述方法或者继续至步骤320、330及340或者返回(步骤395)。所述触发可为任何适当的 事件信号,表明组件实例的分布应被修改。例如,所述触发信号可为:(a)在阈值间隔时间 周期性地触发;(b)初始资源分配请求(例如,启动应用);(c)用于添加资源以增长应用能 力的请求;(d)用于减少资源来降低应用能力的请求;(e)当在XaaS操作期间迁移或重新 配置云资源时,例如当在虚拟化的磁盘安排中合并/平衡虚拟机负载或存储分配时;(f)在 为服务器或基础设施上的维护作业做准备时(例如,在使服务器离线以升级固件、硬件或 操作系统之前);(g)用于例行操作,例如在低使用期(例如,深夜)将应用合并到较小数目 的服务器上从而可关闭额外的能力以节省资金;(h)当激活/唤醒VM快照时;(i)当在故障 后重启/恢复/重新分配虚拟资源时(例如,虚拟机的存储器)(例如,创建新的组件实例 来替换由于故障而死掉的组件实例);(j)或类似的情况。需指出在同一时间可发生多个触 发事件。
[0058] 在方法300中,步骤320包括确定所述资源池和与所述资源池相关的网络架构。特 别地,确定资源池(例如,图2中的资源200)和与所述池的相关网络架构(例如,图2中的 TOR交换机210、链路230、EOR交换机240、聚合交换机250和路由器260)。
[0059] 在方法300中,步骤330包括确定应用的资源需求。特别地,执行所述方法的装置 确定(i)用于应用的当前的资源分配;和(ii)所述应用的当前应用资源需求。在一些实施 例中,对资源的当前配置的确定可基于组件实例的当前分布。
[0060] 在方法300中,步骤340包含确定规则。特别地,抗亲和规则为所述组件实例的分 布提供约束需求以满足"no SP0F"。
[0061] 有利地,通过施加抗亲和规则至组件实例,执行所述方法的装置可施加"无SP0F" 需求至多种资源(例如,永久性存储设备),即使是当两个应用实例被安装在独立的硬件平 台上时。
[0062] 在所述方法300中,步骤350包括确定是否应修改组件实例的分布,并且如果为 是,确定组件实例的"no SP0F"兼容分布是否是可能的。特别地,所述确定基于:(i)在步 骤320中确定的所述资源池和该池的相关网络架构,(ii)在步骤330中确定的所述应用资 源需求,(iii)以及在步骤340中确定的规则。
[0063] 需指出,执行所述方法的装置可分析一个或多个资源上的分配或解除分配的组件 实例的多个分布,并且那些资源可位于本地或远程的任意数目的数据中心之中。
[0064] 在方法300中,步骤360包括确定在所述资源池中的资源之中的组件实例的分布。 所述分布可包括,例如,确定新建组件实例的布置或重新安排现存的组件实例。特别地,执 行所述方法的装置分配或解除分配资源池中的资源上的组件实例,基于:(i)已确定的资 源池和相关的网络架构;(ii)已确定的应用资源需求;和(iii)已确定的规则集。
[0065] 在步骤320中的一些实施例中,所述网络架构在机器可解析语法中被表示。有利 地,当所述网络架构以机器可解析语法存储时,对网路架构的修改可动态地完成,允许网络 架构动态增长和缩减。在这些实施例中的一些中,所述机器可解析语法为一张图表或逻辑 关系。
[0066] 在一些实施例中,步骤320进一步包括确定网络状况。特别地,可确定网络成分例 如链路、访问节点、边界节点、网络设备等等的状况或状态。例如,执行所述方法的装置可确 定图2中链路230的操作状态和拥塞程度。
[0067] 在步骤330的一些实施例中,当前应用资源请求基于应用请求。
[0068] 在步骤330的一些实施例中,当前应用资源需求基于使用的测量。在这些实施例 的一些中,执行所述方法的装置通过所述应用监控资源的使用。对于这样的实施例,如过被 监控的资源参数(例如,处理、带宽、存储或储存参数)的增长或缩减超出了阈值,可发生触 发事件,并且基于监控到的资源使用确定新的应用资源请求。例如,如果应用当前已被分配 了 IOG字节的存储,并且监控到的使用情况增长超过10%空闲容量阈值,那么所述装置可 基于预先确定的分配准则(例如,当超出使用阈值时,增加IG字节数量的存储)确定当前 存储应用资源需求为IlG字节。
[0069] 在步骤340的一些实施例中,以实例限制来表示抗亲和规则(例如,为"no SP0F" 的需求指定可用组件实例的最小数目)。在这些实施例中的一些中,实例限制可表示为 n+k,其中,"n"是为满足"no SP0F"需求所需要的可用组件实例的数目,并且"k"是为满足 "no SP0F"需求所必须容忍的故障点的数目。例如,假设类型为"A"的组件实例是为网络服 务器的前端处理服务的虚拟机,并且每个类型为"A"的组件实例每分钟处理30个请求。如 果所述应用每分钟需处理300个请求,那么应用可需要n = 10个可用的类型为"A"的组件 实例。此外,如果应用必须容忍k = 2的故障,那么在两个n = 10的组件实例受故障影响 的情况下,执行所述方法的所述装置需要分布至少两个冗余的类型为"A"的组件实例来服 务前端处理请求。为了简单的目的,假设没有类型"A"的组件实例受到同样故障的影响。
[0070] 在步骤340的一些实施例中,以资源限制(例如,存储的最小阈值、带宽、内存访问 延时或处理周期)和为满足"no SP0F"需求所需要的可容忍故障的数目表示抗亲和规则。 例如,假设类型为"A"的组件实例是为网络服务器的前端处理服务的虚拟机,并且所述应用 需要每分钟处理300个请求。此外,假设所述应用需要k = 2的故障容忍。需指出,所述应 用可不指定容忍故障的数目,并可使用默认的容忍(例如k= 1)。在此例中,类型为"A" 的组件实例的任何适当的配置都可被使用,其中在两个故障之后有足够的类型为"A"的可 用组件实例来服务至少300个前端处理请求。在第一示例中,可有10个类型为"A"的能够 每分钟处理30个请求的组件实例和4个类型为"A"的能够每分钟处理15个请求的组件实 例。在这样的第一示例中,两个类型为"A"的每分钟服务30个请求的组件实例的故障,仍 能留下可用的类型为"A"的能够每分钟服务300个请求(即,8*30+4*15 = 300)的组件实 例。为了简单的目的,假设没有类型为"A"的组件实例受到同一故障的影响。
[0071] 在步骤340的一些实施例中,应用可定制抗亲和规则以实现"noSPOF"。
[0072] 在步骤340的一些实施例中,所述抗亲和规则以机器可解析语法表示。例如,可定 义用于指定虚拟机的抗亲和规则(例如,处理+存储)和虚拟化存储的语法。
[0073] 在步骤350的一些实施例中,基于故障点集和与其相关的受影响的组件实例确 定是否组件实例可被分配或解除分配。故障点为任意适当的虚拟化的服务器、资源、网络 元素、制冷或能源组件等等。例如,参照图2, TOR交换机210-1-1的故障将影响分配在资 源220-1-1-1 - 220-1-1-5中任意一个上的全部组件实例,以及被分配在例如虚拟化的服 务器(为了清晰而没有显示出)上的任意组件实例,所述虚拟化的服务器具有分配在资源 220-1-1-1 - 220-1-1-5中任意一个上的组件实例。
[0074] 在步骤350的一些实施例中,故障点可为冗余组件。例如,参照图2,如果聚合交换 机250-1发生故障,聚合交换机250-2可接管(take over)。然而,如果冗余组件(例如,聚 合交换机250-2)没有足够的能力来接管足够的负载来满足所述抗亲和规则,则可能发生 "no SPOF"的违反。
[0075] 在一些实施例中,步骤350包括在初始化分配、动态分配或解除分配、迁移、恢复, 或其他业务管理行为时强制执行至少部分已确定的规则(步骤340)。
[0076] 在步骤350的一些实施例中,当执行所述方法的装置不能够在不违反应用的抗亲 和规则的情况下分配组件实例时(例如由于应用试图水平增长(horizontally grow),超 出了特定数据中心的"no SP0F"能力),则步骤350返回一个适当的错误,表明请求的水平 增长被禁止,因此所述应用必须向外增长(out-grow)。需指出,不同的发展场景可能有不同 的"noSPOF"限制。例如,数据中心可能能够在永久存储能力方面增长并且不违反"no SP0F" 限制,但不能够增长服务能力(即,分配新的虚拟机实例)而不违反限制。
[0077] 在步骤350或360的一些实施例中,一个或多个相同类型的组件实例具有不同的 资源参数,例如不同的存储、带宽、访问延时或处理周期参数。例如,虚拟化存储类型的两个 不同组件实例可指定不同的存储大小或访问延时。
[0078] 在步骤360的一些实施例中,对组件实例分布的确定基于至少部分组件实例的至 少一个资源参数。
[0079] 在步骤350或360的一些实施例中,对在步骤350中是否需要修改组件分布进行 的确定或在步骤360中对组件实例的分布进行的确定可进一步基于在步骤320中确定的网 络状况。例如,执行所述方法的装置可在步骤320中确定图2中的链路230的操作状态或 拥塞程度。
[0080] 在该网络状况实施例的第一示例中,执行所述方法的装置可确定图2中链路 230-1的拥塞程度可能不允许足够的能力来为位于资源220-1-1-1 - 220-1-1-5上的 组件实例服务。在该实例中,步骤350或360中的所述确定的实施例可基于位于资源 220-1-1-1 - 220-1-1-5上的一个或多个组件实例的降低的资源能力,所述一个或多个组件 实例的降低的能力基于所述链路230-1中的拥塞。
[0081] 在该网络状况实施例的第二示例中,执行所述方法的装置可确定图2中的链路 230-2是失效的。在该第二示例中,步骤350或360中的所述确定可基于不再由冗余的聚合 交换机250-2服务的EOR交换机240-1。同样的,如果已确定聚合交换机250-1不能提供 足够的能力来为所述组件实例服务,那么所述确定可基于位于资源220-1-1-1 - 220-1-X-5 上的一个或多个组件实例的降低的资源能力。此外,因为聚合交换机250-2的可用性已被 排除,所述确定可基于聚合交换机250-1为位于资源220-1-1-1 - 220-1-X-5上的组件实例 的单点故障。
[0082] 在步骤360的一些实施例中,一个或多个当前组件实例可被删除、修改或重新安 排至不同的资源(例如,为避免"no SP0F"条件)。在一些这样的实施例中,基于对没有足够 的能力可用来为所述一个或多个组件实例进行服务的确定(例如,如上所述在链路230-1 上的拥塞)来而降低(例如,修改)一个或多个组件实例的资源能力。
[0083] 在步骤360的一些实施例中,执行所述方法的装置创建两个或多个组件实例来满 足应用资源需求。例如,分配3G字节存储的需求可由一个提供3G字节存储的组件实例或 者一个提供2G字节存储的组件实例和一个提供IG字节存储的组件实例来满足。在一些这 样的实施例中,对多于一个组件实例的分配基于抗亲和规则。在一些这样的实施例中,对多 于一个组件实例的分配基于系统中资源的能力或可用性。
[0084] 在步骤360的一些实施例中,所述组件实例可分布在新实例化的虚拟化服务器 上,不违反在步骤340中确定的一个或多个规则。
[0085] 在步骤360的一些实施例中,组件实例的解除分配可能需要重新安排一个或多个 当前组件实例。例如,当由降低的应用资源需求(例如,基于应用资源减低需求)导致的组 件实例被删除时,一个或多个剩余的组件实例可在不同的资源上分裂以满足"no SP0F"需 求。
[0086] 在方法300的一些实施例中,步骤320、330或340可同时被确定或步骤320、330 或340中的一些可连续地被确定。例如,在步骤330中对空闲能力的确定可与在步骤320 中对已分配资源的确定同时进行确定,并且步骤360的分布确定可与步骤350的分配或解 除分配确定同时地执行。
[0087] 图4描绘了的流程图示出了用于云管理器(例如,图1中云管理器130)确定如图 3的步骤340中所示出的规则的方法400的实施例。所述方法包含确定抗亲和规则(步骤 420)、确定组件分配规则(步骤440)、确定业务规则(步骤460)、确定操作策略(步骤480) 和确定规范性规则(步骤490)。
[0088] 在方法400中,步骤420包括确定抗亲和规则。特别地,如上所述,抗亲和规则描 述了为满足"no SP0F"需求,应用所需的可用的资源的最小数量。
[0089] 方法400可选地包括步骤440。步骤440包括确定组件分配规则。特别地,组件分 配规则描述了组件实例的资源参数。例如,组件实例所需的类型(例如,处理内核、虚拟机 或虚拟化的存储)或设备能力(例如,访问延时、处理周期或存储需求)。
[0090] 方法400可选地包括步骤460。步骤460包括确定业务规则,所述规则可影响系统 中的组件实例的分布。特别地,业务规则描述了 "no SP0F"系统的资源约束。在一些这样 的实施例中,业务规则可包括:(1)识别在当前或未来维护作业中使用的资源;(2)预留将 来使用的资源;(3)为一个或多个被识别的客户预留资源;和(4)类似的规则。
[0091] 方法400可选地包括步骤480。步骤480包括确定操作策略规则,所述规则影响组 件实例的分布。特别地,操作策略规则描述了应用特定的分布需求。在一些这样的实施例 中,操作策略规则可包含:(1)组件实例分配的限制(例如,特定类型的组件实例不能被分 配到不同的数据中心);(2)操作需求(例如,指定不同类型的组件实例之间的最大访问延 时);(3)软件许可(或其他业务/资金)限制;或(4)类似的规则。
[0092] 所述方法400可选地包括步骤490。步骤490包含确定规范化规则,所述规则影响 组件实例的分布。特别地,规范化规则描述了"no SP0F"系统的规范性资源约束。在一些这 样的实施例中,规范性规则可包括组件实例的地理位置上的限制。例如,隐私法律可限制在 地理边界外的个人信息的存储或者出口控制法规可限制在地理界线外的技术数据的存储。
[0093] 在方法400的一些实施例中,步骤420、440、460、480或490可同时被确定或执行。
[0094] 虽然主要以特别的序列中进行的描绘和描述,需指出在方法300和400中展示的 步骤可以任何适当的序列执行。此外,以一个步骤来标识的步骤也可以以一个或多个其他 的步骤顺序执行,或者多于一步的通用动作可仅执行一次。
[0095] 需指出上述方法的多个步骤可由被编程的计算机执行。在此,一些实施例还旨在 覆盖程序存储设备如数字数据存储介质,其为可被机器或计算机读取并且编码机器可执行 或计算机可执行指令的程序,其中所述指令执行所述上述方法的一些或全部步骤。所述程 序存储设备可为如数字存储器、磁存储媒介如磁盘和磁带、硬盘驱动器、或光可读数字数据 存储媒介。实施例还旨在覆盖被编程以执行上述方法的所述步骤的计算机。
[0096] 参见图3和5A-5D,提供了由图1中的云管理器130管理的图1中的SPOF消除系 统中的应用组件实例的分布的实例。
[0097] 图5A示出了示例性两层应用的可靠性框图,所述应用需要类型为"A"和类型为 "B"的组件实例。组件实例A1-A2为组件类型'A' 500A-10,以及组件实例B1-B4为组件类 型'B' 500A-20 (统称为组件实例500A)。特别地,经由组件实例500A提供应用处理输入流 510A与应用处理输出流520A之间的处理路径。为了满足"no SP0F"需求,处理路径需要基 于在图3的步骤340中确定并在步骤350或360中应用的规则将组件实例500A分布在资 源上。例如,如果抗亲和规则需要在单个故障之后至少有一个类型为A的组件实例可用,则 组件实例A1和A2不能被同一个故障点影响。
[0098] 就在图5B-5D中示出的例子而言,类型为"A"的组件实例为前端处理(front end processes)(例如,虚拟机),能够每分钟服务100个请求,并且类型为"B"的组件实例(例 如,虚拟机)为后端处理,能够每分钟服务30个请求。
[0099] 参考图5B,示出了虚拟化服务器S1-S5上组件实例A1 - A2和B1 - B3的初始化分配 (如步骤320中当前分配的确定)。
[0100] 在该示例中,使用户业务充分可用的已确定的规则(步骤340) (S卩,具有足够的能 力来以可接受的服务质量服务为负载提供服务)为:
[0101] (1)系统需要可用的前端处理来在每分钟处理60个请求;
[0102] (2)系统需要可用的后端处理来在每分钟处理60个请求;并且
[0103] (3)对于单故障点,系统应满足"no SP0F"。
[0104] 需指出,图5B中的组件实例的初始化分布满足已确定的规则。
[0105] 图5C和图示出了响应于应用增长的请求,图5A的组件实例500A的两个示例 性分布中组件实例B4的分配。在这些示例中,使用户服务充分可用的更新后的已确定规则 (例如,图3中的步骤340)所基于的应用增长的请求为:
[0106] (1)系统需要可用的前端处理来在每分钟处理90个请求;
[0107] (2)系统需要可用的后端处理来在每分钟处理90个请求;并且
[0108] (3)对于单故障点,系统应满足"no SP0F"。
[0109] 需指出,图5B中的组件实例的初始化分布不满足更新后的已确定规则,并且因此 组件实例的当前分布不满足"no SP0F"需求。例如,如果虚拟化的服务器S1-S3中的任何一 个出现故障,类型为"B"的可用的组件实例则仅具有每分钟服务60个请求的能力,并且因 此所述需求:"(2)系统需要可用的后端处理来在每分钟处理90个请求"不被满足。
[0110] 参阅图5C的分布示例,虚拟化的服务器S1-S5上的组件实例500A的分布满足更 新后的已确定规则,并因此该分布满足"no SP0F"需求。例如,如图所示,如果虚拟化的服 务器S1-S5中的任意一台出现故障,可用的类型为"A"的组件实例具有每分钟服务至少90 个请求的能力(例如,或者说服务器每分钟可服务100个请求)并且可用的类型为"B"的组 件实例具有每分钟服务至少90个请求的能力(例如,在故障之后至少三个组件实例可用, 每分钟可服务90个请求)。因此,所述方法可确定组件实例B4的分配可实现(步骤350), 并分配组件实例B4至虚拟化服务器S4 (步骤360)。
[0111] 相反,参阅图中的分布示例,虚拟化服务器S1-S5上的组件实例500A的分布不 满足更新后的已确定规则,因此该分布不满足"no SP0F"需求。如图所述,如果B2和B3的 主机均为(hosted on)虚拟服务器S3,那么虚拟化服务器S3的故障将违反需求:"(2)系统 需要可用的后端处理来在每分钟处理90个请求",该需求将不被满足。
[0112] 需指出,执行方法300的装置可选择不违反系统"no SP0F"需求的另一分布(例 如,图5C的分布)或者执行所述方法的装置可确定使用任何分布(步骤450)对组件实例 (例如,组件实例B4)进行分配均无法达到(achieved)并返回(步骤495)。
[0113] 进一步参阅所述示例,执行方法300的装置可确定该网络的架构(步骤320)。 例如,参阅图2,图5B-5D的虚拟化服务器S1-S4可分别位于资源220-1-1-1、220-2-1-1、 220-y-l-l和220-y-2-l上。在图2的网络架构中,资源220-y-l-l和220-y-2-l共享共 同的EOR交换机(例如交换机240-y),因此,EOR交换机240-y的故障会影响位于虚拟服务 器S3和S4上的组件实例,因此,如果组件实例B4被放置于虚拟化服务器S4上,EOR交换机 240-y将会是违反了更新后的已确定规则的单点故障。事实上,将组件实例B4分布在资源 SI - S4中任何一个之上均违反抗亲和规则,从而违反"noSPOF"需求。在一些实施例中,执 行方法300的装置可在不违反抗亲和规则的资源上(例如,资源220-3-1-1)创建新的虚拟 化服务器(例如,S5),并且分布组件实例B4至该新创建的虚拟化服务器。需指出,与网络 设备的故障相似,比如EOR交换机240-y、链路故障(例如,图2的链路230)可影响一个或 多个资源(例如,链路230的故障影响资源220-1-1-1 - 220-1-1-5)。
[0114] 在一些实施例中,如果故障点为冗余组件,例如聚合交换机250-1,要求冗余组件 (例如聚合交换机250-2)的能力足够满足更新后的已确定规则。在一些这样的实施例中, 图3中步骤350或360中的确定基于此处描述的网络带宽的充分性。
[0115] 回顾图3,在一些实施例中,步骤350或360包含使用传统的经典优化技术来确定 是否以及可分布组件实例至何处。传统的经典优化技术涉及确定最优的达到期望的目标或 目的行为。最优的达到期望的目标或目的的行为可通过最大化或最小化目的函数的值来确 定。在一些实施例中,所述目的函数的目标或指标(metric)可为最小化代价或最小化应用 访问时间。
[0116] 问题可以表述为:
[0117] 优化:
[0118] [E. l]y = f (x1; X2, --?, xn)
[0119] 限制条件:
【权利要求】
1. 一种用于提供单点故障消除的装置,所述装置包括: 数据存储器;和 通信地连接至所述数据存储器的处理器,所述处理器被配置用于: 确定一个或多个应用资源请求; 确定资源池和与所述资源池相关联的网络架构; 确定一个或多个规则;并且 基于所述一个或多个应用资源请求、所述资源池、所述网络架构和所述一个或多个规 贝1J,确定一个或多个组件实例的分布。
2. 如权利要求1所述的装置,其中所述网络架构包括链路和网络节点;并且 其中,所述处理器被进一步配置以便: 确定一个或多个所述链路和节点的网络状况; 其中所述一个或多个组件实例的分布的确定进一步基于所述网络状况。
3. 如权利要求1所述的装置,其中所述一个或多个应用资源请求包括一个或多个资源 的当前分配,所述一个或多个资源为所述资源池的成员;以及一个或多个当前应用资源请 求,所述一个或多个当前资源请求与应用相关联。
4. 如权利要求1所述的装置,其中所述一个或多个规则包括一个或多个抗亲和规则。
5. 如权利要求4所述的装置,其中所述一个或多个规则进一步包括一个或多个业务规 贝U ;并且 其中所述一个或多个业务规则包括用于维护作业的资源池中的部分资源的预留。
6. 如权利要求1所述的装置,其中对一个或多个组件实例的分布的确定进一步基于故 障点集。
7. -种用于提供单点故障消除的方法,所述方法包括: 在与数据存储器通信地连接的处理器,确定分布触发已经发生; 由与所述数据存储器协作的所述处理器确定一个或多个应用资源请求; 由与所述数据存储器协作的所述处理器确定资源池和与所述资源池相关联的网络架 构; 由与所述数据存储器协作的所述处理器确定一个或多个规则;并且 由与所述数据存储器协作的所述处理器,基于所述分布触发、所述一个或多个应用请 求、所述资源池、所述网络架构和所述一个或多个规则,确定一个或多个组件实例的分布。
8. 如权利要求7所述的方法,其中所述分布触发基于从所述资源池中一个或多个资源 迁移至少部分所述组件实例。
9. 如权利要求7所述的方法,其中所述方法进一步包括: 由与所述数据存储器协作的所述处理器确定一个或多个链路或网络节点的网络状 况; 其中所述网络架构包括所述一个或多个链路或网络节点;并且 其中确定所示一个或多个组件实例的分布的步骤进一步基于所述网络状况。
10. 如权利要求7所述的方法,其中所述网络架构包括第一网络设备;并且其中确定一 个或多个组件实例的分布的步骤包括: 基于对所述第一网络设备的故障将违反所述一个或多个抗亲和规则中的至少一个的 确定,确定所述一个或多个组件实例的第一组件实例可与所述资源池中的第一资源无关。
【文档编号】G06F11/14GK104335182SQ201380029309
【公开日】2015年2月4日 申请日期:2013年5月15日 优先权日:2012年6月4日
【发明者】E·J·鲍尔, R·S·亚当斯, M·克劳格赫蒂 申请人:阿尔卡特朗讯公司