用于提供灵活存储和检索快照档案的系统和方法

文档序号:6361891阅读:188来源:国知局
专利名称:用于提供灵活存储和检索快照档案的系统和方法
用于提供灵活存储和检索快照档案的系统和方法
背景技术
用于网络间动态地共享硬件资源、软件和信息存储的技术的近期飞跃增加了计算的可靠性,可扩展性和成本效率。更具体而言,随着虚拟化的到来而按需提供虚拟计算资源的能力使得处理资源的消费者能够立即响应于感知的计算需求而灵活地调整其计算成本。这样的虚拟化允许消费者在需求瞬间购买处理器周期和相关资源,而不是在供应周期内购买或租赁固定硬件,该供应周期是由硬件部署和制造的延迟和成本决定的。而非取决于未来需求的预测的准确性来确定计算的可用性,用户能够在相对瞬时按需的基础上购买计算资源的使用。然而,在按需提供计算资源的虚拟化的环境中,在将数据输入虚拟化的计算系统方面以及将数据从虚拟化的计算系统输出方面(如在备份操作中)还存在困难和不灵活性。输入和输出大数据段的当前解决方案包括已被证明是令人沮丧且缓慢和不可靠的繁琐的工作。虽然对计算能力的访问已变得更灵活,但是将数据引入计算过程并将数据从计算过程中输出的可用的方法并没有发展到令人满意的状态。


图1示出可被配置来实现虚拟化计算的系统的实例实施方案。图2A示出多个计算系统执行程序和访问存储的实例实施方案的网络示意图。图2B示出根据一个实施方案执行存储操作的块存储服务。图3A是根据一个实施方案创建和存储卷的备份副本的处理步骤的高级流程图。图3B是根据一个实施方案创建和存储卷的备份副本的处理步骤的高级流程图。图4是根据一个实施方案检索备份副本和重现或输入卷的处理步骤的高级流程图。图5是示出根据一个实施方案存储一系列卷快照的备份副本的一系列存储交互的高级框图。图6是示出根据一个实施方案存储一系列卷部分的备份副本的一系列存储交互的高级框图。图7是示出根据一个实施方案恢复一系列卷快照的一系列存储交互的高级框图。图8是示出根据一个实施方案从部分备份副本恢复卷的一系列存储交互的高级框图。图9是示出适合于实现实施方案的计算系统组件的配置的高级框图。尽管本文所描述的技术可具有各种修改和替代形式,但其具体实施方案在附图中按示例的方式被示出并且将在本文中被详细地描述。然而,应理解,附图及对附图的详细描述不旨在将本发明限于所公开的特定形式,而是相反,其旨在涵盖落入如权利要求书所定义的本公开的精神和范围内的所有修改、等同物和替代物。本文所使用的标题仅用于组织目的,并且不意图用于限制描述或权利要求的范围。
具体实施方式
在一个提供与云计算服务或其它虚拟化计算相关联的按需存储的环境中,块存储服务将块级存储提供至一组不同用户的一组不同计算实例。计算实例无需与块级存储共存或彼此共存。实施方案提供用于为一组不同用户创建存储于块级存储且由一组不同计算实例产生的数据的备份副本的备份副本功能,以及用于将备份副本存储于由一组不同用户的各个用户指定的不同的目的位置中的存储功能。因此,实施方案帮助缓解困难,所述困难与先前与将数据从由云计算服务的不同计算实例使用的块级存储输出相关联。实施方案提供灵活性以将数据的备份副本从块级存储路由选择至多个存储目的地。在一些实施方案中,多个存储位置远离块级存储,并且彼此远离。在一个实施方案中,块存储服务从一组不同用户的特定一个用户处接收输入,该用户指定特定的目的地以用于为一组不同用户的特定一个用户存储存储于块级存储的至少一部分数据的备份副本。块级存储服务为多个不同用户的特定一个用户创建存储于块级存储的一部分数据的备份副本,以及为一组不同用户的特定一个用户将存储于块级存储的一部分数据的备份副本存储至特定的目的地。类似地,响应于从指定用于为一组不同用户的另一个用户存储一部分数据(该数据存储于块级存储中)的备份副本的不同目的地的一组不同用户的所述另一个用户处接收输入的块存储,块级存储服务为一组不同用户的另一个用户创建存储于块级存储中的一部分数据的备份副本,以及为一组不同用户的另一个用户而将存储于块级存储中的一部分数据的备份副本存储到不同的目的地。在一些实施方案中,特定目的地和不同目的地是不同的存储系统,且彼此远离。虚拟化计算的概述一般而言,虚拟化计算(其也可以被称为虚拟计算或虚拟化)可以指配置物理计算机系统以使其似乎表现得像多个独立的“虚拟的”计算机系统的技术。可以将虚拟化计算与常规多任务操作系统(OS)。典型的OS可提供许多受保护的内存空间(其中可执行不同的进程而不会相互干涉)和特权的例程,以管理那些进程的执行并协调对系统资源的访问。相比之下,可采用虚拟化计算技术来配置多个虚拟机,每个虚拟机可执行其本身的操作系统。对不同的虚拟机而言,操作系统可不同。接着,对这些机器的访问可通过网络被分发至不同的用户。通过从底层物理硬件(虚拟机在其上运行)解耦虚拟机的配置和操作,虚拟化计算可使用户能够根据所定义的一组规范来配置虚拟机,以及之后重现先前配置的虚拟机,而无需更改底层物理硬件的配置。下文论述的实施方案允许(在可输入快照的其它用户之间)快照映像的输入用于重现由虚拟机使用的卷中。图1中示出可被配置来实现虚拟化计算的系统的例子。在所示出的实施方案中,物理系统100包括耦接至系统内存120的处理器110。例如,处理器110可对应于被配置来执行由特定指令集架构(ISA)(如 x86/x64ISA、PowerPC ISA、SPARCtmISA, ARMtmISA 或其它任何合适的ISA)的任何类型的微处理器。系统内存120可对应于被配置来存储可由处理器110执行的数据和指令的任何类型的存储设备。例如,系统内存120可包括各种随机存取存储器(RAM)、只读存储器(ROM)、非易失性存储器(例如,闪速存储器)、磁存储器或任何其它适合类型的存储器中的任何一个。系统存储器120可被配置来存储指令和数据。当由处理器110或另一处理器执行时,所述指令和数据被配置来实现操作系统150和虚拟化模块160。一般而言,操作系统150可对应于任何类型的操作系统,如Microsoft Windows 、Apple MacOS 、Unix、Linux或另一操作系统的版本。通常,操作系统150可被配置来充当由计算机系统(如内存、大容量存储器设备、通信设备、系统服务等)提供的应用和资源之间的接口。虚拟化模块160可被配置来实现环境,其中多个不同虚拟机可操作。虚拟化模块160也可被称为超级管理程序或虚拟机监视器。在所示出的实施方案中,虚拟化模块160可作为来自操作系统150的软件的不同层(即可被称为“托管超级管理程序”的配置)而实现。在其它实施方案中,而非运行于不同层中,虚拟化模块160可与操作系统150集成于可被称为“本机超级管理程序”的配置中。虚拟化模块160的托管超级管理程序实施方式的一些例子可包括 VMwareESX/ESXi 、VMware Fus ion > Micro soft Virtual PC > VirtualBox 和Parallels Desktop 。本机超级管理程序实施方式的一些例子可包括Xen、VMwareInfrastructure 、Logical Domains Hypervisor 和 Parallels Server 。其它例子是可能的,并且是可以预见的。在所示出的实施方案中,虚拟化模块160被配置来实现许多虚拟机180a_n以及虚拟网络175、虚拟存储器165和网络服务接口 190。将依次论述每个这些元件的例子,应注意,许多变化和替代配置均是可能的。在各个实施方案中,各种元件可被称为使用替代术语。例如,单个虚拟机180可对应于“例子”,以及各个虚拟机180的状态(例如,它们的应用,数据和配置)可对应于“机器映像”或MI。这些实例可以支持不同用户。应注意,实现各个虚拟化元件(如虚拟机180、虚拟网络175和虚拟存储器165)的进行可被配置来在除了虚拟化模块160本身之外的不同的物理硬件上执行。例如,虚拟化模块160可被配置来采用远程过程调用或其它技术以使得对应于特定虚拟机180或任何其它虚拟化元件的进程或线程在可能具有除物理系统100之外的不同配置的不同物理系统上执行。可以部署任何数量的虚拟机180,这取决于底层物理系统100的资源能力以及虚拟化模块160。一般而言,每个虚拟机180可被配置来托管操作系统其本身的副本和应用,其可独立于其它虚拟机180之外执行。例如,图1示出虚拟机180η为包括虚拟操作系统185及一个或多个应用195。虚拟操作系统185可对应于任何适合的操作系统,其可包括上述关于操作系统150的任何类型的操作系统。虚拟操作系统185也可与在物理计算机系统100上执行的底层操作系统150不同。例如,虚拟操作系统185和操作系统150可以是完全不同的操作系统。或者,它们可对应于相同类型的操作系统,但每个可具有数据结构和/或可执行代码的不同副本,且可被配置来相互分开执行。每个虚拟机180可被配置来如同处理已被分配至虚拟机180的物理系统100的那些资源的独立物理机器一样进行操作。例如,虚拟机180a可被配置来执行MicrosoftWindows 的版本和一个或多个Windows应用,而虚拟机180η可被配置来执行Linux的版本和一个或多个Linux应用。在一些实施方案中,操作系统和在给定的虚拟机180上执行的应用能够识别它们正运行于虚拟系统而不是物理系统中。因此,关于每个虚拟机180,均可透明地执行虚拟化。
在各个实施方案中,虚拟化160可被配置来响应于虚拟化模块160 (例如,从可在物理系统100外部的客户端)接收的配置请求而促使虚拟机180a-n被实例化和被损坏。客户端可对应于代表用户而在物理系统100上或在被配置来与物理系统100进行通信(例如,经由网络)的不同系统上执行的进程。在各个实施方案中,客户端的请求可包括请求给定的虚拟机180的配置参数。例如,客户端可为给定的虚拟机180指定特定的资源,如存储空间、处理器性能的特定等级,等等。或者,客户端可从一组可用配置间指定虚拟机180的特定类型或分类。例如,虚拟化模块160可呈现通用的“小”、“中”、“大”和/或其它类型的虚拟机配置以供客户端选择,每个虚拟机配置均具有已定义的内存、性能和/或其它特性。在一些实施方案中,这些特性可包括目的位置或用于存储虚拟存储器165的部分的备份副本或与虚拟机180相关联的其它数据结构的目的位置。在一些实施方案中,这些特性包括源位置或用于检索虚拟存储器165的部分的备份副本或与虚拟机180相关联的其它数据结构的源位置。在物理系统100内可本地托管或远程访问(例如,经由网络)这样的源位置和目的位置。在一些实施方案中,客户端的请求也可包括关于应该如何初始化给定的虚拟机180的状态的信息。例如,所述请求可指定应该启动的操作系统185、应该可用的应用195和/或可能需要执行客户端计算的任何数据、程式库或其它输入。在各个实施方案中,客户端可从许多选项中选择初始化状态(例如,可选自可用操作系统的列表),可提供反映所需给定的虚拟机180的初始状态(例如,反映可执行代码和/或数据)的详细内存映像,或这些或其它技术的组合。在各个实施方案中,可从备份副本检索初始状态,所述备份副本存储于输入位置或用于存储虚拟存储器165的部分的备份副本或与虚拟机180相关联的其它数据结构的输入位置。响应于请求以创建或初始化给定的虚拟机180,虚拟化模块160可被配置来将物理系统100的资源分配至给定的虚拟机180,如通过留出一定空间的系统内存120以供给定的虚拟机180用作其自身的虚拟系统内存。虚拟化模块160也可虚拟化给定的虚拟机180。例如,可根据客户端的参数或默认状态而将给定的虚拟机180初始化。一旦被配置或初始化(这可并行发生或作为相同操作的一部分发生),则给定的虚拟机180可开始进行操作。例如,操作系统185可启动或从先前定义的状态恢复。应用195可以交互模式(即,在操作期间从客户端接收输入)执行或自主地执行。在各个实施方案中,如下描述,虚拟化模块160可向给定的虚拟机180提供对存储器的访问,以及可允许给定的虚拟机180与其它虚拟机180进行通信的虚拟网络。有时,可发生请求终止给定的虚拟机180。例如,当有关对虚拟机180进行配置的任务完成时或由于其它原因,客户端可初始化这样的请求。或者,例如在机器变得不稳定或违反客户端的使用规定的情况下,虚拟化模块160可初始化这样的请求。作为响应,可终止给定的虚拟机180并且分配其资源以供其它虚拟机使用。例如,如果可能,那么虚拟化模块160可尝试对给定的虚拟机180执行有序关机。虚拟化模块160可将给定的虚拟机180的状态,有关在虚拟计算环境中其配置的信息和/或任何其它凸显信息进行存档或保存。一旦这些或任何其它内务任务完成,给定的虚拟机180可不再作为实体存在。除了提供虚拟机180的配置和操作之外,虚拟化模块160可被配置来在虚拟机180间经由虚拟网络175而提供虚拟化网络连接。例如,虚拟网络175可被配置来仿真局域网(LAN)或任何其它合适类型或拓扑结构的网络。通过虚拟网络175,虚拟机180可被配置来彼此进行通信,如同它们是连接至物理网络的物理机器一样。在一些实施方案中,虚拟化模块160可被配置来桥接在不同物理系统上实现的虚拟网络,以便实现大规模的虚拟网络。例如,在不同物理系统100上实现的虚拟机180可作为相同通用虚拟网络175的一部分而彼此连接。在这样的实施方案中,虚拟化模块160的不同实例可被配置来经由连接它们各自物理100的物理网络而彼此传递信息,以便实现在虚拟机180间的虚拟网络通信。虚拟化模块160也可被配置来向虚拟机180提供对大容量存储器(显示为虚拟存储器165)的访问。例如,虚拟存储器165可被配置为可被呈现至计算机系统的块存储设备(例如,逻辑存储卷)、文件系统、数据库或任何其它适合类型的大容量存储器。虚拟存储器165的实施方案一般也可被称为大容量存储资源。在一些实施方案中,虚拟存储器165可作为虚拟网络连接设备而实现,虚拟机180可经由虚拟网络175访问该虚拟网络连接设备。例如,虚拟存储器165可被配置为可通过网络协议或以任何其它合适模式访问的虚拟化网络附加存储(NAS)设备、虚拟化存储区域网络(SAN)、存储服务(例如,基于网络服务的存储服务)。在一些实施方案中,虚拟存储165可经由服务而实现,即本地实现或通过网络远程访问。在一些实施方案中,虚拟化模块160直接处理对虚拟存储器165的管理。例如,虚拟化模块160可包括对实现虚拟化卷服务器、文件服务器或其它类型的大容量存储架构而言是必要的的功能。而在其它实施方案中,虚拟化模块160可提供接口,虚拟机180通过所述接口可访问存在且由虚拟化模块160外部管理的存储器。例如,在物理系统100上执行的一些其它软件组件或另一系统可被配置来提供大容量存储器和应用程序接口(API),通过所述应用程序接口访问存储器。接着,虚拟化模块160可被配置来将存储器访问请求从虚拟机180传送至该外部API。虚拟化模块160可被配置来支持许多不同类型的接口,客户端可通过所述接口与特定的虚拟机180互动。例如,虚拟化模块160可被配置来执行基本的终端仿真以允许客户端向虚拟机180提供文本输入,并且返回文本输出以向客户端展示。在给定虚拟机180支持更多复杂的用户接口(如窗口系统或可由在给定虚拟机180内执行的软件托管的其它类型的图形用户接口(GUI)的情况下,虚拟化模块160可被配置来将输入从客户端输入设备(例如,键盘、定位设备等)传送至给定虚拟机180,并且将图形输出传送至客户端。在一些实施方案中,可将虚拟化计算作为按需、有偿服务提供给客户端。例如,企业可组装和维持用于实现虚拟化计算的各种硬件和软件组件,以及可根据各种计价模型(例如,基于使用的计价、订阅计价等)将客户端访问提供至这些资源。因此,客户端可访问很多虚拟计算资源而无需引发供应和维持实现那些资源所需的基础设施的成本。一般而言,为了向客户端提供虚拟化计算服务,虚拟化模块160可被配置来将虚拟化计算服务API呈现至客户端,客户端可通过所述虚拟化计算服务API为虚拟计算服务提交各种类型的请求。例如,如下文更详细描述,客户端可经由虚拟化计算服务API为待实例化、初始化和/或删除的虚拟化计算资源提交请求。客户端也可为将由虚拟化计算资源执行的各种计算提交请求。在图1示出的实施方案中,虚拟化模块160可被配置来经由网络服务接口 190而将虚拟化计算资源(如虚拟机180)作为网络服务的一部分呈现给客户端。一般而言,网络服务可指计算功能,所述计算功能通过由客户端对一个或多个网络服务端点的调用而对客户可用,其中网络服务端点可由客户端根据应用层、基于互联网的传输协议(如超文本传送协议(HTTP))进行寻址。例如,网络服务端点可实现特定API,其定义客户端请求的网络服务操作。在一些实施方案中,网络服务接口 190可被配置来实现可寻址网络服务端点,并且可包括被配置来接受和发送关于客户端的网络服务请求和响应信息的功能。为请求网络服务执行特定操作,客户端可以API指定的方式对请求格式化,并且将请求传达至可寻址端点。例如,端点可根据形式“端点.域名.顶级”(如,virtualcomputing.company, com)的统一资源标识符(URI)进行寻址。或者,端点可根据数字形式地址(例如,IP地址)进行寻址。在各个实施方案中,网络服务接口 190可被配置来被客户端以任何数量的合适方式调用。例如,网络服务接口 190可被配置来实现表示状态传送(REST)样式的网络服务架构。一般而言,在REST架构中,所请求的网络服务操作和其各个参数可被附加至网络服务调用,根据传输协议对网络服务端点进行网络服务调用。例如,可包括作为HTTP请求方法(如GET、PUT或POST)的参数的所请求的操作的细节。或者,网络服务接口 190可被配置来实现面向文档或面向消息的架构。例如,请求操作的细节被客户端格式化为可扩展标示语言(XML)文档,并且通过使用简单的对象访问协议(SOAP)来封装。在接收到这样的文档之后,网络服务接口 190可被配置来提取所请求的网络服务操作的细节,并且尝试执行操作。在虚拟化计算作为网络服务的情况下,可以预见的是,由网络服务接口 190实现的API可支持任何类型或所有类型的操作,所述操作通过虚拟化模块160而对客户端可用,包括存储操作(如执行请求对卷进行备份或从备份副本中恢复卷)。例如,API可支持虚拟机180的配置、初始化和终止,如上文所述。另外,在一些实施方案中,API可支持在客户端和虚拟机180或其它虚拟化资源之间进行输入和输出的交换。数据中心和备份存储器现参照图2A,描绘了多个计算系统执行程序和访问存储器的实例实施方案的网络示意图。程序执行服务管理在位于数据中心200内的各个主计算系统上的程序的执行,以及块存储服务与数据中心的多个其它存储系统一起运作,以向那些执行的程序提供块级存储。多个远程和本地存储系统被用来存储至少一些块数据存储卷的至少一些部分的额外副本(如备份副本)。在该实例实施方案中,数据中心200包括多个机架205,且每个机架包括多个主计算系统,以及可选机架支持计算机系统222。在示出的机架205上的主计算系统210a-c中的每个托管一个或多个虚拟机220,以及与该主计算系统上的虚拟机相关联的不同节点管理器模块215。节点管理器模块215管理与节点管理器模块215驻留的主计算系统相关联的虚拟机。在该实例中,一个或多个其它主计算系统235中的每个主计算机系统235还托管一个或多个虚拟机220。每个虚拟机220可充当为用户(未示出)执行一个或多个程序副本(未示出)的独立计算实例,如通过网络服务接口访问的程序执行服务的客户,如关于图1论述的网络服务接口 190。另外,图2A的实例数据中心200包括主计算系统230a_b,主计算系统230a_b不包括不同虚拟机,但是每个可充当为用户执行的一个或多个程序(未示出)的计算节点。在不同于主计算系统230a-b和主计算系统235的计算系统(未示出)上执行的节点管理器模块225与主计算系统230a-b和主计算系统235相关联,以便以类似主计算系统210的节点管理器模块215来管理由那些主计算系统提供的计算节点。机架支持计算机系统222可为对其机架205而言是本地的的其它计算系统提供各种公用服务(例如,程序执行的长期存储、计量和其它监视和/或非本地块数据存储对局部机架的访问等。),以及可能至位于数据中心的其它计算机系统。每个计算系统210、230和235还可具有一个或多个本地附加设备(未示出),以便存储程序的本地副本和/或由执行程序创建或使用的数据,以及各种其它组件。还示出可选程序执行服务(PES)系统管理器240。PES系统管理器240是计算系统,所述计算系统执行PES系统管理器以在管理由位于一个或多个其它数据中心260的主计算系统210、230和235 (或者,可选地,在计算系统(未示出))或通过网络270可用的其它远程计算系统(未示出)上的程序的执行方面提供帮助。PES系统管理器240可提供除管理程序的执行外的各种服务,包括用户帐户的管理(例如,创建、删除、开单、付现等XPES系统管理器240可进一步提供待执行的程序的注册、存储和分发,以及与程序的执行有关的性能和审计数据的采集和处理。在一些实施方案中,PES系统管理器240可与节点管理器模块215和225协调,以管理在与节点管理器模块215和225相关联的计算节点上的程序执行。 数据中心200还包括块存储服务265,下文关于图2B对其进行更详细地论述,以将块级存储提供至在由位于数据中心200内的主计算系统210、230和235或可选地,位于一个或多个数据中心260内的计算系统(未示出))或通过网络270可用的其它远程计算系统提供的计算节点上执行的程序。在一个实施方案中,数据中心200与远程存储系统297进行通信,远程存储系统297包括支持数据存储管理器247的操作系统245。远程存储系统297可由与本地存储系统292相同的实体控制,或由不同的实体控制。数据存储管理器从块存储服务265接收和存储快照副本295。在一些实施方案中,在远程存储系统297内执行块存储适配器250,以促进与块存储服务265进行通信。图2B示出块存储服务以用于根据一个实施方案执行存储操作。块存储服务265是存储系统,其由一批多个服务器块数据存储系统(为简便起见,已省略)组成,并提供块级存储来存储一个或多个卷255和一个或多个快照256。快照256是卷255状态的固定时间点表不。在一些实施方案中,快照用于备份目的。在其它实施方案中,快照用于各种各样的文件操作,以便为并发操作的执行加快系统资源的释放。快照进一步用于很多操作,其中数据的拷贝集对于计算任务的执行是有用的。块存储服务265执行块级存储管理器275,以协助块存储服务265的操作。具体来说,再次参照图2A,块级存储管理器275协助管理块数据存储对程序的可用性,所述程序在由位于数据中心200内的主计算系统210、230和235或可选地,位于一个或多个其它数据中心260的计算系统(未示出)或通过网络270可用的其它远程计算系统(未示出)提供的计算节点上执行。在图2A和图2B描绘的实施方案中,通过内部网络285将对卷副本255的访问提供至在节点210和235上的程序。块级存储管理器275可提供与提供块级存储功能相关的各种服务,包括用户帐户的管理(例如,创建、删除、开单、付现等)。块级存储管理器275可进一步提供与在块存储服务265上的卷255和快照256的创建、使用和删除相关的服务。块级存储管理器275还可提供与性能和审计数据的采集和处理相关的服务,所述性能和审计数据的采集和处理与那些卷的卷255和快照256的使用相关。返回图2B,块级存储管理器275还包含备份管理器280。备份管理器280提供创建、存储、管理和输入存储于块存储服务265的卷255中的快照256和其它备份映像的接口。在一个实施方案中,备份管理模块280将快照存储至存储系统,如在本地存储系统292上的快照副本290和在远程存储系统297上的快照副本295。备份管理器280可提供与提供备份存储功能相关的各种服务,包括用于帐户的管理(例如,授权、创建、删除、开单、现付等)。在一个实施方案中,备份管理器280在允许远程存储系统297与计算实例相关联之前需要授权证明。进一步地,备份管理器280可提供定价影响选择,其中与在特定存储系统上执行特定操作相关联的开单率影响存储系统对特定任务的性能的选择。例如,备份管理器280可被编程来基于与存储于本地存储系统292上的快照副本290相关联的更大代价来通过存储于本地存储系统292上的快照副本290而优先地在存储系统297上执行快照副本295的存储。备份管理器模块280包括用于从网络服务接口(如图1的网络服务接口 190)的计算实例或用户接收请求的备份管理器接口 278,请求执行备份操作。在一个实施方案中,这样的请求将指定目的地(如本地存储系统292和其它配置参数)以用于为诸如虚拟机220之一的计算实例的用户存储存储于由块存储服务265提供的块级存储的卷255的至少一部分数据的快照副本290。这样的请求可被体现为从网络服务接口(如图1的网络服务接口 190)API调用。请求可指定存储位置和存储粒度或其它参数。如下文所论述。备份管理器接口278还被配置来接收请求以从快照(如远程存储系统297上的快照副本295或其它备份副本和本地存储系统292上的快照副本290)恢复块存储服务265内的卷255。存储粒度指请求在特定位置创建并存储的备份或备份系列的数量、频率、大小或全面性。在粒度的一个设置中,选定卷的全序列全备份快照可被存储于特定位置。或者,在粒度的另一设置中,卷的部分快照可在位置创建和存储。数据的这些部分包括特定数据结构,如文件或被定义以满足特定备份参数(如任意块方案或只是块范围,其中从上次备份起数据已被修改)。另外,灵活地指定存储粒度的能力包括指定表示卷或卷的一部分的第一快照将被存储于第一存储位置和指定相同卷或卷的一部分(或卷的不同部分)将被路由选择至第二位置的能力。配置文件252包括与执行各种备份和恢复操作相关联的细节。这样的细节包括与特定存储系统相关联的API格式、在特定存储目的地或输入位置的存储系统的位置或指定备份(如备份粒度)的特征的信息。备份管理器模块280进一步包括用于创建如由通过备份管理器接口 278接收的输入所指定的卷或卷的一部分的快照的备份创建模块276。备份管理器模块还包括备份存储管理器282。备份存储管理器282执行快照(如在本地存储系统292内的快照副本290或在远程存储系统297内的快照副本295)的传输和存储。备份存储管理器282可被配置来使用很多传输层协议(例如,TCP、UDP等)和应用层协议(例如,HTTP、FTP、XML-RPC, SOAP等)中的任何一种而与本地存储系统292远程存储系统297进行通信,这些协议在每个实施方案中均不同。在一些实施方案中,备份存储管理器282通过本地网络285将快照副本290传输至本地存储系统292。类似地,备份存储管理器282通过网络270将快照副本295传输至远程存储系统297。
在一些实施方案中,备份存储管理器282被配置来使用备份存储管理器282和数据存储管理器247上支持的存储调用的API协议来直接与数据存储管理器247进行通信。在其它实施方案中,在数据存储管理器247上,不直接支持备份存储管理器282使用的存储调用的API协议,以及块存储适配器250或备份存储适配器251被用来促进数据存储管理器247和备份存储管理器282的互操作性。在一些实施方案中,在相同主节点上的不同计算实例将使用不同API协议而与不同存储交易的存储系统进行通信。备份管理器280还包括数据输入管理器284,以用于恢复或输入如从本地归档存储系统292接收为快照副本290的卷或卷的一部分,或从远程归档存储系统297接收的快照副本295。与备份存储器互动的处理步骤下文关于图3A-4描述的处理步骤示出由系统的实施方案执行的各个步骤,所述系统用于将存储于块级存储中的数据副本的备份服务提供至支持一组不同用户的计算实例。这样的系统的实施方案提供用于为不同用户创建存储于块级存储中且由不同的计算实例产生的数据备份副本的备份副本功能,以及用于将备份副本存储于由不同用户的各自用户指定的不同目的地位置中的存储功能。图3A是根据一个实施方案创建和存储快照的处理步骤的高级流程图。接收指定用于备份至存储位置(在其它备份细节之间)的目的地的用户输入(框300)。在一个实施方案中,从网络服务接口(如图1的网络服务接口 190)接收这样的用户输入。用户输入的细节可包括请求在特定位置创建并存储的快照或快照系列的数量、频率、大小或全面性。还可包括备份的时序。或者,从虚拟机(如图1的虚拟机180)接收这样的用户输入。将备份规范(从接收到的细节提取)记录至配置文件(框305),如图2B的配置文件252。接着,根据来自配置文件的规范创建备份副本(框310)。在一个实施方案中,通过备份创建模块(如图2B的备份创建模块276)生成卷的快照,进而创建备份副本。接着,将备份存储至位置或配置文件中指定的位置(框315)。接着,结束处理。图3B是根据一个实施方案创建和存储卷的备份副本的高级流程图。在服务器块数据存储中创建快照(框320 )。在一个实施方案中,块存储服务(如图2A的块存储服务265 )提供服务器块存储。通过检测诸如图2B的配置文件252的配置文件来确定存储配置(框325)。在一个实施方案中,配置包括与存储粒度相关的信息,如快照是否被存储为完整快照映像、文件、反映地址范围的数据分块或其它格式。也可确定其它信息,如备份是否为系列部分、系列部分是否被集聚在单个存储位置或分散在多个存储信息间、单个备份副本的部分是否被集聚或分发在多个服务器间、什么实体控制各个备份存储位置以及如何对备份进行认证和保密。接着,确定存储目的地的存储系统参数(框330)。在一个实施方案中,存储系统参数包括与特定存储系统相关联的API格式、在特定存储目的地的存储系统的位置以及是否需要备份存储适配器或块存储适配器来来与存储目的地进行通信。执行存储传输(框335)。在存储传输中,以整体或以指定的组件部分的形式来将快照传输至存储目的地。在一些实施方案中,接收确认被接收(框340)。接着,结束处理。图4是根据一个实施方案检索卷快照和恢复卷的处理步骤的高级流程图。接收恢复请求(框400)。在一个实施方案中,从网络服务接口(如图1在网络服务接收190)接收这样的恢复请求。恢复请求的细节可包括输入位置和恢复目的地(如特定的虚拟机主机)。还可包括恢复的时序,如当闲置机器周期可用时执行操作的延迟。或者,从虚拟机(如图1的虚拟机180)接收这样的用户输入。确定恢复请求所需的配置(框405)。在一个实施方案中,所需的配置包括参数,所述参数包括与特定存储系统相关联的API格式、在特定存储目的地的存储系统的位置以及有关是否需要备份存储适配器或框存储适配器来与存储目的地进行通信的信息。创建接收卷(框410)。在一个实施方案中,接收卷是空白卷,其中将存储接收到的数据。将检索请求发送至托管卷的存储系统(框415)。接收快照数据(框420)。在一个实施方案中,接收到的数据被存储为将托管接收卷的块级存储上的完整快照。将数据输入至接收卷(框425)。接着,结束处理。为了清楚起见,将图4的处理描绘为线系列的操作。然后,本领域技术人员鉴于已阅读本公开而将认识到,图4的操作可以迭代模式执行,以便处理多个请求。作为可被迭代执行的操作的实例,可以迭代循环的方式执行请求、接收和输入操作(415-425)直到接收所以请求的数据。提供这样的迭代执行的实施方案不脱离当前公开的范围。进一步地,为了清楚起见,从图4的论述中省略的操作将作为实施方案的部分来实现。为了清楚起见,作为从图4中省略的操作的实例,本领域技术人员鉴于已阅读本公开而将认识到,图4的流程可包括接收验证步骤,以及可包括以下能力:响应于无法从选定源中接收数据或响应于在从所述源中接收数据时的从替代数据源次优延迟而从替代数据源中选择输入。提供这样的额外操作的实施方案不脱离当前公开的范围。示出与备份存储器交互的存储案例图5-8描绘系统的实施方案的采用的各种使用案例。所述系统用于将存储于块级存储中的数据的备份副本提供至支持一组不同用户的计算实例,以及提供关于备份副本的检索和恢复服务。图5是示出根据一个实施方案的存储一系列卷快照的备份副本的一系列存储交互的高级框图。块级存储服务565存储一系列卷555a-555n,每个卷附接至一个或多个计算实例,并创建一组快照556al-556an、556bl-556b2和556nl。存储系统592存储快照副本557al-557an和快照副本557bl和快照副本557nl。在一个实施方案中,快照556al_556an和快照副本557al-557an是增量快照,其中在快照副本间共享块。因此,快照A1556al和快照Al副本557al可包含完整组的块,其对于恢复卷A556a而言是必要的。然而,随后的快照A2556a2和快照A2副本557a2可仅包含在创建快照A1556al和随后创建快照A2556a2之间已发生改变的那些块。在这样的实施方案中,从快照A2副本557a2中恢复卷A 555a可使用快照A2副本557a2的所有块,以及在创建快照A1556al和随后创建快照A2556a2间快照Al副本557al的所有块均没有发生改变。在一个实施方案中,存储系统592类似于图2A的本地存储系统292。存储系统592使用内部网络585来与块存储服务565进行通信。类似地,存储系统597存储快照副本557nl和快照副本557b2。在一个实施方案中,存储系统597类似于图2A的存储系统297。存储系统597使用网络570和内部网络585来与块存储服务565进行通信。在一个实施方案中,块存储适配器550为存储系统597提供能力,以当存储系统592使用不同于存储系统597使用的API且由块存储服务565使用的API时使用存储系统597支持的API来接收和响应来自块存储系统565的存储API调用。在一个实施方案中,从输入(如来自附接至块存储服务565支持的一个或多个卷的计算实例的用户的一组备份请求)将产生诸如存储于存储系统592上的快照副本557al-557an的一系列快照副本。这样的备份请求可指定诸如存储系统592的特定目的地,以用于将存储于卷A555a中的数据的所有备份副本存储在块存储服务565的块级存储上。被描绘为快照副本557al-557an的一系列快照副本产生于用户请求一系列全卷快照,其中快照副本557al-557an的每一个均表示在特定时间点的卷A555a的完整状态。响应于这样的请求,块存储服务565使用备份创建模块(如上论述的图2B的备份创建模块276)在时间&创建快照A1556al,以及通过内部网络585使用诸如图2B的备份存储管理器282来将快照Al副本557al存储在存储系统592上。因而,在时间h,将快照副本A1557al保存为卷A555a的状态的备份副本。在一些实施方案中,块存储服务565接着删除或释放快照A1556al,以节省块存储服务565上的空间。随后,在时间t2,块存储服务565创建快照A2556a2以及通过内部网络585将快照A2副本557a2存储于存储系统592上。因而,在时间t2,将快照A2副本557a2保存为卷A 555a的状态的备份副本。在一些实施方案中,块存储服务565接着删除或释放快照A2556a2,以节省块存储服务565上的空间。随后,在时间tn,块存储服务565创建快照An556an以及通过内部网络585将快照An副本557an存储于存储系统592上。因而,在时间tn,将快照An副本557an保存为卷A 555a的状态的备份副本。在一些实施方案中,块存储服务565接着删除或释放快照An556an,以节省块存储服务565上的空间。因此,通过创建和存储快照副本557al_557an来满足在存储系统592上的一系列全卷备份的用户请求。快照副本557al-557an的每一个均表示在特定时间点的卷A555a的完整状态。另外,在一个实施方案中,从输入(如来自采用块存储服务565支持的另一计算实例的另一用户的备份请求)将产生诸如存储于存储系统592上的快照副本557bl和存储系统597上的快照副本557b2的一系列快照副本。这样的备份请求可指定诸如存储系统592和存储系统597的一组目的地,以用于将存储于卷B555b中的数据的一组备份副本的交替构件存储在块存储服务565的块级存储上。被描绘为快照副本557bl-557b2的一系列快照副本产生于用户请求一系列全卷快照,其中快照副本557bl-557b2的每一个均表示在特定时间点的卷B555b的完整状态。因而,快照557bl-557b2的创建导致在多个目的地(例如,存储系统592和存储系统597)之间交替载入的备份副本集。响应于这样的请求,块存储服务565在时间&创建快照B1556bl,以及通过内部网络585将快照BI副本557bl存储在存储系统592上。因而,在时间h,将快照副本BI副本557bl保存为卷B555b的状态的备份副本。在一些实施方案中,块存储服务565接着删除或释放快照B1556bl,以节省块存储服务565上的空间。随后,在时间t2,块存储服务565创建快照B2556b2以及通过内部网络585和网络570将快照B2副本557b2存储在存储系统597上。因而,在时间t2,将快照B2副本557b2保存为卷B555b的状态的备份副本。在一些实施方案中,块存储服务565接着删除或释放快照B2556b2,以节省块存储服务565上的空间。因此,通过创建和存储快照副本557bl-557b2来满足在存储系统592和存储系统597上的一系列全卷备份的用户请求。快照副本557bl-557b2的每一个均表示在特定时间点的卷B555b的完整状态。进一步地,在一个实施方案中,从输入(如来自采用块存储服务565支持的另一计算实例的另一用户的备份请求)将产生诸如存储于存储系统597上的快照NI副本557nl和存储于存储系统592上的快照N2副本557n2的一系列快照副本。这样的备份请求可指定诸如存储系统592和存储系统597的一组目的地,以用于将存储于卷N 555η中的数据的一组备份副本的复制构件存储在块存储服务565的块级存储上。被描绘为快照副本557nl-557bn的一系列复制快照副本产生于用户请求一系列全卷快照,其中快照副本557nl-557n2的每一个均表示在特定时间点的卷N555n的完整状态。因而,快照557nl-557n2的创建导致在多个目的地(例如,存储系统592和存储系统597)之间提供冗余的可用性的备份副本集。响应于这样的请求,块存储服务565在时间&创建快照N1556nl,以及通过内部网络585和网络570将快照NI副本557nl存储在存储系统597上。因而,在时间h,将快照副本NI副本557nl保存为卷N555n的状态的备份副本。接着,块存储服务565通过内部网络585将快照NI副本557n2存储在存储系统592上。因而,在时间I1,将快照NI副本557n2保存为卷N555n的状态的备份副本。在一些实施方案中,块存储服务565接着删除或释放快照N1556nl,以节省块存储服务565上的空间。图6是示出根据一个实施方案存储一系列卷部分的备份副本的一系列存储交互的高级框图。块存储服务665存储一系列卷655a-655n,以及创建一组快照656a_656n。将卷A655a划分为分块655al-655an,并且将快照A656a划分为分块656al_656an。分块655al_655an和分块656a_656n的每一个均表不卷A655a的数据的子集,如在存储于任何特定分块中的数据项目间没有任何必要的逻辑对应的块存储地址的固定大小范围。相比之下,将卷B655b和快照B656b划分为文件。将卷B655b划分为文件655bl_655bn,并将快照B656b划分为文件656bl-656bn。文件655bl-655bn和文件656bl-656bn的每 Iv均表不卷B655b的数据的逻辑支组。存储系统697a存储来自快照656a的分块副本657al_657a2和来自快照656b的文件副本657bl-657bn。在一个实施方案中,存储系统697a类似于图2A的存储系统297。存储系统697a使用网络670来与块存储服务665进行通信。类似地,存储系统697b存储来自快照656a的分块副本657a3-657an和来自快照656b的文件副本658bl_658bn。在一个实施方案中,存储系统697b类似于图2的存储系统297。存储系统697b使用网络670来与块存储服务665进行通信。在一个实施方案中,备份存储适配器650为块存储服务665提供能力,以采用存储API格式将如API调用的请求发送至存储系统697a,以及从存储系统697a接收对存储API调用的响应。在不存在存储适配器650的情况下,存储系统697a使用而存储服务665不使用所述存储API格式。在一个实施方案中,存储系统697b和块存储服务665可使用不具有备份存储适配器650的服务的通用API格式来进行通信。在交替实施方案中,备份存储适配器650为块存储服务665提供能力,以采用存储API格式将如API调用的请求发送至存储系统697b,以及从存储系统697b接收对存储API调用的响应。在不存在存储适配器650的情况下,存储系统697b使用而存储服务665不使用所述存储API格式。存储系统697a和存储系统697b可由相同或不同的实体控制。在一个实施方案中,从输入(如来自附接至提供对诸如由块存储服务665支持的那些文件和数据分块的访问的一个或多个卷的计算实例的用户的备份请求)将产生诸如存储于存储系统697a和存储系统697b上的分块副本657al_657an的一系列分块副本。这样的备份请求可指定诸如存储系统697a和存储系统697b的目的地,以用于将存储于卷A655a中的数据的部分的一组备份副本的各自一个存储在块存储服务665的块级存储上。分块副本657al-657an产生于用户请求将由块范围限定的快照的部分分发至多个存储系统。总言之,分块副本657al-657an表示在特定时间点的卷A 655a的状态的完整快照。响应于这样的请求,块存储服务665在时间&创建快照A656a,以及将分块657al-657a2存储在存储系统697a上并将分块657a3_657an存储在存储系统697b上。因而,在时间h,将分块657al-657an保存为卷A655a的状态的备份副本。在一些实施方案中,块存储服务665接着删除或释放快照A656a,以节省块存储服务665上的空间。另外,在一个实施方案中,从输入(如来自附接至块存储服务665支持的一个或多个卷的计算实例的用户的备份请求)将产生诸如存储于存储系统697a上的文件副本657bl-657bn和存储于存储系统697b上的文件副本658bl_658bn的一系列文件副本。这样的备份请求可指定诸如存储系统697a和存储系统697b的一组目的地,以用于将存储于卷B655b中的数据的一组备份副本的复制构件存储在块存储服务665的块级存储上。被描绘为快照副本657bl-657bn和文件副本658bl_658bn的一系列备份副本产生于用户请求创建快照,其中分别在两个位置复制快照内的每个文件的存储,并且一组文件副本657bl-657bn和一组文件副本658bl-658bn均表示在特定时间点的卷B655b的完整状态。因而,文件副本657bl-657bn和文件副本658bl_658bn的创建产生提供卷B 655b的冗余备份的备份副本集。响应于这样的请求,块存储服务665在时间&创建快照B656b,以及通过网络670将文件副本657bl-657bn存储在存储系统697a。块存储服务665通过网络670将文件副本658bl-658bn存储在存储系统697b。因而,在时间L,将文件副本657bl_657bn和文件副本658bl-658bn保存为卷B655b的状态的冗余备份副本。在一些实施方案中,块存储服务665接着删除或释放快照B656b,以节省块存储服务665上的空间。图7是示出根据一个实施方案恢复一系列卷快照的一系列存储交互的高级框图。块存储服务765通过网络770来与存储系统797a和存储系统797b进行通信。在一个实施方案中,存储系统797a类似于图2A的存储系统297。存储系统797a保持快照副本757al-757an,每一个快照副本均表示在特定时间点的卷A的完整状态。在一个实施方案中,以与上文所述的关于图5的快照副本557al-557an的方式相类似的方式创建快照副本757al-757an。存储系统797a进一步保持快照BI副本757bl。块存储服务765支持的计算实例的用户可请求从快照副本757al_757an之一恢复卷A,同时基于(例如)计算实例的用户想要恢复卷A的时间点来选择快照副本757al-757an的特定一个。响应于这样的请求,块存储服务765确定所需配置,以用于创建诸如(例如)快照An副本757an的快照副本757al_757an的优选之一的输入位置的卷A。块存储服务765创建空接收卷,其被标记为卷A755a。接着,块存储服务765将检索请求发送至存储系统797a,请求将快照An副本757an的内容发送至块存储服务765。在一个实施方案中,当在块存储服务765上接收快照An副本757an的内容,快照副本757an的内容被描绘为快照AN756a,并且接着被传送至卷A755a。在一个实施方案中,在完成将所有数据从快照副本757an接收至快照AN756n之前,被接收并被传送至卷A755a的内容对计算实例的用户可用,且被提供给计算实例的用户。另外,在一个实施方案中,存储系统797a和块存储系统765使用共享的API协议进行通信。
类似地,存储系统797a保持快照副本757b I,以及存储系统797b保持快照副本757b2,每个快照副本均表示在特定时间点的卷B的完整状态。在一个实施方案中,以与上文所述的关于图5的快照副本557bl-557b2的方式相类似的方式创建快照副本757bl-757b2。块存储服务765支持的计算实例的用户可请求从快照副本757bl_757b2之一恢复卷B,同时基于(例如)计算实例的用户想要恢复卷B的时间点来选择快照副本757bl-757b2的特定一个。响应于这样的请求,块存储服务765确定所需配置,以用于创建诸如快照副本757bl-757b2的适当之一的输入位置的卷B。块存储服务765创建空接收卷,其被标记为卷B755b。接着,块存储服务765将检索请求发送至存储系统797a,请求将快照副本757bl的内容发送至块存储服务765。在一个实施方案中,当在块存储服务765上接收快照副本757bl的内容,快照副本757bl的内容被描绘为快照B1756b,并且接着被传送至卷B755b。另外,存储系统797b保持快照副本757nl-757n2,每个快照副本均表示在特定时间点的卷N的完整状态。在一个实施方案中,以与上文所述的关于图5的快照副本557nl-557n2的方式相类似的方式创建快照副本757nl_757n2。块存储服务765支持的计算实例的用户可请求从快照副本757nl-757n2之一恢复卷N,同时基于(例如)计算实例的用户想要恢复卷N的时间点来选择快照副本757nl-757n2的特定一个。响应于这样的请求,块存储服务765确定所需配置,以用于创建诸如快照副本757nl-757n2的输入位置的卷N。块存储服务765创建空接收卷,其被标记为卷N755n。接着,块存储服务765将检索请求发送至存储系统797b,请求将快照N2副本757n2的内容发送至块存储服务765。在一个实施方案中,当在块存储服务765上接收快照N2副本757n2的内容,快照副本757n2的内容被描绘为快照N2756n,并且接着被传送至卷N755n。在一个实施方案中,存储系统797b和存储系统765可使用块存储适配器760进行通信,以将对块存储系统765使用的协议格式化的API请求转换成对存储系统797b使用的协议格式化的API请求。图8是示出根据一个实施方案恢复卷部分的一系列备份副本的一系列存储交互的高级框图。块存储服务865通过网络870来与存储系统897a和存储系统897b进行通信。在一个实施方案中,存储系统897a类似于图2A的存储系统297。存储系统897a存储分块副本857al-857a2和文件副本857bl_857bn。类似地,存储系统897b存储分块副本857a3-857an和文件副本858bl_858bn。在一个实施方案中,存储系统897b类似于图2的存储系统297。存储系统897b使用网络870来与块存储服务865进行通信。在一个实施方案中,备份存储适配器850为块存储服务865提供能力,以采用存储API格式将如API调用的请求发送至存储系统897a,以及从存储系统897a接收对存储API调用的响应。在不存在存储适配器850的情况下,存储系统897a使用而存储服务865不使用所述存储API格式。在一个实施方案中,存储系统897b和块存储服务865可使用不具有备份存储适配器850的服务的通用API格式来进行通信。在交替实施方案中,备份存储适配器850为块存储服务865提供能力,以采用存储API格式将如API调用的请求发送至存储系统897b,以及从存储系统897b接收对存储API调用的响应。在不存在存储适配器850的情况下,存储系统897b使用而存储服务865不使用所述存储API格式。存储系统897a和存储系统897b可由相同或不同的实体控制。
块存储服务865支持的计算实例的用户可请求由快照副本857al_857an构成的快照恢复卷A。响应于这样的请求,块存储服务865确定所需配置,以用于在存储系统897a和存储系统897b上创建诸如快照副本857al-857an的输入位置的卷A。块存储服务865创建空接收卷,其被标记为卷A855a。接着,块存储服务865将检索请求发送至存储系统897a和存储系统897b,请求将分块副本857al-857an的内容发送至块存储服务865。在一个实施方案中,当在块存储服务865上接收分块副本857al_857an的内容,分块副本857al-857an的内容被描绘为包含分块856al_856an的快照A856a,并且接着作为855al-855an而被传送至卷A855a。在一个实施方案中,在完成将所有数据从分块副本857al-857an接收至快照A856A之前,被接收并被传送至卷A855a的内容对计算实例的用户可用,且被提供给计算实例的用户。块存储服务865支持的计算实例的用户可请求从由文件副本857b l_857bn和858bl-858bn构成的快照B856b恢复卷B855b。响应于这样的请求,块存储服务865确定所需配置,以用于在存储系统897a和存储系统897b上创建诸如文件副本857bl_857bn和858bl-858bn的输入位置的卷B。在一个实施方案中,可基于载入存储系统897a和存储系统897b的分发或其它标准(如服务器可靠性或响应性)来选择输入单个文件副本857bl-857bn和858bl-858bn的位置。具体而言,从由驻留在存储系统897a上的文件副本857bl_857bn和驻留在存储系统897b上的文件副本858bl-858bn构成的快照B856b中恢复卷B855b的能力提供几种形式的存储灵活性。例如,如果检索驻留在存储系统897a上的文件副本857bl-857bn变得缓慢,或存储系统897a变得完全无响应,那么可通过检索驻留在存储系统897b上的文件副本858bl-858bn来加速快照B856b的数据的输入。或者,存在驻留在存储系统897a上的文件副本857bl-857bn和驻留在存储系统897b上的文件副本858bl_858bn可允许存储管理,其中在更快的存储服务器上初始地创建文件副本,并且缓慢地将文件副本复制到更慢的服务器,最终随着时间(在一些实施方案中,该时间从最后使用的时间或创建的时间测量而得的)而将文件副本从更快的服务器删除。类似地,不脱离本公开的范围的实施方案执行类似于驻留在存储系统897a上的文件副本857bl-857bn和驻留在存储系统897b的文件副本858bl-858bn的分发和使用的多重副本分块分发。块存储服务865创建空接收卷,其被标记为卷B855b。接着,块存储服务865将检索请求发送至存储系统897a和存储系统897b,请求将存储系统897a和存储系统897b中选定的一个的内容发送至块存储服务865。在一个实施方案中,当在块存储服务865上接收到文件副本857bl_857bn和858bl-858bn中选定的一个的内容,文件副本857bl-857bn和858bl-858bn中选定的一个的内容被描绘为包含文件856bl-856bn的快照B856b,并接着作为文件855bl-855bn被传送至卷B855b。在一个实施方案中,在完成将所有数据从文件副本857bl-857bn和858bl-858bn中选定的一个接收至快照B856B之前,被接收并被传送至卷B855b的内容对计算实例的用户可用,且被提供给计算实例的用户。实例计算机系统实施方案可以预测的是,在一些实施方案中,上文所论述的任何方法、技术或组件均可作为能够经由计算机可访问的媒介而被存储或传达的指令和数据来实现。这样的方法或技术可包括,例如且不限于,将块级存储提供至一组不同用户的一组计算实例的块存储服务的各种方法,其中实施方案提供用于为一组不同用户创建存储于块级存储中且由一组不同计算实例产生的数据的备份副本的备份副本功能,以及用于将备份副本存储于由一组不同用户的各自用户指定的不同的目的位置中的存储功能,如上文所描述的且图1-7示出的元件和方法所执行的的那些功能,或这样的元件和方法的合适变更。可执行这样的指令,以执行为特定目的(例如,处理网络服务流量、执行高精度数值算法等)之用的特定计算功能和诸如操作系统功能、虚拟化功能、网络通信功能、应用功能和/或其它合适功能的高阶功能。图9示出包括计算机可访问的媒介的计算机系统的一个实例实施方案。计算机系统900可对应于图1示出的物理计算机系统100的实例实施方案。对应地,在各个实施方案中,上文所描述的各个模块或方法(例如,如上文描述的操作系统150、虚拟模块160、虚拟机180和/或其它元件所提供的)的任何一个的功能可通过计算机系统900的一个或几个实例来实现。类似地,数据中心200的各个元件,如数据中心200的节点210、计算系统230、块存储服务265、本地存储系统292和其它功能单元可通过计算机系统900的一个或几个实例来实现。具体而言,应注意,图1中示出的系统的不同元件可通过不同计算机系统900来实现。例如,当虚拟化模块160可在一个计算机系统900上实现时,虚拟机200可在虚拟模块160的控制下的不同计算机系统900上执行。类似地,当数个节点210和数个计算系统230中的一个可通过不同计算机系统900来实现时,块存储服务265、远程存储系统297和本地存储系统292中的每一个也可通过不同计算机系统900来实现。在不同计算系统实施方案中,将构成个别计算系统,其将省略图9所示的各个部分,并包括图9中省略的其它部分。在所示出的实施方案中,计算机系统900包括经由输入/输出(I/O)接口 930而耦合至系统内存920的一个或多个处理器910。计算机系统900进一步包括耦合至I/O接口 930的网络接口 940。在各个实施方案中,计算机系统900可以是包括一个处理器910的单处理器或包括数个处理器910 (例如,两个、四个、八个或另一合适数量)的多重处理器。处理器910可以是能够执行指令的任何合适的处理器。例如,在各个实施方案中,处理器910可以是通用或嵌入式处理器,通用或嵌入式处理器实现诸如x86、PowerPC , SPARC 或MIPStmISA或任何其它合适的ISA的多种指令集架构(ISA)中的任何一个。在多重处理器系统中,每个处理器910可通常地但不必要地实现相同的ISA。系统内存920可被配置来存储可由处理器910访问的指令和数据。在各个实施方案中,系统内存920可使用任何合适的存储技术(如静态随机存储器(SRAM)、同步动态RAM(SDRAM)、非易失性/闪光型存储器或任何其它类型的存储器)来实现。在所示出的实施方案中,实现诸如上文所描述的所需功能、方法和技术的指令和数据被示出为作为代码925存储于系统内存920内。应注意,在一些实施方案中,代码925可包括实现处理器910不直接执行但以抽象形式(可转换为处理器910直接执行的指令)呈现或编码的所需的功能。例如,代码925可包括在可由处理器910或由可在处理器910上执行的其它代码925仿真的ISA中指定的指令。或者,代码925可包括以在执行过程中可编译或解译的抽象编程语言来实现的指令、程序或语句。作为非限制性实例,代码925可包括以如下语言指定的代码:诸如C或C++的面向程序或对象的编程语言、诸如peri的脚本语言、诸如HTML或XML的标记语言或任何其它合适的语言。
在一个实施方案中,I/O接口 930可被配置来协调处理器910、系统内存920或包括设备中的任何外围设备(包括网络接口 940或其它外围接口)之间的I/O流量。在一些实施方案中,I/O接口 930可执行任何必要的协议、时序或其它数据转换,以将数据信号从一个组件(例如,系统内存920)转换为适合另一组件(例如,处理器910)使用的格式。例如,在一些实施方案中,I/O接口 930可包括对通过各种类型的外围总线(如外部控制器接口(PCI)总线标准或通行串行总线(USB)标准的变量)附接的设备的支持。例如,在一些实施方案中,I/O接口 930的功能可分成两个或多个单独组件,如北桥和南桥。另外,在一些实施方案中,诸如至系统内存920的接口的I/O接口 930的一些或所有功能可直接并入处理器 910。例如,网络接口 940可被配置来允许数据在计算机系统900和附接至网络120的其它设备(如其它计算机系统)之间进行交流。例如,在各个实施方案中,网络接口 940可支持经由如下网络的通信:诸如任何合适类型的以太网络的有线或无线通用数据网络;诸如模拟语音网络或数字光纤通信网络的通信/电话网络;和诸如光纤通道SAN的存储区域网络或诸如任何其它类型的网络和/或协议。在一些实施方案中,系统内存920可以是被配置来存储如上所描述的指令和数据的计算机可访问存储介质的一个实施方案。然而,在其它实施方案中,可在不同类型的计算机可访问存储介质上接收、发送或存储指令和/或数据。一般而言,计算机可访问存储介质可包括存储介质或诸如磁介质或光学介质的存储器介质,例如,磁盘或经由I/o接口 930率禹合至计算机系统900的⑶/DVD-ROM。计算机可访问存储介质还可以包括诸如RAM (例如,SDRAM.DDR SDRAM、RDRAM、SRAM等)、R0M等的任何易失性或非易失性存储介质,其可作为系统内存920或另一类型的内存而被包括在如的计算机系统900的一些实施方案中。通常可经由传输介质或诸如电、电磁或数字信号的信号来访问计算机可访问存储介质,经由诸如网络和/或无线链路的通信介质来传达计算机可访问存储介质,以及经由网络接口 940来实现计算机可访问存储介质。尽管上文已非常详细地描述实施方案,但是本领域技术人员一旦彻底理解上述公开,许多变更和修改对来说将是显而易见的。本文旨在使以下权利要求书被解释来包括所有这样的变更和修改。条款1.一种方法,其包括:块存储服务将块级存储提供至多个不同用户的多个不同计算实例;块存储服务提供备份副本功能,以为所述多个不同用户创建存储于所述块级存储中且由多个不同计算实例产生的数据的备份副本,以及将备份副本存储在由所述多个不同用户的各自用户指定的不同目的地位置中;块存储服务从指定特定目的地的所述多个不同用户中的所述特定一个中接收输入,其中所述特定目的地用于为所述多个不同用户中的特定一个存储存储于块级存储中的数据的至少一部分的备份副本;为所述多个不同用户中的所述特定一个创建存储于块级存储中的数据的至少一部分的备份副本,以及为所述多个不同用户中的所述特定一个而将存储于块级存储中的数据的至少一部分的备份副本存储至特定目的地;块存储服务从指定不同目的地的所述多个不同用户中的另一个用户处接收输入,其中所述不同目的地用于为所述多个不同用户中的所述另一个用户存储存储于块级存储中的数据的至少一部分的备份副本;为所述多个不同用户的所述另一个用户创建存储于块级存储中的数据的至少一部分的备份副本,以及为所述多个不同用户中的所述另一个而将存储于块级存储中的数据的至少一部分的备份副本存储至所述不同目的地;以及其中所述特定目的地和所述不同目的地是用于彼此远离的不同存储系统。条款2.根据条款I所述的方法,其进一步包括从所述特定用户处接收输入,其中所述特定用户将用于备份的数据的至少一部分指定为附接至所述特定用户的所述多个不同计算实例中的一个的块级存储卷。条款3.根据条款I所述的方法,其进一步包括从将用于备份副本的数据的至少一部分指定为存储于块级存储中的一个或多个文件的用户处接收输入。条款4.根据条款I所述的方法,其进一步包括从将用于存储的数据的至少一部分指定为块级存储中的数据位置的范围的所述特定用户处接收输入。条款5根据条款I所述的方法,其中为所述特定用户存储于块级存储中的数据的至少一部分是附接至所述特定用户的所述多个不同计算实例的至少一个的块级存储卷,所述方法进一步包括创建所述块级存储卷的时间点快照,其中所述备份副本是时间点快照的副本。条款6.根据条款I所述的方法,其进一步包括:从指定用于存储备份副本的至少一个其它目的地的用户处接收输入;以及块存储服务将备份副本存储至除所述特定目的地以外的所述至少一个其它目的地。条款7.根据条款I所述的方法,其进一步包括:从指定用于为所述特定用户存储存储于所述块级存储的数据的另一部分的备份副本的至少一个其它目的地的所述特定用户处接收输入;以及所述块级存储服务将数据的另一部分的备份副本存储至其它目的地。条款8.根据条款I所述的方法,其中所述特定目的地用于由与所述块存储服务相同的实体操作的存储系统,以及所述不同目的地用于由不同实体操作的存储系统。条款9.根据条款I所述的方法,其中所述存储至所述特定目的地和所述存储至所述不同目的地二者均根据通用应用程序编程接口(API)来执行。条款10.根据条款I所述的方法,其中所述存储至所述特定目的地和所述存储至所述不同目的地均可根据不同的API来执行。条款11.根据条款10所述的方法,其进一步包括从所述特定用户处接收用于将数据存储至所述特定目的地的接口模块,其中所述接口模块根据特定目的地的存储API执行存储操作。条款12.根据条款I所述的方法,其进一步包括为所述特定用户在所述块级存储中创建或回复存储卷,其中所述创建包括从所述特定目的地检索所述备份副本。条款13.—种系统,其包括:一个或多个组件,其被配置来实现块存储服务,其中所述块存储服务包括:块级存储,其用于为用户存储来自计算实例的数据;
接口,其被配置来允许所述用户指定各自的目的地,以用于为所述用户存储存储于块级存储中的各自的数据的备份副本,其中所述各自的目的地的至少一些是用于相互远离的不同存储系统;备份副本功能,其用于为所述用户创建存储于所述块级存储且由所述多个不同计算实例产生的数据的备份副本,以及将所述备份副本存储在由所述用户经由所述接口指定的不同目的地位置。条款14.根据条款13所述的系统,其中:所述块级存储进一步被配置来为多个不同用户存储来自多个不同计算实例的数据;所述接口进一步被配置来允许所述多个不同用户指定所述各自的目的地,以用于为所述多个不同用户存储存储于所述块级存储中的所述各自的数据的备份副本;以及所述备份副本功能进一步被配置来为所述多个不同用户创建存储于所述块级存储中的数据的备份副本;以及将所述备份副本存储在由所述多个不同用户的各自用户经由所述接口而指定的不同目的地位置中。条款15.根据条款14所述的系统,其中所述块级存储存储一个或多个块级存储卷,其中每个块级存储卷均被附接至所述多个不同计算实例的至少一个,以及其中所述块存储服务进一步被配置来创建一个或多个块级存储卷的时间点快照,其中所述备份副本是所述时间点快照的副本。条款16.根据条款14所述的系统,其中所述接口进一步被配置来允许所述多个不同用户中的给定一个用户指定多个不同目的地,以用于为所述多个不同用户中的所述给定一个用户存储存储于所述块级存储中的数据的备份副本。条款17.根据条款14所述的系统,其中所述各自的目的地中的一个目的地是用于由与所述块存储服务相同的实体操作的存储系统,以及所述各自的目的地中的另一个目的地是用于由不同实体操作的存储系统。条款18.根据条款14所述的系统,其中所述块存储服务被配置来根据通用应用程序编程接口(API)而将备份副本存储至各自的目的地。条款19.根据条款14所述的系统,其中所述块存储服务被配置来根据不同的API而将备份副本存储至各自的目的地。条款20.根据条款19所述的系统,其中所述块存储服务进一步被配置来从所述特定用户处接收用于将数据存储至所述特定目的地的可插模块,其中所述可插模块根据所述特定目的地的存储API来执行存储操作。条款21.—种方法,其包括:块存储服务接收用于指定特定输入位置的输入,其中从所述特定输入位置处检索存储卷的快照副本;所述块存储服务从所述特定输入位置处检索快照副本;基于所述快照副本,在所述块存储服务的块级存储中创建或恢复块级存储卷;将所述块级存储卷提供至多个不同用户中的特定用户;为所述多个不同用户的另一用户对来自不同输入位置的另一快照副本重复所述接收,所述检索,所述创建或所述恢复,以及所述提供。
条款22.根据条款21所述的方法,其中所述将块存储卷提供至多个不同用户中的特定用户进一步包括将所述块存储卷提供至所述多个不同用户中的所述特定用户的计算实例。条款23.根据条款22所述的方法,其中所述由块存储服务从特定输入位置处检索快照副本进一步包括:响应于从所述计算实例处接收到的请求而从所述特定输入位置处检索选定数据,以从所述块级存储卷读取所述选定数据;以及从所述特定输入位置处检索非选定数据。条款24.根据条款23所述的方法,其中所述从特定输入位置处检索非选定数据进一步包括以确定来表示预期请求的模式的顺序从所述特定输入位置处检索所述非选定数据。条款25.根据条款23所述的方法,其中所述将所述块级存储卷提供至所述计算实例进一步包括在完成检索所述非选定数据之前提供所述选定数据。条款26.根据条款22所述的方法,其中所述特定输入位置是用于由与所述块存储服务相同的实体操作的存储系统,以及所述不同输入位置是用于由不同实体操作的存储系统。条款27.根据条款22所述的方法,其中所述检索和所述重复所述检索二者均根据通用应用程序编程接口(API)来执行。条款28.根据条款22所述的方法,其中所述检索和所述重复所述检索均根据不同的API来执行。条款29.根据条款22所述的方法,其进一步包括从与所述输入相关联的特定用户处接收用于从所述特定输入位置处检索数据的接口模块,其中所述接口模块根据所述特定输入位置的存储API来执行检索操作。条款30.—种永久的计算机可读存储介质,其用于存储当在一个或多个计算机上执行时实现以下项的程序指令:块级存储,其用于为多个不同用户存储来自多个不同计算实例的数据;接口,其被配置来允许所述多个不同用户指定各自的目的地,以用于为所述不同用户存储存储于所述块级存储中的各自的数据的副本,其中所述各自的目的地中的至少一些目的地是用于相互远离的不同存储系统;以及备份副本功能,其用于为所述多个不同用户创建存储于所述块级存储且由所述多个不同计算实例产生的数据的备份副本,以及将所述备份副本存储于由所述多个不同用户中的各自一个用户经由所述接口而指定的不同目的位置中。条款31.根据条款30所述的介质,其中所述块级存储存储一个或多个块级存储卷,其中每个块级存储卷被附接至所述多个不同计算实例的至少一个,以及其中所述块存储服务进一步被配置来创建所述一个或多个块级存储卷的时间点副本,其中所述备份副本是所述时间点快照的副本。条款32.根据条款30所述的介质,其中所述接口进一步被配置来允许所述多个不同用户中的给定一个用户指定多个不同目的地,以用于为所述多个不同用户中的所述给定一个用户存储存储于所述块级存储中的数据的备份副本。
条款33.根据条款30所述的介质,其中所述各自的目的地中的一个目的地是用于由与所述块存储服务相同的实体操作的存储系统,以及所述各自的目的地中的另一个目的地是用于由不同实体操作的存储系统。
权利要求
1.一种系统,其包括: 一个或多个计算机,其被配置来实现块存储服务,其中所述块存储服务包括: 块级存储,其用于为用户存储来自计算实例的数据; 接口,其被配置来允许所述用户指定各自的目的地,以用于为所述用户存储存储于所述块级存储中的各自的数据的备份副本,其中所述各自的目的地中的至少一些是用于互相远离的不同存储系统; 备份副本功能,其用于为所述用户创建存储于所述块级存储的所述计算实例的数据的备份副本,以及将所述备份副本存储于由所述用户经由所述接口而指定的不同目的位置中。
2.根据权利要求1所述的系统,其中: 所述块级存储进一步被配置来为多个不同用户存储来自多个不同计算实例的数据; 所述接口进一步被配置来允许所述多个不同用户指定所述各自的目的地,以用于为所述多个不同用户存储存储于所述块级存储中的所述各自的数据的所述备份副本;以及 所述备份副本功能进一步被配置来为所述多个不同用户创建存储于所述块级存储的数据的备份副本,以及将所述备份副本存储于由所述多个不同用户的各个用户经由所述接口而指定的不同目的位置中。
3.根据权利要求2所述的系统,其中所述块级存储存储一个或多个块级存储卷,每个所述块级存储卷被附接至所述多个不同计算实例的至少一个,且其中所述块存储服务进一步被配置来创建所述一个或多个块级存储卷的即时快照,其中所述备份副本是所述即时快照的副本。
4.根据权利要求2所述的系统,其中所述接口进一步被配置来允许所述多个不同用户的给定用户指定多个不同目的地,以用于将为所述多个不同用户的所述给定用户而存储的数据的备份副本存储于所述块级存储中。
5.根据权利要求2所述的系统,其中所述各自的目的地中的一个是用于由与所述块存储服务相同的实体操作的存储系统,以及所述各自的目的地中的另一个目的地是用于由不同的实体操作的存储系统。
6.根据权利要求2所述的系统,其中所述块存储服务被配置来根据通用应用程序编程接口(API)而将所述备份副本存储至所述各自的目的地。
7.根据权利要求2所述的系统,其中所述块存储服务被配置来根据不同的API而将所述备份副本存储至各自的目的地。
8.根据权利要求7所述的系统,其中所述块存储服务进一步被配置来从所述特定用户接收用于将数据存储至所述特定目的地的可插模块,其中所述可插模块根据特定目的地的存储API执行存储操作。
9.一种方法,其包括: 块存储服务接收指定特定输入位置的输入,从所述特定输入位置处检索存储卷的快照副本; 所述块存储服务从所述特定输入位置处检索快照副本; 基于所述快照副本,在所述块存储服务的块级存储中创建或恢复块级存储卷; 将所述块级存储卷提供至多个不同用户的特定用户;为所述多个不同用户的另一用户对来自不同输入位置的另一快照副本重复所述接收、所述检索、所述创建或所述恢复以及所述提供。
10.根据权利要求9所述的方法,其中所述将所述块存储卷提供至多个不同用户的特定用户进一步包括将所述块存储卷提供至所述多个不同用户中的所述特定用户的计算实例。
11.根据权利要求10所述的方法,其中所述块存储服务从所述特定输入位置处检索快照副本进一步包括: 响应于从所述计算实例处接收到的请求而从所述特定输入位置处检索选定数据,以从所述块级存储卷读取所述选定数据;以及 从所述特定输入位置处检索非选定数据。
12.根据权利要求11所述的方法,其中所述从所述特定输入位置处检索非选定数据进一步包括以确定来表示预期请求的模式的顺序从所述特定输入位置处检索所述非选定数据。
13.根据权利要求11所述的方法,其中所述将所述块级存储卷提供至所述计算实例进一步包括在完成检索所述非选定数据之前提供所述选定数据。
14.根据权利要求10所述的方法,其中所述特定输入位置是用于由与所述块存储服务相同的实体操作的存储系统,以及所述不同输入位置是用于由不同实体操作的存储系统。
15.根据权利 要求10所述的方法,其进一步包括从与所述输入相关联的特定用户处接收接口模块,以用于从所述特定输入位置处检索数据,其中所述接口模块根据所述特定输入位置的存储API而执行检索操作。
全文摘要
一组计算机被配置来实现块存储服务。所述块存储服务包括用于为一组不同用户存储来自一组不同计算实例的数据的块级存储。接口被配置来允许所述一组不同用户指定各自的目的地,以用于为所述不同用户存储存储于所述块级存储中的各自的数据的备份副本。所述各自的目的地中的至少一些目的地是用于彼此远离的不同存储系统。提供备份副本功能以用于为所述一组不同用户创建存储于所述块级存储的所述一组不同计算实例的数据的备份副本。所述备份副本存储于由多个不同用户的各个用户经由所述接口而指定的不同目的位置中。
文档编号G06F13/00GK103140842SQ201180046767
公开日2013年6月5日 申请日期2011年9月12日 优先权日2010年9月28日
发明者S·斯瓦苏布拉玛尼恩, B·E·玛歇尔, T·A·瑟坦, N·J·玛尼斯卡科 申请人:亚马逊科技公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1