CN107430528B - 机会性资源迁移以优化资源放置 - Google Patents
机会性资源迁移以优化资源放置 Download PDFInfo
- Publication number
- CN107430528B CN107430528B CN201680014429.3A CN201680014429A CN107430528B CN 107430528 B CN107430528 B CN 107430528B CN 201680014429 A CN201680014429 A CN 201680014429A CN 107430528 B CN107430528 B CN 107430528B
- Authority
- CN
- China
- Prior art keywords
- resources
- resource
- placement
- migration
- candidate
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/78—Architectures of resource allocation
- H04L47/783—Distributed allocation of resources, e.g. bandwidth brokers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/83—Admission control; Resource allocation based on usage prediction
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
一种分布式系统可实现机会性资源迁移以优化资源放置。可以将资源放置在分布式系统的不同资源主机间。可以根据改进所述资源在所述分布式系统处的放置的放置准则执行对所述当前放置的评估。基于所述评估,可以将超过改进阈值的资源的预期迁移识别为要迁移的候选资源。可以机会性地执行所述候选资源的迁移。在一些实施方案中,可以将优先级指派给所述候选资源,所述候选资源根据所述优先级被选择以执行迁移。
Description
背景技术
用于跨网络动态共享硬件资源、软件和信息存储的虚拟化的技术的最新革新已增加了计算的可靠性、可扩展性和成本效益。更具体地,通过虚拟化的出现按需提供虚拟计算资源和存储的能力使得处理资源和存储的消费者能够响应于立即察觉的计算和存储需要来灵活构造它们的计算和存储成本。虚拟化允许消费者在需求时购买处理器周期和存储,而非在由硬件制造和部署的延迟和成本决定的提供周期中购买或租赁固定硬件。比起根据未来需求预测的准确性来确定计算和存储的可用性,用户能够在相对瞬时需要基础上购买计算和存储资源的使用。
虚拟化计算环境可以提供关于计算资源的可用性和持久性的各种保证。在多个资源主机间分配计算资源可以提供不同的可用性和持久性特性。例如,虚拟计算资源可以提供基于块的存储。这种基于块的存储提供存储系统,所述存储系统能够通过一系列标准化存储调用和在虚拟化上执行的提供其存储可用性的操作系统来与各种计算虚拟化进行交互,所述一系列标准化存储调用使基于块的存储在功能上不可得知基于块的存储支持的卷的结构和功能详情。为了提供基于块的存储,可以实现各种不同放置优化和/或约束,以便提供性能保证。当在资源主机间放置基于块的存储资源时,从满足放置存储的优化和/或约束的不同放置选项间进行选择可以是有挑战性的。
附图说明
图1示出了根据一些实施方案的用于机会性资源迁移以优化资源放置的逻辑框图。
图2是根据一些实施方案的示出包括实现机会性资源迁移以优化资源放置的多个基于网络的服务(诸如基于块的存储服务)的提供商网络的框图。
图3是根据一些实施方案的示出实现机会性资源迁移以优化资源放置的卷放置的逻辑框图。
图4是根据一些实施方案的示出用于机会性资源迁移的迁移队列的逻辑框图。
图5是根据一些实施方案的示出用于在基于块的存储服务中机会性迁移数据卷的交互的逻辑框图。
图6是根据一些实施方案的示出用于机会性资源迁移以优化资源放置的各种方法和技术的高级流程图。
图7是根据一些实施方案的示出用于将资源识别为要进行机会性资源迁移的候选的各种方法和技术的高级流程图。
图8是根据一些实施方案的示出用于选择和迁移候选资源的各种方法和技术的高级流程图。
图9是根据一些实施方案的示出用于将候选资源从迁移队列移除的各种方法和技术的高级流程图。
图10是根据一些实施方案的示出示例性计算系统的框图。
虽然在本文中以若干实施方案和说明性的附图为例来描述实施方案,但是本领域的技术人员将认识到,实施方案不限制于所描述的实施方案或附图。应当理解,附图和其详细描述并不意图将实施方案限制于所公开的特定形式,相反,意图在于涵盖落在如所附权利要求书限定的精神和范围内的所有修改、等效物和替代物。本文中使用的标题仅是出于组织目的,而不意在用于限制本说明书或权利要求书的范围。如本申请的全文所使用,词语“可以”用于许可意义(即,表示具有可能),而非强制意义(即,表示必须)。类似地,词语“包括(include、including、includes)”表示包括但不限于。
具体实施方式
本文所述的系统和方法可以实现对资源放置的机会性资源迁移。分布式系统可以托管用于执行或实现不同系统、服务、应用和/或功能的各种资源。一些资源可以是较大分布式资源的部分,位于在不同资源主机间的多个资源上。其它资源可能是单独的或独立的。资源可以是许多不同类型资源中的一个,诸如各种类型的物理或虚拟计算资源、存储资源或联网资源中的一个。例如,存储服务可以跨多个不同资源主机而托管不同数据复制。
可以在创建过程中做出放置决策,以便在不同资源主机处定位资源。然而,等待放置资源直到最佳位置可用可能是困难的,因为资源可能需要被放置以开始操作。相反,资源在资源主机处的初始放置可根据最佳可用放置来进行。随着时间推移,次佳放置(即使放置是资源在初始放置时的最佳位置)可增加了大量成本(诸如利用不足的资源主机、分布式资源的低效或不太持久的配置、和/或资源或整个分布式系统的各种其它种类的浪费或低效)。
在一些实施方案中,可根据放置准则来做出放置决策。可使用放置准则来确定单独资源以及跨整个分布式系统的资源放置的最好或最佳放置位置。例如,为了提供或改进资源的可用性、持久性和/或其它性能特性,可使用放置准则来确定资源应当被放置的特定位置(例如,不同基础设施区,例如网络路由器或程序块)。如果无法提供这个位置,那么放置准则可以指示要放置资源的次佳位置(例如,处于不太有效的基础设施区(诸如不同于与所放置的资源通信的另一资源的网络路由器或程序块)中的资源主机)。放置准则可以包括但不限于对资源以及其它资源(如果是分布式资源的部分)的配置、可用字节、IOP、或时隙、资源利用率平衡(诸如字节到IOP平衡)、对容量片段的影响、硬件/软件特性和/或各种期望的基于位置的配置。
图1示出了根据一些实施方案的用于机会性资源迁移以优化资源放置的逻辑框图。机会性资源放置120可以评估当前放置资源100以便执行机会性资源迁移140,使得在分布式系统中的资源可以被迁移到其它资源主机,这些其它资源主机对于单独资源和/或对于在分布式系统中总体资源放置来说是更好放置。可作为一个或多个计算系统、节点或设备(例如,以下图10中的系统1000)的资源主机可以被配置为托管或实现分布式系统的资源。
机会性资源放置120可以获得关于当前放置资源的信息,诸如关于资源配置(例如,个别或分布式资源的部分、大小、性能特性等)、关于资源主机(例如,托管的资源的数量、资源利用率(例如,处理、网络、存储、带宽等)、硬件/软件配置、或用于确定资源主机状态和其托管能力的任何其它数据)的信息。可执行成本效益迁移分析130以将资源识别为要机会性迁移的候选资源。可执行成本效益迁移分析130以识别要迁移的候选资源,其中预期迁移将会改进对迁移资源、不迁移的其它资源和/或在分布式系统中更一般的资源放置的放置。例如,放置数据110示出资源112a、112b、112c、112d和112e的最佳性。该图表示相较最佳放置118来说对资源的当前放置116的评分、百分比或其它指示。在至少一些实施方案中,可为每个资源112生成放置评分或其它度量。类似评估可相对于可用于托管资源的资源主机进行。资源在可用资源主机处的可能放置的效果可通过生成假定包括资源的可用资源主机的放置评分来确定。迁移对资源的放置评分的这个影响114作为图的附加(例如,改进)针对每个资源112示出。
用于移动资源的迁移操作可能具有一些成本。因此,可相对于由迁移提供的益处衡量执行用于将资源移动到更好放置位置的迁移操作的成本。例如,可以实现可识别迁移操作益处超过迁移执行成本的那些资源的改进优化阈值。虽然资源112b具有相对于其它资源112最差的当前放置,但是用于改进放置的迁移效果可能远不如其它资源(诸如资源112a、112c和112e)那么大。可能的是,对资源112b(和112d)的改进的量可能不会超过改进阈值。
可相对于反映在分布式系统中总体资源放置的度量或评分(未示出)进行类似分析。例如,迁移资源(就像资源112a)对总体放置的迁移评分的影响可以与优化阈值比较以确定对总体放置的益处是否值得执行迁移操作。同样,可相对于迁移对其它个体或成组资源的影响执行相同分析,从而检查一个资源的预期迁移是否改进其它资源的放置超过要执行迁移的改进阈值。
可以针对已经被识别为成本效益迁移分析130的部分的那些候选资源执行机会性资源迁移140。机会性资源迁移140可以不干扰资源本身操作的方式被调度或指引(例如,机会性资源迁移140可以作为后台进程或服务的部分执行)。在至少一些实施方案中,可以指派迁移的优先级,使得具有更大或更为有益的效果的迁移更早执行(例如,在资源112e迁移前迁移资源112c)。
随着时间推移,动态执行机会性资源迁移可以将在分布式系统中的资源放置重新平衡到最佳位置,从而实现更大的有效性、持久性、可用性或放置准则被设计为针对资源和分布式系统要实现的任何其它性能目标。例如,分布式资源(例如,对等节点的主和从对等体对或组)可以具有相对于分布式资源的其它成员的最佳配置,这些最佳配置不会在初始放置时实现,而是可能因机会主义资源迁移而最终实现。此外,可通过迁移其它资源(甚至如果迁移对于某些资源或总体分布式系统来说更好,就迁移到其它资源的次佳位置)来移除对此类最佳放置的障碍。例如,不能够托管另外资源的资源主机可识别为可为当前次佳的其它资源提供最佳放置的位置。资源可以被识别为候选资源,并且被迁移以使得资源主机可供用来通过托管其它资源弥补次佳放置(即使从主机移走的资源可放置于具有程度相同的最佳性或次佳的位置)。也可获得个别资源的期望配置。在一些实施方案中,相对于基础设施区的放置可能是高度期望的,并且实现机会性资源迁移可以允许向不同资源主机迁移以在最佳基础设施区中定位资源。
请注意,先前描述不意图是限制性的,而是仅作为用于资源放置的机会性资源迁移的示例来提供。各种组件都可执行资源放置。可以采用不同数量或类型的资源和放置数据。
本说明是开始于对提供商网络的概述,提供商网络可以实现经由提供商网络中的一个或多个基于网络的服务而提供的用于资源放置的机会性资源迁移,例如经由基于块的存储服务而提供的用于数据卷的机会性迁移。然后,讨论基于块的存储服务的各种示例,包括不同组件/模块、或可用作在基于块的存储服务中用于数据卷的卷放置的部分的组件/模块布置。接着,讨论实现用于资源放置的机会性资源迁移的多种不同的方法和技术,其中一些在随附的流程图中示出。最后,提供可实现各种组件、模块、系统、设备和/或节点的示例性计算系统的描述。在本说明书全文中提供各种示例。
图2是根据一些实施方案的示出实现多个基于网络的服务的提供商网络的框图,基于网络的服务包括实现用于资源放置的机会性资源迁移的基于块的存储服务。提供商网络200可由实体(诸如公司或公共部门组织)建立,以便将可经由互联网和/或其它网络访问的一个或多个服务(诸如各种类型的基于云的计算或存储)提供给客户端210。提供商网络200可以包括托管各种资源池的许多数据中心,诸如实现和分配由提供商网络200提供的基础设施和服务所需要的物理和/或虚拟化计算机服务器、存储设备、联网设备等的集合(例如,以下关于图10而描述的计算系统1000)。在一些实施方案中,提供商网络200可以提供计算资源,诸如虚拟计算服务230、诸如基于块的存储服务220和其它存储服务240的存储服务(其可包括各种存储类型,诸如基于对象/键值的数据存储或各种类型的数据库系统)和/或任何其它类型的基于网络的服务250。客户端210可经由网络260来访问由提供商网络200提供的这些各种服务。同样,基于网络的服务本身可彼此通信和/或利用来提供不同服务。例如,以称为“实例”的单元(诸如虚拟或物理计算实例或存储实例)提供给客户端210的计算资源可利用特定的数据卷226为计算实例提供虚拟块存储。
如上指出,虚拟计算服务230可向客户机210提供各种计算实例。虚拟计算实例可以例如包括具有指定计算能力(其可通过指示CPU的类型和数量、主存储器大小等等指定)的一个或多个服务器、以及指定软件堆栈(例如,特定版本的操作系统,其可继而在监管程序之上运行)。在不同实施方案,可单独或组合地使用多个不同类型的计算设备以实现虚拟计算服务230的计算实例,包括专用计算机服务器、存储设备、网络设备等等。在一些实施方案中,实例客户端210或其它任何其它用户可以被配置(和/或授权)以将网络流量指引到计算实例。在各种实施方案中,可将计算实例附加或映射到由基于块的存储服务220提供的一个或多个数据卷226,以便获得用于执行各种操作的持久性基于块的存储。
计算实例可操作或实现适于执行客户端应用而例如不要求客户端210访问实例的各种不同平台,诸如应用服务器实例、JavaTM虚拟机(JVM)、专用操作系统、支持各种解译或编译的编程语言(诸如Ruby、Perl、Python、C、C++等等)的平台或高性能计算平台。在一些实施方案中,计算实例基于预期正常运行时间比具有不同的类型或配置。特定计算实例的正常运行时间比可以被定义为实例激活的时间量与实例被保留的总时间量的比。在一些实现方案中,正常运行时间比也可称为利用率。如果客户端预期在保留实例的时间的相对小的部分(例如,一年期的保留的30%-35%)内使用计算实例,那么客户端可以决定将实例保留为低正常运行时间比实例,并且根据相关联的定价策略支付打过折的每小时使用费。如果客户端预期具有要求实例达最大时间的稳态工作负载,那么客户端可以保留高正常运行时间比实例,并且有可能会支付甚至更低的每小时使用费,但是在一些实施方案中,根据定价策略,不管实际使用的小时数如何,每小时的费用都会针对整个保留持续时间收取。在一些实施方案中,也可支持具有中正常运行时间比实例的选项(利用对应定价策略),其中前期成本和每小时的成本落在对应高正常运行时间比和低正常运行时间比成本之间。
计算实例配置还可包括具有通用或专用的计算实例,诸如用于计算密集应用的计算工作负载(例如,高流量web应用、广告服务、批量处理、视频编码、分布式分析、高能物理学、基因组分析和计算流体动力学)、图形密集型工作负载(例如,游戏流送、3D应用流送、服务器侧图形工作负载、渲染、财务建模和工程设计)、存储器密集工作负载(例如,高性能数据库、分布式存储器高速缓存、存储器中分析、基因组组配和分析)和存储优化工作负载(例如,数据仓库和集群文件系统)。计算实例大小诸如特定数量的虚拟CPU核心、存储器、高速缓存、存储装置以及任何其它性能特性。计算实例配置还可包括它们在特定数据中心的位置、可用性区、地理位置等,以及(在所保留的计算实例情况下)保留期长度。
在各种实施方案中,提供商网络200还可实现用于执行存储操作的基于块的存储服务220。基于块的存储服务220是由多个独立资源主机224a、224b、224c至224n的池组成的存储系统(例如,服务器块数据存储系统),提供用于存储一组或多组数据卷数据卷226a、226b、226c至226n的块级存储。数据卷226可以被映射到特定的客户端(例如,虚拟计算服务230的虚拟计算实例),从而提供基于虚拟块的存储(例如,硬盘存储或其它持久性存储)作为连续逻辑块集合。在一些实施方案中,数据卷226可以被划分成用于执行其它块存储操作(诸如快照操作或复制操作)的多个数据块或分区(包括一个或多个数据块)。数据卷226的卷快照可以是数据卷226的状态的固定时刻表示。在一些实施方案中,卷快照可以从维护数据卷的资源主机224远程存储,诸如存储在另一存储服务240中。快照操作可执行以发送、复制和/或以其它方式保留给定的数据卷的快照于另一存储位置中(诸如存储在其它存储服务240中的远程快照数据)。
基于块的存储服务220可实现基于块的存储服务控制平面222以辅助基于块的存储服务220的操作。在各种实施方案中,基于块的存储服务控制平面222辅助管理向客户端的块数据存储的可用性,诸如在由虚拟计算服务230和/或位于提供商网络200内的其它基于网络的服务提供的计算实例和/或任选地位于一个或多个其它数据中心内的计算系统(未示出)、或是通过网络260可用的在提供商网络200外的其它计算系统上执行的程序。可响应于块数据事务指令通过提供商网络200内的内部网络或经由网络260在外部提供对数据卷226的访问。
基于块的存储服务控制平面222可以提供与提供块级存储功能相关的各种服务,包括用户帐户管理(例如,创建、删除、计费、支付托收等)。基于块的存储服务控制平面222还可响应于配置请求来提供与数据卷226的创建、使用和删除相关的服务。在至少一些实施方案中,基于块的存储服务控制平面222可以实现卷放置228,诸如以下关于图3更详细地描述。基于块的存储服务控制平面222还可提供与其它存储服务240上的卷快照的创建、使用和删除相关的服务。基于块的存储服务控制平面222还可提供与有关数据卷226和那些卷的快照的使用的性能和审计数据的收集和处理相关的服务。
如上指出,提供商网络200还可实现另一存储服务240。其它存储服务240可以提供由基于块的存储服务220提供的相同或不同类型的存储。例如,在一些实施方案中,其它存储服务240可以提供基于对象的存储服务,基于对象的存储服务可将数据作为数据对象而存储和管理。例如,各种数据卷226的卷快照可以被存储为特定的数据卷226的快照对象。除了其它存储服务240之外,提供商网络200可以实现其它基于网络的服务250,这可包括允许客户端210、以及提供商网络200的其它服务(例如,基于块的存储服务220、虚拟计算服务230和/或其它存储服务240)执行或请求各种任务的各种不同类型的分析、计算、存储或其它基于网络的系统。
客户端210可以涵盖可配置为向网络提供商200提交请求的任何类型的客户端。例如,给定的客户端210可以包括合适版本的web浏览器,或者可以包括插件模块或被配置为作为由web浏览器提供的执行环境的扩展或在这个环境内执行的其它类型的代码模块。或者,客户端210可以涵盖应用,诸如数据库应用(或其用户界面)、媒体应用、办公应用或可利用计算实例、数据卷226或提供商网络200中的其它基于网络的服务以执行各种操作的任何其它应用。在一些实施方案中,这种应用可以包括用于生成和处理基于网络的服务请求的足够协议支持(例如,针对合适版本的超文本传输协议(HTTP),而不必对所有类型的基于网络的数据实现完整浏览器支持。在一些实施方案中,客户端210可以被配置为根据表述性状态传输(REST)型基于网络的服务架构、基于文档或消息的基于网络的服务架构或另一合适基于网络的服务架构来生成基于网络的服务请求。在一些实施方案中,客户端210(例如,计算客户端)可以被配置为以对利用由计算实例提供的计算资源或由数据卷226提供的块存储在客户端210上实现的应用透明的方式提供对计算实例或数据卷226的访问。
客户端210可经由外部网络260将基于网络的服务请求传递到提供商网络200。在各种实施方案中,外部网络260可涵盖在客户端210和提供商网络200之间建立基于网络的通信必要的联网硬件和协议的任何合适组合。例如,网络260通常可以涵盖共同实现互联网的各种电信网络和服务提供商。网络260还可包括专用网络(诸如局域网(LAN)或广域网(WAN))、以及公共或专用无线网络。例如,给定的客户端210和提供商网络200两者可以分别提供在具有它们自己的内部网络的企业内。在这种实施方案中,网络260可包括在给定的客户端210和互联网之间以及在互联网和提供商网络200之间建立联网链路必要的硬件(例如,调制解调器、路由器、交换机、负载平衡器、代理服务器等)和软件(例如,协议堆栈、计费软件、防火墙/安全软件等)。应当注意,在一些实施方案中,客户端210可使用专用网络而非公共互联网与提供商网络200进行通信。
图3是根据一些实施方案的示出实现机会性资源迁移以优化资源放置的卷放置的逻辑框图。如上指出,可以实现多个资源主机,诸如资源主机300,以便提供基于块的存储服务。资源主机可以是一个或多个计算系统或设备,诸如存储服务器或其它计算系统(例如,以下关于图10而描述的计算系统1000)。每个资源主机可以维护数据卷的相应复制。在一些实施方案中,一些数据卷在大小上可不同于其它数据卷。资源主机还可提供多租户存储。例如,在一些实施方案中,一个资源主机可以维护用于基于块的存储服务220的一个帐户的数据卷,而维护在相同资源主机处的另一个数据卷可以为不同帐户而维护。资源主机可将它们相应的数据卷保存在一个或多个基于块的存储设备(例如,硬盘驱动器、固态驱动器等)中,一个或多个基于块的存储设备可直接附接到实现相应资源主机的计算系统或设备。资源主机可以实现不同持久性存储设备。例如,一些资源主机可以实现用于持久性块存储的固态驱动器(SSD),而其它资源主机则可以实现硬盘驱动器(HDD)或其它基于磁性的持久性存储设备。以此方式,可根据实现在资源主机上的持久性存储设备来提供不同的卷类型、规范和其它性能特性。
基于块的存储服务220可以各种不同方式来管理和维护数据卷。可以在两个或更多个资源主机间针对一些数据卷实现不同持久性方案作为在数据卷的不同分区处维护数据卷的相同副本的分布式资源。例如,可实现不同类型的镜像和/或复制技术(例如,RAID1)以增加数据卷持久性,诸如通过消除数据卷的单个故障点实现。为了提供对数据卷的访问,资源主机然后可以在维护数据卷的复制的两个或多个资源主机间协调I/O请求,诸如写入请求。例如,对于给定的数据卷,一个资源主机可以用作主资源主机。在各种实施方案中,主资源主机可接收和处理来自客户端的对数据卷的请求(例如,I/O请求)。因此,主资源主机然后可向用作从资源主机的一个或多个其它资源主机协调I/O请求(诸如写入请求)的复制、或是对数据卷的任何其它改变或修改。因此,当在主资源主机上针对数据卷接收写入请求时,主资源主机可以将写入请求转发给从资源主机,并且进行等待直到从资源主机确认写入请求在主资源主机处完成写入请求前完成。主资源主机可以指引对数据卷的其它操作,就像快照操作或其它I/O操作(例如,用于读取请求)。
请注意,在一些实施方案中,主资源主机和从资源主机的角色可以被指派针对每一个数据卷。例如,对于维护在一个资源主机处的数据卷,资源主机可以用作主资源主机。而对于维护在相同资源主机处的另一个数据卷,资源主机可以用作从资源主机。资源主机可以实现相应I/O管理器。I/O管理器可以处置针对维护在特定资源主机上的数据卷的I/O请求。因此,例如,I/O管理器可处理和处置对在资源主机处的卷的写入请求。I/O管理器可以被配置为根据基于块的存储服务应用编程接口(API)和/或其它通信协议(诸如互联网小型计算机系统接口(iSCSI))处理I/O请求。
资源主机可位于不同基础设施区内。基础设施区可由设备(诸如服务器机架、网络交换机、路由器或其它组件)、电源(或其它资源主机供应商)或物理或地理位置(例如,在特定行、房间、建筑、数据中心、容错区等中的位置)限定。基础设施区范围可以变化,使得资源主机(以及实现在资源主机上的数据卷的复制)可以在多个不同类型的基础设施区内,诸如特定网络路由器或程序块、特定房间位置、特定站点等。
在各种实施方案中,基于块的存储服务控制平面222可以实现卷放置228。卷放置228可以在一个或多个计算节点、系统或设备(例如,图10中的系统1000)处实现。在至少一些实施方案中,卷放置228可实现放置数据收集320以收集用于执行卷放置的信息、度量、元数据或任何其它信息。放置数据收集320可以利用对信息、度量或元数据的查询周期性地扫查资源主机300。例如,资源主机可以提供当前利用率度量、正在进行的任务或操作(例如,诸如迁移或重镜像任务)、以及资源主机的任何其它状态信息(包括驻留在资源主机处的卷的卷特定信息)。在一些实施方案中,放置数据收集320可根据用于基于块的存储服务220的基础设施区、分区、资源主机或其它粒度来聚合数据。放置数据收集320可以将数据存储在卷/服务状态存储区322处,卷/服务状态存储区可以持续维护所收集的数据。在一些实施方案中,卷/服务状态存储区322可以被实现为数据库或其它可搜索/可查询的存储系统,用于提供对卷放置228或基于块的存储服务控制平面226的其它组件的访问。
在各种实施方案中,卷放置228可以实现放置引擎310。放置引擎310可执行各种分析以识别资源放置位置,诸如新数据卷的复制或迁移当前放置的数据卷。可相对于以上所讨论的放置准则来执行分析以确定对于个别资源或对于整个基于块的存储服务可能是最佳的放置位置。例如,放置引擎310可实现配置分析312以评估在分布式资源中的所有资源的预期放置配置,诸如数据卷的主卷、从卷的放置。在一些实施方案中,在配置分析中可考虑到分布式资源(或分布式资源的资源)的客户端或其它用户(例如,评估包括附接到数据卷的虚拟实例的放置配置)。配置分析312可考虑到将当前放置资源迁移到其它资源主机以便释放在资源主机处的空间的影响,这将为分布式资源的其它资源提供更好配置。例如,这可包括将从卷(例如,资源)移动到另一资源主机以为该主机上的不同从卷腾出空间,这将使不同从卷在与卷的主卷或卷的客户端相同的基础设施区中。在一些情况下,这种配置(例如,使主卷或从卷在与客户端相同的基础设施区中,诸如连接到与相同的网络路由器)提供改进性能并且可以是最佳配置。
响应于在放置引擎310处接收到放置请求,配置分析312可通过访问卷/服务状态322来确定预期放置。可以评估可用、而不违反任何放置约束的那些资源主机(例如,数据卷的两个分区无法由相同资源主机、具有足够容量的资源主机、或实现特定硬件和/或软件的资源主机托管)。在一些实施方案中,可评估可用资源主机子集的放置决策(因为评估非常大的可用资源主机池可能计算上过于昂贵)。可基于资源可用的资源主机来生成或识别预期放置配置。数据卷的其它复制可基于实际或假设的放置位置来评估。
在各种实施方案中,可基于卷/服务状态332来确定分布式资源的不同预期放置配置的一个或多个基础设施区地点。例如,元数据可以指示数据卷的不同复制的资源主机被连接到的是哪个网络程序块或路由器。在至少一些实施方案中,可针对预期放置配置的基础设施区地点(其中待放置的资源是位于不同可用资源主机处)来生成评分。放置引擎310可对除基础设施区地点之外的许多其它度量、数据或考虑执行配置分析312。例如,在至少一些实施方案中,可相对于托管数据卷的复制的资源主机的不同性能度量来对预期配置执行分析。例如,可针对整个的数据卷来评估存储容量、工作负载或每秒输入/输出操作(IOP)。一些数据卷可以被分区以使得不同分区维护数据卷的数据的不同部分。例如,数据卷可以被划分成3组主-从复制对。可基于数据卷的被复制的每个部分(例如,每个主-从复制对)或所有数据卷分区(例如,所有3个主-从复制对)的放置配置来执行配置分析312。
放置引擎310可实现其它分析314以确定分区放置。例如,可基于最后一次联系或收听的特定资源主机来生成放置评分。可执行分析以识别和防止多个主-从复制对放置在相同两个资源主机上。在一些实施方案中,可执行资源主机片段分析以优化在可托管分区的资源主机上的资源放置并且留下最少量的未充分利用的空间。就像以上配置分析那样,可执行以上所给出的示例性分析来确定一些资源的放置位置,这样,在迁移时,就可提供对未移动的其它资源的更好放置。
在一些实施方案中,卷放置228可以实现机会性放置管理器330。机会性放置管理330可动态地或前摄地将当前放置资源(例如,卷复制)从一个资源主机迁移到另一资源主机,使得对资源(例如,数据卷)的放置更佳和/或整个在资源主机310间的资源放置更佳(即使迁移导致对所迁移的资源的相同或次佳的新的放置)。例如,机会性放置管理器330可实现迁移操作调度332以请求来自放置引擎310的被确定为是次佳放置(例如,较低评分的基础设施区类别)的资源的放置,诸如以下关于图6和图7讨论。迁移操作调度332然后可以确定哪些放置(如果执行的话)将会超过迁移优化或其它改进阈值(例如,当前放置评分与新的放置评分之间的差)。对于具有将会超过放置优化阈值的可能放置的那些资源,迁移操作调度332可以将对分区的迁移操作放入迁移操作队列336中。在一些实施方案中,迁移操作调度332可以指派迁移操作的优先级,使得更早执行更有益的迁移操作。
将资源从一个资源主机迁移到另一资源主机的迁移操作的执行可能是异步的。为了协调不同迁移操作的调度和/或执行,可以维护调度结构或其它数据集。在一些实施方案中,可以实现迁移操作队列,诸如迁移操作队列336。图4是根据一些实施方案的示出用于机会性资源迁移的迁移队列的逻辑框图。
迁移操作队列400可以维护在持久性存储装置中,诸如分布式或集中式数据存储区。在至少一些实施方案中,可利用提供事务控制的数据库系统或其它存储系统来维护迁移操作队列。例如,迁移操作队列400可作为另一基于网络的服务中的数据库表(诸如作为实现为其它存储服务240的部分的NoSQL数据存储区)来维护。迁移操作调度332可根据以下关于图6-9而描述的各种技术来定期更新迁移操作队列400。例如,迁移操作404可将状态从“进行中”改变为完成。可以维护迁移操作的各种元数据和信息,诸如卷识别符、目的地主机位置、状态、最后一次更新时间和/或优先级值。
迁移操作调度332还可将迁移操作从队列400移除,诸如被识别为完成或失败的那些迁移操作(例如,迁移操作404和408)。那些尚未执行的迁移操作可以具有在队列中存储的更新的优先级(例如,升高或降低优先级值)。最后一次更新时间可以指示对队列中的迁移操作的更新最后一次何时进行。例如,迁移操作502具有比其它迁移操作504、506和508更迟的更新时间(14:34:06),并且因此可以被认为是具有更近/更相关的数据。如以下关于图7讨论,可以将优先级值指派给迁移操作,以便机会性地调度迁移操作。在至少一些实施方案中,迁移操作队列400可以被实现为优先级队列,并且因此可选择来执行最高优先级迁移操作。
返回图3,可实现迁移工作者340以执行迁移操作。迁移工作者340可向机会性放置管理器330发送对执行迁移操作的请求。机会性放置管理器330可从迁移操作队列336拉出迁移操作并且将迁移操作指派给迁移工作者340进行指引。或者,在一些实施方案中,迁移工作者可直接访问迁移操作队列336以识别要执行的迁移操作。在一些实施方案中,迁移工作者340可以更新迁移操作队列336中的迁移操作的元数据(例如,将状态从“准备”改变为“进行中”)。
在一些实施方案中,可实现迁移操作扼制342以控制正在进行的迁移操作的数量。放置数据收集320可跟踪、维护或监视在资源主机310处正在进行的当前迁移操作、以及其它数据(诸如网络利用率、资源主机利用率或任何其它操作度量)和更新卷/服务状态322。迁移工作者340可访问卷/服务状态322以确定是否应当根据某一迁移限制扼制迁移操作。例如,在一些实施方案中,可包括一个或多个资源主机310、联网设备、路由器、交换机、电源或基于虚拟块的存储服务的其它组件或设备的网络地点可相对于执行所识别的资源迁移操作的效果来进行评估。可相对于网络地点强制执行不同迁移限制(例如,迁移操作数量、网络利用率、资源主机利用率等)。如果迁移操作超过对不同网络地点中的一个的限制,那么迁移工作者可对该迁移操作的执行进行扼制(例如,迁移操作可能被拒绝或延迟)。在一些实施方案中,迁移操作扼制可以被限制于特定基础设施区或网络地点(例如,被限制于将会涉及执行迁移的基础设施区或网络地点,诸如包括迁移操作的当前资源主机和目的地资源主机的区)。在一些实施方案中,机会性放置管理330可执行除迁移工作者340之外的或代替迁移工作者340的迁移操作扼制。
在各种实施方案中,迁移工作者340可以请求将从放置引擎310迁移的资源的更新放置,放置引擎可执行以上和以下讨论的各种技术为资源提供新的放置位置。
图5是根据一些实施方案的示出用于迁移资源(例如,数据卷的复制)的交互的逻辑框图。如上所述,放置数据收集320可从资源主机500扫查或请求主机/卷数据502,以便更新卷服务状态322。资源主机502可以将主机/卷数据发送到可聚合和/或更新卷/服务状态506的放置数据收集320。机会性放置管理330可从放置引擎310请求卷放置508。放置引擎310可以确定放置位置,诸如根据以上关于图3而描述的技术。卷放置512可以被提供给机会性放置管理330。对于超过迁移优化阈值的那些卷(或资源),可更新迁移操作队列514以添加新的迁移操作。过时或完成的迁移操作可从迁移队列336移除。
迁移工作者340可从机会性放置管理器330获得迁移操作516。机会性放置管理器330可评估迁移操作队列336以获得候选迁移操作518。来自迁移操作队列336的迁移操作520可返回522到迁移工作者340。迁移工作者340然后可以将迁移操作524指引到受影响的资源主机500。在一些实施方案中,迁移工作者340可以充当中介,并且在将资源发送到目的地资源主机前可从始发资源主机获得资源。图5中提供的各种交互和说明可使用各种标准或定制的通信技术来传达。例如,用于放置引擎310、机会性放置管理330、迁移操作队列336、卷服务状态322、资源主机500等的各种内部API可以各自具有相应接口(例如,编程接口,诸如API),并且图5中的相应通信可相应地被格式化。
以上关于图2-5所讨论的用于资源放置的机会性资源迁移的示例已经针对基于块的存储服务和/或其它基于网络的服务给出。将分布式资源的资源放置在资源主机上的各种其它类型或配置的分布式系统可以实现这些技术。例如,备份或归档分布式存储系统可以确定当前放置数据的更佳放置。可实现用于资源放置的机会性资源迁移的上述各种模块、组件、系统和或服务的不同配置可以被配置为评估当前资源放置、识别候选资源和迁移候选资源。图6是根据一些实施方案的示出用于机会性资源迁移以优化资源放置的各种方法和技术的高级流程图。这些技术可使用控制平面、机会性放置管理器或用于将当前放置资源放置在分布式系统中的其它资源主机处的其它组件来实现,如以上关于图2-5所述。
资源可以是许多不同类型资源中的一个,诸如各种类型的物理或虚拟计算资源、存储资源或联网资源中的一个。一些资源可以是构成分布式资源的一组资源的部分。例如,以上关于图2-5而描述的基于块的存储服务的数据卷可以是被实现为主复制和一个或多个从复制的分布式资源。在资源主机处的资源的初始放置可以在无法提供最佳放置位置时执行。机会性地将卷迁移到更好位置可根据在分布式系统中的资源的各种设计目标、保证或其它期望属性来改进个别资源性能和/或分布式系统性能。
如在610处指示,可根据改进或优化在不同资源主机间的资源放置的放置准则来评估托管在分布式系统的不同资源主机处的资源的当前放置。放置准则可以是各种分析、检查、计算以确定在资源主机处的资源的放置和/或整个在资源主机间的资源的放置(即使个别放置可不是最佳的)的可取性或最佳性。例如,放置准则可评估在资源主机处的资源利用率(例如,存储资源、处理资源、联网资源等)以确定该资源的当前放置是否相对于在当前资源主机处的资源的利用率是最佳的(例如,资源的IOP要求滥用使资源主机满足对执行其它任务或托管其它资源的IOP要求的能力)。
在一些实施方案中,可相对于构成分布式资源的其它资源来确定资源的当前放置的配置。考虑到在一个或多个主要复制失败的情况下资源充当数据的辅助或备份复制以服务对数据的访问请求的情景。在这种情景下,可期望将资源放置在不受主要复本的常见故障影响的位置。如果例如资源当前放置在连接到与托管复制资源的另一资源主机相同的电源的资源主机处,那么整个分布式资源的配置的评估可以指示该资源的迁移将会针对分布式资源优化该资源的放置,使得将资源中的一个(主数据或复制)不再放置在连接到与其它资源主机相同的电源的资源主机处。由于放置准则可调整为支持、防止或以其它方式考虑各种性能、故障和其它情景,放置准则的数量和类型可以变化,包括但不限于对资源连同其它资源(如果是分布式资源的部分)的配置、可用字节、IOP、或时隙、资源利用率平衡(诸如字节到IOP平衡)、对容量片段的影响、硬件/软件特性和/或各种期望的基于位置的配置。如以下关于图7讨论,在一些实施方案中,可连同可能目的地资源主机评分一起来确定当前放置适合性的评分或其它指示。
如在620处指示,至少部分基于评估,识别候选资源,以便使其机会性地从当前托管候选资源的相应资源主机迁移到目的地资源主机。在各种实施方案中,所识别的候选资源可能具有超过改进阈值的预期迁移。例如,可相对于放置准则将候选资源识别为次佳(例如,在不同放置准则中的一个或多个下,最佳放置的测试、分析或阈值失败)。可用于接收资源的资源主机可以被识别为相对于放置准则是最佳的(例如,提供可纠正失败测试、分析或阈值的位置)。配对可能超过被识别的改进阈值。在一些实施方案中,改进阈值可以用作初始成本效益分析决策,从而仅将那些资源识别为在被选择且执行迁移时将经历大幅放置改进的候选资源。改进阈值还可实现以确定候选迁移是否将会改进整个分布式系统的资源优化。例如,候选资源可以被识别以执行迁移操作,从而将会导致在不迁移其它资源的情况下进行其它资源的放置的改进。所识别的候选资源可以具有输入迁移队列或用于调度迁移操作的其它数据结构中的对应迁移操作条目,诸如以下讨论。以此方式,迁移操作可机会性地发生以在更好位置可用时迁移资源。
如在630处指示,可以将候选资源中的至少一个迁移到目的地资源主机,使得迁移改进在分布式系统中的资源的资源放置超过迁移操作阈值。改进可能针对的是所迁移的资源的放置和/或在整个分布式系统中的资源(例如,较少集中在某些位置的资源)的放置。机会性地执行迁移操作可允许对候选资源执行一些迁移操作,这些候选资源可能已经在其它资源被识别以进行迁移后识别。例如,在一些实施方案中,可应用优先级或排序模式来选择执行被识别的那些候选资源的迁移操作。优先级可能允许对资源、分布式资源(资源是分布式资源的部分)或整个分布式系统造成较大影响的那些迁移操作早于对放置做出较小改进的迁移执行。
可通过指引当前资源主机将资源传输到目的地资源主机来执行资源迁移。在一些实施方案中,中介、诸如图3中的工作者340可以在将资源发送到目的地资源主机前指引和/或接收资源。在至少一些实施方案中,资源可不进行物理迁移,而是进行逻辑迁移(例如,从当前主机禁用或移除资源,并且在目的地主机上实例化或创建资源)。在某些情景下,在候选资源主机被识别时识别的目的地资源主机可能不再是最佳的(或甚至是在可能临时添加其它资源时可用)。因此,在一些实施方案中,可以识别新的目的地资源主机。在一些实施方案中,对于作为分布式资源的部分的资源,如果当前正在迁移分布式资源中的另一资源,就可能不选择这个资源。也可实现用于限制迁移操作的扼制技术,如以上关于图3讨论。
图7是根据一些实施方案的示出用于将资源识别为要进行机会性资源迁移的候选的各种方法和技术的高级流程图。如在710处指示,可相对于一个或多个放置准则生成在资源主机处的资源的当前放置的放置评分。如上讨论,放置准则可以用于优化在分布式系统处的资源的放置。例如,放置准则可以包括对资源以及其它资源(如果是分布式资源的部分)的配置、可用字节、IOP、或时隙、资源利用率平衡(诸如字节到IOP平衡)、对容量片段的影响、硬件/软件特性和/或各种期望的基于位置的配置。考虑到资源是构成分布式资源的多个资源中的一个(例如,数据卷的主复制或从复制,如上讨论)的情景。将资源放置在与分布式资源的其它资源相同的基础设施区(例如,被连接到相同网络路由器)中可能是最佳的。放置评分可以反映关于当前放置相对于更佳情景(例如,相同网络路由器)的接近度的评分。考虑到对资源、资源主机和/或整个分布式系统的影响,评分可能是多种不同放置准则的组合物。
可初始评估资源主机以确定可托管资源的那些资源主机。例如,不满足某些条件的主机可被忽略。此类条件可以包括但不限于逻辑组(例如,识别要放置资源的特定服务器池)、托管资源的能力或容量(例如,用于存储数据的足够字节,足够IOP带宽、所安装的适当硬件和/或软件等)、位置或分集约束(例如,作为分布式资源的部分的资源无法放置在与托管分布式资源的另一资源的另一资源主机相同的服务器机架处的资源主机上)和/或明确地排除的资源主机(例如,黑名单)。可托管资源的其余可用资源主机然后可以被评估为可能目的地主机。例如,如在720处指示,可以生成在可能目的地资源主机处的资源的放置的放置评分。在至少一些实施方案中,可用资源主机子集可以生成评分作为可能放置,而其它实施方案中,可通过生成放置评分来考虑所有可用资源主机。用于在710生成评分的相同放置准则可以用于在720生成评分(例如,对资源以及其它资源(如果是分布式资源的部分)的配置、可用字节、IOP、或时隙、资源利用率平衡(诸如字节到IOP平衡)、对容量片段的影响、硬件/软件特性和/或各种期望的基于位置的配置)。
如在730处指示,可以确定资源的当前放置的放置评分与可能放置的评分之间的差,并且将差与优化阈值进行比较。例如,差可以是与阈值进行比较的值(差>0.3)。如果可能放置中任一者的差不超过优化阈值,如由从730的否定退出指示,那么可选择另一资源来进行评估,如在780处指示。然而,如果任何放置的差超过资源,那么资源可以被识别为要迁移的候选资源。形成最大差的可能目的地可以被识别为目的地主机(如果评估多于一个目的地主机的话)。
在至少一些实施方案中,可以指派用于执行资源向目的地资源主机的迁移的优先级,如在740处指示。可使用优先级因子来评分、加权、生成或以其它方式指示指派的优先级。例如,优先级因子可以包括当前目的地和可能目的地之间的差(例如,以有利于执行做出更大改进的那些迁移)、资源时效或历史(例如,较新资源不太可能长期存在,并且因此迁移可能不会同样重要)、执行迁移的大小或成本(例如,在资源是大数据卷时的延迟迁移、复杂的组件或服务、或其它资源密集迁移)和/或本地网络状态(例如,由于前台处理(例如服务客户端请求)而使迁移操作延迟在分布式系统内的可能受网络或其它资源约束的位置中执行)。这些因子连同其它因子可以被加权、组合、排序或选择性地应用以确定迁移操作的优先级。
可维护迁移队列或其它数据结构、资源或调度以指示要执行的迁移操作连同执行迁移操作的优先级。关于图7而描述的技术可以用于周期性地或不定期地更新迁移队列。例如,在分布式系统中的资源主机的利用率可能因以某种方式添加、移除或改变的资源而改变。因此,迁移决策可能改变。定期执行图7中的技术可用于根据在分布式系统的资源主机中发生的改变来更新迁移队列中的迁移操作或重新确定迁移队列中的迁移操作的优先级。如在750处指示,可以确定对资源的迁移操作是否是位于迁移队列中。如果这样,如由从750的肯定退出指示,那么可以更新迁移队列中的对资源的迁移操作。例如,在740可根据新的分析来改变优先级指派,可以改变迁移操作元数据,诸如迁移操作状态(例如,等待、进行中、完成)、时间戳、新的目的地主机或其它信息。在一些实施方案中,可不更新进行中的迁移操作(例如,以便保留用于在迁移队列中的后续分析的元数据)。如果资源并不在迁移队列中,那么如由从要素750的否定退出指示,可添加迁移操作以将资源迁移到目的地资源主机。然后,如在780处指示,可选择另一资源放置来评估。
迁移队列或指示要迁移的候选资源的其它结构可以用于迁移操作的调度和执行。例如,相较其它迁移操作来说,执行某些迁移操作可能提供更大益处(对于资源或分布式系统的操作来说)。图8是根据一些实施方案的示出用于选择和迁移候选资源的各种方法和技术的高级流程图。
如在810处指示,在一些实施方案中,可以评估迁移队列,迁移队列包括要执行的迁移操作。为迁移维护的各种信息可以用于过滤不需要当前执行的那些操作(例如,已经在进行的迁移操作、失败操作或不准备执行的另外操作)。在一些实施方案中,一些迁移操作可以在分布式系统的迁移操作被扼制或限制为特定数量的位置中执行。在一些实施方案中,至少部分基于评估,可根据指派给迁移队列中的迁移操作的相应的优先级从队列选择迁移操作来执行,如在820处指示。例如,迁移队列可为优先级队列,并且因此可从迁移队列选择最高优先级迁移操作。可以实现用于调度对迁移操作的执行的各种其它优先级或排序模式(例如,先进先出)。
在一些实施方案中,如在830处指示,在一些实施方案中,可识别目的地资源主机以接收迁移操作的候选资源。例如,可基于当前数据而非使用迁移操作被添加到迁移队列时选择的目的地资源主机对放置引擎或可提供新的或不同目的地资源主机的其它系统、服务或设备做出请求。或者,迁移队列中的迁移操作条目中指示的目的地资源主机可以被识别为目的地资源主机。
从当前资源主机到所识别的目的地资源主机的迁移操作可以是直接的,如在840处指示。例如,命令或指令可发送到当前位置的资源主机以将候选资源发送、复制、传达或以其它方式传输到目的地资源主机。在一些实施方案中,当前资源主机可以被配置为在无另外指引的情况下执行此传输。在至少一些实施方案中,资源可首先从当前资源主机获得,并且然后通过中介(诸如迁移工作者340)传输。迁移资源主机可以包括在目的地资源主机处执行或指引各种配置操作。例如,如以上关于图2-5讨论,涉及从复制和主复制的数据卷的复制的迁移可能涉及将目的地资源主机配置为充当数据卷的复制的从复制或主复制,这取决于已迁移的复制类型。
图8所示技术可由一个或多个不同系统或设备执行。例如,机会性迁移管理器(诸如图3中的330)可以执行迁移队列评估并且选择要执行的迁移操作,而迁移工作者(诸如图3中的340)则可以执行目的地资源主机识别以便接收作为迁移操作的部分的资源并且指引迁移操作。由于迁移可以异步执行,因此迁移工作者可以指引资源迁移操作,并且然后获得和指引另一迁移操作。在一些实施方案中,单个迁移管理器可以执行所有以上讨论的各种技术。或者,迁移工作者可以执行以上技术。因此,先前示例不意图是限制性的。
如以上关于图4指出,迁移队列或指示要迁移的候选资源的其它结构可以维护候选资源的状态信息。对迁移队列中的状态信息的改变可导致迁移队列中的某些迁移操作过时。图9是根据一些实施方案的示出用于将候选资源从迁移队列移除的各种方法和技术的高级流程图。如在910处指示,可以评估迁移资源到目的地资源主机的迁移操作队列(例如,图4中的迁移队列400)中的迁移操作。例如,可评估迁移队列中的每个条目以识别应当从迁移队列移除的那些迁移操作。要素920和930提供可触发迁移操作移除的条件示例。
在分布式系统中的资源主机的状态可能频繁发生改变。资源可以在资源主机的操作或利用中创建、移除或改变。这种动态景观可能更改对资源迁移的更早决策。例如,如上图7讨论,如果候选资源迁移的优先级改变,那么可更新包括在迁移队列中的优先级以反映迁移的当前优先级。在一些实施方案中,一些迁移操作可能不再是最佳的。如在920处指示,如果迁移操作变得失去时效,那么如由从920的肯定退出指示,可从队列移除迁移操作,如在950处指示。
在各种实施方案中,失去时效的迁移操作可为可不再是最佳执行的操作(例如,根据以上讨论的放置准则)。例如,失去时效的迁移操作可能尚未更新新的优先级或状态信息。如果在最后一次执行迁移队列的优先级扫查时没有更新迁移操作的优先级和/或其它状态信息,那么这可指示迁移操作可能不再是最佳执行的。可以维护迁移操作的指示最后一次更新时间的时间戳或其它指示。在一些实施方案中,处于“进行中”状态下的迁移操作可是例外的,它可能不具有更新的时间戳。在一些实施方案中,可以在时间戳和生存时间阈值之间进行比较,如果超过阈值,那么这将指示迁移操作是失去时效的。在一些实施方案中,标记或其它指示(例如,墓碑)可放置在迁移队列中的迁移操作的条目中,指示迁移操作是失去时效的并且应当移除。在某些情景下,指示迁移操作已经开始但失败或以其它方式没有完成(例如,通过将在“迁移”状态下的时间与迁移时间阈值进行比较)的迁移操作。
如在930处指示,如果迁移操作完成,那么如由从930的肯定退出指示,可从迁移队列移除迁移操作,如在950处指示。例如,迁移操作状态可在迁移队列的优先级扫查期间改变以更新迁移操作的状态为完成。
由于一些迁移操作可能花费比其它更长的时间(例如,一些资源可能大于其它资源),因此迁移操作可能保留在迁移队列中,直到满足移除条件(诸如由要素920和930所示的)。因此,如果并不满足移除条件,那么可选择队列中的另一迁移操作来进行评估,如在940处指示。可执行图9所示技术直到已评估了迁移队列中的所有迁移操作。可能经历一段时间之后才能再次评估迁移队列以移除迁移操作。
本公开的实施方案可以根据以下条款进行描述:
1.一种分布式系统,所述分布式系统包括:
多个资源主机,所述多个资源主机分别托管多个资源中的一个或多个;
机会性放置管理器,所述机会性放置管理器被配置为:
根据一个或多个放置准则评估所述多个资源的当前放置,其中所述一个或多个放置准则改进在所述分布式系统的所述多个资源主机间的资源放置;
至少部分基于所述评估,识别所述多个资源中的一个或多个候选资源,以便从当前托管所述一个或多个候选资源的所述相应资源主机迁移到所述多个资源主机中的相应目的地资源主机,其中所述多个资源中的所述一个或多个候选资源的预期迁移超过相对于所述一个或多个放置准则的改进阈值;以及
指引迁移操作以便将所述一个或多个候选资源中的至少一个迁移到所述相应目的地资源主机,其中所述至少一个候选资源向所述相应目的地资源主机的所述迁移改进所述多个资源的资源放置超过所述改进阈值。
2.如条款1所述的系统,
其中为了识别所述多个资源中的所述一个或多个候选资源,所述机会性放置管理器被配置为:
确定所述一个或多个候选资源的迁移的相应的优先级;
将对所述一个或多个候选资源的相应迁移操作放入队列中;
其中所述机会性放置管理器还配置为:
至少部分基于对所述队列的评估,根据指派给所述一个或多个候选资源的所述相应的优先级选择所述至少一个候选资源进行迁移。
3.如条款2所述的系统,其还包括:
多个迁移工作者;
其中,为了指引所述迁移操作以便迁移所述至少一个候选资源,所述机会性放置管理器被配置为将所述迁移操作发送给所述多个迁移工作者中的一个来执行。
4.如条款1所述的系统,其中所述分布式系统是基于虚拟块的存储服务,其中所述多个资源是针对所述基于虚拟块的存储服务的多个客户端维护的多个数据卷。
5.一种方法,所述方法包括:
通过一个或多个计算设备,执行:
根据一个或多个放置准则评估托管在分布式系统的多个资源主机中的相应资源主机处的多个资源的当前放置,其中所述一个或多个放置准则改进在所述分布式系统的所述多个资源主机间的资源放置;
至少部分基于所述评估,识别所述多个资源中的一个或多个候选资源,以便从当前托管所述一个或多个候选资源的所述相应资源主机迁移到所述多个资源主机中的相应目的地资源主机,其中所述多个资源中的所述一个或多个候选资源的预期迁移超过改进阈值;以及
将所述一个或多个候选资源中的至少一个迁移到所述相应目的地资源主机,其中所述至少一个候选资源向所述相应目的地资源主机的所述迁移改进所述多个资源的资源放置超过所述改进阈值。
6.如条款5所述的方法,
其中识别所述多个资源中的一个或多个候选资源包括指派执行所述一个或多个候选资源的迁移的相应的优先级;以及
其中所述方法还包括根据指派给所述一个或多个候选资源的所述相应的优先级选择所述至少一个候选资源进行迁移。
7.如条款6所述的方法,其还包括:
根据对所述多个资源的所述当前放置的另一评估更新所述一个或多个候选资源的所述相应的优先级;以及
根据所述一个或多个候选资源的所述已更新的相应的优先级选择所述一个或多个候选资源中的另一候选资源进行迁移。
8.如条款6所述的方法,
其中识别所述多个资源中的所述一个或多个候选资源还包括将对所述一个或多个候选资源的相应迁移操作放入队列中;以及
其中基于对所述队列的评估执行:根据指派给所述一个或多个候选资源的所述相应的优先级选择所述至少一个候选资源进行迁移。
9.如条款8所述的方法,其还包括根据对所述多个资源的所述当前放置的另一评估将所述一个或多个候选资源中的至少一个从所述队列移除。
10.如条款5所述的方法,其中根据所述一个或多个放置准则评估托管在所述分布式系统的所述多个资源主机中的所述相应资源主机处的所述多个资源的当前放置包括:
根据所述一个或多个放置准则生成所述多个资源的所述当前放置的相应放置评分;
其中识别所述多个资源中的所述一个或多个候选资源包括:
根据所述一个或多个放置准则生成所述多个资源的一个或多个可能放置的相应放置评分;
计算所述当前放置的所述相应放置评分与一个或多个可能放置的所述相应放置评分之间的相应评分差;以及
将具有超过所述改进阈值的相应评分差的那些资源确定为所述一个或多个候选资源。
11.如条款5所述的方法,其中所述资源是实现分布式资源的多个资源中的一个,其中所述一个或多个放置准则包括对所述分布式资源的所述多个资源的当前放置配置的评估。
12.如条款5所述的方法,其中将所述一个或多个候选资源中的至少一个迁移到所述相应目的地资源主机包括识别所述目的地资源主机。
13.如条款5所述的方法,其中将所述至少一个候选资源迁移到所述相应目的地资源主机改进所述多个资源中的另一资源的放置。
14.如条款5所述的方法,其中所述分布式系统是基于网络的服务,其中针对所述基于网络的服务的多个客户端在所述基于网络的服务处维护所述多个资源,并且其中所述评估、所述识别、所述迁移是作为所述基于网络的服务的后台服务的部分来执行。
15.一种非暂时性计算机可读存储介质,所述非暂时性计算机可读存储介质存储程序指令,所述程序指令当通过一个或多个计算设备执行时致使所述一个或多个计算设备实现:
根据一个或多个放置准则评估托管在分布式系统的多个资源主机中的相应资源主机处的多个资源的当前放置,其中所述一个或多个放置准则改进在所述分布式系统的所述多个资源主机间的资源放置;
至少部分基于所述评估,识别所述多个资源中的一个或多个候选资源,以便从当前托管所述一个或多个候选资源的所述相应资源主机迁移到所述多个资源主机中的相应目的地资源主机,其中所述多个资源中的所述一个或多个候选资源的预期迁移超过改进阈值;以及
将所述一个或多个候选资源中的至少一个迁移到所述相应目的地资源主机,其中所述至少一个候选资源向所述相应目的地资源主机的所述迁移改进所述多个资源的资源放置超过所述改进阈值。
16.如条款15所述的非暂时性计算机可读存储介质,
其中,在识别所述多个资源中的一个或多个候选资源时,所述程序指令致使所述一个或多个计算设备实现指派执行所述一个或多个候选资源的迁移的相应的优先级;以及
其中所述程序指令还致使所述一个或多个计算设备实现根据指派给所述一个或多个候选资源的所述相应的优先级选择所述至少一个候选资源进行迁移。
17.如条款16所述的非暂时性计算机可读存储介质,其中所述程序指令致使所述一个或多个计算设备进一步实现:
根据对所述多个资源的所述当前放置的另一评估更新所述一个或多个候选资源的所述相应的优先级;以及
根据所述一个或多个候选资源的所述已更新的相应的优先级选择所述一个或多个候选资源中的另一候选资源进行迁移。
18.如条款16所述的非暂时性计算机可读存储介质,
其中,在识别所述多个资源中的所述一个或多个候选资源时,所述程序指令致使所述一个或多个计算设备进一步实现将对所述一个或多个候选资源的相应迁移操作放入队列中;以及
其中基于对所述队列的评估执行:根据指派给所述一个或多个候选资源的所述相应的优先级选择所述至少一个候选资源进行迁移。
19.如条款18所述的非暂时性计算机可读存储介质,其中所述程序指令致使所述一个或多个计算设备实现:
确定对所述至少一个候选资源的所述相应迁移操作完成;以及
响应于确定所述相应迁移操作完成,将所述相应迁移操作从所述迁移队列移除。
20.如条款15所述的非暂时性计算机可读存储介质,
其中,在根据所述一个或多个放置准则评估托管在所述分布式系统的所述多个资源主机中的所述相应资源主机处的所述多个资源的当前放置时,所述程序指令致使所述一个或多个计算设备实现根据所述一个或多个放置准则生成所述多个资源的所述当前放置的相应放置评分;
其中,在识别所述多个资源中的所述一个或多个候选资源时,所述程序指令致使所述一个或多个计算设备实现:
根据所述一个或多个放置准则生成所述多个资源的一个或多个可能放置的相应放置评分;
计算所述当前放置的所述相应放置评分与一个或多个可能放置的所述相应放置评分之间的相应评分差;以及
将具有超过所述改进阈值的相应评分差的那些资源确定为所述一个或多个候选资源。
21.如条款15所述的非暂时性计算机可读存储介质,其中所述分布式系统是基于虚拟块的存储服务,并且其中所述多个资源是针对所述基于虚拟块的存储服务的多个客户端维护的数据卷。
本文所述方法可以在各种实施方案中通过硬件和软件的任何组合实现。例如,在一个实施方案中,方法可由计算机系统(例如,图10中的计算机系统)实现,计算机系统包括一个或多个处理器,一个或多个处理器执行被存储在耦接到处理器的计算机可读存储介质上的程序指令。程序指令可以被配置为实现本文所述功能(例如,各种服务器、资源主机、控制平面、管理器和/或其它组件的功能,诸如实现本文所述基于块的存储服务的那些)。如附图所示和本文所述的各种方法表示示例性方法实施方案。可以对任何方法的顺序进行改变,并且可以对各种元素进行添加、重排、组合、省略、修改等。
可以在能够与各种其它设备交互的一个或多个计算机系统上执行如本文所述的用于优化资源放置的机会性资源迁移的实施方案。图10是根据各种实施方案的示出示例性计算机系统的框图。例如,计算机系统1000可以被配置为在不同实施方案中实现计算集群、数据存储区和/或客户端的存储和/或计算节点。计算机系统1000可以是各种类型的设备中任一个,包括但不限于个人计算机系统、桌上型计算机、膝上型计算机或笔记本计算机、大型计算机系统、手持式计算机、工作站、网络计算机、消费者设备、应用服务器、存储设备、电话、移动电话或一般地任何类型的计算设备。
计算机系统1000包括可经由输入/输出(I/O)接口1030耦接到系统存储器1020的一个或多个处理器1010(一个或多个处理器中任一个都可包括可为单线程或多线程的多个核心)。计算机系统1000还包括耦接到I/O接口1030的网络接口1040。在各种实施方案中,计算机系统1000可以是包括一个处理器1010的单处理器系统或包括若干处理器1010(例如,两个、四个、八个或另一适合数量)的多处理器系统。处理器1010可以是能够执行指令的任何合适的处理器。例如,在各种实施方案中,处理器1010可以是实现各种指令集架构(ISA)(诸如x86、PowerPC、SPARC或MIPS ISA或任何其它合适ISA)中任一个的通用或嵌入式处理器。在多处理器系统中,处理器1010中每一个可以共同但未必实现相同ISA。计算机系统1000还包括用于通过通信网络(例如,互联网,LAN等)与其它系统和/或组件通信的一个或多个网络通信设备(例如,网络接口1040)。
在所示实施方案中,计算机系统1000还包括一个或多个持久性存储设备1060和/或一个或多个I/O设备1080。在各种实施方案中,持久性存储设备1060可对应于磁盘驱动器、磁带驱动器、固态存储器、其它大容量存储设备、基于块的存储设备或任何其它持久性存储设备。计算机系统1000(或其上运行的分布式应用或操作系统)可根据需要将指令和/或数据存储在持久性存储设备1060中,并且可根据需要而检索所存储的指令和/或数据。例如,在一些实施方案中,计算机系统1000可以托管存储系统服务器节点,并且持久性存储装置1060可以包括附接到这个服务器节点的SSD。
计算机系统1000包括被配置为存储可由处理器1010访问的指令和数据的一个或多个系统存储器1020。在各种实施方案中,系统存储器1020可以使用任何合适的存储器技术(例如,高速缓存、静态随机存取存储器(SRAM)、DRAM、RDRAM、EDO RAM、DDR 10 RAM、同步动态RAM(SDRAM)、Rambus RAM、EEPROM、非易失性/闪存型存储器或任何其它类型的存储器中的一个或多个)实现。系统存储器1020可以包含可由处理器1010执行以实现本文所述的方法和技术的程序指令1025。在各种实施方案中,程序指令1025可以平台本机二进制、任何解译语言(诸如JavaTM字节代码)或任何其它语言(诸如C/C++、Java TM等)、或者以上各项的任何组合进行编码。例如,在所示实施方案中,在不同实施方案中,程序指令1025包括可执行以实现资源主机的功能的程序指令。在一些实施方案中,程序指令1025可以实现多个单独的客户端、节点和/或其它组件。
在一些实施方案中,程序指令1025可以包括可执行以实现操作系统(未示出)的指令,操作系统可以是各种操作系统(诸如UNIX、LINUX、SolarisTM、MacOSTM、WindowsTM等)中任一个。任何或全部的程序指令1025可以作为计算机程序产品或软件被提供,所述计算机程序产品或软件可包括其上存储有指令的非暂时性计算机可读存储介质,所述指令可用于对计算机系统(或其它电子设备)进行编程以执行根据各种实施方案的过程。非暂时性计算机可读存储介质可以包括用于以机器(例如,计算机)可读的形式(例如,软件、处理应用)存储信息的任何机构。一般来说,非暂时性计算机可访问介质可以包括计算机可读存储介质或诸如磁性介质或光学介质的存储器介质,例如,经由I/O接口1030耦接到计算机系统1000的磁盘或DVD/CD-ROM。非暂时性计算机可读存储介质还可包括诸如RAM(例如,SDRAM、DDRSDRAM、RDRAM、SRAM等)、ROM等任何易失性或非易失性介质,在计算机系统1000的一些实施方案中,可包括所述易失性或非易失性介质作为系统存储器1020或另一类型的存储器。在其它实施方案中,程序指令可使用经由通信介质(诸如网络和/或无线链路)传递的光学、声学或其它形式的传播信号(例如,载波、红外信号、数字信号等)来传达,诸如可经由网络接口1040来实现。
在一些实施方案中,系统存储器1020可以包括可如本文所述的那样配置的数据存储区1045。一般来说,系统存储器1020(例如,系统存储器1020内的数据存储区1045)、持久性存储装置1060和/或远程存储装置1070可以存储数据块、数据块的复制、与数据块相关联的元数据和/或其状态、配置信息和/或可用于实现本文所述的方法和技术的任何其它信息。
在一个实施方案中,I/O接口1030可以被配置为协调处理器1010、系统存储器1020和系统中的任何外围设备之间的I/O流量,包括通过网络接口1040或其它外围接口。在一些实施方案中,I/O接口1030可以执行任何必要协议、定时或将来自一个组件(例如,系统存储器1020)的数据信号转换成适于另一组件(例如,处理器1010)使用的格式的其它数据变换。例如,在一些实施方案中,I/O接口1030可以包括对通过诸如外围组件互连(PCI)总线标准或通用串行总线(USB)标准的变型等各种类型的外围总线来附接的设备的支持。例如,在一些实施方案中,I/O接口1030的功能可以分成两个或更多个单独组件,诸如北桥和南桥。另外,在一些实施方案中,I/O接口1030(诸如与系统存储器1020的接口)的一些或全部的功能可以直接并入到处理器1010中。
例如,网络接口1040可以被配置为允许在计算机系统1000和附接到网络的其它设备(诸如其它计算机系统1090)之间交换数据。另外,网络接口1040可以被配置为允许计算机系统1000与各种I/O设备1050和/或远程存储装置1070之间的通信。在一些实施方案中,输入/输出设备1050可以包括一个或多个显示终端、键盘、小键盘、触摸板、扫描设备、语音或光学识别设备或适于由一个或多个计算机系统1000输入或检索数据的任何其它设备。多个输入/输出设备1050可以存在于计算机系统1000中,或者可以分布在包括计算机系统1000的分布式系统的各种节点上。在一些实施方案中,类似输入/输出设备可与计算机系统1000分开,并且可通过有线或无线连接(诸如通过网络接口1040)与包括计算机系统1000的分布式系统的一个或多个节点交互。网络接口1040可以共同支持一个或多个无线网络协议(例如,Wi-Fi/IEEE 802.11或另一无线联网标准)。然而,例如,在各种实施方案中,网络接口1040可经由任何合适的有线或无线通用数据网络(诸如其它类型的以太网)来支持通信。另外,网络接口1040可经由电信/电话网络(诸如模拟语音网络或数字光纤通信网络)、经由存储区域网络(诸如光纤通道SAN)、或经由任何其它合适类型的网络和/或协议来支持通信。在各种实施方案中,计算机系统1000可以包括相较如图10所示的那些更多、更少或不同的组件(例如,显示器、视频卡、音频卡、外围设备、其它网络接口(诸如ATM接口、以太网接口、帧中继接口等))。
应当注意,本文所述分布式系统实施方案中任一个、或它们组件中任一个可以被实现为一个或多个基于网络的服务。例如,在计算服务内的计算集群可以将采用本文所述分布式计算系统的计算和/或存储服务和/或其它类型服务呈现给客户端作为基于网络的服务。在一些实施方案中,基于网络的服务可由软件和/或硬件系统实现,软件和/或硬件系统被设计为支持通过网络而进行的可互操作机器-机器交互。基于网络的服务可以具有以机器可处理的格式描述的接口,诸如Web服务描述语言(WSDL)。其它系统可以基于网络的服务的接口的描述规定的方式与基于网络的服务进行交互。例如,基于网络的服务可以限定其它系统可调用的各种操作,并且可以限定其它系统在请求各种操作时可预期符合的特定应用编程接口(API)。
在各种实施方案中,可以通过使用包括与基于网络的服务请求相关联的参数和/或数据的消息来请求或调用基于网络的服务。这个消息可以根据特定标记语言(诸如可扩展标记语言(XML))来格式化,和/或可以使用协议(诸如简单对象访问协议(SOAP))进行封装。为了执行基于网络的服务请求,使用基于互联网的应用层传输协议(诸如超文本传输协议(HTTP)),基于网络的服务客户端可以汇编包括该请求的消息并且将消息传递到对应于基于网络的服务的可寻址端点(例如,统一资源定位符(URL))。
在一些实施方案中,可使用表述性状态传输(“RESTful”)技术而非基于消息的技术来实现基于网络的服务。例如,可通过包括在HTTP方法(诸如PUT、GET或DELETE)中而非封装在SOAP消息内的参数来调用根据RESTful技术而实现的基于网络的服务。
虽然已相当详细地描述以上实施方案,但是在完全了解以上公开内容后,对于本领域的技术人员来说,许多变化和修改可能将变得明显。预期将所附权利要求书解释为包含所有此类修改和改变,并且因此,以上描述被认为是说明性的而非限制性的意义。
Claims (15)
1.一种分布式系统,包括:
多个资源主机,所述多个资源主机分别托管多个资源中的一个或多个;
机会性放置管理器,所述机会性放置管理器被配置为:
根据一个或多个放置准则评估所述多个资源的当前放置,其中所述一个或多个放置准则包括对所述多个资源的当前放置配置的评估用以至少改进在所述分布式系统的所述多个资源主机间作为整体的所述多个资源的资源放置;
至少部分基于所述评估,识别所述多个资源中的一个或多个候选资源,以便从当前托管所述一个或多个候选资源的相应资源主机迁移到所述多个资源主机中的相应目的地资源主机,其中所述多个资源中的所述一个或多个候选资源的预期迁移超过相对于所述一个或多个放置准则的改进阈值;以及
指引迁移操作以便将所述一个或多个候选资源中的至少一个迁移到所述相应目的地资源主机,其中所述至少一个候选资源向所述相应目的地资源主机的所述迁移改进所述多个资源主机的资源放置超过所述改进阈值。
2.如权利要求1所述的系统,
其中为了识别所述多个资源中的所述一个或多个候选资源,所述机会性放置管理器被配置为:
确定所述一个或多个候选资源的迁移的相应的优先级;
将对所述一个或多个候选资源的相应迁移操作放入队列中;
其中所述机会性放置管理器还配置为:
至少部分基于对所述队列的评估,根据指派给所述一个或多个候选资源的所述相应的优先级选择所述至少一个候选资源进行迁移。
3.如权利要求2所述的系统,其还包括:
多个迁移工作者;
其中,为了指引所述迁移操作以便迁移所述至少一个候选资源,所述机会性放置管理器被配置为将所述迁移操作发送给所述多个迁移工作者中的一个来执行。
4.一种用于迁移资源的方法,包括:
通过一个或多个计算设备,执行:
根据一个或多个放置准则评估托管在分布式系统的多个资源主机中的相应资源主机处的多个资源的当前放置,其中所述一个或多个放置准则包括对所述多个资源的当前放置配置的评估用以至少改进在所述分布式系统的所述多个资源主机间作为整体的所述多个资源的资源放置;
至少部分基于所述评估,识别所述多个资源中的一个或多个候选资源,以便从当前托管所述一个或多个候选资源的所述相应资源主机迁移到所述多个资源主机中的相应目的地资源主机,其中所述多个资源中的所述一个或多个候选资源的预期迁移超过改进阈值;以及
将所述一个或多个候选资源中的至少一个迁移到所述相应目的地资源主机,其中所述至少一个候选资源向所述相应目的地资源主机的所述迁移改进所述多个资源的资源放置超过所述改进阈值。
5.如权利要求4所述的方法,
其中识别所述多个资源中的一个或多个候选资源包括指派执行所述一个或多个候选资源的迁移的相应的优先级;以及
其中所述方法还包括根据指派给所述一个或多个候选资源的所述相应的优先级选择所述至少一个候选资源进行迁移。
6.如权利要求5所述的方法,其还包括:
根据对所述多个资源的所述当前放置的另一评估更新所述一个或多个候选资源的所述相应的优先级;以及
根据所述一个或多个候选资源的经更新的相应的优先级选择所述一个或多个候选资源中的另一候选资源进行迁移。
7.如权利要求5所述的方法,
其中识别所述多个资源中的所述一个或多个候选资源还包括将对所述一个或多个候选资源的相应迁移操作放入队列中;以及
其中基于对所述队列的评估执行:根据指派给所述一个或多个候选资源的所述相应的优先级选择所述至少一个候选资源进行迁移。
8.如权利要求7所述的方法,其还包括根据对所述多个资源的所述当前放置的另一评估将所述一个或多个候选资源中的至少一个从所述队列移除。
9.如权利要求4所述的方法,其中根据所述一个或多个放置准则评估托管在所述分布式系统的所述多个资源主机中的所述相应资源主机处的所述多个资源的当前放置包括:
根据所述一个或多个放置准则生成所述多个资源的所述当前放置的相应放置评分;
其中识别所述多个资源中的所述一个或多个候选资源包括:
根据所述一个或多个放置准则生成所述多个资源的一个或多个可能放置的相应放置评分;
计算所述当前放置的所述相应放置评分与一个或多个可能放置的所述相应放置评分之间的相应评分差;以及
将具有超过所述改进阈值的相应评分差的那些资源确定为所述一个或多个候选资源。
10.如权利要求4所述的方法,其中所述资源是实现分布式资源的多个资源中的一个,其中所述一个或多个放置准则包括对所述分布式资源的所述多个资源的当前放置配置的评估。
11.如权利要求4所述的方法,其中所述分布式系统是基于网络的服务,其中针对所述基于网络的服务的多个客户端在所述基于网络的服务处维护所述多个资源,并且其中所述评估、所述识别、所述迁移是作为所述基于网络的服务的后台服务的部分来执行。
12.一种非暂时性计算机可读存储介质,所述非暂时性计算机可读存储介质存储程序指令,所述程序指令当通过一个或多个计算设备执行时致使所述一个或多个计算设备实现:
根据一个或多个放置准则评估托管在分布式系统的多个资源主机中的相应资源主机处的多个资源的当前放置,其中所述一个或多个放置准则包括对所述多个资源的当前放置配置的评估用以至少改进在所述分布式系统的所述多个资源主机间作为整体的所述多个资源的资源放置;
至少部分基于所述评估,识别所述多个资源中的一个或多个候选资源,以便从当前托管所述一个或多个候选资源的所述相应资源主机迁移到所述多个资源主机中的相应目的地资源主机,其中所述多个资源中的所述一个或多个候选资源的预期迁移超过改进阈值;以及
将所述一个或多个候选资源中的至少一个迁移到所述相应目的地资源主机,其中所述至少一个候选资源向所述相应目的地资源主机的所述迁移改进所述多个资源的资源放置超过所述改进阈值。
13.如权利要求12所述的非暂时性计算机可读存储介质,
其中,在识别所述多个资源中的一个或多个候选资源时,所述程序指令致使所述一个或多个计算设备实现指派执行所述一个或多个候选资源的迁移的相应的优先级;以及
其中所述程序指令还致使所述一个或多个计算设备实现根据指派给所述一个或多个候选资源的所述相应的优先级选择所述至少一个候选资源进行迁移;
根据对所述多个资源的所述当前放置的另一评估更新所述一个或多个候选资源的所述相应的优先级;以及
根据所述一个或多个候选资源的经更新的相应的优先级选择所述一个或多个候选资源中的另一候选资源进行迁移。
14.如权利要求12所述的非暂时性计算机可读存储介质,
其中,在根据所述一个或多个放置准则评估托管在所述分布式系统的所述多个资源主机中的所述相应资源主机处的所述多个资源的当前放置时,所述程序指令致使所述一个或多个计算设备实现根据所述一个或多个放置准则生成所述多个资源的所述当前放置的相应放置评分;
其中,在识别所述多个资源中的所述一个或多个候选资源时,所述程序指令致使所述一个或多个计算设备实现:
根据所述一个或多个放置准则生成所述多个资源的一个或多个可能放置的相应放置评分;
计算所述当前放置的所述相应放置评分与一个或多个可能放置的所述相应放置评分之间的相应评分差;以及
将具有超过所述改进阈值的相应评分差的那些资源确定为所述一个或多个候选资源。
15.如权利要求12所述的非暂时性计算机可读存储介质,其中所述分布式系统是基于虚拟块的存储服务,并且其中所述多个资源是针对所述基于虚拟块的存储服务的多个客户端维护的数据卷。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/642,445 | 2015-03-09 | ||
US14/642,445 US10715460B2 (en) | 2015-03-09 | 2015-03-09 | Opportunistic resource migration to optimize resource placement |
PCT/US2016/021580 WO2016145091A1 (en) | 2015-03-09 | 2016-03-09 | Opportunistic resource migration to optimize resource placement |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107430528A CN107430528A (zh) | 2017-12-01 |
CN107430528B true CN107430528B (zh) | 2021-06-04 |
Family
ID=55590159
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680014429.3A Active CN107430528B (zh) | 2015-03-09 | 2016-03-09 | 机会性资源迁移以优化资源放置 |
Country Status (9)
Country | Link |
---|---|
US (1) | US10715460B2 (zh) |
EP (1) | EP3268860A1 (zh) |
JP (2) | JP2018514018A (zh) |
KR (1) | KR102031471B1 (zh) |
CN (1) | CN107430528B (zh) |
AU (2) | AU2016229135A1 (zh) |
CA (1) | CA2978889C (zh) |
SG (1) | SG11201707091TA (zh) |
WO (1) | WO2016145091A1 (zh) |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10505862B1 (en) * | 2015-02-18 | 2019-12-10 | Amazon Technologies, Inc. | Optimizing for infrastructure diversity constraints in resource placement |
US11336519B1 (en) * | 2015-03-10 | 2022-05-17 | Amazon Technologies, Inc. | Evaluating placement configurations for distributed resource placement |
US10721181B1 (en) * | 2015-03-10 | 2020-07-21 | Amazon Technologies, Inc. | Network locality-based throttling for automated resource migration |
US10491667B1 (en) * | 2015-03-16 | 2019-11-26 | Amazon Technologies, Inc. | Customized memory modules in multi-tenant service provider systems |
US9740510B2 (en) * | 2015-03-31 | 2017-08-22 | Alcatel Lucent | Minimizing overhead over-provisioning costs in machine configurations |
US9710178B2 (en) * | 2015-04-10 | 2017-07-18 | International Business Machines Corporation | Optimizing volume placement based upon desired response time and priority |
WO2016163025A1 (ja) * | 2015-04-10 | 2016-10-13 | 株式会社日立製作所 | データ量削減機能に関する課金額を算出する方法及び管理システム |
US10216744B2 (en) * | 2015-05-01 | 2019-02-26 | Microsoft Technology Licensing, Llc | Data migration to a cloud computing system |
US10938655B2 (en) * | 2016-01-26 | 2021-03-02 | International Business Machines Corporation | Enterprise cloud garbage collector |
CN107181774B (zh) * | 2016-03-09 | 2020-11-20 | 伊姆西Ip控股有限责任公司 | 分布式数据中心之间的数据移动 |
US10455007B2 (en) * | 2016-07-14 | 2019-10-22 | International Business Machines Corporation | Managing asset placement with respect to a distributed computing environment having a set of hosts |
US10620992B2 (en) | 2016-08-29 | 2020-04-14 | TidalScale, Inc. | Resource migration negotiation |
US10514847B2 (en) | 2016-12-28 | 2019-12-24 | Amazon Technologies, Inc. | Data storage system with multiple durability levels |
US10484015B2 (en) | 2016-12-28 | 2019-11-19 | Amazon Technologies, Inc. | Data storage system with enforced fencing |
US20180321981A1 (en) * | 2017-05-04 | 2018-11-08 | Huawei Technologies Co., Ltd. | System and method for self organizing data center |
US10579274B2 (en) | 2017-06-27 | 2020-03-03 | TidalScale, Inc. | Hierarchical stalling strategies for handling stalling events in a virtualized environment |
US10817347B2 (en) | 2017-08-31 | 2020-10-27 | TidalScale, Inc. | Entanglement of pages and guest threads |
CN108228326A (zh) * | 2017-12-29 | 2018-06-29 | 深圳乐信软件技术有限公司 | 批量任务处理方法和分布式系统 |
US20190306236A1 (en) * | 2018-03-29 | 2019-10-03 | Servicenow, Inc. | Insight for cloud migration and optimization |
US11567664B2 (en) | 2018-04-16 | 2023-01-31 | International Business Machines Corporation | Distributing data across a mixed data storage center |
US10768835B1 (en) * | 2018-06-27 | 2020-09-08 | Amazon Technologies, Inc. | Opportunistic storage service |
US11121981B1 (en) * | 2018-06-29 | 2021-09-14 | Amazon Technologies, Inc. | Optimistically granting permission to host computing resources |
CN109120678B (zh) | 2018-07-26 | 2021-05-14 | 北京百度网讯科技有限公司 | 用于分布式存储系统的服务托管的方法和装置 |
JP6842447B2 (ja) | 2018-09-12 | 2021-03-17 | 株式会社日立製作所 | リソース割当ての最適化を支援するシステム及び方法 |
CN109325016B (zh) * | 2018-09-12 | 2021-04-20 | 杭州朗和科技有限公司 | 数据迁移方法、装置、介质及电子设备 |
US11113119B2 (en) | 2018-09-17 | 2021-09-07 | International Business Machines Corporation | Managing computer resources |
US11188368B2 (en) | 2018-10-31 | 2021-11-30 | Nutanix, Inc. | Asynchronous workload migration control |
US11194620B2 (en) | 2018-10-31 | 2021-12-07 | Nutanix, Inc. | Virtual machine migration task management |
AU2020207794B2 (en) * | 2019-02-27 | 2021-11-18 | Singapore Telecommunications Limited | System for optimising data communication |
US10949241B2 (en) | 2019-03-08 | 2021-03-16 | Google Llc | Cost-efficient high-availability multi-single-tenant services |
KR102427473B1 (ko) * | 2020-09-29 | 2022-08-01 | 한국전자기술연구원 | 마이크로 데이터센터내 가용 자원상태 기반 워크로드 예측 정확도 증가 방법 |
US11375006B1 (en) | 2020-12-28 | 2022-06-28 | Pensando Systems, Inc. | Methods and systems for rating workloads based on network interface device resources and for optimal scheduling |
US11586466B2 (en) * | 2021-01-20 | 2023-02-21 | EMC IP Holding Company LLC | Centralized high-availability flows execution framework |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1480850A (zh) * | 2002-12-04 | 2004-03-10 | 联想(北京)有限公司 | 动态迁移数据的方法及其存储系统 |
CN102112967A (zh) * | 2008-08-04 | 2011-06-29 | 富士通株式会社 | 多处理器系统、多处理器系统用管理装置、以及记录有多处理器系统用管理程序的计算机可读的记录介质 |
CN103095804A (zh) * | 2011-12-13 | 2013-05-08 | 微软公司 | 集群存储系统中的负载平衡 |
WO2014073024A1 (en) * | 2012-11-09 | 2014-05-15 | Hitachi, Ltd. | Management computer, computer system, and instance management method |
Family Cites Families (133)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0784883A (ja) | 1993-09-17 | 1995-03-31 | Hitachi Ltd | 仮想計算機システムのアドレス変換バッファパージ方法 |
US6463509B1 (en) | 1999-01-26 | 2002-10-08 | Motive Power, Inc. | Preloading data in a cache memory according to user-specified preload criteria |
US6922724B1 (en) | 2000-05-08 | 2005-07-26 | Citrix Systems, Inc. | Method and apparatus for managing server load |
JP2001337790A (ja) * | 2000-05-24 | 2001-12-07 | Hitachi Ltd | 記憶システム及びその階層管理制御方法 |
US7032119B2 (en) | 2000-09-27 | 2006-04-18 | Amphus, Inc. | Dynamic power and workload management for multi-server system |
CA2322601A1 (en) | 2000-10-06 | 2002-04-06 | Ibm Canada Limited-Ibm Canada Limitee | System and method for generating a filtered product list from a master product list in a contract |
US7958199B2 (en) | 2001-11-02 | 2011-06-07 | Oracle America, Inc. | Switching systems and methods for storage management in digital networks |
US7580972B2 (en) | 2001-12-12 | 2009-08-25 | Valve Corporation | Method and system for controlling bandwidth on client and server |
US7146522B1 (en) | 2001-12-21 | 2006-12-05 | Network Appliance, Inc. | System and method for allocating spare disks in networked storage |
CA2380762A1 (en) | 2002-04-04 | 2003-10-04 | Intrinsyc Software, Inc. | Internet-enabled device provisioning, upgrade and recovery mechanism |
US7072815B1 (en) | 2002-08-06 | 2006-07-04 | Xilinx, Inc. | Relocation of components for post-placement optimization |
US6760899B1 (en) | 2002-08-08 | 2004-07-06 | Xilinx, Inc. | Dedicated resource placement enhancement |
US7484208B1 (en) * | 2002-12-12 | 2009-01-27 | Michael Nelson | Virtual machine migration |
JP4257834B2 (ja) | 2003-05-06 | 2009-04-22 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 磁気ディスク装置、ファイル管理システム及びその方法 |
US7302536B2 (en) | 2003-06-17 | 2007-11-27 | Hitachi, Ltd. | Method and apparatus for managing replication volumes |
US7203944B1 (en) * | 2003-07-09 | 2007-04-10 | Veritas Operating Corporation | Migrating virtual machines among computer systems to balance load caused by virtual machines |
JP4418286B2 (ja) * | 2003-07-14 | 2010-02-17 | 富士通株式会社 | 分散型ストレージシステム |
US7426570B2 (en) | 2003-07-25 | 2008-09-16 | Hewlett-Packard Development Company, L.P. | Determining placement of distributed application onto distributed resource infrastructure |
US7277960B2 (en) | 2003-07-25 | 2007-10-02 | Hewlett-Packard Development Company, L.P. | Incorporating constraints and preferences for determining placement of distributed application onto distributed resource infrastructure |
US7613945B2 (en) | 2003-08-14 | 2009-11-03 | Compellent Technologies | Virtual disk drive system and method |
US8825591B1 (en) | 2003-12-31 | 2014-09-02 | Symantec Operating Corporation | Dynamic storage mechanism |
US7328265B2 (en) | 2004-03-31 | 2008-02-05 | International Business Machines Corporation | Method and system to aggregate evaluation of at least one metric across a plurality of resources |
US7209967B2 (en) | 2004-06-01 | 2007-04-24 | Hitachi, Ltd. | Dynamic load balancing of a storage system |
US20060069761A1 (en) * | 2004-09-14 | 2006-03-30 | Dell Products L.P. | System and method for load balancing virtual machines in a computer network |
US20070083482A1 (en) * | 2005-10-08 | 2007-04-12 | Unmesh Rathi | Multiple quality of service file system |
US20110010518A1 (en) * | 2005-12-19 | 2011-01-13 | Srinivas Kavuri | Systems and Methods for Migrating Components in a Hierarchical Storage Network |
US7711711B1 (en) | 2006-03-29 | 2010-05-04 | Emc Corporation | Networked storage system employing information lifecycle management in conjunction with a distributed global file system |
US7653832B2 (en) | 2006-05-08 | 2010-01-26 | Emc Corporation | Storage array virtualization using a storage block mapping protocol client and server |
JP4749255B2 (ja) | 2006-07-03 | 2011-08-17 | 株式会社日立製作所 | 複数種類の記憶デバイスを備えたストレージシステムの制御装置 |
US20080052026A1 (en) | 2006-08-23 | 2008-02-28 | Qurio Holdings, Inc. | Configuring a content capture device for one or more service providers |
US8738749B2 (en) | 2006-08-29 | 2014-05-27 | Digimarc Corporation | Content monitoring and host compliance evaluation |
US8046767B2 (en) | 2007-04-30 | 2011-10-25 | Hewlett-Packard Development Company, L.P. | Systems and methods for providing capacity management of resource pools for servicing workloads |
US20080291204A1 (en) | 2007-05-22 | 2008-11-27 | International Business Machines Corporation | Coupled placement of items using stable marriage techniques |
US7827286B1 (en) * | 2007-06-15 | 2010-11-02 | Amazon Technologies, Inc. | Providing enhanced access to stored data |
JP5238235B2 (ja) | 2007-12-07 | 2013-07-17 | 株式会社日立製作所 | 管理装置及び管理方法 |
CN101632068B (zh) | 2007-12-28 | 2015-01-14 | 株式会社东芝 | 半导体存储装置 |
US8230069B2 (en) | 2008-03-04 | 2012-07-24 | International Business Machines Corporation | Server and storage-aware method for selecting virtual machine migration targets |
JP5642338B2 (ja) | 2008-03-10 | 2014-12-17 | 富士通株式会社 | ジョブ管理プログラムおよびジョブ管理方法 |
US8146147B2 (en) | 2008-03-27 | 2012-03-27 | Juniper Networks, Inc. | Combined firewalls |
WO2009126154A1 (en) * | 2008-04-10 | 2009-10-15 | Hewlett-Packard Development Company, L.P. | Virtual machine migration according to environmental data |
US8086797B2 (en) | 2008-06-06 | 2011-12-27 | Pivot3 | Method and system for distributing commands to targets |
US8015343B2 (en) * | 2008-08-08 | 2011-09-06 | Amazon Technologies, Inc. | Providing executing programs with reliable access to non-local block data storage |
US8725967B2 (en) | 2008-08-08 | 2014-05-13 | Amazon Technologies, Inc. | Providing executing programs with access to stored block data of others |
US8019732B2 (en) | 2008-08-08 | 2011-09-13 | Amazon Technologies, Inc. | Managing access of multiple executing programs to non-local block data storage |
US8285687B2 (en) | 2008-08-27 | 2012-10-09 | Netapp, Inc. | System and method for file system level compression using compression group descriptors |
US8365183B2 (en) | 2008-09-02 | 2013-01-29 | Ca, Inc. | System and method for dynamic resource provisioning for job placement |
US8307177B2 (en) | 2008-09-05 | 2012-11-06 | Commvault Systems, Inc. | Systems and methods for management of virtualization data |
KR101595043B1 (ko) | 2008-09-18 | 2016-02-17 | 마벨 월드 트레이드 리미티드 | 적어도 부분적으로 부팅 동안에 어플리케이션들을 메모리에 프리로딩하는 방법 |
JP5234342B2 (ja) | 2008-09-22 | 2013-07-10 | 株式会社日立製作所 | 計算機システム及びその制御方法 |
US7984151B1 (en) | 2008-10-09 | 2011-07-19 | Google Inc. | Determining placement of user data to optimize resource utilization for distributed systems |
US7996719B2 (en) | 2008-10-24 | 2011-08-09 | Microsoft Corporation | Expressing fault correlation constraints |
US8190832B2 (en) | 2009-01-29 | 2012-05-29 | International Business Machines Corporation | Data storage performance enhancement through a write activity level metric recorded in high performance block storage metadata |
US8321862B2 (en) | 2009-03-20 | 2012-11-27 | Oracle America, Inc. | System for migrating a virtual machine and resource usage data to a chosen target host based on a migration policy |
US8930539B1 (en) * | 2009-03-26 | 2015-01-06 | Symantec Corporation | Method and apparatus for optimizing resource utilization within a cluster and facilitating high availability for an application |
US8117613B2 (en) | 2009-04-08 | 2012-02-14 | Microsoft Corporation | Optimized virtual machine migration mechanism |
WO2010122674A1 (ja) | 2009-04-23 | 2010-10-28 | 株式会社日立製作所 | 計算機システム及びその制御方法 |
US8190811B2 (en) | 2009-06-09 | 2012-05-29 | Seagate Technology, Llc | Defragmentation of solid state memory |
US8489744B2 (en) * | 2009-06-29 | 2013-07-16 | Red Hat Israel, Ltd. | Selecting a host from a host cluster for live migration of a virtual machine |
US8612439B2 (en) * | 2009-06-30 | 2013-12-17 | Commvault Systems, Inc. | Performing data storage operations in a cloud storage environment, including searching, encryption and indexing |
US8140812B2 (en) | 2009-07-01 | 2012-03-20 | International Business Machines Corporation | Method and apparatus for two-phase storage-aware placement of virtual machines |
US8234377B2 (en) * | 2009-07-22 | 2012-07-31 | Amazon Technologies, Inc. | Dynamically migrating computer networks |
US8914598B2 (en) * | 2009-09-24 | 2014-12-16 | Vmware, Inc. | Distributed storage resource scheduler and load balancer |
US20110078303A1 (en) * | 2009-09-30 | 2011-03-31 | Alcatel-Lucent Usa Inc. | Dynamic load balancing and scaling of allocated cloud resources in an enterprise network |
US8307362B1 (en) * | 2009-12-18 | 2012-11-06 | Emc Corporation | Resource allocation in a virtualized environment |
US8402140B2 (en) | 2010-01-13 | 2013-03-19 | Nec Laboratories America, Inc. | Methods and apparatus for coordinated energy management in virtualized data centers |
US9342801B2 (en) * | 2010-03-29 | 2016-05-17 | Amazon Technologies, Inc. | Managing committed processing rates for shared resources |
US9197514B2 (en) | 2010-03-31 | 2015-11-24 | Paypal, Inc. | Service level agreement based storage access |
US8799413B2 (en) * | 2010-05-03 | 2014-08-05 | Panzura, Inc. | Distributing data for a distributed filesystem across multiple cloud storage systems |
US8504689B2 (en) | 2010-05-28 | 2013-08-06 | Red Hat, Inc. | Methods and systems for cloud deployment analysis featuring relative cloud resource importance |
US8539197B1 (en) * | 2010-06-29 | 2013-09-17 | Amazon Technologies, Inc. | Load rebalancing for shared resource |
US8479211B1 (en) * | 2010-06-29 | 2013-07-02 | Amazon Technologies, Inc. | Dynamic resource commitment management |
US8812653B2 (en) * | 2010-08-05 | 2014-08-19 | Novell, Inc. | Autonomous intelligent workload management |
US8826292B2 (en) * | 2010-08-06 | 2014-09-02 | Red Hat Israel, Ltd. | Migrating virtual machines based on level of resource sharing and expected load per resource on candidate target host machines |
US8583867B1 (en) | 2010-09-08 | 2013-11-12 | Netapp, Inc. | Non-disruptive data migration between processing systems that do not share storage |
US8612330B1 (en) * | 2010-09-14 | 2013-12-17 | Amazon Technologies, Inc. | Managing bandwidth for shared resources |
US8533103B1 (en) * | 2010-09-14 | 2013-09-10 | Amazon Technologies, Inc. | Maintaining latency guarantees for shared resources |
US9304867B2 (en) | 2010-09-28 | 2016-04-05 | Amazon Technologies, Inc. | System and method for providing flexible storage and retrieval of snapshot archives |
US8484353B1 (en) | 2010-09-28 | 2013-07-09 | Amazon Technologies, Inc. | Resource placement templates for virtual networks |
US10013662B2 (en) * | 2010-09-30 | 2018-07-03 | Amazon Technologies, Inc. | Virtual resource cost tracking with dedicated implementation resources |
US8645529B2 (en) * | 2010-10-06 | 2014-02-04 | Infosys Limited | Automated service level management of applications in cloud computing environment |
US8589538B2 (en) * | 2010-10-22 | 2013-11-19 | International Business Machines Corporation | Storage workload balancing |
US8924539B2 (en) * | 2010-11-24 | 2014-12-30 | Red Hat, Inc. | Combinatorial optimization of multiple resources across a set of cloud-based networks |
US9329886B2 (en) * | 2010-12-10 | 2016-05-03 | Amazon Technologies, Inc. | Virtual machine morphing for heterogeneous migration environments |
US8615579B1 (en) * | 2010-12-28 | 2013-12-24 | Amazon Technologies, Inc. | Managing virtual machine migration |
US9634881B2 (en) | 2011-02-03 | 2017-04-25 | Empire Technology Development Llc | Reliability in distributed environments |
US8738972B1 (en) | 2011-02-04 | 2014-05-27 | Dell Software Inc. | Systems and methods for real-time monitoring of virtualized environments |
US9223616B2 (en) * | 2011-02-28 | 2015-12-29 | Red Hat Israel, Ltd. | Virtual machine resource reduction for live migration optimization |
US8832219B2 (en) * | 2011-03-01 | 2014-09-09 | Red Hat, Inc. | Generating optimized resource consumption periods for multiple users on combined basis |
US8452819B1 (en) * | 2011-03-22 | 2013-05-28 | Amazon Technologies, Inc. | Methods and apparatus for optimizing resource utilization in distributed storage systems |
US8874991B2 (en) | 2011-04-01 | 2014-10-28 | Cleversafe, Inc. | Appending data to existing data stored in a dispersed storage network |
JP5691062B2 (ja) * | 2011-04-04 | 2015-04-01 | 株式会社日立製作所 | 仮想計算機の制御方法及び管理計算機 |
KR101544485B1 (ko) * | 2011-04-25 | 2015-08-17 | 주식회사 케이티 | 클라우드 스토리지 시스템에서 복수개의 복제본을 분산 저장하는 방법 및 장치 |
WO2012151392A1 (en) | 2011-05-04 | 2012-11-08 | Citrix Systems, Inc. | Systems and methods for sr-iov pass-thru via an intermediary device |
US8806015B2 (en) | 2011-05-04 | 2014-08-12 | International Business Machines Corporation | Workload-aware placement in private heterogeneous clouds |
US8719627B2 (en) * | 2011-05-20 | 2014-05-06 | Microsoft Corporation | Cross-cloud computing for capacity management and disaster recovery |
US8706869B2 (en) | 2011-06-14 | 2014-04-22 | International Business Machines Corporation | Distributed cloud placement software |
US8615589B1 (en) * | 2011-06-27 | 2013-12-24 | Amazon Technologies, Inc. | Resource optimization recommendations |
CN103562940A (zh) * | 2011-06-29 | 2014-02-05 | 国际商业机器公司 | 根据计算环境权利合约管理组织的计算资源 |
WO2013009287A1 (en) * | 2011-07-11 | 2013-01-17 | Hewlett-Packard Development Company, L.P. | Virtual machine placement |
CN103827823A (zh) * | 2011-07-29 | 2014-05-28 | 惠普发展公司,有限责任合伙企业 | 迁移虚拟机 |
US9229777B2 (en) * | 2011-08-08 | 2016-01-05 | International Business Machines Corporation | Dynamically relocating workloads in a networked computing environment |
US9489222B2 (en) * | 2011-08-24 | 2016-11-08 | Radware, Ltd. | Techniques for workload balancing among a plurality of physical machines |
US8661448B2 (en) * | 2011-08-26 | 2014-02-25 | International Business Machines Corporation | Logical partition load manager and balancer |
US9026837B2 (en) | 2011-09-09 | 2015-05-05 | Microsoft Technology Licensing, Llc | Resource aware placement of applications in clusters |
WO2013038585A1 (ja) * | 2011-09-14 | 2013-03-21 | 日本電気株式会社 | リソース最適化方法、ipネットワークシステムおよびリソース最適化プログラム |
US9009317B2 (en) * | 2011-10-10 | 2015-04-14 | Verizon Patent And Licensing Inc. | System for and method of managing network resources |
US8782242B2 (en) | 2011-10-13 | 2014-07-15 | Vmware, Inc. | Software application placement using computing resource containers |
US8914515B2 (en) * | 2011-10-28 | 2014-12-16 | International Business Machines Corporation | Cloud optimization using workload analysis |
US8898505B2 (en) * | 2011-12-01 | 2014-11-25 | International Business Machines Corporation | Dynamically configureable placement engine |
KR101343617B1 (ko) * | 2011-12-28 | 2013-12-20 | 대전대학교 산학협력단 | 클라우드 환경에서 서비스품질 보장을 위한 서비스수준협약 관리방법 |
JP5596716B2 (ja) | 2012-01-24 | 2014-09-24 | 日本電信電話株式会社 | リソース管理装置、リソース管理システム、リソース管理方法およびリソース管理プログラム |
US8788658B2 (en) * | 2012-02-03 | 2014-07-22 | International Business Machines Corporation | Allocation and balancing of storage resources |
CN103365781B (zh) * | 2012-03-29 | 2016-05-04 | 国际商业机器公司 | 用于动态地重新配置存储系统的方法和设备 |
CN104303168B (zh) * | 2012-04-25 | 2016-12-07 | 英派尔科技开发有限公司 | 用于灵活资源需求应用的认证 |
US9619292B2 (en) | 2012-04-30 | 2017-04-11 | Alcatel Lucent | Resource placement in networked cloud based on resource constraints |
US9098528B2 (en) * | 2012-05-15 | 2015-08-04 | Hitachi, Ltd. | File storage system and load distribution method |
CN102821158B (zh) * | 2012-08-20 | 2015-09-30 | 广州杰赛科技股份有限公司 | 一种实现虚拟机迁移的方法和云系统 |
US8856386B2 (en) | 2012-08-21 | 2014-10-07 | Cisco Technology, Inc. | Cloud resource placement using placement pivot in physical topology |
US8745261B1 (en) * | 2012-10-02 | 2014-06-03 | Nextbit Systems Inc. | Optimized video streaming using cloud computing platform |
US9317223B2 (en) * | 2012-12-17 | 2016-04-19 | International Business Machines Corporation | Method and apparatus for automated migration of data among storage centers |
US20140250440A1 (en) * | 2013-03-01 | 2014-09-04 | Adaptive Computing Enterprises, Inc. | System and method for managing storage input/output for a compute environment |
US9384059B2 (en) * | 2013-05-31 | 2016-07-05 | Hitachi, Ltd. | Comparing resource costs between allocation plans in a load balance apparatus |
US9185960B2 (en) | 2013-11-08 | 2015-11-17 | Julep Beauty, Inc. | Stylus for cosmetics, nail polish applicator and systems and kits based thereon |
US9396009B2 (en) | 2014-01-30 | 2016-07-19 | International Business Machines Corporation | Optimized global capacity management in a virtualized computing environment |
US9582303B2 (en) | 2014-03-03 | 2017-02-28 | Vmware, Inc. | Extending placement constraints for virtual machine placement, load balancing migrations, and failover without coding |
US9298734B2 (en) * | 2014-06-06 | 2016-03-29 | Hitachi, Ltd. | Storage system, computer system and data migration method |
US9477743B2 (en) * | 2014-07-02 | 2016-10-25 | Oracle International Corporation | System and method for load balancing in a distributed system by dynamic migration |
US9526012B2 (en) | 2014-07-03 | 2016-12-20 | Alcatel Lucent | Efficient evaluation of hotspots for metrocell deployment |
US9395967B2 (en) | 2014-11-03 | 2016-07-19 | International Business Machines Corporation | Workload deployment density management for a multi-stage computing architecture implemented within a multi-tenant computing environment |
US10162656B2 (en) * | 2014-11-26 | 2018-12-25 | Vmware, Inc. | Minimizing guest operating system licensing costs in a processor based licensing model in a virtual datacenter |
US9886296B2 (en) | 2014-12-01 | 2018-02-06 | International Business Machines Corporation | Managing hypervisor weights in a virtual environment |
JP6356599B2 (ja) * | 2014-12-26 | 2018-07-11 | 株式会社日立製作所 | 監視支援システム、監視支援方法、および監視支援プログラム |
US9870244B2 (en) * | 2014-12-29 | 2018-01-16 | International Business Machines Corporation | Optimized migration of virtual objects across environments in a cloud computing environment |
-
2015
- 2015-03-09 US US14/642,445 patent/US10715460B2/en active Active
-
2016
- 2016-03-09 AU AU2016229135A patent/AU2016229135A1/en not_active Abandoned
- 2016-03-09 JP JP2017546817A patent/JP2018514018A/ja active Pending
- 2016-03-09 CA CA2978889A patent/CA2978889C/en active Active
- 2016-03-09 KR KR1020177024942A patent/KR102031471B1/ko active IP Right Grant
- 2016-03-09 EP EP16711747.2A patent/EP3268860A1/en not_active Withdrawn
- 2016-03-09 WO PCT/US2016/021580 patent/WO2016145091A1/en active Application Filing
- 2016-03-09 SG SG11201707091TA patent/SG11201707091TA/en unknown
- 2016-03-09 CN CN201680014429.3A patent/CN107430528B/zh active Active
-
2019
- 2019-04-17 AU AU2019202695A patent/AU2019202695A1/en not_active Abandoned
-
2020
- 2020-01-10 JP JP2020002627A patent/JP7138126B2/ja active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1480850A (zh) * | 2002-12-04 | 2004-03-10 | 联想(北京)有限公司 | 动态迁移数据的方法及其存储系统 |
CN102112967A (zh) * | 2008-08-04 | 2011-06-29 | 富士通株式会社 | 多处理器系统、多处理器系统用管理装置、以及记录有多处理器系统用管理程序的计算机可读的记录介质 |
CN103095804A (zh) * | 2011-12-13 | 2013-05-08 | 微软公司 | 集群存储系统中的负载平衡 |
WO2014073024A1 (en) * | 2012-11-09 | 2014-05-15 | Hitachi, Ltd. | Management computer, computer system, and instance management method |
Non-Patent Citations (1)
Title |
---|
A Gossip Protocol for Dynamic Resource Management in Large Cloud Environments;Fetahi Wuhib;《IEEE TRANSACTIONS ON NETWORK AND SERVICE MANAGEMENT》;20120630;第9卷(第2期);第213-225页 * |
Also Published As
Publication number | Publication date |
---|---|
JP2018514018A (ja) | 2018-05-31 |
US10715460B2 (en) | 2020-07-14 |
KR20170110708A (ko) | 2017-10-11 |
AU2016229135A1 (en) | 2017-09-21 |
SG11201707091TA (en) | 2017-09-28 |
JP7138126B2 (ja) | 2022-09-15 |
CN107430528A (zh) | 2017-12-01 |
AU2019202695A1 (en) | 2019-05-09 |
KR102031471B1 (ko) | 2019-11-08 |
CA2978889A1 (en) | 2016-09-15 |
CA2978889C (en) | 2021-01-26 |
EP3268860A1 (en) | 2018-01-17 |
US20160269313A1 (en) | 2016-09-15 |
WO2016145091A1 (en) | 2016-09-15 |
JP2020064676A (ja) | 2020-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107430528B (zh) | 机会性资源迁移以优化资源放置 | |
AU2019213340B2 (en) | Dynamic configuration of data volumes | |
US11290360B2 (en) | Analyzing resource placement fragmentation for capacity planning | |
EP3215926B1 (en) | Dynamic scaling of storage volumes for storage client file systems | |
US10057187B1 (en) | Dynamic resource creation to connect client resources in a distributed system | |
US10616134B1 (en) | Prioritizing resource hosts for resource placement | |
US10505862B1 (en) | Optimizing for infrastructure diversity constraints in resource placement | |
US10154091B1 (en) | Deploying infrastructure units according to resource hosting constraints | |
US11461156B2 (en) | Block-storage service supporting multi-attach and health check failover mechanism | |
US10929041B1 (en) | Block-storage service supporting multi-attach | |
US10776173B1 (en) | Local placement of resource instances in a distributed system | |
US10594620B1 (en) | Bit vector analysis for resource placement in a distributed system | |
US10812408B1 (en) | Preventing concentrated selection of resource hosts for placing resources | |
US11336519B1 (en) | Evaluating placement configurations for distributed resource placement | |
US11080092B1 (en) | Correlated volume placement in a distributed block storage service | |
US11121981B1 (en) | Optimistically granting permission to host computing resources | |
US10200301B1 (en) | Logical control groups for distributed system resources | |
US10721181B1 (en) | Network locality-based throttling for automated resource migration | |
US11381468B1 (en) | Identifying correlated resource behaviors for resource allocation | |
US11048554B1 (en) | Correlated volume placement in a distributed block storage service | |
Hassannezhad Najjari et al. | A systematic overview of live virtual machine migration methods |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |