CN105051675B - 复制目标服务 - Google Patents

复制目标服务 Download PDF

Info

Publication number
CN105051675B
CN105051675B CN201480017153.5A CN201480017153A CN105051675B CN 105051675 B CN105051675 B CN 105051675B CN 201480017153 A CN201480017153 A CN 201480017153A CN 105051675 B CN105051675 B CN 105051675B
Authority
CN
China
Prior art keywords
data
storage
block
order
scsi
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
Application number
CN201480017153.5A
Other languages
English (en)
Other versions
CN105051675A (zh
Inventor
C·K·卡尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Amazon Technologies Inc
Original Assignee
Amazon Technologies Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of CN105051675A publication Critical patent/CN105051675A/zh
Application granted granted Critical
Publication of CN105051675B publication Critical patent/CN105051675B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0661Format or protocol conversion arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

一种数据存储服务接收根据通信协议,例如小计算机系统接口协议配置的命令。所述命令可为发送到块等级数据存储系统,例如存储区域网络的命令的复制。使用基于对象的数据存储系统来存留将通过所述命令的执行而编写的数据。当接收到读取命令时,可从数据块存储在其中的所述数据对象提取所述数据块。

Description

复制目标服务
相关申请的交叉引用
本申请要求2013年4月3日提交的美国专利申请第13/856,279号的优先权,所述专利申请要求2013年3月20日提交的美国临时专利申请第61/803,764号的权益,上述专利申请的内容以全文引用的方式并入本文中。
技术领域
本申请涉及复制目标服务。
背景技术
数据存储系统已演化,并继续发展来跟上使用它们的组织的需求。举例来说,许多组织利用存储区域网络(SAN)来用于计算环境中的性能、冗余性、灵活性和简单性的目的,以及其它原因。尽管其具有许多优点,但现代数据存储系统可能存在对组织的许多挑战。举例来说,数据存储系统通常包括经配置以实现高性能的组件,且此性能通常是有代价的。因此,数据存储系统通常需要大量的资本投入。另外,许多数据存储系统利用根据专有协议操作的专门设备。将数据从数据存储系统移到另一数据存储系统可存在相当大的挑战,通常要求使用能够利用此类专有协议来通信的昂贵设备。因此,使用各种数据存储系统的组织可能发现自己处于需要更加多资本投入的情形中。
发明内容
本发明提供一种用于存储数据的计算机实施的方法,其包括:在配置有可执行指令的一个或多个计算机系统的控制下,接收根据第一通信协议配置的写入命令,所述写入命令为数据块指定识别符;促使所述写入命令的数据作为密钥值存储器中的数据对象的一部分而存留,所述数据对象可使用与所述数据对象相关联的密钥从所述密钥值存储器检索;以及在数据存储器中,使所述密钥与所述数据块的所述识别符关联。
本发明还提供一种用于存储数据的系统,其包括:一个或多个处理器;存储器,其包括指令,所述指令在由所述一个或多个处理器执行时,促使所述系统至少通过以下步骤来模仿块等级存储装置:提供块等级数据存储接口;向所述块等级数据存储接口接收块等级命令;以及利用基于对象的数据存储系统来根据所述接收到的块等级命令,持续地将数据块存储在数据对象中,所述基于对象的数据存储系统是使数据对象与相应密钥关联的密钥值存储器,所述数据对象可使用与所述数据对象相关联的密钥从所述密钥值存储器检索。
附图说明
将参考图式来描述根据本公开的各种实施方案,其中:
图1示出其中可实践各种实施方案的环境的例示性实例;
图2示出其中可实践各种实施方案的环境的例示性实例;
图3示出根据至少一个实施方案的SCSI服务的例示性实例;
图4示出根据至少一个实施方案的用于提供SCSI服务的流程的例示性实例;
图5示出根据至少一个实施方案的用于将数据复制到SCSI服务的流程的例示性实例;
图6示出根据至少一个实施方案的用于处理执行数据操作的命令的流程的例示性实例;
图7示出根据至少一个实施方案的用于使用缓冲器来处理写入命令的流程的例示性实例;
图8示出例示性图表,其示出根据至少一个实施方案的数据目标的配置;
图9示出根据至少一个实施方案的用于从使用SCSI服务存储的数据产生数据量的流程的例示性实例;以及
图10说明其中可实施本公开的各种实施方案的环境。
具体实施方式
在以下描述中,将描述各种实施方案。出于阐释的目的,陈述特定配置和细节,以便提供对实施方案的全面理解。然而,所属领域的技术人员也将明白,可在没有特定细节的情况下实践所述实施方案。此外,为了不模糊正描述的实施方案,可省略或简化众所周知的特征。
所描述和建议的技术涉及提供用于为数据复制提供远程(目标)的服务。在实施方案中,实体(例如,组织)能够联系所述服务,例如穿过经适当配置的应用编程接口(API)向所述服务调用,以请求提供支持读取和写入操作的虚拟装置。在实施方案中,所述实体是操作所述服务的计算资源提供者的客户。在接收到请求后,所述服务可提供所请求的装置,并提供用于所述装置的识别符。所述装置可为例如虚拟数据存储装置,其经配置以根据小计算机系统接口(SCSI)协议(例如SCSI-3)来操作。用于所述装置的识别符可为逻辑单元编号(LUN),其为所述实体唯一地识别所述装置。如下文所论述,所述实体可将命令(例如,SCSI命令)复制到所提供的虚拟装置,以促使所述数据相应地存留。
在实施方案中,所述实体使用数据存储系统,例如存储区域网络(SAN)。利用所述数据存储系统的所述实体的主机(例如,服务器或其它计算装置)能够将命令发出到数据存储系统,以促使所述数据存储系统执行相应的操作。对于某些操作,例如写入操作,将对应命令发送到数据存储系统以及对应于所提供的装置的遥控端点两者。举例来说,当将写入命令发出到数据存储系统时,将同一命令发送到提供所述装置的服务,使得在数据存储系统处且为虚拟装置远程执行所述写入命令。
在一些实例中,主机根据非专有协议,例如SCSI-3,与数据存储系统通信。可嵌入非专有协议的命令,以实现命令经由各种介质的运输。举例来说,主机可经由因特网协议小计算机系统接口(iSCSI)协议或光纤信道协议(FCP),使用SCSI来与数据存储系统通信。对于某些类型的命令,使用非专有协议,通过经由网络(例如因特网)将命令发送到远程端点来复制所述命令,如上文所论述。可使用另一协议来包封非专有协议的命令,以实现其经由所述网络的传送。
如上文所述,远程端点对应于服务的接口,其接收所述非专有协议的所复制的命令,且相应地存留数据。举例来说,所述服务可接收发出到SAN的相同SCSI命令。所述服务可根据所述命令而存留数据,从而常见写入到SAN的数据的复制。在一些实例中,所述服务与数据存储服务交互,以持续地且持久地为所提供的装置存留数据。在其它实例中,所述服务维持其自己的数据存储器(例如,密钥值存储器,其中可使用数据的密钥来存取所述数据)。
在各种实施方案中,命令发送到(且复制到服务)的数据存储系统为块数据存储系统,其在块等级上操作,利用预定大小,例如512个字节的均一数据块。发出到数据存储系统的命令可在块等级上配置,例如通过制定所述命令应用于的一个或多个块。用来结合所复制的命令而留存数据的数据存储服务可以不同方式操作。举例来说,数据存储服务可为基于对象的,从而实现不一定为均一大小的数据对象的存储。基于对象的数据存储系统可存储数据对象作为下面的块数据存储装置的抽象。在一些实例中,数据存储服务作为密钥值存储器而操作,其中每一数据对象具有用于将数据对象定位在数据存储系统中的对应密钥。对应于所复制的命令的数据可使用数据存储服务在对象等级上存储。在块等级上发出到数据存储系统的写入命令可转化为在对象等级上发出到数据存储服务的命令。举例来说,SCSI命令可用来合适地配置向数据存储服务的API调用。在一些实施方案中,所述命令的转化是异步的。举例来说,可将写入命令写入到缓冲器中(即,将因写入命令的执行而存储的数据可存储在缓冲器中)。可将缓冲器中的数据收集到单个数据对象中,例如,当缓冲器的到期时间到期,或缓冲器中的数据量达到阈值时,所述阈值可为预定的。
以此方式,数据存储系统,例如SAN中的数据可持久地且持续地复制,而无需大量额外的资本投入。另外,本文所描述且建议的技术促成额外的技术优点。举例来说,在一些实施方案中,因为命令所复制到的服务能够处理来自多个装置的SCSI命令,所以所述多个装置不一定在单个位置中托管。在一个实例中,使用所述服务来支持其中一个装置能够向所述服务所提供的虚拟装置写入,且多个装置能够从所述虚拟装置读取数据的模型。作为另一实例,所述服务所存留的数据可用来提供额外的数据存储量,以供其它计算机系统使用。在一些实例中,计算资源提供者可提供虚拟块存储装置,其可在逻辑上安装到虚拟计算机系统服务的虚拟计算机系统。本文所描述的各种技术也实现额外的用途。
图1示出其中可实践各种实施方案的环境100的例示性实例。在环境100中,计算资源提供者102将各种计算资源服务提供给计算资源提供者的客户。计算资源提供者102可为代表一个或多个客户托管各种计算资源的组织。举例来说,计算资源提供者可操作用来托管各种计算硬件资源的一个或多个设施,例如硬件服务器、数据存储装置、网络装置,本文所论述的其它装置以及其它设备,例如服务器机架、连网电缆等。计算资源硬件可利用其计算硬件资源来操作一个或多个服务。此类服务可包括使计算资源提供者的客户能够远程管理计算资源以支持客户的操作,同时减少或甚至消除客户投资实体设备的需要的服务。实例服务包括但不限于各种数据存储服务(基于对象的数据存储服务、归档数据存储服务、数据库服务等)、程序执行服务和其它服务。所述服务可由客户用来支持各种各样的活动,例如操作网站、操作支持组织的企业系统、分布式计算和/或其它活动。
因此,如图1中所说明,环境100包括客户104。计算资源提供者102的客户104可利用计算资源提供者102所提供的各种服务。因此,客户104可具有计算资源提供者所托管的各种计算资源。如图1中所说明,客户104具有计算资源提供者102所托管的提供者所托管客户资源106。提供者所托管客户资源106可但不一定包括一个或多个虚拟计算机系统、一个或多个数据存储装置、一个或多个网络家电和/或其它计算资源。在实施方案中,计算资源提供者102提供SCSI服务108。
SCSI服务108可包括一个或多个计算资源,其共同经配置以提供SCSI端点,供计算资源提供者的客户使用,其中SCSI端点是可向其发送并相应地处理SCSI命令的逻辑装置。因此,例如,客户104可利用SCSI服务108来接合计算资源提供者102所托管的SCSI端点执行各种操作。在一些实例中,客户可向正利用SCSI协议的SCSI服务108发出命令,其中所述命令可包括例如读取命令、写入命令和/或其它命令等命令。
从客户104向计算资源提供者102发出的命令可利用客户104藉此与计算资源提供者102通信的协议来包封。举例来说,SCSI命令可从客户104向利用iSCSI协议的计算资源提供者102的SCSI服务108发出。根据本公开的各种实施方案,客户104通过一个或多个装置,能够与SCSI服务108交互,以请求计算资源提供者102将逻辑单元编号(LUN)所识别的逻辑单元添加到提供者所托管的客户资源106逻辑单元可为装置(例如,虚拟装置),由SCSI协议或包封SCSI协议的另一协议寻址的装置。应注意,术语“逻辑单元”和“LUN”可互换使用,且其意义将从上下文清楚。
客户104可向SCSI服务108发送请求,其可经配置以促使LUN110添加到提供者所托管的客户资源106。可以适当配置的API调用,例如网络服务调用的形式来发送所述请求。计算资源提供者102可用关于LUN的信息(即,关于LUN所识别的逻辑单元的信息)来响应来自客户104的对LUN的请求。关于逻辑单元的信息可包括例如LUN,其使客户能够发出将结合所述LUN满足的SCSI命令。来自客户的SCSI命令可例如指定LUN,以使SCSI服务108能够恰当地执行所述命令,例如通过从为所述客户提供的许多LUN中的一者选择。
图2示出其中可实践本公开的各种实施方案的环境200的所说明实例。图2中所说明的环境200可包括例如上文结合图1所述的那些组件的组件。举例来说,图2中的环境200包括计算资源提供者202和客户204。计算资源提供者202和客户204可例如上文结合图1所述而配置。如图2中所说明,客户204可通过一个或多个通信网络,例如因特网206,与计算资源提供者202通信。从客户204到计算资源提供者202的一些通信可促使计算资源提供者202根据本文所述的各种技术及其变化来操作。
如上文所述,计算资源提供者202可向其客户提供各种计算资源服务。举例来说,在此特定例示性实例中,计算资源提供者202提供至少四种服务。在此实例中,计算资源提供者所提供的服务包括基于对象的数据存储服务208、块数据存储服务210、SCSI服务212以及虚拟计算机系统服务214,但不是本公开的所有实施方案均将包括所有此类服务,且在一些实施方案中,除本文明确描述的服务之外,或作为所述服务的替代方案,可提供额外服务。
在实施方案中,基于对象的数据存储服务208包括共同操作以存储客户的数据的计算资源集合。基于对象的数据存储服务208所存储的数据可组织成数据对象。所述数据对象可具有任意大小,也许对大小的某些限制除外。因此,数据存储服务可存储不同大小的大量数据对象。基于对象的数据存储服务可为密钥值存储器,其使数据对象与数据对象的识别符相关联,所述识别符可由客户204用来结合基于对象的数据存储服务208所存储的数据对象来检索或执行其它操作。对数据存储服务的存取可通过适当配置的API调用。另外,在一些实施方案中,可使用唯一URL来寻址数据存储服务所存储的数据对象,所述唯一URL可编码数据对象的密钥和/或所述对象的逻辑数据容器。
实施方案中的块数据存储服务210提供块等级存储容量(例如,虚拟块存储装置),以结合虚拟计算机系统服务214所提供的虚拟计算机系统使用。块数据存储服务210可例如用来提供虚拟块装置,以持续地存储用于虚拟计算机系统的数据。虚拟块装置可在逻辑上安装到虚拟计算机系统,以使虚拟计算机系统能够与虚拟块装置交互,就像虚拟块装置物理上附加(例如,通过串行ATA(SATA)接口)一样。块数据存储服务210可出于各种原因与基于对象的数据存储服务交互。举例来说,块数据存储服务210所提供的块装置的快照,其可为块装置在时间对应点处的信息表示,可作为数据对象存储在基于对象的数据存储服务中。以此方式,存储在虚拟块装置中的数据可具有对应的持续且持久地存储的备份。
实施方案中的SCSI服务212为包括共同经配置以提供逻辑单元且结合所提供的逻辑单元来处理SCSI命令的计算资源集合的服务。在实施方案中,SCSI服务212配置有向客户204暴露的接口,其使客户204能够提交针对为客户204提供的LUN的SCSI命令。可根据其中进行客户204与SCSI服务208之间的通信的方式,在另一协议中包封SCSI命令。在图2的特定例示性实例中,可经由因特网206,通过客户204将来自客户204的SCSI命令提供给SCSI服务212。因此,可使用iSCSI协议来包封SCSI命令。SCSI服务也可经配置以处理接收到的SCSI命令,且根据接收到的命令,促使数据持续地存储。举例来说,如果SCSI命令为写入命令,那么SCSI服务经配置以存留(本身或使用另一数据存储服务)被指令由所述命令写入的数据。
实施方案中的虚拟计算机系统服务214为共同经配置以为计算资源提供者202的客户托管虚拟计算机系统的计算资源集合。计算资源提供者202的客户可与虚拟计算机系统的服务交互,以提供并操作托管在计算资源提供者202所操作的物理计算装置上的虚拟计算机系统。虚拟计算机系统可用于各种目的,例如作为支持网站的服务器而操作。如下文更详细地论述,对应于客户204的LUN的数据可用来使用块数据存储服务210提供存储容量,块数据存储服务210可在逻辑上安装到虚拟计算机系统服务214所提供的虚拟计算机系统。以此方式,使用虚拟计算机系统服务214提供的虚拟计算机系统能够利用所提供的块装置,就像所述块装置是虚拟计算机系统本身的组件一样。
在实施方案中,客户204可具有在其控制下的各种计算资源,其中客户204的一些或所有计算资源可由所述客户和/或由代表所述客户204的第三方托管。在图2中所说明的实例中,客户204包括存储区域网络(SAN)216。SAN 216可包括计算资源的集合,其共同经配置以提供对统一的块等级数据存储的存取,所述统一的块等级数据存储可由主机存取,使得从主机的角度来看,一个或多个块存储装置就像本地附接到所述主机那样操作。SAN 216可例如实施多个逻辑单元。主机可例如发出指定特定逻辑单元(例如,通过逻辑单元的LUN)的SCSI命令,且SAN将把所述命令投送到SAN的适合满足所述命令的物理数据存储装置。SAN可包括各种组件,来利用各种数据存储技术。举例来说,处于数据持久性的目的,SAN可包括用于独立磁盘冗余阵列(RAID)的控制器。
在实施方案中,SAN 216包括各种组件,例如磁盘阵列218和开关220。磁盘阵列218可包括数据存储装置的集合,例如硬盘或固态存储装置,其通过开关220连网在一起,以使主机能够结合由磁盘阵列218的磁盘共同存储的数据来执行各种操作。应注意,虽然术语“磁盘阵列”218用于说明的目的,但本公开的各种实施方案不限于利用旋转磁性介质的存储装置的集合。举例来说,在各种实施方案中,也可使用固态驱动器(SSD)和/或磁带。在实施方案中,开关220是经配置以经由光纤信道协议(FCP)投送SCSI命令的多层导向器开关(MDS或光纤信道开关)。
在图2的实例中,如所陈述,客户包括多个主机222,其通过SAN路由器224(或一般地,在一个协议(例如IP)与用于存储的通信协议(例如SCSI)之间转化通信的任何存储路由器)与SAN通信。主机可为计算机系统,例如服务器计算机系统,其可为物理的或虚拟的,其经配置以利用SAN 216的数据存储。主机222可例如从SAN所实施的容量启动。主机222可向SAN 216发出SCSI命令,以用于执行一个或多个数据操作(例如创建、读取、更新和/或删除操作)的目的。主机222还可通过开关220和SAN路由器224从SAN接收SCSI通信,例如确认和错误消息。
SAN路由器224可为由硬件和/或软件配置以将通信投送到多个端点(例如多个SANs,或如图2中所说明,一SAN和一远程端点)的计算装置。举例来说,可通过SAN路由器224向SAN 216提供通信,包括寻址到SAN 216的SCSI命令。SAN路由器224可将SCSI命令转发到开关220,其将命令提供到磁盘阵列218的适当磁盘。如下文更详细地论述,SAN路由器224还可向SCSI服务212提供通信,以实现SCSI服务212的客户204的利用。举例来说,如下文更详细地论述,向SAN路由器224发出的写入命令可由SAN路由器224提供给开关220以转发给光盘阵列218的适当存储装置,且提供给SCSI服务212。应注意,SAN路由器可经配置以执行额外操作,例如以适当的协议包封SCSI命令,使得可经由SAN 216且经由另一网络,例如因特网206,将命令提供给SCSI服务212。另外,SAN路由器224可经配置以参与各种优化活动,例如通过执行广域网(WAN)加速中所涉及的操作。
如同本文所描述的所有环境,将变化视为在本公开的范围内。举例来说,图2说明一个或多个主机向相应地执行SCSI命令的SAN发出SCSI命令的环境。然而,应注意,本文所描述的技术适用于多种情境。举例来说,在各种实施方案中,SCSI服务不可知从中接收iSCSI命令的环境。通常,SCSI服务可从经配置以发出命令的任何装置接收iSCSI命令。举例来说,iSCSI命令可由许多类型的装置发出,例如服务器计算机系统、桌上型计算机系统、笔记本型(膝上型)计算机系统、平板计算机系统、移动通信装置(例如,智能电话),和/或有能力经由网络与SCSI服务通信的其它装置。如下文所述,装置可执行编程模块,其解译发送到本地存储装置(例如,硬盘驱动器)的命令,并将所述命令复制到SCSI服务,例如通过使用iSCSI来包封所述命令。另外,不一定复制发送到SCSI服务的命令。因为SCSI服务提供LUN,因此在一些实施方案中,SCSI服务可用作远程数据存储装置。装置可例如将iSCSI命令发送到SCSI服务,而不将所述命令发出到本地存储装置。还应注意,虽然出于说明的目的,贯穿本公开广泛地使用SCSI和有关协议(例如,iSCSI),但本公开的范围不一定限于本文明确陈述的协议。
如上文所论述,根据本公开的SCSI服务提供远程执行所复制的SCSI命令的能力。因此,SCSI服务可包括适当的计算资源,来实现接收到的SCSI命令的接收和执行。图3示出表示根据实施方案的此SCSI服务300的图表的例示性实例。SCSI服务300可例如为上文结合图1或图2所描述的SCSI服务。如上文所述,SCSI服务可包括共同地经配置以例如本文所述的各种方式操作的所计算资源的集合。举例来说,在实施方案中,SCSI服务300包括多个子系统,其实现SCSI服务的操作。举例来说,SCSI服务300包括客户接口302。客户接口302可由SCSI服务300的子系统实施。客户接口302可提供客户藉此能够与SCSI服务通信以便利用SCSI服务300的机制。在实施方案中,客户接口302允许将远程产生的API调用提交给SCSI服务300。此类API调用可例如为网络服务调用。因此,SCSI服务300可包括用来实施客户接口302的一个或多个网络服务器。API调用可例如用来向托管SCSI服务300的计算资源提供者发送提供LUN(即,提供逻辑单元)和/或执行其它操作的请求,所述其它操作例如为取消提供LUN、从LUN提供存储容量,和/或其它操作。客户接口302也可经配置以接收包封在适当的协议(例如iSCSI)中或另一适当协议中的SCSI命令。包封SCSI命令的通信可包括信息,其使SCSI服务300能够识别客户身份,确保命令是可信的,且结合将执行哪一命令来识别客户的适当LUN,和/或以其它方式确保SCSI命令和其它通信应该且正确地执行/满足。
在实施方案中,SCSI服务300包括请求处理器304。请求处理器304可为计算机系统,其可包括共同经配置以处理客户通过客户接口302提交的请求的一个或多个计算装置。请求处理器304可例如经配置以产生与其它子系统的适当通信(例如,适当配置的API调用),且处理来自所述其它系统的响应。在一些实例中,请求处理器304经配置以利用数据对象位置数据存储器,以正确地执行所请求的操作。作为例示性实例,如果客户接口302接收到对请求中所识别的特定数据块执行写入操作的SCSI命令,那么请求处理器304可存取数据对象位置数据存储器306,以识别基于对象的数据存储服务的哪一数据对象受所述写入影响,即,识别哪一数据对象含有特定数据块的数据。
请求处理器可使用例如客户身份、LUN以及特定块的识别符来识别含有特定块的数据对象。数据对象位置数据存储器306可经配置以(例如,通过使用相关数据库表)使客户身份与为所述客户提供的任何LUN关联,且使为所述客户提供的任何LUN的块与存储所述块的数据的数据对象关联。举例来说,请求处理器304可向数据对象位置数据存储器306发出查询,其指定足够的信息来使数据对象位置数据存储器306能够为含有所述查询所指定的块的数据的数据对象识别数据对象位置。应注意,如果适用,那么请求处理器304可经配置以利用数据对象位置数据存储器306来识别多个数据对象,例如针对影响多个数据块的SCSI命令。另外,数据对象位置数据存储器306可经配置以提供使请求处理器304能够获得适当的数据对象的信息。举例来说,在数据对象存储在密钥值存储器中的例子中,数据对象位置数据存储器306可经配置以为数据对象提供密钥。在一些实施方案中,在统一资源定位符(URL)中指定所述密钥,统一资源定位符可在网络服务请求中用来使用基于对象的数据存储服务网络服务接口检索数据对象。
如图3中所说明,SCSI服务300包括数据存储服务接口308。如上文所述,在各种实施方案中,数据块的数据存储在数据对象中,数据对象本身可由基于对象的数据存储服务存储,基于对象的数据存储服务可作为密钥值存储器来操作。因此,数据存储服务接口308可经配置以从请求处理器304接收命令,以结合含有受经由客户接口302接收到的SCSI命令影响的数据块的数据的数据对象执行操作。举例来说,数据存储服务接口308可经配置以接收命令来从基于对象的数据存储服务检索一个或多个数据对象。一个或多个数据对象的检索可包括产生一个或多个命令,并将其发送到基于对象的数据存储服务。
因此,数据存储服务接口可包括一个或多个服务器,其经配置以出于执行各种操作的目的,将适当的经配置API调用发送到数据存储服务,所述各种操作例如为将数据对象添加到数据存储服务,从数据存储服务获得数据对象,从数据存储服务更新数据对象,从数据存储服务删除数据对象,和/或执行其它操作。如果基于对象的数据存储服务是远程托管的,那么此类API调用可经由例如因特网的一个或多个网络发送,如果基于对象的数据存储服务是本地托管的,那么此类API调用可经由局域网发送。另外,应注意,虽然结合与基于对象的数据存储服务分开操作的SCSI服务来论述本公开中的各种实施方案,但除使用另一服务来存储数据对象之外,或代替于使用另一服务来存储数据对象,SCSI服务本身可存储数据对象。举例来说,在一些实施方案中,SCSI服务300可包括SCSI服务300所操作的密钥值存储器,以用于支持SCSI服务300的目的。然而,使用与SCSI服务分开的单独数据存储服务提供大量技术优点,例如利用现有数据存储系统的能力,而无需建立另一数据存储服务来支持SCSI服务。
图4示出根据实施方案的用于提供SCSI服务的流程400的例示性实例。图4中所说明的流程400及其变化可由任何合适系统来执行,所述合适系统例如为提供上文所述的SCSI服务的系统。在实施方案中,流程400包括接收(402)提供逻辑单元的客户请求。提供逻辑单元的请求可以任何合适方式接收。举例来说,如上文所述,操作SCSI服务的计算资源提供者可提供网络服务接口,其允许将网络服务请求提交给网络服务接口因此,可接收提供逻辑单元的请求,作为适当配置的网络服务请求或其它API调用。另外,所述请求可包括出于各种目的执行流程400的系统所需和/或可用的任何信息。实例信息包括系统可用来确定所述请求是否可信(例如,由有权在系统中作出此类授权的实体授权)的验证信息;识别提交了所述请求的实体的信息,其可为计算资源提供者的客户的客户识别符;指定逻辑单元的大小的信息,和/或其它信息。在一些实施方案中,请求可指定将用于所提供的逻辑单元的LUN,但执行流程400的系统可本身指派一个,而无来自客户的规定。
在接收到(402)提供逻辑单元的客户请求后,流程400可包括为所述客户提供(404)逻辑单元。为客户提供逻辑单元可包括配置执行流程400的系统所托管的一个或多个计算资源,以便使客户能够结合所提供的逻辑单元,使用SCSI协议来将请求提交给SCSI服务。提供逻辑单元可包括例如更新针对一个或多个子系统的一个或多个记录,使得当接收到针对LUN的可信SCSI命令时,可针对所述LUN执行所述命令。举例来说,在使用数字签名来验证接收到的命令的实施方案中,提供LUN可包括用用来检验命令的真实性的签字密钥来更新任何验证子系统。另外,可在数据库中为LUN创建一个或多个账户,使得例如可用于定位编码数据块的数据的数据对象的信息是可定位的。一般来说,提供逻辑单元可包括使得能够提交且在提交后执行可信SCSI命令的任何操作(其可通过执行提供工作流来安排)。
应注意,可稀疏地提供LUN。举例来说,在一些实施方案中,提供逻辑单元的请求可指定逻辑单元的大小,例如一个太字节。提供逻辑单元不一定包括提供指定量的存储空间,或就此为逻辑单元提供任何存储空间。可响应于接收到(402)的客户请求,向客户提供(406)LUN识别符(LUN ID)。可例如在提供逻辑单元的确认中提供(406)LUN ID。在一些实施方案中,LUN ID为LUN。应注意,在此类实施方案中,不一定将LUN ID提供给客户,例如当客户在请求中指定了LUN时。在其它实施方案中,LUN ID不同于LUN,且可为唯一地识别代表其提供对应逻辑单元的实体的LUN之中和/或较大范围的逻辑单元(例如为计算资源提供者的所有客户提供的所有逻辑单元)之中的LUN的另一识别符。
在一些实施方案中,例如响应于提供逻辑单元的客户请求,同步提供(406)LUNID。然而,响应于接收到的客户请求,可异步地且不一定提供LUN ID。一旦已向客户提供(406)LUN ID,流程400就可包括处理客户请求,以对具有所提供的LUN ID的逻辑单元执行操作。使用SCSI协议来提供执行操作的请求。
如同本文所述的所有流程,将流程400的变化视为在本公开的范围内。举例来说,如上文所述,一些实施方案可包括其中实体(例如,计算资源提供者的客户)利用执行作为WAN加速的一部分的各种操作的存储路由器的情况。此类存储路由器通常在目的地处的另一存储路由器另外参与WAN加速时需要或最佳执行,其可利用可为所述存储路由器的制造商特有的各种专有协议。因此,在各种实施方案中,实体能够指定(例如,作为提供逻辑单元的请求的一部分)将使用的存储路由器,例如通过从可供选择的一组制造商和/或型号选择一制造商和/或型号。执行流程400的系统可提供指定存储路由器,作为提供LUN的一部分。可以各种方式提供存储路由器。举例来说,指定制造商的物理路由装置可操作地连接到经配置以接收来自请求实体的通信的网络。作为另一实例,可提供虚拟计算机系统或其它装置来使用指定存储路由器的协议。如果是专有协议,那么可在证书或其它许可下使用所述协议。
一旦提供逻辑单元,本公开的各种实施方案就允许将SCSI命令复制到远程端点。图5因此示出根据实施方案的用于投送SCSI命令的流程的例示性实例。流程500可由任何合适的装置,例如由上文结合图2所论述的SAN路由器224,或通常由用于来自主机的SCSI命令的通信路径中的任何装置执行。在实施方案中,流程500包括接收(502)来自主机的通信,主机可为例如上文和/或下文所述的计算装置。SCSI通信可包括SCSI命令,其可利用适当的协议来包封。举例来说,如果所述命令是经由光纤信道接收,那么SCSI通信可包括使用光纤信道协议(FCP)包封的SCSI命令。作为另一实例,经由IP网络,SCSI通信可作为包封SCSI命令的iSCSI包接收。
在接收到来自主机的SCSI通信后,流程500可包括确定(504)SCSI通信是否对应于写入命令,例如将某些数据写入到SCSI通信中所指定的特定数据块的命令。确定SCSI通信是否对应于写入命令可包括从SCSI通信提取SCSI命令,以及检查所述通信是否包括对应于多个可用类型的SCSI写入命令中的任一者的命令。如果确定(504)SCSI通信不包括写入命令,那么流程500可继续进行到将通信投送(506)投送到SCSI通信中所指定的目的地。举例来说,如果SCSI通信为iSCSI通信,那么可将iSCSI通信投送到iSCSI通信中所指定的IP地址。
如果确定(504)SCSI通信事实上确实包括写入命令,那么也可将所述通信投送(506)到目的地,例如上文所述。另外,可将写入命令包封(508)在iSCSI包中。将写入包封在iSCSI包中可包括产生iSCSI包,其具有适合使所述iSCSI包的接收者能够处理写入命令的信息。举例来说,参看图2,iSCSI包可包括写入所应用于的LUN的LUN ID,以及验证信息,例如可由计算资源提供者或iSCSI包的其它接收者用来确定所述命令是可信的且应被满足的进入密钥和机密进入密钥。一般来说,可以任何方式配置iSCSI包,使得iSCSI由iSCSI包将投送到的SCSI服务适当地处理。因此,一旦将写入包封在iSCSI包中,流程500就可包括将iSCSI包投送(510)到SCSI服务,例如上文结合图2所描述。
应注意,如同本文所述的所有流程,将变化视为在本公开的范围内。举例来说,虽然图5说明可由结合SAN操作的存储路由器执行,但本公开的各种实施方案不一定利用存储路由器和/或SAN。发出SCSI通信的主机(例如,上文所列的装置)上的编程模块(例如,软件代理)例如可经配置以拦截主机处(即,在内部)的SCSI通信。在拦截SCSI通信且确定SCSI通信含有写入命令后,编程模块可将iSCSI包中的写入命令发送到SCSI服务。主机也可将SCSI通信发送到SAN、网络或本地存储装置,换句话说,主机在检测到写入命令后,可发送两个通信:一个发送到主要存储装置,且另一个发送到SCSI服务。另外,如上文所述,装置不一定需要将命令发送到两个(或两个以上)目的地。举例来说,在一些实施方案中,装置能够将SCSI服务用于主要存储,而不将命令发送到本地存储、网络存储装置或SAN。
在各种实施方案中,不管主机是否首先将SCSI通信发送到发送两个通信的存储路由器,或主机是否本身发送两个通信,均可根据不同协议来发送所述两个不同通信。在一个实例中,例如,主机可将包括包封在光纤信道协议中的SCSI命令的SCSI通信发送到SAN,且可将iSCSI包发送到SCSI服务。然而,应注意,从主机或存储路由器发送的所述两个通信也可为同一协议。举例来说,如果SAN和SCSI服务根据iSCSI协议接收通信,那么所述两个通信可利用同一协议。
另外,可结合图5中所说明的流程500来执行各种额外操作。举例来说,如上文所述,一些存储路由器可执行各种操作以参与WAN加速。因此,在各种实施方案中,流程500可包括执行此类操作。在一些实例中,SCSI服务处的存储路由器可另外参与WAN加速,例如通过解压缩来自执行流程500的装置的经压缩网络流量。
一旦将含有SCSI命令的通信转发到SCSI服务,就可处理所述通信,使得如果适用,那么相应地执行SCSI命令。因此,图6示出可用于提供例如上文所述的SCSI服务的流程600的例示性实例。流程600可由任何合适的系统,例如由上文结合图3所述的SCSI服务执行。在实施方案中,流程600包括接收(602)命令以结合LUN执行操作。所述命令可例如以包封SCSI命令的iSCSI包的形式接收。SCSI命令可通过LUN ID来识别将对其执行操作的逻辑单元。一旦已接收到命令,流程600就可包括确定(604)受接收到的命令的性能影响的一个或多个数据块。举例来说,如果命令是将某些数据写入到块,那么可确定所述块的识别符,例如逻辑块地址(LBA)。确定受影响的数据块可通过从接收到的命令存取所确定的数据块的识别符(例如,所述块的LBA)来执行。
在其中所述命令可影响多个数据块的例子中,可例如通过使用SCSI命令的LBA和传送长度来确定以LBA所指定的块开始的连续数据块的数目,来确定多个数据块。一旦如果已确定(604)一个或多个受影响的数据块,流程600就可包括确定(606)含有一个或多个受影响的数据块的一个或多个数据对象。确定(606)一个或多个数据对象可以任何合适方式执行,且其执行方式可根据各种实施方案而变化。举例来说,如上文所述,SCSI服务可维持使LUN的数据块与数据对象关联的数据库。所述数据库可例如通过使数据块的LBA与密钥值存储器中可用的密钥关联以存取存储所述数据块的数据的数据对象,来使数据块与数据块的数据存储在其中的数据对象关联。因此,可对数据库运行指定一个或多个适用密钥的查询,以存取适当的数据对象。
一旦已确定(606)适当的一个或多个数据对象,流程600可包括存取(608)所确定的一个或多个数据对象。存取(608)一个或多个所确定的数据对象可以任何合适方式执行。举例来说,在实施方案中,将数据对象存储在密钥值存储器中,其中密钥值与数据对象相关联。确定所述数据对象可包括为数据对象确定密钥,且所述密钥可用来从密钥值存储器检索数据对象。另外,可将密钥值存储器作为独立于执行流程600的服务的另一服务来操作。因此,存取一个或多个所确定的数据对象可包括配置经适当配置的API调用并将其发送到其它服务,以便从其它服务检索数据对象,就是说发送从数据存储服务检索一个或多个数据对象的请求,且接收数据对象的响应。
一旦已存取(608)了所确定的一个或多个数据对象,就可执行(610)所请求的操作。应注意,执行所述所请求的操作可以可根据各种实施方案而不同的各种方式执行。举例来说,如果所请求的操作为写入操作,那么执行所述所请求的操作可包括更新数据对象的受写入操作影响的部分,即数据对象的对应于受影响的块的部分。执行所请求的操作还可包括例如通过经由经适当配置的API调用将经更新的数据对象发送到存储数据对象的数据存储服务,来存储经更新的数据对象。
应注意,写入操作不一定需要从存储检索数据对象。举例来说,如果特定数据块的数据将在执行SCSI命令后再写入,那么可将新的数据写入到新的数据对象,旧的数据留在另一数据对象中。仅某些操作(例如,读取操作)可需要检索数据对象,因为可使用新的数据对象来执行其它操作(例如,写入操作)。因此,执行所请求的操作也可相应地包括管理用于跟踪数据块与数据对象之间的关联的元数据。举例来说,如果接收到的命令为特定数据块的写入命令,那么可相应地更新数据库。举例来说,如果用于数据块的条目已经在数据库中,那么可更新所述数据库以反映与所述数据块的数据写入或将写入其中的数据对象的关联。以此方式,可使用数据库中所提供的信息来存取数据块的数据。
如上文所述,SCSI服务的操作可操作,以便优化性能。举例来说,在一些实施方案中,利用密钥值存储器,使得存在针对其存在写入数据的每一数据块的数据对象。因此,如果容量具有写入到1,000个数据块的数据,那么SCSI服务可促使存储1,000个数据对象,每一数据块一个。随着额外数据块被写入,可创建额外数据对象。在一些实施方案中,然而,可通过缓冲写入,且通常通过创建可具有其本身之中不同数目个数据块的数据的数据对象,来改进性能。
根据各种实施方案,可以各种方式来配置数据对象。在一些实例中,例如,数据对象仅由从数据块的对应数据形成的位序列组成。数据对象也可配置有实现数据块的数据在数据对象中的定位的额外信息。图8因此示出根据各种实施方案的数据对象800的例示性实例。在此特定实例中,数据对象800包括标头802和主体804。在实施方案中,标头802包括块信息,其可为实现一个或多个块的数据在主体804的定位的信息。因此,例如,为了使用SCSI服务执行读取操作,可需要使用标头802中的块信息来确定将从主体804读取什么数据。根据各种实施方案,标头可以各种方式编码此信息。举例来说,所述标头可包括使逻辑块地址与识别主体804的哪些位含有对应数据的信息相关联的表。所述信息可直接指定所述位,或可间接地指定所述位,例如通过指定从数据对象中的特定位的偏移量。LBA在表(或其它机制)中的位置也可指示可在主体804中何处找到对应数据。举例来说,在各种实施方案中,由于数据块具有均一大小,因此LBA序列中的第三位置中的LBA可指示对应数据的位置是在对应于两个数据块的若干位之后出现的位置中找到。
在将数据添加(704)到写入缓冲器后,流程700可包括确定(706)写入缓冲器是否已满。确定(706)写入缓冲器是否已满可通过将缓冲器中的数据的量与所述缓冲器的阈值进行比较来执行。举例来说,如果写入缓冲器大约某一预定义值的80%,那么可将写入缓冲器视为已满,但可使用阈值和/或其它条件来确定写入缓冲器是否已满。如果确定(706)写入缓冲器已满,那么流程700可包括从缓冲器中的数据产生(708)数据对象。从缓冲器中的数据产生数据对象可包括以允许使用适当的信息,例如逻辑块地址来定位数据块内的数据的方式产生数据对象。下文论述配置数据对象的实例方式。
如上文所述,本公开的各种实施方案允许SCSI服务的各种使用。图9例如示出用于利用通过SCSI服务获得的数据来提供容量的流程900的例示性实例,所述容量可逻辑上附接到另一计算机系统以使用容量中的数据。流程900可通过任何合适的系统,例如通过上文所述的SCSI服务,或通常通过经配置以执行流程900的操作的计算资源提供者的任何子系统来执行。在实施方案中,流程900包括从LUN(即,从LUN所识别的逻辑单元)接收(902)提供数据量的请求。以任何合适形式,例如以识别LUN且包括用以验证所述请求的额外信息的网络服务或其它API调用的形式来接收(902)所述请求。由于已接收到(902)来自LUN的提供数据量的请求,因此可发起(904)对LUN的数据的容量提供流程。
一旦已更新(712)了数据对象位置数据存储器,流程700就可包括清空(714)写入缓冲器。如果在将写入添加(704)到写入缓冲器,确定(706)写入缓冲器未满,那么可作出写入缓冲器是否到期的确定。写入缓冲器可例如具有到期时间,使得不管写入缓冲器是否已满,如果写入缓冲器含有数据,那么就将所述数据存储在数据对象中,例如上文所述。写入缓冲器可具有经选择来减少维持写入缓冲器的系统的导致数据损坏的故障的风险。举例来说,写入缓冲器可具有从将数据从空状态写入到写入缓冲器的时间开始五秒钟的到期时间。
确定(716)写入缓冲器是否不空且到期可重复地执行,直到确定(716)写入缓冲器到期为止。当确定(716)写入缓冲器到期时,流程700可包括产生(708)和存储(710)包括来自写入缓冲器的数据的数据对象,以及更新适当的数据对象位置数据存储器,且清空(714)例如上文所述的写入缓冲器。当接收到写入命令时,可相应地重复流程700或其变化。以此方式,不一定为每一写入创建数据对象,但收集用于写入的数据,且将其用于分批产生数据对象。另外,因为可归因于写入缓冲器的填充的到期而创建数据对象,所以存储数据块的数据的数据对象的大小可变化。
图8因此示出根据各种实施方案的数据对象800的例示性实例。在此特定实例中,数据对象800包括标头802和主体804。在实施方案中,标头802包括块信息,其可为实现一个或多个块的数据在主体804的定位的信息。因此,例如,为了使用SCSI服务执行读取操作,可需要使用标头802中的块信息来确定将从主体804读取什么数据。
图9示出用于利用通过SCSI服务获得的数据来提供容量的流程900的例示性实例。流程900可通过任何合适的系统,例如通过上文所述的SCSI服务,或通常通过经配置以执行流程900的操作的计算资源提供者的任何子系统来执行。在实施方案中,流程900包括从LUN接收(902)提供数据量的请求。以任何合适形式,例如以识别LUN且包括用以验证所述请求的额外信息的网络服务或其它API调用的形式来接收(902)所述请求。由于已接收到(902)来自LUN的提供数据量的请求,因此可发起(904)对LUN的数据的容量提供流程。可以任何合适方式执行对LUN数据发起容量提供流程。举例来说,在图2的实例中,其中计算资源提供者包括基于对象的数据存储服务和块数据存储服务,可存取来自基于对象的数据存储服务的数据,且将其用于提供从块数据存储服务提供的容量。来自基于对象的数据存储服务的数据因此可从基于对象的数据存储服务传送到块数据存储服务。例如可在图2的实例中,获得(906)所发起的容量的容量识别符,如果执行流程900,那么SCSI服务可包括来自块数据存储服务的识别符。在获得(906)容量识别符后,流程900可包括将容量识别符提供(908)给提交了所接收(902)到的请求的实体,例如执行流程900的计算机资源提供者的客户。应注意,在提供(908)容量识别符且使用所述容量之前,不需要完全发起所述容量。举例来说,在其中通过将来自基于对象的数据存储服务的数据传送到托管所述容量的块数据服务来提供所述容量的实例中,数据传送可为逐渐的流程,如下文所论述。
可以任何合适方式执行对LUN数据发起容量提供流程。举例来说,在图2的实例中,其中计算资源提供者包括基于对象的数据存储服务和块数据存储服务,可存取来自基于对象的数据存储服务的数据,并将其用于从块数据存储服务加载数据。可将所述数据加载到虚拟或物理块装置。来自基于对象的数据存储服务的数据因此可从基于对象的数据存储服务传送到块数据存储服务。可获得(906)所发起的容量的容量识别符。在图2的实例中,例如如果执行流程900,那么SCSI服务可从提供所述容量的块数据存储服务获得识别符。在获得(906)容量识别符后,流程900可包括提供(908)容量识别符。可例如将容量识别符提供给提交了接收(902)到的请求的实体,例如执行流程900的计算机资源提供者的客户。另外或作为替代方案,可将容量识别符提供给虚拟计算机系统服务,其与块数据存储服务共同操作,以逻辑上将所述音量安装(例如,经由网络操作地连接,使得虚拟计算机系统可与音量交互,就像本地连接一样)到虚拟计算机系统服务所提供的虚拟计算机系统。
应注意,在提供(908)容量识别符且使用所述容量之前,不需要完全发起所述容量。举例来说,在其中通过将来自基于对象的数据存储服务的数据传送到托管所述容量的块数据服务来提供所述容量的实例中,数据传送可为逐渐的流程。在块数据存储服务使用来自基于对象的数据存储服务的数据提供容量的上下文中,当将执行对容量中的数据的操作时,可进行数据是否已在容量中还是仍在基于对象的数据存储服务中的检查。如果数据在基于对象的数据存储服务中,那么可立即从基于对象的数据存储服务加载所述数据,使得可执行所述操作。其它变化也被视为在本公开的范围内。
可鉴于以下条款来描述本公开的实施方案:
1.一种用于存储数据的计算机实施的方法,其包括:
在配置有可执行指令的一个或多个计算机系统的控制下,
提供可使用块等级通信协议寻址的虚拟存储装置;
接收写入命令,其是根据块等级通信协议来配置,且寻址所述所提供的虚拟存储装置;以及
对于所述接收到的写入命令的至少子集的每一写入命令,通过至少以下步骤来执行所述写入命令:
促使所述写入命令的数据作为密钥值数据存储器中的数据对象的一部分而存留,所述数据对象可通过参考用于所述数据对象的密钥从所述密钥值数据存储器检索;以及
更新数据存储器,以使所述命令所指定的一个或多个数据块地址与所述密钥关联。
2.如条款1所述的计算机实施的方法,其中所述块等级通信协议还包括小计算机系统接口协议。
3.如条款1或2所述的计算机实施的方法,其中促使所述写入命令的所述数据作为所述数据对象的一部分而存留包括将用于多个写入命令的数据聚集到所述数据对象中。
4.如前述条款中任一项所述的计算机实施的方法,其中:
所述一个或多个计算机系统进一步由计算资源提供者托管;且
所述命令是进一步由所述计算资源提供者的客户从所述计算资源提供者远程产生。
5.如前述条款中任一项所述的计算机实施的方法,其中当接收到时,使用另一通信协议来进一步包封所述接收到的写入命令。
6.如前述条款中任一项所述的计算机实施的方法,其还包括:
接收根据所述块等级通信协议配置的读取命令,且寻址所述所提供的数据存储装置,所述读取命令指定数据块地址;
使用所述数据存储器来至少部分地基于所述所指定的数据块地址,为响应所述读取命令的数据位于其中的数据对象确定密钥;
使用所述所确定的密钥来检索对应于所述密钥的数据对象;
从所述检索到的数据对象提取响应所述读取命令的所述数据;以及
响应于所述读取命令,提供响应所述读取命令的所述所提取的数据。
7.一种用于存储数据的计算机实施的方法,其包括:
在配置有可执行指令的一个或多个计算机系统的控制下,
接收根据第一通信协议配置的写入命令,所述写入命令为数据块指定识别符;
促使所述写入命令的数据作为密钥值存储器中的数据对象的一部分而存留,所述数据对象可使用与所述数据对象相关联的密钥从所述密钥值存储器检索;以及
在数据存储器中,使所述密钥与所述数据块的所述识别符关联。
8.如条款7所述的计算机实施的方法,其中所述命令还包括小计算机系统接口命令,且所述第一通信协议为小计算机系统接口协议。
9.如条款7或8所述的计算机实施的方法,其中:
所述一个或多个计算机系统进一步由计算资源提供者托管;且
所述命令由从中接收所述命令的所述计算资源提供者的客户远程产生。
10.如条款7至9中任一项所述的计算机实施的方法,其中所述写入命令还包括发送到存储区域网络的命令的复制。
11.如条款7至10中任一项所述的计算机实施的方法,其还包括:
接收为所述数据块指定所述识别符的读取命令;
使用所述识别符来确定所述密钥;
使用所述密钥来检索所述数据对象;以及
从所述检索到的数据对象提取所述写入命令的所述数据;以及
响应于所述读取命令提供所述所提取的数据。
12.如条款7至11中任一项所述的计算机实施的方法,其中所述数据对象还含有其它数据块的数据。
13.一种系统,其包括:
一个或多个处理器;
存储器,其包括指令,所述指令在由所述一个或多个处理器执行时,促使所述系统至少通过以下步骤来模仿块等级存储装置:
提供块等级数据存储接口;
向所述块等级数据存储接口接收块等级命令;以及
利用基于对象的数据存储系统来根据所述接收到的块等级命令,持续地将数据块存储在数据对象中。
14.如条款13所述的系统,其中:
所述基于对象的数据存储系统还包括使数据对象与相应密钥关联的密钥值存储器;且
所述指令进一步促使所述系统维持使数据块地址与所述密钥值存储器的密钥关联的映射。
15.如条款13或14所述的系统,其中所述块等级命令还包括小计算机系统接口命令。
16.如条款13至15中任一项所述的系统,其中利用所述对象数据存储系统还包括配置对所述基于对象的数据存储系统的应用编程接口调用。
17.如条款13至16中任一项所述的系统,其中将数据块持续地存储在数据对象中还包括对于所述数据对象的至少子集的每一数据对象,将多个数据块存储在所述数据对象中。
18.如条款13至17中任一项所述的系统,其中所述指令进一步促使所述系统模仿多个实体的块等级存储装置。
19.一个或多个在其中存储有指令的计算机可读存储介质,所述指令在由系统的一个或多个处理器执行时,促使所述系统:
接收指定数据块和所述数据块的数据的写入命令;
促使所述数据块的所述数据持续地存储在存储数据对象的存储系统中,所述数据对象为一个或多个数据块的逻辑容器;以及
维持可用于从所述数据块的识别符定位所述数据对象的信息。
20.如条款19所述的一个或多个计算机可读存储介质,其中所述写入命令是进一步根据小计算机系统接口协议来配置。
21.如条款19或20所述的一个或多个计算机可读存储介质,其中:
所述数据存储系统还包括密钥值存储器;以及
所述信息进一步使所述数据块的块识别符与可用于从所述数据存储系统检索所述数据对象的密钥关联。
22.如条款19至21中任一项所述的一个或多个计算机可读存储介质,其中所述数据对象还含有除所述数据块之外的至少一个数据块。
23.如条款19至22中任一项所述的一个或多个计算机可读存储介质,其中所述指令在由所述一个或多个处理器执行时,进一步促使所述系统:
接收指定所述数据块的读取命令;以及
响应于所述读取命令,通过从所述数据对象获得所述数据块来提供所述数据块。
24.如条款19至23中任一项所述的一个或多个计算机可读存储介质,其中:
所述数据块还包括可通过小计算机系统接口协议寻址的逻辑单元;且
利用使所述系统能够将所述逻辑单元从多个逻辑单元之中区分出来的信息来进一步接收所述命令。
25.一种用于存储数据的计算机实施的方法,其包括:
在配置有可执行指令的一个或多个计算机系统的控制下,
接收根据第一通信协议配置的写入命令,所述写入命令为数据块指定识别符;
促使所述写入命令的数据作为密钥值存储器中的数据对象的一部分而存留,所述数据对象可使用与所述数据对象相关联的密钥从所述密钥值存储器检索;以及
在数据存储器中,使所述密钥与所述数据块的所述识别符关联。
26.如条款25所述的计算机实施的方法,其中所述命令还包括小计算机系统接口命令,且所述第一通信协议为小计算机系统接口协议。
27.如条款25或26所述的计算机实施的方法,其中:
所述一个或多个计算机系统进一步由计算资源提供者托管;且
所述命令由从中接收所述命令的所述计算资源提供者的客户远程产生。
28.如条款25至27中任一项所述的计算机实施的方法,其中所述写入命令还包括发送到存储区域网络的命令的复制。
29.如条款25至28中任一项所述的计算机实施的方法,其还包括:
接收为所述数据块指定所述识别符的读取命令;
使用所述识别符来确定所述密钥;
使用所述密钥来检索所述数据对象;以及
从所述检索到的数据对象提取所述写入命令的所述数据;以及
响应于所述读取命令提供所述所提取的数据。
30.如条款25至29中任一项所述的计算机实施的方法,其中所述数据对象还包括其它数据块的数据。
31.一种系统,其包括:
一个或多个处理器;
存储器,其包括指令,所述指令在由所述一个或多个处理器执行时,促使所述系统至少通过以下步骤来模仿块等级存储装置:
提供块等级数据存储接口;
向所述块等级数据存储接口接收块等级命令;以及
利用基于对象的数据存储系统来根据所述接收到的块等级命令,持续地将数据块存储在数据对象中。
32.如条款31所述的系统,其中:
所述基于对象的数据存储系统还包括使数据对象与相应密钥关联的密钥值存储器;且
所述指令进一步促使所述系统维持使数据块地址与所述密钥值存储器的密钥关联的映射。
33.如条款31或32所述的系统,其中所述块等级命令还包括小计算机系统接口命令。
34.如条款31至33中任一项所述的系统,其中利用所述对象数据存储系统还包括配置对所述基于对象的数据存储系统的应用编程接口调用。
35.如条款31至34中任一项所述的系统,其中将数据块持续地存储在数据对象中还包括对于所述数据对象的至少子集的每一数据对象,将多个数据块存储在所述数据对象中。
36.如条款31至35中任一项所述的系统,其中所述指令进一步促使所述系统模仿多个实体的块等级存储装置。
37.如条款31至36中任一项所述的系统,其中所述指令进一步促使所述系统维持可用于向网络服务应用编程接口提交指定用于定位数据块的数据对象的调用的信息。
38.如条款31至37中任一项所述的系统,其中所述指令进一步促使所述系统:
接收指定数据块的读取命令;以及
响应于所述读取命令,通过从持续地存储在所述基于对象的数据存储系统中的数据对象获得所述数据块,来提供所述数据块。
39.如条款38所述的系统,其中所述指令进一步促使所述系统:
所述数据块为可通过小计算机系统接口协议寻址的逻辑单元;且
利用使所述系统能够将所述逻辑单元从多个逻辑单元之中区分出来的信息来接收所述命令。
图10说明用于实施根据各种实施方案的方面的实例环境1000的方面。如将了解,尽管基于网络的环境是用于阐释目的,但可酌情使用不同环境来实施各种实施方案。所述环境包括电子客户端装置1002,其可包括可操作以经由适当的网络1004发送和接收请求、消息或信息并将信息传达回来给所述装置的用户的任何适当装置。此类客户端装置的实例包括个人计算机、手机、手持式消息接发装置、膝上型计算机、平板计算机、机顶盒、个人数据助理、嵌入式计算机系统、电子书阅读器等。所述网络可包括任何适当网络,包括内联网、因特网、蜂窝式网络、局域网或任何其它此类网络,或其组合。用于此系统的组件可至少部分地取决于选定网络和/或环境的类型。用于经由此网络进行通信的协议和组件是众所周知的,且本文将不再详细论述。经由所述网络的通信可由有线或无线连接及其组合来实现。在此实例中,所述网络包括因特网,因为所述环境包括用于接收请求且响应于所述请求而提供内容的网络服务器1006,但对于其它网络,如所属领域的一般技术人员将明白,可使用服务类似目的的替代装置。
例示性环境包括至少一个应用服务器1008和数据存储器1010。应理解,可存在若干应用服务器、层或其它元件、进程或组件,其可链接或以其它方式配置,其可交互以执行任务,例如从适当的数据存储器获得数据。如本文所使用,服务器可以各种方式实施,例如硬件装置或虚拟计算机系统。在一些上下文中,服务器可指代正在计算机系统上执行的编程模块。如本文所使用,术语“数据存储器”指代能够存储、存取和检索数据的任何装置或装置组合,其可包括任何标准、分布式或群集环境中的任何组合和数目的数据服务器、数据库、数据存储装置和数据存储介质。应用服务器可包括任何适当的硬件和软件,用于根据需要与数据存储器集成,以执行客户端装置的一个或多个应用程序的方面,从而处置应用程序的数据存取和业务逻辑中的一些(甚至大多数)。应用服务器可与数据存储器合作而提供存取控制服务,且能够产生例如文本、图形、音频和/或视频等将向用户传送的内容,其可由网络服务器以超文本标记语言(“HTML”)、可扩展标记语言(“XML”)或此实例中的另一适当结构化语言的形式提供给用户。所有请求和响应的处置,以及内容在客户端装置1002与应用服务器1008之间的递送可由网络服务器处置。应理解,网络和应用服务器不是需要的,且仅仅为实例组件,因为本文所论述的结构化代码可在任何适当装置或主机上执行,如本文别处所论述。另外,除非从上下文另行清楚,否则本文所描述的如正由单个装置执行的操作可由形式分布式系统的多个装置执行。
数据存储器1010可包括用于存储与本公开的特定方面有关的数据的若干单独数据表、数据库或其它数据存储机构和介质。举例来说,所说明的数据存储器可包括用于存储生产数据1012和用户信息1016的机构,其可用来为生产方提供内容。还示出数据存储器包括用于存储日志数据1014的机构,其可用于报告、分析或其它此类目的。应理解,可存在可需要存储在数据存储器中的许多其它方面,例如对于页图像信息以及为了存取正确的信息,所述信息可酌情存储在上文所列机构中的任何一者中,或存储在数据存储器1010中的额外机构中。数据存储器1010可通过与之相关联的逻辑来操作,以从应用服务器1008接收指令,且响应于此而获得、更新或以其它方式处理数据。在一个实例中,通过用户所操作的装置,用户可提交对某一类型的项目的搜索请求。在此情况下,数据存储器可存取用户信息已检验用户的身份,且可存取目录细节信息来获得关于所述类型的项目的信息。接着可将所述信息返回给所述用户,例如在用户能够经由用户装置1002上的浏览器检视的网页上的结果列表中。可在浏览器的专用页或窗口中检视特定所关注项目的信息。然而,应注意,本公开的实施方案不一定限于网页的上下文,而是可更一般地适用于处理一般请求,其中所述请求不一定是对内容的请求。
每一服务器通常将包括操作系统,其提供用于所述服务器的一般管理和操作的可执行程序指令,且通常将包括存储指令的计算机可读存储介质(例如,硬盘、随机存取存储器、只读存储器等),所述指令在由服务器的处理器执行时,允许服务器执行其既定功能。服务器的操作系统和一般功能性的合适实施方案是已知的或市面上可购得,且由所属领域的一般技术人员容易地实施,尤其是按照本文的公开内容。
一个实施方案中的环境为利用经由通信链路、使用一个或多个计算机网络或直接连接互连的若干计算机系统和组件的分布式计算环境。然而,所属领域的技术人员将了解,此系统将在具有比图10中所说明的组件少或多的数目的组件的系统中同样有效地操作。因此,图10中对系统1000的描述应被视为本质上是例示性的,且不限制本公开的范围。
各种实施方案进一步可在各种各样的操作环境中实施,其在一些情况下可包括可用来操作若干应用程序中的任何一者的一个或多个用户计算机、计算装置或处理装置。用户或客户端装置可包括若干通用个人计算机中的任一者,例如运行标准操作系统的桌上型、膝上型或平板计算机,以及运行移动软件且能够支持若干连网和消息接发协议的蜂窝式、无线和手持式装置。此系统还可包括运行多种市售操作系统和其它已知应用程序中的任一者以达到例如开发和数据库管理目的的若干工作站。这些装置还可包括其它电子装置,例如虚拟终端、瘦客户端、游戏系统和能够经由网络通信的其它装置。
本公开的各种实施方案利用所属领域的技术人员将熟悉的至少一个网络来支持使用多种市售协议中的任何一者的通信,例如传输控制协议/因特网协议(“TCP/IP”)、在开放式系统互连(“OSI”)模型的各个层中操作的协议、文件传送协议(“FTP”)、通用即插即用(“UpnP”)、网络文件系统(“NFS”)、通用因特网文件系统(“CIFS”)以及AppleTalk。所述网络可为例如局域网、广域网、虚拟私人网络、因特网、内联网、外联网、公共交换电话网络、红外线网络、无线网络及其任何组合。
在利用网络服务器的实施方案中,网络服务器可运行多种服务器或中间层应用程序中的任何一种,包括超文本传送协议(“HTTP”)服务器、FTP服务器、通用网关接口(“CGI”)服务器、数据服务器Java服务器以及商业应用服务器。服务器也可能够响应于来自用户装置的请求执行程序或脚本,例如通过执行可实施为以任何编程语言编写的一个或多个脚本或程序的一个或多个网络应用程序,例如C、C#或C++,或任何脚本语言,例如Perl、Python或TCL,以及其组合。服务器也可包括数据库服务器,包括但不限于市面上可从购得的那些数据库服务器。
环境可包括多种数据存储器以及其它存储器和存储介质,如上文所论述。这些介质可驻存在多种位置中,例如在计算机中的一者或一者以上本地(和/或驻存在其中)或在网络上远离所述计算机中的任一者或全部的存储介质上。在特定的一组实施方案中,所述信息可驻存在所属领域的技术人员熟悉的存储区域网络(“SAN”)中。类似地,用于执行归于计算机、服务器或其它网络装置的功能的任何必要文件可酌情本地和/或远程存储。在系统包括计算机化装置的情况下,每一此类装置可包括可经由总线电耦合的硬件元件,所属元件包括例如至少一个中央处理单元(“CPU”或“处理器”)、至少一个输入装置(例如,鼠标、键盘、控制器、触摸屏或小键盘),以及至少一个输出装置(例如,显示装置、打印机或扬声器)。此系统还可包括一个或多个存储装置,例如磁盘驱动器、光学存储装置和固态存储装置,例如随机存取存储器(“RAM”)或只读存储器(“ROM”),以及可装卸介质装置、存储卡、快闪卡等。
此类装置也可包括计算机可读存储介质读取器、通信装置(例如,调制解调器、网卡(无线或有线)、红外线通信装置等),以及工作存储器,如上文所述。计算机可读存储介质读取器可与计算机可读存储介质连接或经配置以接纳计算机可读存储介质,所述计算机可读存储介质表示远程、本地、固定和/或可装卸存储装置,以及用于临时和/或更持久地含有、存储、传输和检索计算机可读信息的存储介质。所述系统和各种装置也通常将包括位于至少一个工作存储器装置内的若干软件应用程序、模块、服务或其它元件,包括操作系统和应用程序,例如客户端应用程序或网络浏览器。应了解,替代实施方案可具有与上文所述实施方案的大量变化。举例来说,还可使用定制硬件,和/或可在硬件、软件(包括便携式软件,例如小应用程序)或两者中实施特定元件。另外,可使用到例如网络输入/输出装置等其它计算装置的连接。
用于包括代码或代码的若干部分的存储介质和计算机可读介质可包括本领域中已知或使用的任何适当介质,包括存储介质和通信介质,例如但不限于在用于存储和/或传输例如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术中实施的易失性和非易失性、可装卸和不可装卸介质,包括RAM、ROM、电可擦除可编程只读存储器(“EEPROM”)、快闪存储器或其它存储器技术、压缩光盘只读存储器(“CD-ROM”)、数字多功能磁盘(DVD)或其它光学存储装置、磁带盒、磁带、磁盘存储装置或其它磁性存储装置,或可用于存储所要信息且可由系统装置存取的任何其它介质。基于本文所提供的公开内容和教示,所属领域中的一般技术人员将了解实施各种实施方案的其它方式和/或方法。
因此,将在例示性而不是限制性意义上来看说明书和图式。然而,将明白,可在不脱离如所附权利要求书中所陈述的本发明的较广精神和范围的情况下,对本发明进行各种修改和改变。
其它变化在本公开的精神内。因此,虽然所公开的技术易受各种修改和替代构造影响,但图中示出且上文已详细描述了其某些所说明实施方案。然而,应理解,无意将本发明限于所公开的特定形式,而是相反,意在涵盖属于如所附权利要求书中所界定的本发明的精神和范围内的所有修改、替代构造和均等物。
属于“一”和“所述”以及类似指称对象在描述所公开实施方案的上下文中(尤其在所附权利要求书的上下文中)的使用将被解释为涵盖单数和复数两者,除非本文另有指示,或上下文清楚否定。术语“包括”、“具有”、“包括”和“含有”将解释为开端术语(即,表示“包括但不限于”),除非另有陈述。术语“经连接”在未经修改且指代物理连接时,将解释为部分或完全包括在内、附接到或接合在一起,即使存在某介入物也是如此。本文对值范围的详述仅仅意在充当个别地参考属于所述范围内的每一单独值的速记方法,除非本文另有指示,且每一单独的值并入到说明书中,就像其在本文个别地详述那样。除非另有陈述或被上下文否定,否则术语“集合”(例如,“项目集合”)或“子集”的使用将被解释为包括一个或多个成员的非空集合。另外,除非另有陈述或被上下文否定,术语对应集合的“子集”不一定表示对应集合的适当子集,而是所述子集和所述对应集合可相等。
除非另有明确陈述或被上下文另外清楚否定,否则连词语言,例如形式为“A、B和C中的至少一者”或“A、B和C中的至少一者”的短语另外结合如一般使用的上下文来理解,以呈现项目、术语等可为A、B或C,或其任何非空子集。举例来说,在具有以上实例连词短语中所使用的三个成员的集合的例示性实例中,“至少一个或A、B和C”和“A、B和C中的至少一者”指代一下集合中的任一者:{A}、{B}、{C}、{A,B}、{A,C}、{B,C}、{A,B,C}。因此,此类连接性语言通常无意暗示某些实施方案要求至少一个A、至少一个B,至少一个C每一个都要存在。
本文所描述的流程的操作可以任何合适次序执行,除非本文另有指示或被上下文另外清楚地否定。本文所描述的流程(或其变化和/或组合)可在配置有可执行指令的一个或多个计算机系统的控制下执行,且可实施为在一个或多个处理器上通过硬件或其组合共同执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用程序)。所述代码可存储在计算机可读存储介质上,例如以包括可由一个或多个处理器执行的多个指令的计算机程序的形式。所述计算机可读存储介质可为非暂时性的。
本文所提供的任何和所有实例或示例性语言(例如,“例如”)的使用仅意在较好地说明本发明的实施方案,且不对本发明的范围强加限制,除非另有要求。说明书中的语言不应被解释为将任何未要求元素指示为对本发明的实践来说是重要的。
本文描述本发明的优选实施方案,包括发明人已知的用于进行本发明的最佳模式。所属领域的技术人员在阅读前面的描述后,将明白那些优选实施方案的变化。发明人期待熟练的技术人员酌情使用此类变化,且发明人希望本公开的实施方案将以与本文具体描述的方式不同的方式来实践。因此,本公开的范围包括所附权利要求中所陈述的标的物的适用法律允许的所有修改和均等物。此外,上述元件在其所有可能变化中的任何组合由本公开的范围包括,除非本文另有指示或被上下文另外清楚地否定。
本文所陈述的所有参考,包括公开案、专利申请和专利在与每一参考个别地且具体地指示为以引用的方式并入且在本文中全部陈述相同的范围,特此以引用的方式并入本文中。

Claims (15)

1.一种用于存储数据的计算机实施的方法,其包括:
在配置有可执行指令的一个或多个计算机系统的控制下,
接收根据第一通信协议配置的写入命令,所述写入命令为数据块指定识别符;
促使所述写入命令的数据作为密钥值存储器中的数据对象的一部分而存留,所述数据对象可使用与所述数据对象相关联的密钥从所述密钥值存储器检索;以及
在数据存储器中,使所述密钥与所述数据块的所述识别符关联。
2.如权利要求1所述的计算机实施的方法,其中所述命令为小计算机系统接口命令,且所述第一通信协议为小计算机系统接口协议。
3.如权利要求1或2所述的计算机实施的方法,其中:
所述一个或多个计算机系统由计算资源提供者托管;且
所述命令由从中接收所述命令的所述计算资源提供者的客户远程产生。
4.如权利要求1或2所述的计算机实施的方法,其中所述写入命令为发送到存储区域网络的命令的复制。
5.如权利要求1或2所述的计算机实施的方法,其还包括:
接收为所述数据块指定所述识别符的读取命令;
使用所述识别符来确定所述密钥;
使用所述密钥来检索所述数据对象;以及
从所述检索到的数据对象提取所述写入命令的所述数据;以及
响应于所述读取命令提供所述所提取的数据。
6.如权利要求1或2所述的计算机实施的方法,其中所述数据对象含有其它数据块的数据。
7.一种用于存储数据的系统,其包括:
一个或多个处理器;
存储器,其包括指令,所述指令在由所述一个或多个处理器执行时,促使所述系统至少通过以下步骤来模仿块等级存储装置:
提供块等级数据存储接口;
向所述块等级数据存储接口接收块等级命令;以及
利用基于对象的数据存储系统来根据所述接收到的块等级命令,持续地将数据块存储在数据对象中,所述基于对象的数据存储系统是使数据对象与相应密钥关联的密钥值存储器,所述数据对象可使用与所述数据对象相关联的密钥从所述密钥值存储器检索。
8.如权利要求7所述的系统,其中:
所述指令进一步促使所述系统维持使数据块地址与所述密钥值存储器的密钥关联的映射。
9.如权利要求7或8所述的系统,其中所述块等级命令是小计算机系统接口命令。
10.如权利要求7或8所述的系统,其中利用所述对象数据存储系统包括配置对所述基于对象的数据存储系统的应用编程接口调用。
11.如权利要求7或8所述的系统,其中将数据块持续地存储在数据对象中包括对于所述数据对象的至少子集的每一数据对象,将多个数据块存储在所述数据对象中。
12.如权利要求7或8所述的系统,其中所述指令进一步促使所述系统模仿多个实体的块等级存储装置。
13.如权利要求7或8所述的系统,其中所述指令进一步促使所述系统维持可用于向网络服务应用编程接口提交指定用于定位数据块的数据对象的调用的信息。
14.如权利要求7或8所述的系统,其中所述指令进一步促使所述系统:
接收指定数据块的读取命令;以及
响应于所述读取命令,通过从持续地存储在所述基于对象的数据存储系统中的数据对象获得所述数据块,来提供所述数据块。
15.如权利要求14所述的系统,其中所述指令进一步促使所述系统:
所述数据块为可通过小计算机系统接口协议寻址的逻辑单元;且
利用使所述系统能够将所述逻辑单元从多个逻辑单元之中区分出来的信息来接收所述命令。
CN201480017153.5A 2013-03-20 2014-03-20 复制目标服务 Active CN105051675B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361803764P 2013-03-20 2013-03-20
US61/803,764 2013-03-20
US13/856,279 US10592106B2 (en) 2013-03-20 2013-04-03 Replication target service
US13/856,279 2013-04-03
PCT/US2014/031325 WO2014153458A2 (en) 2013-03-20 2014-03-20 Replication target service

Publications (2)

Publication Number Publication Date
CN105051675A CN105051675A (zh) 2015-11-11
CN105051675B true CN105051675B (zh) 2018-03-02

Family

ID=51570012

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480017153.5A Active CN105051675B (zh) 2013-03-20 2014-03-20 复制目标服务

Country Status (6)

Country Link
US (1) US10592106B2 (zh)
EP (1) EP2976705A4 (zh)
JP (1) JP6534989B2 (zh)
CN (1) CN105051675B (zh)
CA (1) CA2907424C (zh)
WO (1) WO2014153458A2 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140310536A1 (en) * 2013-04-16 2014-10-16 Qualcomm Incorporated Storage device assisted inline encryption and decryption
US9971526B1 (en) * 2015-06-29 2018-05-15 Amazon Technologies, Inc. Volume-based key-value store
JP6808328B2 (ja) * 2016-02-24 2021-01-06 キヤノン株式会社 情報処理装置、バックアップ方法、情報処理装置の制御方法、及びプログラム
KR102538258B1 (ko) * 2016-07-25 2023-05-31 삼성전자주식회사 데이터 저장 장치 및 이를 포함하는 데이터 처리 시스템
CN106469198B (zh) 2016-08-31 2019-10-15 华为技术有限公司 键值存储方法、装置及系统
US10628196B2 (en) * 2016-11-12 2020-04-21 Vmware, Inc. Distributed iSCSI target for distributed hyper-converged storage
US10761750B2 (en) * 2017-03-09 2020-09-01 Netapp Inc. Selectively storing data into allocation areas using streams
US20180329634A1 (en) * 2017-05-10 2018-11-15 Strato Scale Ltd. Object overlay for storage-area network (san) appliances
CN108134723A (zh) * 2018-01-30 2018-06-08 杭州微兔科技有限公司 智能家居系统及其应用方法
US11256815B2 (en) * 2018-06-12 2022-02-22 Western Digital Technologies, Inc. Object storage system with secure object replication
EP3857859B1 (en) 2018-11-16 2023-07-19 VMWare, Inc. Active-active architecture for distributed iscsi target in hyper-converged storage
CN111556086B (zh) * 2020-01-02 2022-04-29 阿里巴巴集团控股有限公司 对象存储管理方法、装置、电子设备及计算机存储介质
US11500667B2 (en) 2020-01-22 2022-11-15 Vmware, Inc. Object-based approaches to support internet small computer system interface (ISCSI) services in distributed storage system
US11507409B2 (en) 2020-01-22 2022-11-22 Vmware, Inc. Object-based load balancing approaches in distributed storage system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1411642A (zh) * 2000-11-09 2003-04-16 索尼公司 信息处理装置及信息处理方法和程序记忆媒体
CN1604568A (zh) * 2003-10-03 2005-04-06 株式会社日立制作所 数据包传送装置

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7469241B2 (en) 2004-11-30 2008-12-23 Oracle International Corporation Efficient data aggregation operations using hash tables
US8073899B2 (en) * 2005-04-29 2011-12-06 Netapp, Inc. System and method for proxying data access commands in a storage system cluster
US7716180B2 (en) 2005-12-29 2010-05-11 Amazon Technologies, Inc. Distributed storage system with web services client interface
JP2008287675A (ja) 2007-05-21 2008-11-27 Nippon Telegr & Teleph Corp <Ntt> ストレージインタフェース変換装置、情報処理システムおよびコンピュータプログラム
US8533256B2 (en) 2007-10-09 2013-09-10 Cleversafe, Inc. Object interface to a dispersed data storage network
JP2009116809A (ja) 2007-11-09 2009-05-28 Hitachi Ltd 記憶制御装置、ストレージシステム及び仮想ボリュームの制御方法
US7865460B2 (en) * 2008-05-08 2011-01-04 International Business Machines Corporation Method and system for data dispatch
US8266099B2 (en) * 2008-05-29 2012-09-11 Vmware, Inc. Offloading storage operations to storage hardware using a third party server
WO2010097961A1 (en) * 2009-02-25 2010-09-02 Hitachi, Ltd. Storage apparatus and its control method
US8417871B1 (en) * 2009-04-17 2013-04-09 Violin Memory Inc. System for increasing storage media performance
US8352941B1 (en) * 2009-06-29 2013-01-08 Emc Corporation Scalable and secure high-level storage access for cloud computing platforms
WO2011072178A1 (en) 2009-12-09 2011-06-16 Bizanga Ltd. Probabilistic offload engine for distributed hierarchical object storage devices
US9141410B2 (en) 2011-03-08 2015-09-22 Rackspace Us, Inc. Pluggable allocation in a cloud computing system
US9798831B2 (en) 2011-04-01 2017-10-24 Google Inc. Processing data in a MapReduce framework
US8880828B2 (en) * 2012-04-11 2014-11-04 International Business Machines Corporation Preferential block recycling in a redirect-on-write filesystem
US9075710B2 (en) * 2012-04-17 2015-07-07 SanDisk Technologies, Inc. Non-volatile key-value store
US9141685B2 (en) * 2012-06-22 2015-09-22 Microsoft Technology Licensing, Llc Front end and backend replicated storage
US9449039B2 (en) * 2012-11-26 2016-09-20 Amazon Technologies, Inc. Automatic repair of corrupted blocks in a database

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1411642A (zh) * 2000-11-09 2003-04-16 索尼公司 信息处理装置及信息处理方法和程序记忆媒体
CN1604568A (zh) * 2003-10-03 2005-04-06 株式会社日立制作所 数据包传送装置

Also Published As

Publication number Publication date
EP2976705A2 (en) 2016-01-27
EP2976705A4 (en) 2016-10-26
CA2907424C (en) 2022-11-22
JP6534989B2 (ja) 2019-06-26
JP2016515731A (ja) 2016-05-30
WO2014153458A3 (en) 2014-11-13
CN105051675A (zh) 2015-11-11
CA2907424A1 (en) 2014-09-25
WO2014153458A2 (en) 2014-09-25
US20140289463A1 (en) 2014-09-25
US10592106B2 (en) 2020-03-17

Similar Documents

Publication Publication Date Title
CN105051675B (zh) 复制目标服务
JP6483746B2 (ja) データ記憶アプリケーションプログラミングインターフェース
CN104603740B (zh) 归档数据识别
JP6463796B2 (ja) アーカイブデータ記憶システム
US9250811B1 (en) Data write caching for sequentially written media
US9767129B2 (en) Data storage inventory indexing
US9465551B1 (en) Write horizon data management
KR101814369B1 (ko) 문서 관리 및 협업 시스템
US9092441B1 (en) Archival data organization and management
US10120579B1 (en) Data storage management for sequentially written media
US9563681B1 (en) Archival data flow management
US9767098B2 (en) Archival data storage system
US9830111B1 (en) Data storage space management
CN107111636A (zh) 用于顺序传输优化存储装置的卷级冗余编码技术
US9471610B1 (en) Scale-out of data that supports roll back
JP6608453B2 (ja) 記憶されたデータに対するリモートアクセス制御
CN107315776A (zh) 一种基于云计算的数据管理系统
US9652487B1 (en) Programmable checksum calculations on data storage devices
US9779035B1 (en) Log-based data storage on sequentially written media
CN104903871B (zh) 虚拟磁带库系统
CN107911443A (zh) 一种会话信息处理方法、装置、服务器和可读存储介质
CN108351814A (zh) 用于对支持包进行优先化的系统和方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant