用于容量管理和灾难恢复的跨云计算的制作方法
【专利摘要】本文描述了云迁移系统,该系统通过检测峰值负载条件并且自动地将计算移至另一计算资源(并移回)以及通过跨两个或更多个云提供计算并且在一个站点处发生灾难的情况下完全移至一个计算资源来提供容量管理和灾难恢复。该系统监视数据中心内的负载,并且检测指示当前负载正接近该数据中心的容量的阈值。在检测到将达到该阈值后,该系统促进至少某一数据中心负载至另一数据中心或基于云的资源的有序移动。该系统还可作为数据中心/网络级的灾难恢复体系结构来使用而在灾难情况下管理快速的工作负载转移。由此,该系统允许企业构建针对不常发生的额外负载利用其他资源的、更小且更高效的数据中心。
【专利说明】用于容量管理和灾难恢复的跨云计算
【背景技术】
[0001 ] 数据中心提供用于运行大型应用的服务器。企业通常使用数据中心来运行核心业务功能,诸如销售、营销、人力资源、记账、产品目录等。数据中心还可以运行诸如网站、web服务、电子邮件托管、数据库等面向顾客的应用,以及许多其他应用。数据中心通常是通过确定预期峰值负载并提供服务器、网络基础结构、冷却和其他资源以处理峰值负载水平来构建的。数据中心非常昂贵且在非峰值时间未被充分利用是公知的。就用于监视和执行对数据中心的维护的装备和员工两者而言,数据中心还还涉及相对高的管理花费。由于几乎每一公司都使用某种数据中心,因此存在由各组织跨世界所执行的许多冗余功能。
[0002]作为传统数据中心的一种优化,出现了云计算。云被定义成通过网络可获得的、可针对企业的至少一些传统数据中心功能提供服务的资源集(例如,处理、存储或其他资源)。云通常涉及抽象层,使得云的应用和用户可能不知道在其上运行应用的具体硬件、该硬件位于何处等。这允许云操作者在使资源旋转入服务和旋转出服务、维护等方面有一些额外的自由。云可以包括公共云(诸如MICROSOFT TM Azure>Amazon Web Services及其他),以及私有云(诸如由Eucalyptus Systems'MICROSOFT TM所提供的那些云及其他)。各公司已开始供应企业可放置在其自己的数据中心中的设备(例如,MICROSOFT TM Azure设备)以连接具有变化的云功能水平的数据中心。
[0003]即使当基于云的资源被利用时,具有数据中心的企业在增建大型数据中心时也招致巨大的成本。企业通常仍然计划了 “最差情况”的峰值情形并由此包括许多硬件,其中至少一些硬件在额外处理容量、额外存储空间等方面很少被使用或未被充分利用。该额外资源量为很少的回报招致高成本。使用场所内基于云的计算的顾客期望能够针对峰值容量时间、针对灾难恢复情形,或仅针对容量管理而使用另一兼容云(例如,其自身在另一位置的第二实例、微软的公共云等)中的容量。与为最差情况的情形而增建然后为冗余性而翻倍相t匕,这样做便宜得多。
[0004]概述
[0005]本文描述了云迁移系统,该系统通过检测峰值负载条件并且自动地将计算移至另一计算资源(并移回)以及通过跨两个或更多云提供计算并且在一个站点处发生灾难的情况下完全移至一个计算资源来提供容量管理和灾难恢复。这允许企业对于持续的负载水平计划本地资源,并且针对峰值或其他不寻常的负载利用基于云的资源。云迁移系统监视数据中心内的负载,并且检测指示当前负载正接近该数据中心的容量的阈值。在检测到将达到该阈值后,云迁移系统促进至少某一数据中心负载至另一数据中心或基于云的资源的有序移动。该系统还可作为数据中心/网络级的灾难恢复体系结构来使用而在灾难情况下管理快速的工作负载转移。如果数据中心资源持久地出故障,则系统可以迅速且高效地将附加负载迁移至云或其他资源。由此,云迁移系统允许企业构建针对不常发生的额外负载利用其他资源的、更小且更高效的数据中心。
[0006]提供本概述以便以简化形式介绍将在以下详细描述中进一步描述的一些概念。本概述并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。
【专利附图】
【附图说明】
[0007]图1是示出在一个实施例中的云迁移系统的各组件的框图。
[0008]图2是示出在一个实施例中的云迁移系统接收规划信息供未来负载迁移的处理的流程图。
[0009]图3是示出在一个实施例中的云迁移系统将应用负载从数据中心迁移至目标位置的处理的流程图。
[0010]图4是示出在一个实施例中的云迁移系统在负载减少之后将应用负载迁回其原始位置的处理的流程图。
[0011]详细描述
[0012]本文描述了云迁移系统,该系统通过检测峰值负载条件并且自动地将计算移至另一计算资源(并移回)以及通过跨两个或更多云提供计算并且在一个站点处发生灾难的情况下完全移至一个计算资源来提供容量管理和灾难恢复。这允许企业对于持续的负载水平计划本地资源,并且针对峰值或其他不寻常的负载利用基于云的资源。在许多情况下,企业的业务是这样的:一年的特定时间比其他时间更忙碌,并且仅在那些时间需要额外资源。例如,税务规划企业在四月中旬特别忙碌,电子商务站点在感恩节和圣诞节前后经历假日高峰。云迁移系统监视数据中心内的负载,并且检测指示当前负载正接近该数据中心的容量的阈值。例如,系统可以监视中央处理单元(CPU)使用、存储器使用、存储使用、网络带宽以及其他度量,以确定数据中心对当前负载处理得有多好。系统还可以观察趋势(例如,资源使用的加速度速率)以确定是否已经达到或即将达到该阈值。
[0013]在检测到将达到该阈值后,云迁移系统促进至少某一数据中心负载至另一数据中心或基于云的资源的有序移动。例如,系统可以将某一峰值负载迁移至公共云。由于云定价模型可能变化,因此系统可以在决策中考虑成本因素。例如,系统可以偏好在企业数据中心处托管尽可能多的负载以降低成本,而仅将云资源利用到满足客户机请求所需的程度。系统还可以提供管理和监视工具,这些管理和监视工具为信息技术(IT)员工提供一致的体验,而不管特定负载在哪里运行(例如,在企业内本地地运行或使用云公开地运行)。系统还可以提供规划工具以帮助决定供在高负载期间移至其他资源的适当工作负载或应用。例如,应用可以具有使其较适于或较不适于迁移的各种顺应性/规章的或联网/设计的限制。系统还可作为数据中心/网络级的灾难恢复体系结构来使用而在灾难情况下管理快速的工作负载转移。如果数据中心资源持久地出故障,则系统可以迅速且高效地将附加负载迁移至云或其他资源,以使数据中心的客户机不受或少受该故障的影响。由此,云迁移系统允许企业构建针对不常发生的额外负载利用其他资源的、更小且更高效的数据中心。
[0014]如上所述,云迁移系统可以在临时(即,猝发)或持久(即,灾难恢复)的基础上在数据中心与云之间移动资源。临时移动包括在较短的一段时间内猝发应用或其他负载,以处理超出数据中心容量的峰值或其他高负载。临时移动可以包括猝发整个应用、或跨两个或更多位置拆分应用的负载。持久移动包括因数据中心中的硬件故障而导致的长期迁移、对容量需求的更持续的增长、使用动态负载平衡全局地分发应用等。以下是其中系统可被企业使用的若干示例情形。[0015]在第一示例中,企业将应用负载猝发至公共云以管理容量。业务决策者(即,CEO、CFO、或营销/销售副总)和数据中心系统管理员决定以下方式更为成本高效且会提供更令人满意的顾客体验:在其每年使用水平/通信量的前三个峰值天将一些工作猝发至公共云,并且将其自己的数据中心(可能具有云设备)维持在其每月峰值使用水平。他们与云提供者签署关于将工作猝发至云以及何时及会有多少工作的项目估计的业务协议。他们的帐户被建立并且信息被输入至云设备。在规划阶段期间,管理员使用来自云提供者的测试应用来运行测试,该测试应用确保连接正确地工作。管理员然后在容量管理工具中设置将容量保持在指定水平的各容量值(例如,阈值),以启动对各应用的猝发。管理员进入该工具以进一步指定在这一情况下那些有资格移动的应用(例如,临时移动没有规章问题,良好的技术配合)。
[0016]某一天,使用超出限制并且系统自动地将各应用移至公共云。监视/使用系统中抛出以下警告:容量何时在所启动的5%的猝发内,系统何时猝发,系统猝发了什么,以及系统何时拿回应用。保留所移动的全部计算资源和/或存储的显式日志,并且警告管理员进入其公共云帐户进行记账。在企业数据中心组和管理中的定期容量规划会议上审阅对被标记为可移动的猝发参数和应用的审阅。
[0017]在第二示例中,企业跨云拆分各应用以管理容量。除了应用的类型更复杂以外,这一情形类似于上述情形,因此这一情形被拆分出以进行不同的优先级区分。公司决定与云提供者建立关系以将各应用拆分至云(猝发的形式)。在这一情况下,大型应用被预标识成猝发候选。当容量达到阈值时,100个工作者实例中的50个被自动地移至公共云。该应用现在跨两个实例被拆分,而全部监视和记账数据被发送至起始实例以使其能被集中管理。企业自己的数据中心中的云设备具有用于帮助调试拆分应用的可能问题(例如,联网问题、网络带宽/等待时间问题、结构通信等)的故障诊断工具。当容量状况在设备上减退下来时,50个工作者实例被移回设备并且再次作为正常运作的应用。
[0018]在另一示例中,云提供者决定从一个群集猝发至另一群集。公共云容量规划团队决定芝加哥数据中心中的群集临界充满,但想要维持高利用率。他们设置当利用率到达90%时,猝发至西海岸数据中心中未被充分利用的群集。管理员进入容量管理工具,并且将适当的顾客/应用(例如,具有低的数据使用)选作移动候选。某一天,芝加哥群集的使用达到阈值,并且系统自动地将所选择的应用(例如,群集的应用中的10%)移至西海岸数据中心一天。随着使用返回该阈值以下,系统将应用移回芝加哥。系统抢先向指定监视团队通知该猝发,以使得能够回答顾客的问题。
[0019]在另一示例中,系统被用于跨云的公文包管理。企业决定在其云设备上高效地管理容量,他们想要将全部需求可变的应用放在公共云中而将其需求恒定的应用放在该设备或本地数据中心资源中(并且由此能够以更高利用率运行该设备)。尽管他们想要拆分其计算资源,但他们仍然想要跨其全部应用的健康的全局视图,使其应用开发者以相同方式管理各应用,并且跨这两者维持部门级记账的单个视图(例如,向顾客销售组、内部IT、B2B销售等分配什么成本)。企业能够针对公共云设置聚集帐户(其中相同组作为设备),并且取得记账数据以在他们一侧进行集成。类似地,他们能够取得访问在其上运行其应用的平台的公共云监视数据的应用编程接口(API)以及应用级监视,使得其网络操作中心(NOC)对企业的计算活动状态具有完整且一致的视图。[0020]在另一示例中,企业使用动态负载平衡来设置全局分布的应用。企业顾客想要跨两个或更多云实例管理容量,并且使他们的大量负载处于独立的但地理上分布的各实例中(例如,用美国和英国数据中心的都服务德国查询的Bing (必应)搜索)。在正常环境下,全局通信量管理器向每一位置发送50%的通信量。当负载在主要位置处变高时,系统指示负载平衡器向英国系统发送75%的通信量,由此从美国云实例中释放容量,从而将其带到可接受级。当容量返回正常时,系统告诉负载平衡器返回50/50的拆分。对此的变体是公共云被用作辅助数据中心(比如说,顾客站点的负载为1%而设备为其余99%)。在灾难或因其他原因移动来自顾客站点的负载的情况下,100%的通信量被转移至公共云。
[0021]在另一示例中,企业已达到其数据中心的容量并且需要额外计算资源,但尚不具有可用资产用于花费在扩展该数据中心。在该情况下,公司可以使用公共云供溢出,直到他们能够完成硬件购买。
[0022]图1是示出在一个实施例中的云迁移系统的各组件的框图。系统100包括规划组件110、管理界面组件120、移动数据存储130、负载监视组件140、移动逻辑组件150、负载迁移组件160、灾难恢复组件170、以及通知组件180。这些组件中的每个都在此予以更详细讨论。
[0023]规划组件110提供工具,管理员通过该工具定义用于将应用负载迁移至基于云的计算资源的一个或多个条件。组件110可以包括容量管理工具,管理员可以通过该容量管理工具指定发生迁移处的阈值负载、发生迁移的位置或资源、如何跨可用资源划分各应用等。例如,管理员可以指定当应用的负载达到95%的本地数据中心容量时发生至公共云的迁移。该工具还可以包括用于模拟和/或测试示例服务器负载的设施,以使管理员可以测试当达到容量时将发生什么。
[0024]管理界面组件120向系统100提供管理界面,管理员可以通过该管理界面访问各工具和配置设置(诸如那些由规划组件110提供的)。管理界面可以包括一个或多个网页、web服务、应用编程接口、或管理员通过其可以直接地或通过程序来访问系统100的管理配置的其他接口。
[0025]移动数据存储130对描述接收到的用于将应用负载迁移至基于云的计算资源的条件的信息进行存储。数据存储130可以包括一个或多个文件、文件系统、硬盘驱动器、数据库、基于云的存储服务、或用于持久存储与系统100的各会话之间的信息的其他设施。所存储的信息可以包括阈值应用负载水平、要迁移哪些应用、将被移动的负载迁移至何处、与负载可被移动到何处有关的成本信息、以及与容量规划以及在各种条件下作出负载迁移决定有关的任何其他信息。
[0026]负载监视组件140监视数据中心中的性能,并且当负载接近迁移至另一资源的指定条件时告知其他组件。负载监视组件可以通过管理界面组件120提供允许管理员或其他IT员工实时监视应用和数据中心行为的报告和状态信息。系统可以提供一个或多个性能图、阈值警告、或其他通知,以便当应用负载超出或接近指定阈值时告知员工。阈值可以由管理员按照处理负载、存储负载、存储器负载、或特定应用在峰值时间期间可能超出的数据中心的其他有限资源来定义。
[0027]移动逻辑组件150执行接收到的用于迁移应用负载的条件。移动逻辑组件150从负载监视组件140接收指定当前系统100的负载的通知,并且使用该信息来确定何时将发生迁移。移动逻辑组件150遵循由管理员指定的条件,这些条件可以指定负载中有多少要移至另一资源、要迁移至哪种类型/哪个位置的资源、在什么条件下迁回负载等。移动逻辑组件150监视该迁移,并且可以执行对所设置的联网连接的测试,该联网连接供数据中心与基于云的资源之间进行通信。组件150还监视该负载以确定何时因负载减退而不再需要基于云的资源。在许多情况下,基于云的资源是在按使用付费的基础上提供的,使得一旦数据中心能够再次处理该负载就停止使用基于云的资源以便降低成本是合乎需要的。
[0028]负载迁移组件160执行应用负载从一个资源至另一资源的移动。这可包括设置两个资源之间的联网连接、复制所存储的供运行该应用所需的数据、在每一资源位置处当数据被修改时复制该数据等。为了在多个位置处运行应用,可存在被该应用读取、写入、或既读取也写入的共享数据。在数据被读取的情况下,组件160将该数据复制到双方位置可能是足够的。在数据被读取和写入的情况下,系统可以在正在进行的基础上在各位置之间复制数据。在许多情况下,系统对数据的使用将把哪些应用适于迁移的决定告知规划阶段。在一些情况下,应用的处理负载可适于迁移,但因难以使数据位于两个地方,全部实例可访问同一数据存储位置。这些决定随应用而变化,并且这些决定是管理员通过规划组件110所提供的信息的一部分。在迁移时间,系统100可以在可用于迁移的应用中进行选择以移动一个或多个应用,该一个或多个应用将适当地把数据中心中的负载降至可管理级而不损害应用的正确运行。
[0029]灾难恢复组件170检测一个或多个资源的故障,并且调用负载迁移组件160以将负载从出故障的资源移至一个或多个新资源。例如,灾难恢复组件170可以检测在数据中心中的云设备上运行的设备实例的故障,并且将该设备实例上运行的各应用移至公共云,使得这些应用继续运作。这给予数据中心管理员时间来替换出故障的设备实例并且将该应用设置成在更持久的基础上在公共云中运作。同时,未阻止应用客户机使用该应用,并且该应用继续运作。组件170可以包括在共同位置处运行的集中式服务,或具有在分布式实例上运行的监视及传送心跳的多个不同组件的分布式服务。灾难恢复组件170可以检测各种处理、存储、存储器、或其他故障,并且将应用或应用的各部分按需移动以重定位对出故障的资源的依赖性。
[0030]通知组件180向管理员通知系统100所执行的应用迁移。组件180可以在一个或多个事件发生后向一个或多个IT员工发送电子邮件、文本消息、或其他通信。这些事件可以包括接近所定义的阈值的应用负载、将应用负载猝发至远程云资源、对硬件组件的故障的检测、对基于云的资源的灾难恢复、以及系统100的用户通过管理界面组件120定义的其他事件。
[0031]在其上面实现了云迁移系统的计算设备可包括中央处理单元、存储器、输入设备(例如,键盘和定点设备)、输出设备(例如,显示设备),以及存储设备(例如,磁盘驱动器或其他非易失性存储介质)。存储器和存储设备是可以是编码有实现或启用该系统的计算机可执行指令(如软件)的计算机可读存储介质。此外,数据结构和消息结构可被存储或经由诸如通信链路上的信号等数据传输介质传送。可以使用各种通信链路,诸如因特网、局域网、广域网、点对点拨号连接、蜂窝电话网络等。
[0032]该系统的实施例可以在各种操作环境中实现,这些操作环境包括个人计算机、月艮务器计算机、手持式或膝上型设备、多处理器系统、基于微处理器的系统、可编程消费电子产品、数码相机、网络PC、小型计算机、大型计算机、包括上述系统或设备等中任一种的分布式计算环境、机顶盒、片上系统(SOC)等。计算机系统可以是蜂窝电话、个人数字助理、智能电话、个人计算机、可编程消费电子设备、数码相机等。
[0033]该系统可以在由一个或多个计算机或其他设备执行的诸如程序模块等计算机可执行指令的通用上下文中描述。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。通常,程序模块的功能可在各个实施例中按需进行组合或分布。
[0034]图2是示出在一个实施例中的云迁移系统接收规划信息供未来负载迁移的处理的流程图。在框210中开始,系统显示规划工具,管理员可通过该规划工具提供应用信息,该应用信息定义用于将应用负载从源数据中心计算资源移至目标数据中心计算资源的一个或多个条件。目标资源可以包括一个或多个基于云的服务、其他数据中心等。规划工具允许管理员定义将何时以及如何移动应用,包括指示多少负载将触发迁移以及哪些应用适于(或不适于)重定位。各应用可以具有确定移动它们或将该应用的多个实例定位在分开位置处有多简单或有多困难的数据、联网或其他约束。规划工具还可以接收记账信息,该记账信息允许管理员在决定何时以及如何移动各应用负载中考虑各种目标资源的成本因素。
[0035]在框220中继续,系统接收描述当前在源计算资源上执行的并且可被完全或部分地重定位至目标计算资源的一个或多个应用的应用信息。该应用信息可以标识应用二进制代码、数据、配置、以及用于成功地运行该应用的其他信息,使得系统可以在决定迁移该应用后迁移应用的全部相关信息。一些应用可能不适于或较不适于迁移(例如,由于大量的共享数据),并且系统可以接收指定各应用的迁移次序的优先级信息和/或不要迁移的应用列表。
[0036]在框230中继续,系统确定源数据中心计算资源的一个或多个容量度量。这些度量可以包括处理容量、存储容量、存储器容量、联网带宽、以及对源数据中心中可获得的有限资源进行的、确定该数据中心可处理的应用负载量的其他测量。所确定的容量还可包括与每一应用的典型负载有关的、将客户机请求负载与对数据中心内资源的应用需求关联的信息。以此方式,当系统观察到度量超出定义的阈值时,系统可以自动地确定需要对部分或全部应用负载进行迁移以保持在可用数据中心容量内。
[0037]在框240中继续,系统接收指示在那里将自动地发生应用负载迁移的负载的一个或多个负载阈值。该阈值可以以处理器利用、存储容量、存储器使用、网络带宽、或指示一个或多个数据中心资源的潜在耗尽或接近耗尽的任何其他度量为根据。理想地,该阈值被选择,使得在任何资源被完全消耗之前有时间完成迁移,使得客户机请求不中断。早期移动可能因外部计算资源而招致更多成本,而后期移动没有及时移动以满足所有的客户机请求,管理员可以在早期移动与后期移动之间的达成平衡。
[0038]在框250中继续,系统接收对一个或多个目标计算资源的标识以用于在达到定义的负载阈值后卸载过量的应用负载。该标识可以包括特定的公共云、地理数据中心位置、私有数据中心的服务器地址、以及应用负载要迁移至的目标计算资源的其他标识。在一些情况下,系统可以接收记账、一天中的时间、或促进在多个可用目标计算资源之间的决定的其他信息。
[0039]在框260中继续,系统存储应用迁移指令,这些应用迁移指令包括接收到的负载阈值以及在达到该阈值后应用负载要迁移至的一个或多个所标识的目标数据中心计算资源。这些指令可以标识特定的另一数据中心、公共云、私有云、或当达到该阈值时应用负载要移动至的其他资源。在框260之后,这些步骤结束。
[0040]图3是示出在一个实施例中的云迁移系统将应用负载从数据中心迁移至目标位置的处理的流程图。在框310中开始,系统监视在数据中心中的一个或多个计算资源上运行的应用,以确定正在进行的应用负载。监视可以包括测量该应用的性能的各个指示,诸如操作系统性能计数器、该应用所提供的信息、以及可用于确定运行的应用的条件的其他信
肩、O
[0041]在框320中继续,系统基于监视来确定已经达到了用于将该应用迁移至另一计算资源的阈值。该阈值是由管理员在先前完成的规划阶段期间设置的(诸如参考图2所描述的)。该阈值可包括被绑定到处理器使用、存储器使用、每秒的客户机请求、存储使用、或应用负载的其他指示的度量。管理员可以选择容量完全耗尽前的阈值(诸如可用资源的90%)作为适当的阈值以开始应用负载至另一资源的迁移。在一些实施例中,确定已经达到该阈值包括确定源数据中心中发生了故障,并且执行灾难恢复以将受该故障影响的各应用负载移至目标计算资源。
[0042]在框330中继续,系统标识运行的应用的负载中的至少一些要迁移至的目标计算资源。目标资源可以由管理员在规划阶段期间指定,或可以基于该负载迁移至的一个或多个可能的目标位置来动态地确定。在一些情况下,该决定可以基于一天中的时间或影响各负载卸载至另一位置的成本的其他因素。例如,在美国的峰值时间期间,系统可以将各负载卸载至非高峰(且由此成本较低)时段期间运行的位于日本的数据中心。
[0043]在框340中继续,系统标识要迁移的一个或多个应用。在一些情况下,系统可以取决于当前负载、可用容量、指定的阈值等来迁移多个应用。如本文参考规划阶段所描述的,管理员可以指示哪些应用适于迁移以及系统将迁移各应用的经区分优先级的次序。例如,系统可以通过确定一个或多个应用的数据使用以及通过确定哪些应用可被移动而数据复制到目标位置的负担最少来选择要迁移哪些应用。
[0044]在框350中继续,系统将所标识的应用的至少一些应用负载迁移至所标识的目标计算资源。迁移可以包括设置到数据库或其他应用资源的网络连通性,将数据从源位置复制到目标位置,设置正在进行的数据镜像,测试两个站点之间的通信等。系统还可以监视这两个位置之间的带宽和其他度量,使得该连接的任何健康下降可被迁移(可能使用进一步的迁移来进行)。
[0045]在框360中继续,系统向管理员或其他IT员工通知描述已达到的阈值的信息以及所采取的用于迁移应用负载的动作。管理员可以使用该信息来确认在将应用负载维持在源数据中心容量内方面迁移是成功的。管理员还可以采取附加的手动动作,诸如在预测的客户机请求增长之前选择附加应用供迁移。在框360之后,这些步骤结束。
[0046]图4是示出在一个实施例中的云迁移系统在负载减少之后将应用负载迁回其原始位置的处理的流程图。在框410中开始,系统接收应用迁移信息,该应用迁移信息描述将应用负载从源计算资源移至目标计算资源并且再次移回的一个或多个条件。该信息可以指定计算资源容量的一个或多个阈值,该一个或多个阈值指示何时执行每一类型的移动。例如,该信息可以指定当私有数据中心达到90 %的可用容量时将应用负载从该私有数据中心迁移至公共云,并且当该负载降到80%的可用容量以下时迁回该私有数据中心。以此方式,数据中心的操作者可以将数据中心设计成处理常见的负载水平,并且使用公共云或其他数据中心来处理峰值或非预期的负载水平。
[0047]在框420中继续,系统监视在源计算资源上运行的应用以确定正在进行的应用负载。监视可以包括测量该应用的性能的各个指示,诸如操作系统性能计数器、该应用所提供的信息、以及可用于确定运行的应用的条件的其他信息。
[0048]在框430中继续,系统确定先前所迁移的应用负载在用于将应用负载迁回其原始驻留的源计算资源的阈值以下。该阈值是由管理员在先前完成的规划阶段期间设置的(诸如参考图2所描述的)。该阈值可包括被绑定到处理器使用、存储器使用、每秒的客户机请求、存储使用、或应用负载的其他指示的度量。管理员可以选择指示不太可能进一步需要外部计算资源的阈值或低于该阈值的持续时间,诸如一小时持续使用少于80%的源计算资源容量。
[0049]在框440中继续,系统将应用迁回原始的源计算资源。迁移可以包括将数据从目标位置复制回源位置,拆除先前建立的这两个位置之间的联网连接或数据镜像等。在一些实施例中,系统可以将原地保留所建立的连接和镜像数据,使得能以较少的延迟发生未来的迁移。
[0050]在框450中继续,系统向管理员或其他IT员工通知描述已达到的阈值的信息以及所采取的用于迁移应用负载的动作。系统还可以向管理员报告注意到的任何异常、或者是否存在过度的来回迁移从而导致乒乓效应。管理员可以使用该信息来确认在将应用负载维持在源数据中心容量内方面迁移是成功的。管理员还可以采取附加手动动作,诸如确定是原地保持所建立的与目标计算资源的连接还是覆盖先前配置的动作以防止无止境地来回迁移。在框450之后,这些步骤结束。
[0051 ] 在一些实施例中,云迁移系统通过修改域名服务(DNS)记录来来迁移应用负载。该系统可以修改DNS服务器以将传入客户机请求指向一个或多个新目的地网际协议(IP)地址,以便使负载从源数据中心上离开而定向到目标数据中心/云。全局通信量管理器(GTM)通常将客户机指向最近的服务器以处理其请求,并且这些方案可被修改以基于负载或其他条件来重定向通信量。由此,当一个数据中心变得过载或接近容量时,云迁移系统可以告知GTM将至少一些客户机请求定向到可处理该过量负载的新位置。
[0052]在一些实施例中,在迁移条件减轻之后,云迁移系统将日志和其他数据从目标计算资源迁回。例如,在一段峰值负载之后,系统可以将所有的应用负载迁回原始数据中心,并且将在目标数据中心处所生成的信息(诸如,应用日志)拉回原始数据中心以供之后分析。对于一些应用,跟踪客户机请求可能是规章顺应性问题或仅对调试和报告有用。在任一种情况下,在源位置处合并这些日志可能是成功迁回源位置的一部分。
[0053]在一些实施例中,云迁移系统在源计算资源与一个或多个目标计算资源之间动态地分配可变的应用负载量。例如,系统可以动态地路由各请求以使源计算资源保持在全容量或接近全容量,而仅将源计算资源不能成功地处理的各请求发出至外部计算资源。这样的决定可以是成本、数据安全或其他考虑的问题,以迁出仅仅所需的应用负载或者将应用负载放置在能最便宜地或最高效地执行它们的地方。
[0054]在一些实施例中,云迁移系统将管理员确认步骤添加到应用迁移过程中。例如,系统可以在确定数据中心处的容量接近耗尽后通知管理员,但可以等待管理员确认来执行迁移。连同该确认,管理员可以在多个选项中选择将该负载迁移至何处,并且基于成本或其他因素作出决定。在接收到来自管理员的确认之后,系统可以如前所述地自动地执行该迁移。
[0055]在一些实施例中,云迁移系统提供针对灾难恢复的各种选项。在一些情况下,系统可以使外部数据中心处的资源加入,以监视主数据中心断供。如果外部数据中心变得不能联系到主数据中心,则外部数据中心可以确定发生了灾难并且将应用负载移至外部数据中心。在过去的系统中,组织要维护200%的所需容量(以大量花费)以便成功地处理灾难是典型的。使用云迁移系统,组织可以将较少量的可用容量维持在第二位置处(例如,10%),并且在发生故障的情况下可以按需迅速地请求更多。与保险很相似,云提供者的所有客户机同时发生故障并且请求高容量备用的可能性是低的,使得多个客户机可以共享在主要资源发生故障的情况下要使用的一组冗余辅助资源。
[0056]在一些实施例中,云迁移系统基于非高峰价格来迁移应用负载。在顾客情形中对云计算资源的需求存在一些弹性。一些顾客区隔仅仅需要特定量的计算容量,而在它们何时访问该容量以运行其任务方面具有灵活性——高性能计算(HPC)与批处理是两个较好的示例。该系统可以提供任务调度工具,管理员可通过该任务调度工具来指定应用负载将在何处以及何时运行,以降低成本并且利用适合的应用负载的非高峰速率。
[0057]从前面的描述中可以看出,可以理解,此处描述的云迁移系统的特定实施例只是为了说明,但是,在不偏离本发明的精神和范围的情况下,可以进行各种修改。因此,本发明只受所附权利要求限制。
【权利要求】
1.一种用于将应用负载从数据中心迁移至分开的目标位置的计算机实现的方法,所述方法包括: 监视在数据中心中的一个或多个计算资源上运行的应用,以确定正在进行的应用负载(310); 基于监视来确定已达到将所述应用迁移至另一计算资源的阈值(320); 标识目标计算资源(330),运行的应用的负载中的至少一些要迁移至所述目标计算资源; 标识要迁移的一个或多个应用(340);以及 将所标识的应用的至少一些应用负载迁移至所标识的目标计算资源(350), 其中前述步骤由至少一个处理器来执行。
2.如权利要求1所述的方法,其特征在于,监视所述应用包括测量能够从所述应用或操作系统获得的所述应用的性能的一个或多个指示。
3.如权利要求1所述的方法,其特征在于,确定已达到该阈值包括在先前完成的规划阶段期间由管理员所设置的阈值。
4.如权利要求1所述的方法,其特征在于,确定已经达到该阈值包括包含被绑定到处理器使用、存储器使用、每秒客户机请求、网络使用、以及存储使用中的至少一个的度量的阈值。
5.如权利要求1所述的方法,其特征在于,确定已达到该阈值包括在容量完全耗尽之前所满足的阈值,以开始将应用负载迁移至另一资源而有足够时间在任何客户机请求失败之前移动该负载。
6.如权利要求1所述的方法,其特征在于,确定已达到该阈值包括确定所述源数据中心中发生了故障,并且执行灾难恢复以将受该故障影响的应用负载移至所述目标计算资源。
7.如权利要求1所述的方法,其特征在于,标识所述目标包括访问描述在规划阶段期间由管理员指定的目标资源的信息。
8.如权利要求1所述的方法,其特征在于,标识所述目标包括基于该负载要迁移至的一个或多个可能目标位置来动态地确定目标。
9.如权利要求1所述的方法,其特征在于,标识所述目标包括基于使用在一个或多个目标计算资源处的资源的一天中的时间、地理位置、以及成本中的任一个来动态地确定目标。
10.如权利要求1所述的方法,其特征在于,标识要迁移的应用包括确定一个或多个应用的数据使用,以及确定哪些应用能以将数据复制到所述目标位置的最少负担而被移动。
11.如权利要求1所述的方法,其特征在于,迁移应用负载包括设置所述数据中心与目标计算资源之间的网络连通性,并且将所述应用的实例移至所述目标计算资源。
12.如权利要求1所述的方法,其特征在于,还包括通知管理员描述已达到的阈值的信息以及所采取的用于迁移应用负载的一个或多个动作。
13.一种用于容量管理和灾难恢复的跨云计算的计算机系统,所述系统包括: 被配置成执行包含在以下组件内的软件指令的处理器和存储器; 规划组件(110),所述规划组件(110)提供工具,管理者通过该工具来定义用于将应用负载迁移至至少一个基于云的计算资源的一个或多个条件; 管理界面组件(120),所述管理界面组件(120)向所述系统提供管理界面,管理员能通过该管理界面访问各工具和配置设置; 移动数据存储(130),所述移动数据存储(130)对描述接收到的用于将应用负载迁移至所述基于云的计算资源的条件的信息进行存储; 负载监视组件(140),所述负载监视组件(140)监视数据中心中的性能,并且当负载接近接收到的用于迁移至另一资源的条件时告知其他组件; 移动逻辑组件(150),所述移动逻辑组件(150)执行接收到的用于迁移应用负载的条件; 负载迁移组件(160),所述负载迁移组件(160)执行应用负载从一个资源至另一资源的移动;以及 灾难恢复组件(170),所述灾难恢复组件(170)检测一个或多个资源的故障,并且调用所述负载迁移组件以将负载从出故障的资源移至一个或多个新资源。
14.如权利要求13所述的系统,其特征在于,所述规划组件包括容量管理工具,管理员通过该容量管理工具能指定阈值负载,迁移在所述阈值负载发生。
15.如权利要求13所述的系统,其特征在于,所述规划组件包括容量管理工具,管理员通过该容量管理工 具能指定发生迁移的位置或资源。
【文档编号】G06F9/06GK103547994SQ201280024254
【公开日】2014年1月29日 申请日期:2012年5月18日 优先权日:2011年5月20日
【发明者】E·B·沃森, A·法汉吉, K·C·艾耶 申请人:微软公司