CN106170777A - 降低基于块的存储的数据卷耐久性状态 - Google Patents
降低基于块的存储的数据卷耐久性状态 Download PDFInfo
- Publication number
- CN106170777A CN106170777A CN201580012911.9A CN201580012911A CN106170777A CN 106170777 A CN106170777 A CN 106170777A CN 201580012911 A CN201580012911 A CN 201580012911A CN 106170777 A CN106170777 A CN 106170777A
- Authority
- CN
- China
- Prior art keywords
- memory node
- book
- node
- write request
- memory
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1658—Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
- G06F11/1662—Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit the resynchronized component or unit being a persistent storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2056—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
- G06F11/2069—Management of state, configuration or failover
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2094—Redundant storage or storage space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0623—Securing storage systems in relation to content
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)
- Quality & Reliability (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种基于块的存储***可实施降低数据卷的耐久性状态。可确定复制用于数据卷的写入请求的存储节点不可用。作为响应,可根据所述数据卷的降低的耐久性状态来处理随后的写入请求,使得可针对所述存储节点禁用所述数据卷的复制。然后,在将所述写入请求确认为完成之前,可在较少数量的存储节点处完成写入请求。在各种实施方案中,可提高所述数据卷的耐久性状态。可识别存储节点并且可执行复制操作,以使所述存储节点处的所述当前数据卷与维持在所识别存储节点处的所述数据卷的副本同步。
Description
背景技术
近年来在跨网络动态共享硬件资源、软件和信息存储的虚拟化技术方面的改革已经增加了计算的可靠性、可扩缩性和成本效率。更具体地说,通过虚拟化的出现按需提供虚拟计算资源和存储的能力已经使处理资源和存储的消费者能够响应于立即被察觉的计算和存储需求而灵活地组织他们的计算和存储成本。虚拟化允许客户在需要的时候购买处理器周期和存储,而不是在开通周期(provisioning cycle)中购买或租赁固定的硬件,所述开通周期由制造和部署硬件的延迟和成本决定。用户能够在相对瞬时的按需基础上购买计算和存储资源的使用权,而不是取决于对未来需求的预测的准确性来确定计算和存储的可用性。
虚拟化计算环境经常地由基于块的存储支持。这类基于块的存储提供能够通过一系列标准化的存储调用与各种计算虚拟化进行交互的存储***,这使得所述基于块的存储与其所支持的卷的结构和功能细节,并且与在所述基于块的存储向其提供存储可用性的虚拟化上执行的操作***在功能上无关。然而,随着网络传输能力的增强、伴随更大的对虚拟化资源的处理能力,对基于块的存储的I/O需求可增长。如果I/O需求超过基于块的存储服务请求的能力,那么虚拟化计算资源的基于块的存储的等待时间和/或性能耐久性变差,从而导致虚拟化计算性能损失。
附图说明
图1是示出根据一些实施方案的降低基于块的存储的数据卷耐久性状态以及基于块的存储的有效数据卷复制的一系列框图。
图2是示出根据一些实施方案的实施包括基于块的存储服务的多个基于网络的服务的提供商网络的框图,所述基于块的存储服务实施降低基于块的存储的数据卷耐久性状态以及其有效数据卷复制。
图3是示出根据一些实施方案的存储节点的框图,所述存储节点实施降低数据卷耐久性状态以及有效数据卷复制。
图4是示出根据一些实施方案的在降低数据卷耐久性状态时客户端、主存储节点、从存储节点与控制平面之间的交互的顺序图。
图5是示出根据一些实施方案的执行从降低的耐久性状态到提高的耐久性状态的数据卷的有效复制操作的主存储节点与从存储节点之间的交互。
图6是示出根据一些实施方案的用于降低基于块的存储的耐久性的各种方法和技术的高级流程图。
图7是示出根据一些实施方案的用于从降低的耐久性状态提高数据卷耐久性状态的各种方法和技术的高级流程图。
图8是示出根据一些实施方案的用于数据卷的有效复制的各种方法和技术的高级流程图。
图9是示出根据一些实施方案的用于识别有陈旧副本要更新的存储节点的各种方法和技术的高级流程图。
图10是示出根据一些实施方案的用于确定可不执行有效复制的各种方法和技术的高级流程图。
图11是示出根据一些实施方案的示例性计算***的框图。
虽然在本文中通过列举若干实施方案和示意性附图的方式描述了实施方案,但本领域的技术人员应认识到,实施方案并不限于所描述的实施方案或附图。应理解,附图和对其的详细描述并非意图将实施方案限于所公开的特定形式,而是相反地,其意图在于涵盖落入由所附权利要求书限定的精神和范围内的所有修改、等效物以及替代方案。本文中使用的标题都仅用于组织目的,并且并不意图用于限制说明书或权利要求书的范围。如贯穿本申请所使用的,词语“可以”是在容许意义上(即,意指具有可能性)而非强制意义上(即,意指必须)使用的。类似地,词语“包括(include/including/includes)”表示包括但不限于。
具体实施方式
本文所述的***和方法可实施降低基于块的存储的数据卷耐久性状态。在各种实施方案中,基于块的存储***可通过以下方式来建立由基于块的存储***维持的数据卷的耐久性状态:增加维持数据卷的当前版本的副本的数量。数据卷的耐久性状态可作为维持数据卷的基于块的存储***的规则、要求或其他保证的部分来针对数据卷强制实施。在维持特定数据卷的副本的存储节点之中进行复制操作可确保:可根据数据卷的耐久性状态在数据卷副本上作出对数据卷的改变,以便维持数据卷的当前版本。然而,在存储节点之中进行复制操作可能被中断。网络分区、高网络利用率或***故障是可能中断数据卷的复制操作的许多不同事件中的一些。复制操作方面的这些中断可导致维持数据卷副本的存储节点变得不可用于与其他存储节点进行复制,从而扰乱数据卷的耐久性状态。因为数据卷的耐久性状态没有得到满足,指向数据卷的写入请求和其他输入/输出操作可能被阻断。在可能无法维持基于块的存储***中的数据卷的耐久性状态的情况下,降低数据卷的耐久性状态可允许指向数据卷的操作继续而几乎不受干扰。在一些实施方案中,数据卷的耐久性状态的降低不会显著威胁到数据卷的耐久性(例如,如果只是在有限时间内这样做的话)。
本文所述的***和方法可实施有效数据卷复制。如以上所指出,在一些实施方案中,可在不同存储节点处维持多个数据卷副本以建立数据卷的耐久性。如果数据卷不再在多个存储节点处被维持(诸如在数据卷处于降低的耐久性状态时可能发生),那么可维持对数据卷的部分的修改,以便指示在进入降低的耐久性状态之后对数据卷作出的改变。例如,如果数据卷在主存储节点和从存储节点处被维持,并且从存储节点变得不可用于复制,那么主存储节点可继续处理数据卷的输入/输出(I/O)并且记录数据卷的哪些部分已经被改变。在稍后时间,主存储节点可能够通过在维持数据卷的陈旧副本的另一个存储节点(诸如先前的从存储节点,或维持数据卷副本的另一个存储节点)处复制数据卷来提高数据卷的耐久性状态。可发送数据卷的已修改部分以更新陈旧副本,而不发送在陈旧副本中不过时的数据卷的部分,从而减少执行复制的时间量和/或降低主存储节点与新的从存储节点之间的网络流量的量。一旦陈旧副本是最新的,就可启用主存储节点与新的从存储节点之间的数据卷的复制操作以用于未来的对数据卷的改变。
图1是示出根据一些实施方案的降低基于块的存储的数据卷耐久性状态以及有效数据卷复制的一系列框图。基于块的存储服务100可实施主存储节点110和从存储节点120,以建立数据卷112的耐久性状态。主存储节点110和从存储节点120可以是可实施永久性基于块的存储(例如,硬盘驱动器或固态驱动器)以分别存储数据卷副本112和122的存储服务器或其他计算***(例如,下文参考图11所述的计算***2000)。在各种实施方案中,数据卷副本112和122可被划分到用于复制操作的各自数据组块114和124中,使得数据组块114对应于数据组块124。
如场景102中所示,在主存储节点处接收I/O请求132(例如,写入请求),所述主存储节点可完成I/O请求132。例如,可执行在主存储节点110处接收到的对修改数据卷112的部分的写入请求。在一些实施方案中,然后可将I/O请求转发134到从存储节点120,以便复制对在主存储节点110处的数据作出的任何改变。以此方式,数据卷112的当前耐久性状态可得到满足。
如场景104中所示,从存储节点120已经变得不可用136。这可能是由于网络条件(诸如网络分区、高的网络流量的量、***故障)或在控制***的控制下(例如,所述控制***可指挥从存储节点120中止维持卷副本122)。然而,仍在主存储节点110处接收I/O请求132。替代阻断写入请求、使其失败或以其他方式不完成写入请求,可降低数据卷110的耐久性状态。例如,在一些实施方案中,I/O请求132可在主存储节点110处完成,并且向请求I/O132的客户端或其他***、部件或装置回复确认。因此,I/O请求132(如在场景104中所接收的)可在主存储节点110处完成,而无需在任何其他存储节点(诸如从存储节点120或基于块的存储服务100中的另一个存储节点)处完成。在另一个实例中,在具有多于两个存储节点(例如,3个存储节点)的情况下,降低这3个存储节点处所维持的数据卷的耐久性状态(诸如将耐久性状态降低到2个存储节点)可允许在将I/O请求确认为完成之前,在更少数量的存储节点处完成I/O请求。
在各种实施方案中,当在降低的耐久性状态下操作的同时,主存储节点110可跟踪对数据卷112作出的改变。例如,可(例如,在数据卷元数据中)对已修改的数据组块116进行标记、索引、列表或以其他方式进行识别。有时,可确定启用数据卷的复制,以便根据数据卷112的提高的耐久性状态来处理I/O请求。这种确定可基于若干因素来作出,这样因素诸如存储节点存储数据卷的另一个副本的可用性;当前网络利用率、流量或其他网络事件;或数据卷的耐久性状态(例如,在1个存储节点、2个存储节点等上进行复制)。为了提高耐久性状态,可识别维持数据卷副本的另一个存储节点。例如,控制***可向主存储节点110发送存储节点识别符的列表,或主存储节点110自身可保持维持数据卷副本的先前存储节点的列表。一旦识别了从存储节点120(在所示实例中,所识别存储节点120是维持数据卷副本的最近的存储节点,然而,可选择同样维持数据的卷陈旧副本或根本未维持数据卷副本的其他存储节点),就可将已修改数据组块116复制138到从存储节点120以便存储在卷副本122中,如在场景106中所示。无需复制未修改数据组块。如在场景108处所示,当再次向从存储节点120发送140对复制的I/O请求132时,可启用数据卷的复制,从而提高数据卷112的耐久性状态以便在主存储节点110和从存储节点120两者处被维持。
请注意,先前的描述并不意图进行限制,而仅作为降低基于块的存储***的状态以及其有效复制来提供。例如,存储节点的数量或数据卷的数量可与图1所示不同。可实施不同复制方案(例如,无主角色或从角色),并且可建立数据卷的不同耐久性状态。在一些实施方案中,耐久性状态的降低可在多于一个存储节点变得不可用(例如,3个存储节点到1个可用存储节点)时发生。
本说明书从对可实施降低数据卷耐久性状态以及有效数据卷复制的基于块的存储服务提供商的概述开始。然后论述基于块的存储服务提供商的各种实例,包括可用作实施基于块的存储服务提供商的部分的不同的部件/模块或部件/模块的布置。然后论述用于实施降低数据卷耐久性状态以及有效数据卷复制的不同方法和技术,所述不同方法和技术中的一些在随附的流程图中示出。最后,提供对可在其上实施各种部件、模块、***、装置和/或节点的示例性计算***的描述。在整个说明书中提供各种实例。
图2是示出根据一些实施方案的实施包括基于块的存储服务的多个基于网络的服务的提供商网络的框图,所述基于块的存储服务在快照操作期间实施优化的写入性能。提供商网络200可由实体、诸如公司或公共部门组织机构建立,以便向客户端210提供可通过互联网和/或其他网络访问的一种或多种服务(诸如各种类型的基于云的计算或存储)。提供商网络200可包括托管实施和分布由提供商网络200提供的基础设施和服务所需的各种资源池的许多数据中心,所述资源池诸如物理和/或虚拟化计算机服务器、存储装置、联网设备等(例如,下文参考图11描述的计算***2000)的集合。在一些实施方案中,提供商网络200可提供计算资源,诸如虚拟计算服务230、存储服务(诸如基于块的存储服务220和其他存储服务240(所述其他存储服务240可包括各种存储装置类型、诸如基于对象/密钥值的数据存储区,或各种类型的数据库***))和/或任何其他类型的基于网络的服务250。客户端210可通过网络260访问由提供商网络200提供的这些各种服务。同样地,基于网络的服务本身可相互通信和/或相互利用来提供不同服务。例如,向客户端210提供的、呈称为“实例”(诸如虚拟或物理计算实例或存储实例)的单元形式的计算资源可利用特定数据卷226,从而为计算实例提供虚拟块存储。
如以上所指出,虚拟计算服务230可向客户端210提供各种计算实例。虚拟计算实例例如可包括具有指定的计算能力(所述计算能力可通过指示CPU的类型和数量、主存储器大小等进行指定)和指定的软件栈(例如,特定版本的操作***,其进而可在管理程序顶上运行)的一个或多个服务器。在不同的实施方案中,许多不同类型的计算装置可单独或组合使用以实施虚拟计算服务230的计算实例,所述不同类型的计算装置包括通用或专用计算机服务器、存储装置、网络装置等。在一些实施方案中,实例客户端210或其他任何其他用户可被配置(和/或被授权)来将网络流量定向到计算实例。在各种实施方案中,计算实例可附接或映射到由基于块的存储服务220提供的一个或多个数据卷226,以便获得永久性基于块的存储以用于执行各种操作。
计算实例可操作或实施多种不同平台,诸如应用服务器实例、JavaTM虚拟机(JVM)、通用或专用操作***、支持各种解释或编译的编程语言(诸如Ruby、Perl、Python、C、C++等)的平台或适于执行客户端应用程序而无需例如要求客户端210访问实例的高性能计算平台)。在一些实施方案中,计算实例基于期望的正常运行时间比而具有不同的类型或配置。特定计算实例的正常运行时间比可被定义为实例被激活的时间量与实例被预留的总时间量的比。在一些实施方式中,正常运行时间比也可称为利用率。如果客户端期望使用计算实例的时间是实例被预留的时间的相对小的一部分(例如,一年之久的预留的30%-35%),那么客户端可决定将所述实例作为低正常运行时间比实例来预留,并且根据相关联的定价策略按小时支付折扣使用费用。尽管在一些实施方案中可根据定价策略针对预留的整个持续时间按小时收取费用,而不管实际的使用小时数,但是如果客户端期望具有要求实例在大部分时间运转的稳态工作负载,那么客户端可预留高正常运行时间比实例并且可能按小时支付甚至更低的使用费用。利用对应的定价政策,在一些实施方案中也可支持中等正常运行时间比实例的选项,其中预付成本和每小时成本落在对应的高正常运行时间比成本与低正常运行时间比成本之间。
计算实例配置还可包括具有一般用途或特殊用途的计算实例,所述一般用途或特殊用途诸如用于计算密集型应用的计算工作负载(例如,高流量web应用、广告服务、批处理、视频编码、分布式分析、高能物理学、基因组分析和计算流体动力学);图形密集型工作负载(例如,游戏流式传输、3D应用程序流式传输、服务器侧图形工作负载、渲染、金融建模和工程设计);存储器密集型工作负载(例如,高性能数据库、分布式存储器高速缓存、内存分析、基因组序列拼接(assembly)和分析);以及存储优化型工作负载(例如,数据仓储***和集群文件***)。计算实例的大小,诸如虚拟CPU核心、存储器、高速缓存、存储装置的特定数量,以及任何其他性能特征。计算实例的配置还可包括它们在特定数据中心、可用区、地理位置等中的位置,以及(在预留计算实例的情况下)预留期长度。
在各种实施方案中,提供商网络200还可实施用于执行存储操作的基于块的存储服务220。基于块的存储服务220是由多个独立存储节点224a、224b、224c至224n的池组成的存储***(例如,服务器块数据存储***),所述多个独立存储节点224a、224b、224c至224n提供用于存储一组或多组数据卷数据卷226a、226b、226c至226n的块级存储。数据卷226可映射到特定客户端,从而作为一组连续的逻辑块提供虚拟的基于块的存储(例如,硬盘存储或其他永久性存储)。在一些实施方案中,可将一个数据卷226分成多个数据组块(包括一个或多个数据块)以用于执行其他块存储操作,诸如快照操作或复制操作。
数据卷226的卷快照可以是数据卷226的状态的固定时间点表示。在一些实施方案中,卷快照242可远离维持数据卷的存储节点224存储,诸如存储在另一个存储服务240中。可执行快照操作以发送、拷贝给定数据卷的快照和/或以其他方式将所述快照保留在另一个存储位置中,诸如其他存储服务240中的远程快照数据存储区。
基于块的存储服务220可实施基于块的存储服务控制平面222以辅助基于块的存储服务220的操作。在各种实施方案中,基于块的存储服务控制平面222辅助管理块数据存储对客户端的可用性,所述客户端诸如在下列各项上执行的程序:由位于提供商网络200内的虚拟计算服务230和/或其他基于网络的服务提供的计算实例,和/或任选的位于一个或多个其他数据中心内的计算***(未示出),或在提供商网络200外部的通过网络260可用的其他计算***。响应于块数据交易指令,可通过提供商网络200内的内部网络或在外部通过网络260提供对数据卷226的访问。
基于块的存储服务控制平面222可提供与提供块级存储功能性有关的多种服务,包括用户账户的管理(例如,创建、删除、计费、支付的收取等)。响应于配置请求,基于块的存储服务控制平面222还可提供与数据卷226的创建、使用和删除有关的服务。基于块的存储服务控制平面222还可提供与其他存储服务240上的卷快照242的创建、使用和删除有关的服务。基于块的存储服务控制平面222还可提供与以下内容有关的服务:对与数据卷226及那些卷的快照242的使用有关的性能和审计数据的收集和处理。
提供商网络200还可实施另一个存储服务240,如以上所指出。其他存储服务240可提供与由基于块的存储服务220提供的存储相同或不同类型的存储。例如,在一些实施方案中,其他存储服务240可提供基于对象的存储服务,所述基于对象的存储服务可将数据作为数据对象来存储和管理。例如,各个数据卷226的卷快照242可作为特定数据卷226的快照对象来存储。除了其他存储服务240之外,提供商网络200可实施其他基于网络的服务250,所述其他基于网络的服务250可包括各种不同类型的分析***、计算***、存储***或其他基于网络的***,所述***允许客户端210以及提供商网络200的其他服务(例如,基于块的存储服务220、虚拟计算服务230和/或其他存储服务240)执行或请求各种任务。
客户端210可包含可配置来向网络提供商200提交请求的任何类型的客户端。例如,给定客户端210可包括合适版本的web浏览器,或可包括被配置来作为延伸执行或在由web浏览器提供的执行环境内执行的插件模块或其他类型的代码模块。可替代地,客户端210可包含应用程序,诸如数据库应用程序(或其用户接口)、媒体应用程序、办公应用程序或可利用提供商网络200中的计算实例、数据卷226或其他基于网络的服务来执行各种操作的任何其他应用程序。在一些实施方案中,这种应用程序可包括足够的协议支持(例如,用于合适版本的超文本传输协议(HTTP)),以用于产生和处理基于网络的服务请求,而不必实施用于所有类型的基于网络的数据的完整浏览器支持。在一些实施方案中,客户端210可被配置来根据表述性状态转移(REST)类型的基于网络的服务架构、基于文件或消息的基于网络的服务架构、或另一种合适的基于网络的服务架构来产生基于网络的服务请求。在一些实施方案中,客户端210(例如,计算客户端)可被配置来提供对计算实例或数据卷226的访问,其方式对在客户端210上实施的利用由计算实例提供的计算资源或由数据卷226提供的块存储的应用程序是透明的。
客户端210可通过外部网络260向提供商网络200传达基于网络的服务请求。在各种实施方案中,外部网络260可包含在客户端210与提供商网络200之间建立基于网络的通信所必要的联网硬件和协议的任何合适组合。例如,网络260通常可包含共同实施互联网的各种电信网络和服务提供商。网络260还可包括私用网络(诸如局域网(LAN)或广域网(WAN))以及公用无线网络或私用无线网络。例如,给定客户端210和提供商网络200两者可分别被供应在具有其自身内部网络的企业内。在这种环境中,网络260可包括在给定客户端210与互联网之间以及在互联网与提供商网络200之间建立联网链接所必要的硬件(例如,调制解调器、路由器、交换器、负载均衡器、代理服务器等)和软件(例如,协议堆栈、会计软件、防火墙/安全软件等)。应注意,在一些实施方案中,客户端210可使用私用网络而不是公用互联网来与提供商网络200通信。
基于块的存储服务220可以多种不同方式管理和维持数据卷226。可在维持数据卷的副本的两个或更多个存储节点之中针对一些数据卷实施不同的耐久性方案。例如,可实施不同类型的镜像和/或复制技术(例如,RAID 1),以便诸如通过消除数据卷的单一故障点而增加数据卷耐久性。为了提供对数据卷的访问,存储节点然后可在维持数据卷副本的两个或更多个存储节点之中协调I/O请求,诸如写入请求。对于在快照操作期间提供写入优化的存储节点,可实施另外的配合。
图3是示出根据一些实施方案的存储节点的框图,所述存储节点实施降低数据卷耐久性状态以及有效数据卷复制。可实施多个存储节点(诸如存储节点310a、310b、310c至310n)以便提供基于块的存储服务。存储节点310可以是一个或多个计算***或装置,诸如存储服务器或其他计算***(例如,下文参考图11描述的计算***2000)。每一个存储节点310可维持数据卷的各自副本。例如,存储节点310a维持数据卷312a、312b、312c、312d至312n,存储节点310b维持数据卷314a、314b、314c、314d至314n,存储节点310c维持数据卷316a、316b、316c、316d至316n,一直到维持数据卷318a、318b、318c、318d至318n的存储节点310n。虽然存储节点310被描绘为具有相等数量的数据卷,但是存储节点上所维持的数据卷的数量从存储节点310到其他存储节点310可不同。在一些实施方案中,一些数据卷在大小上不同于其他数据卷。存储节点310还可提供多租户存储。例如,在一些实施方案中,存储节点310c处所维持的数据卷316a可以是为基于块的存储服务220中的一个账户维持的,而同样维持在存储节点310c处的数据卷316b可以是为一个不同账户维持的。存储节点310可将其各自数据卷存留在一个或多个基于块的存储装置(例如,硬盘驱动器、固态驱动器等)中,所述一个或多个基于块的存储装置可直接附接到实施各自存储节点的计算***或装置。
基于块的存储服务220可以多种不同方式管理和维持数据卷。可在维持数据卷的相同副本的两个或更多个存储节点之中针对一些数据卷实施建立数据卷的耐久性状态的不同的耐久性方案。例如,可实施不同类型的镜像和/或复制技术(例如,RAID 1),以便诸如通过消除数据卷的单一故障点而增加数据卷耐久性。为了提供对数据卷的访问,存储节点然后可在维持数据卷副本的两个或更多个存储节点之中协调I/O请求,诸如写入请求。例如,对于给定数据卷312a,存储节点310a可充当主存储节点。在各种实施方案中,主存储节点接收并处理来自客户端的对数据卷的请求(例如,I/O请求)。因此,存储节点310a然后可将对数据卷312a的I/O请求(诸如写入请求)或任何其他变化或修改的复本协调到充当从存储节点的一个或多个其他存储节点。例如,存储节点310c可维持数据卷316d,所述数据卷316d是数据卷312a的副本。因此,当在存储节点310a处接收到对数据卷312a的写入请求时,当在存储节点310处完成写入请求之前,存储节点310a可将写入请求转发到存储节点310c并等待,直到存储节点310c将写入请求确认为完成为止。主存储节点可引导针对数据卷的其他操作,像快照操作或其他I/O操作(例如,服务读取请求)。
请注意,在一些实施方案中,可根据数据卷分配主存储节点和从存储节点的角色。例如,对于存储节点310a处所维持的数据卷312a,存储节点310a可充当主存储节点。而对于存储节点310a处所维持的另一个数据卷(诸如数据卷312b),存储节点310a可充当从存储节点。
在各种实施方案中,存储节点310可各自实施各自页面高速缓存。页面高速缓存可以是***存储器或其他存储器装置的部分,所述部分存储来自各自存储节点处所维持的数据卷312之一的页面或其他数据分组。替代直接写入到维持数据卷的被请求数据的部分的基于块的存储装置或从所述基于块的存储装置读取,可更新页面高速缓存。例如,如果接收到对数据卷的一部分的读取请求,那么首先可以确定数据是否驻留在页面高速缓存中。如果是,那么可从页面高速缓存读取所述数据。如果不是,那么可从维持数据卷的被请求数据的部分的各自基于块的存储装置检索所述数据并且将所述数据写入到页面高速缓存中以供将来使用。类似地,写入请求可指向页面高速缓存。对于所接收写入请求,可根据写入请求更新对应于将要写入的数据(例如,已经维持在页面高速缓存中的数据卷的一部分)的页面高速缓存条目。类似地,如果将要由写入请求修改的数据不在页面高速缓存中,那么可首先从存留所述数据的基于块的存储装置获得所述数据,将所述数据写入到页面高速缓存中的新的页面高速缓存条目中,然后根据所述写入请求进行更新。页面高速缓存技术是本领域的普通技术人员所熟知的,并且因此,先前实例并不意图对其他页面高速缓存技术进行限制。
在各种实施方案中,存储节点310可实施各自的页面高速缓存日志,诸如页面高速缓存日志320a、320b、320c至320n。页面高速缓存日志可存储描述对各自页面高速缓存的更新的日志记录,诸如对页面高速缓存330中所维持的数据进行修改的写入请求。因此,在引起页面高速缓存330中的数据丢失的***故障或其他故障的情况下,可使用页面高速缓存日志320中的日志记录来将页面高速缓存复原到故障之前的状态。在一些实施方案中,可根据对页面高速缓存330作出更新的次序顺序地存储日志记录。例如,接收、执行写入请求1A,并且存储对应的日志记录1A。然后,接收、执行写入请求1B,并且存储对应的日志记录1B,以此类推。通过顺序地存储日志记录,可以按存储日志记录的次序来重放或重新应用所述日志记录,以生成页面高速缓存在特定时间点的状态。
另外,日志记录的顺序存储可降低用于存储日志记录的写入等待时间。页面高速缓存日志320可被实施为永久性存储装置(例如,硬盘驱动器、固态驱动器(SSD)或其他基于块的存储装置)。对这类永久性存储装置进行顺序写入通常比随机存取写入快。在各种实施方案中,页面高速缓存日志320可在用于存储节点的专用块存储装置上实施。在一些实施方案中,存留页面高速缓存日志的永久性存储装置可与存储节点处存留数据卷的基于块的存储装置分开。
存储节点310可实施各自的I/O管理器,诸如I/O管理器340a、340b、340c至340n。I/O管理器340可处置指向特定存储节点处所维持的数据卷的I/O请求。因此,例如,I/O管理器340b可处理并处置对存储节点310b处的卷314b的写入请求。I/O管理器340可被配置来根据基于块的存储服务应用程序编程接口(API)和/或其他通信协议(诸如互联网小型计算机***接口(iSCSI))来处理I/O请求。在一些实施方案中,I/O管理器340可实施各自的日志管理部件,诸如日志管理342a、342b、342c至342n。日志管理部件可至少部分地基于日志记录来执行各种日志管理功能,诸如修剪日志记录和/或执行页面高速缓存恢复。
请注意,图3提供可在基于块的存储服务中实施的存储节点的实例。在一些实施方案中,也可实施其他布置或配置的存储节点,诸如并不实施页面高速缓存写入日志的存储节点
图4是示出根据一些实施方案的在降低数据卷耐久性状态时客户端、主存储节点、从存储节点与控制平面之间的交互的顺序图。客户端410可向主存储节点420发送对特定数据卷的I/O请求461(例如,写入请求),存储节点420是所述数据卷的主存储节点。作为满足数据卷的当前耐久性状态的部分,主存储节点420可尝试与从存储节点430复制I/O请求,但最终可能失败463。如以上所指出,各种网络分区、高网络利用率、***故障或任何其他类型的事件可能中断数据卷的复制操作。例如,在其中在主存储节点420与从存储节点430之间出现网络分区的情景中,主存储节点420的失败的I/O请求463可能永远不能到达从存储节点430。响应于确定从存储节点430不可用于复制,主存储节点可尝试通过向存储服务控制平面440请求对禁用数据卷的复制的授权465来进入降低的数据卷耐久性状态。存储服务控制平面440可基于各种因素(诸如当前网络状况(例如,是否存在网络分区、整体故障(massfailure)、大的网络流量的量)来允许主存储节点420在降低的耐久性下操作并禁用复制467。一旦数据卷的降低的耐久性状态得到授权,主存储节点420就可被授权来确认特定数据卷的I/O 469。
在某一时刻,主存储节点420(或控制平面440)可能希望恢复数据卷的耐久性状态。例如,主存储节点420可在尝试提高数据卷的耐久性状态之前等待,直到一定量的时间已经流逝或接收到一定数量的对数据卷的修改为止。来自主存储节点420的对授权启用数据卷的复制471的请求可被发送到存储服务控制平面440。基于类似于以上讨论的那些的因素,存储服务控制平面可向主存储节点420发送候选从存储节点的列表473。候选存储节点的列表可包括维持数据卷的非当前陈旧副本的存储节点,和/或并不维持数据卷副本但具有存储数据卷副本的能力的存储节点。在一些实施方案中,主存储节点420可能不需要获得候选存储节点的列表,而是可在本地维持候选从存储节点(例如,主存储节点420先前与其复制数据卷的存储节点)的列表。主存储节点420可从候选存储节点的列表中选择从节点(诸如新的从存储节点450)以与450复制数据卷。主存储节点可发送对在从存储节点450上创建数据卷的新的卷副本475的请求。从存储节点450可确认所创建卷副本477。主存储节点420然后可开始一个或多个复制操作来如同主存储节点420处所维持那样复制卷。每一个复制操作可将数据卷的部分发送给新的从存储节点450来进行存储。一旦复制完成,主存储节点420可再次启用数据卷的复制481,从而根据数据卷的提高的耐久性状态来处理I/O请求。例如,在主存储节点420处接收的I/O请求483现在被发送485到新的从存储节点450。
在一些实施方案中,当从数据卷的降低的耐久性状态转变到提高的耐久性状态时,可实施各种有效数据卷复制技术。图5是示出根据一些实施方案的执行从降低的耐久性状态到提高的耐久性状态的有效数据卷复制操作的主存储节点与从存储节点之间的交互。客户端510可向主存储节点520发送I/O请求551。如以上参考图4所讨论的,I/O请求可能由于从存储节点530不可用而失败。主存储节点520可请求对禁用复制的授权555并进入降低的数据卷耐久性状态。基于各种因素(例如,是否存在网络分区、整体故障、大的网络流量的量),存储服务控制平面540可授权禁用复制557,从而允许主存储节点再次完成并确认I/O559。
在某一时间点,主存储节点520可能希望提高数据卷的耐久性状态,并向存储服务控制平面540请求对启用复制的授权561。同样如上所述,基于各种因素,存储服务控制平面可授权复制并向主存储节点发送候选从节点563。候选从节点563可包括维持数据卷的陈旧(即,过时)副本的存储节点。陈旧副本可能是由于复制对数据卷的改变的候选存储节点与主存储节点520之间的先前配对造成。使用候选存储节点的列表,主存储节点520可被配置来选择从存储节点,诸如通过识别要复制的数据量最小的从存储节点。例如,在一些实施方案中,主存储节点520可向预期的从存储节点发送指示卷565中的数据组块的版本号的卷元数据。从存储节点可通过将所述卷元数据与其陈旧副本的卷元数据进行比较来对所述卷元数据进行评估,并且识别它自己的副本中的需要复制的数据组块。
可向主存储节点567指示出所识别数据组块。如果存在多于一个具有陈旧副本的从存储节点,可将所需数据组块的数量最小(或数量的非陈旧数据组块的数量最大)的从存储节点选择为新的从存储节点。在一些实施方案中,这种选择可结合其他因素作出,所述因素诸如指向候选从存储节点的网络流量的当前量和/或从存储节点的工作负荷。在图5中,选择了从存储节点530(作为最近的从存储节点,它与主存储节点上的数据卷具有最少差异)。然后将所识别数据组块复制569到从存储节点,以便使主存储节点和从存储节点520处所维持的数据卷副本同步。以此方式,在各种实施方案中,无需更新数据卷的陈旧副本中的数据组块。然后可启用571数据卷的复制,以便根据提高的数据卷耐久性状态来处理请求。因此,作为复制数据卷的部分,可将发送到主存储节点520的I/O请求473发送575到从存储节点530,从而恢复数据卷的耐久性状态。
请注意,在一些实施方案中,可根据数据卷分配主存储节点和从存储节点的角色。例如,对于存储节点处所维持的一个数据卷,所述存储节点可用作主存储节点。对于同一存储节点处所维持的另一个数据卷,所述存储节点可用作从存储节点。
已经关于基于块的存储服务给出上文参考图2-5讨论的降低基于块的存储的数据卷耐久性状态以及基于块的存储的有效数据卷复制的实例。各种其他类型或配置的基于块的存储可实施这些技术。例如,不同配置的存储节点还可实施与以上讨论的主从模型不同的可建立数据卷的耐久性状态的各种数量的复制、镜像或其他耐久性技术。图6是示出根据一些实施方案的用于降低基于块的存储的数据卷耐久性的各种方法和技术的高级流程图。这些技术可使用如上文参考图2-5描述的一个或多个存储节点(或基于块的存储中维持数据卷的其他***部件)来实施。
在一些实施方案中,存储节点群可维持基于块的存储中的数据卷的副本。存储节点群可通过以下方式来建立数据卷的耐久性状态:在这个群中的每一个存储节点处完成所接收的对数据卷的写入请求,之后将所接收的对数据卷的写入请求确认为完成,以便执行数据卷的复制。在一些实施方案中,这些存储节点可称为对等存储节点。如在610处所指示,可确定维持数据卷副本的存储节点群中的存储节点不可用于复制。例如,如果3个存储节点维持数据卷副本并且这3个存储节点中的1个变得不可用的话。存储节点可由于许多原因而变得不可用于复制,所述原因包括但不限于:网络分区、高网络利用率、***故障或任何其他类型的事件。在一些实施方案中,可在存储节点群中的另一个存储节点处确定:维持所述存储节点处所维持的数据卷的副本的对等存储节点不可用于复制写入请求。例如,发送到所述对等存储节点的写入请求可能永远得不到确认,向对等存储节点指示健康或状况的各种心跳或其他gossip协议可指示:存储节点不可用。在一些实施方案中,控制***(诸如图2中的基于块的存储服务控制平面222)可向其他存储节点发送对等存储节点不可用的指示。
无论如何确定,作为响应,可根据数据卷的降低的耐久性状态来执行对随后接收的对数据卷的写入请求的处理,使得数据卷的复制针对不可用存储节点是禁用的,如在620处所指示。耐久性状态的改变可记录或指示在所维持的关于数据卷的信息中,诸如可维持在维持数据卷的存储节点群中的存储节点处。在一些实施方案中,控制***(诸如图2中的基于块的存储服务控制平面222)可更新指示特定数据卷正在根据降低的耐久性状态进行操作的基于块的存储***信息。
当接收到对具有降低的耐久性状态的数据卷的随后写入请求时,在可用于复制的存储节点处完成写入请求,如在630处所指示。因此,写入请求可在与降低耐久性状态之前相比数量较少的存储节点处完成。例如,如果维持数据卷副本的5个存储节点中的1个存储节点不可用于复制,并且数据卷的耐久性状态被降低,那么这5个存储节点中的可用于复制的4个可完成写入请求(这少于将完成写入请求的5个存储节点)。在可仅包括主存储节点和从存储节点的一些实施方案(诸如以上参考图4所述的那些)中,可在单个存储节点成完成对数据卷的写入请求,而无需在基于块的存储***中的任何其他存储节点处完成。实际上,在各种实施方案中,写入请求仅在接收写入请求的存储节点处完成。在这种情景下,其他存储节点可不复制或完成写入请求。然后可向客户端确认根据降低的耐久性状态完成的写入请求,如在640处所指示。
图7是示出根据一些实施方案的用于复原数据卷的耐久性状态的各种方法和技术的高级流程图。如在710处所指示,可确定存储节点处所维持的数据卷的复制将针对另一个存储节点启用,以便根据提高的耐久性状态处理写入请求。在各种实施方案中,这种确定可由控制***(诸如图2中的基于块的存储服务控制平面222)或由存储节点自身来作出。
各种不同因素可确定何时通过启用复制来提高数据卷的耐久性状态。在一些实施方案中,可供用作对等存储节点(主或从)的存储节点的数量可改变。例如,如果可用存储节点的数量增加,那么因为存储数据卷的另一个副本的能力可提高,所以可启用数据卷的复制。可考虑另一个因素,即整个基于块的存储***(不论是否是特定位置诸如数据中心中的物理基础设施)的状况。还可考虑基于块的存储***中在所述基于块的存储***中的存储节点之中进行的复制操作的数量。在一些实施方案中,还可考虑数据卷的耐久性状态。例如,如果数据卷被存档或备份到除基于块的存储***以外的另一个数据存储区的话,或不论是否是特定硬件优化,诸如以上参考图3讨论的页面高速缓存写入存录。在一些实施方案中,另一个因素可以是与其执行复制的希望的或优选的对等存储节点的可用性。例如,优选的对等体当前可能正在执行多个复制操作并且不能够在那个时候开始数据卷的复制。在各种实施方案中,这些各种因素中的一个、两个或全部可用于评估何时启用复制。在一些实施方案中,在应当针对一个数据卷而不针对另一个数据卷启用复制时,可使用优先化方案或排序来对每一个因素进行加权、打断其间的平衡。
如在720处所指示,在一些实施方案,可识别另一个存储节点来维持数据卷副本。在一些实施方案中,这个存储节点可以是维持数据卷的陈旧副本的先前对等体。在一些实施方案中,所识别存储节点可以是未维持数据卷副本的新的存储节点。一旦被识别,就可执行一个或多个复制操作来更新存储在所述另一个存储节点中的数据卷副本。复制操作可包括向所述另一个存储节点发送所述存储节点处所维持的数据卷的一些或全部数据组块,所述一些或全部数据组块将要被写入到所述另一个存储节点处所维持的数据卷副本中。图8在以下更详细地描述有效复制技术,诸如用于发送在数据卷进入降低的耐久性状态之后已经被修改的数据组块的技术。一旦完成复制操作,并且使所述存储节点和所述另一个存储节点处所维持的数据卷同步,就可在所述存储节点处启用复制,使得直到写入在所述存储节点和所述另一个存储节点两者处完成,才将写入请求确认为完成,如在740处所指示。然后可在写入请求在所述存储节点和现在维持数据卷的当前版本的所述另一个存储节点两者处完成时,确认写入请求。如以上所讨论,在一些实施方案中,多个存储节点可维持数据卷副本,使得降低的存储节点耐久性状态(例如,4个存储节点)得以提高以添加另外的存储节点,如在720、730和740处所指示(例如,提高到5个存储节点)。当接收到对复制针对所述另一个存储节点被启用的数据卷的写入请求时,那么可在所述多个存储节点和所述另一个存储节点处完成写入请求,之后将写入请求确认为完成(例如,在全部的5个存储节点处完成,之后进行确认)。
图8是示出根据一些实施方案的用于有效数据卷复制(诸如在提高数据卷的耐久性状态时发生)的各种方法和技术的高级流程图。在各种实施方案中,陈旧副本可被维持在曾经是存储节点群(诸如一对存储节点)的部分的存储节点处,所述存储节点群具有维持数据卷的当前版本的存储节点,诸如在数据卷的降低的耐久性状态下操作的存储节点。可利用这些陈旧副本来识别要执行以便使存储节点之间的副本同步的复制较少的对等存储节点。如在810处所指示,可在存储节点处检测数据卷的复制启用事件。类似于以上讨论的元素710,可诸如基于各种因素来确定或触发复制启用事件,所述因素包括但不限于:数据卷的耐久性状态、其他存储节点存储数据卷副本的可用性、或基于块的存储***之中的网络利用率。
可识别维持要根据存储节点处所维持的数据卷来更新的数据卷的陈旧副本的对等存储节点,如在820处所指示。在一些实施方案中,所识别存储节点可以是维持要执行数据卷的复制操作的数据卷陈旧副本的最近的存储节点。图9是示出根据一些实施方案的用于识别有陈旧副本要更新的存储节点的各种方法和技术的高级流程图。如在910处所指示,在各种实施方案中,可在所述存储节点处接收维持数据卷的各自陈旧副本的候选存储节点的识别符。控制***(诸如图2中的控制平面222)可跟踪已经维持数据卷副本的先前存储节点。在一些实施方案中,控制平面可根据各种因素(例如,存储节点是否可用、健康、具有先前故障的历史,或当前工作负荷),从维持数据卷陈旧副本的所述数量的存储节点的子集创建候选存储节点的列表。在一些实施方案中,所述存储节点自身可跟踪或保持所述存储节点与其执行数据卷的复制操作的存储节点的历史。存储节点识别符(诸如这些存储节点的网络地址)可被发送到所述存储节点或被保持在所述存储节点处。
在一些实施方案中,可针对候选存储节点中的每一个,确定数据卷的各自陈旧副本中要更新的陈旧数据组块的各自数量,如在920处所指示。例如,在一些实施方案中,当在复制被启用的存储节点处接收到写入请求时,可更新数据卷的元数据以指示哪些数据组块被改变(例如,可维持数据组块的单调地增加的版本号)。候选存储节点也可维持具有陈旧副本的每一个数据组块的各自版本号的卷元数据。然而,陈旧副本的这种卷元数据也可能是陈旧的。因此,可识别数据卷的陈旧副本与数据卷的当前版本之间在数据组块上的差异。例如,在一些实施方案中,所述存储节点可查询每一个候选存储节点以将它们的卷元数据与数据卷的当前卷元数据进行比较。候选存储节点可发送需要更新以便使数据卷的这些副本同步的数据组块的识别符。基于这些各自的陈旧数据组块数量,可选择对等存储节点来更新。例如,这个所选择存储节点可以是候选存储节点中陈旧数据组块数量最少的一个,如在930处所指示。在一些实施方案中,也可以结合要更新的陈旧数据组块的量使用其他因素选择对等存储节点来更新。例如,也可以使用当前工作负荷、指向特定特定候选存储节点的网络流量或关于所述特定特定候选存储节点执行复制的性能或能力的其他信息。如果例如一个候选存储节点可比另一个候选存储节点具有更多的要更新的数据组块,但具有更大的执行复制操作的能力(例如,所述另一个候选存储节点正执行另一个数据卷的复制操作或其他工作),那么可选择有更多数据组块要更新的候选存储节点。
转回图8,一旦选择,就可执行用于更新对等存储节点处的数据卷副本中的数据组块以与所述存储节点处的数据卷中的对应数据组块匹配的复制操作,如在830处所指示。因此,在一些实施方案中,仅需要更新存储节点之间的未同步(即,不匹配)的这些数据组块,从而减少在存储节点之间发送数据组块所需要的网络流量。对于数据卷的陈旧副本与数据卷的当前版本之间相匹配的这些数据组块,可以不执行复制操作。一旦完成复制操作,就可在存储节点和对等存储节点两者处启用数据卷的复制。直到在存储节点和对等存储节点两者处执行了写入请求,才将写入请求确认为完成。
图10是示出根据一些实施方案的用于确定可不执行数据卷的有效复制的各种方法和技术的高级流程图。如在1010处所指示,可针对尝试识别具有数据卷的陈旧副本的对等存储节点的存储节点,确定进入可能够禁用存储节点处所维持的数据卷的复制的降低的耐久性状态与当前时间之间的时间量超过有效复制时间阈值。有效时间阈值可指示陈旧副本如此过时以致于复制新副本比执行复制操作来更新存储节点处的陈旧副本更有效的时间量。在一些实施方案中,可针对特定数据卷确定有效时间复制阈值,诸如基于数据卷的耐久性状态(例如,数据卷是否在另一个位置处被备份或存档)。作为响应,可执行数据卷到未维持数据卷的陈旧副本的可用存储节点的完全复制,如在1020处所指示。可不执行数据卷的有效复制的其他确定可以基于除时间以外的不同信息。例如,在一些实施方案中,候选存储节点中要更换的陈旧数据组块的数量(即,要更新的数据的量)超过数据复制的有效数据量阈值,并且替代地可创建数据卷的新副本。
对于维持陈旧副本(对于所述陈旧副本来说,时间量(诸如参考1010所描述)、数据或其他考虑因素使有效复制技术显得无效)的存储节点,可识别陈旧副本它们自己,如在1030处所指示。控制***(诸如图2中的控制平面222)可请求:所述存储节点删除各自陈旧副本,如在1040处所指示。在一些实施方案中,存储节点自身可确定:所述存储节点处所维持的特定陈旧副本可不再需要维持并删除所述陈旧副本。
在各种实施方案中,本文所述的方法可通过硬件和软件的任何结合来实施。例如,在一种实施方案中,所述方法可由包括执行程序指令的一个或多个处理器的计算机***(例如,如图11中的计算机***)来实施,所述程序指令存储在联接到处理器的计算机可读存储介质上。程序指令可被配置来实施本文所述的功能性(例如,各种服务器、存储节点、控制平面、管理器和/或其他部件(诸如实施本文所述的基于块的存储服务的那些)的功能性)。如在图中所示和本文所描述的各种方法表示方法的示例性实施方案。任何方法的次序可以改变,并且各个元素可以被添加、重新排序、组合、省略、修改等。
本公开的实施方案可鉴于以下条款来描述:
1.一种***,其包括:
多个存储节点,其中所述多个存储节点中的每一个维持在所述存储节点处实施的基于块的存储装置中的多个数据卷的各自副本,其中在向客户端确认从所述客户端接收的用于带有禁用复制的所述多个数据卷中的数据卷的写入请求之前,在所述数据卷的每一个各自副本处完成所述写入请求;
所述多个存储节点中的每一个被配置来:
确定所述多个存储节点中的对等存储节点不可用于复制,所述对等存储节点如同在所述存储节点处被维持那样维持所述多个数据卷中的特定数据卷的相同副本;
响应于确定所述对等存储节点不可用,禁用所述特定数据卷的复制,其包括:
在所述存储节点处完成随后接收的写入请求;并且
确认所述完成的写入请求,而无需在所述多个存储节点中的任何其他存储节点处完成所述写入请求。
2.如条款1所述的***,其还包括:
控制平面,其授权所述多个数据卷的复制的启用和禁用;
其中每一个存储节点被配置来响应于从所述控制平面接收对禁用复制的授权来执行所述禁用所述特定数据卷的复制;
所述控制平面被配置来:
响应于从存储节点接收用于维持所述特定数据卷的另一个副本的一个或多个候选存储节点的请求:
确定将要启用所述特定数据卷的复制;并且
响应于确定将要启用所述特定数据卷的复制,向所述请求存储节点发送所述多个存储节点中的所述一个或多个候选存储节点的各自识别符,以便让所述请求存储节点将所述特定数据卷复制到所述一个或多个候选存储节点中的至少一个。
3.如条款2所述的***,其还包括:
所述请求存储节点被配置来:
接收所述一个或多个候选存储节点的所述各自识别符;
至少部分地基于所述候选识别符,识别所述一个或多个候选存储节点中的特定一个来维持所述数据卷的另一个副本;
执行一个或多个复制操作以更新所述数据卷的所述另一个副本,以便复制维持在所述请求存储节点处的所述特定数据卷的所述副本;并且
启用所述特定数据卷的复制,使得在将所述写入请求确认为完成之前,将在所述请求存储节点处接收的写入请求发送到所述另一个存储节点用于完成。
4.如条款1所述的方法,其中所述多个存储节点一起实施基于网络的基于块的存储服务,其中从由基于网络的虚拟计算服务实施的一个或多个虚拟计算实例接收写入请求,其中所述基于网络的基于块的存储服务和所述基于网络的虚拟计算服务一起被实施为同一基于网络的服务提供商网络的部分。
5.一种方法,其包括:
由一个或多个计算装置执行下列各项:
确定维持数据卷的各自副本的多个存储节点中的存储节点不可用于复制,其中在所述多个存储节点中的每一个处完成被接收用于所述数据卷的写入请求以便执行所述数据卷的复制,其中当在所述多个存储节点中的每一个存储节点处完成时,写入请求被确认为完成;
响应于所述确定所述存储节点不可用,根据所述数据卷的降低的耐久性状态来处理用于所述数据卷的随后接收的的写入请求,使得针对所述存储节点禁用所述数据卷的复制,其包括:
针对用于所述数据卷的所述随后接收的写入请求中的每一个:
在可用于复制的所述多个存储节点中的一个或多个存储节点处完成所述随后接收的写入请求,其中所述写入请求在相比于所述多个存储节点较少数量的存储节点处完成;以及
响应于完成所述写入请求,将所述写入请求确认为完成。
6.如条款5所述的方法,其中所述多个存储节点包括主存储节点和从存储节点,其中被确定为不可用于复制的所述存储节点是主存储节点,其中在所述主存储节点处接收用于所述数据卷的所述写入请求,其中所述主存储节点将在所述主存储节点处接收的所述写入请求发送到所述从存储节点以在所述从存储节点处完成,并且其中所述方法还包括:
响应于所述确定所述存储节点不可用,将所述从存储节点提升为所述数据卷的新的主存储节点,其中在所述新的主存储节点处接收用于所述数据卷的所述随后接收的写入请求;
其中执行所述在可用于复制的所述多个存储节点中的所述一个或多个存储节点处完成所述随后接收的写入请求,使得在所述新的主存储节点处完成所述随后接收的写入请求,而无需在所述多个存储节点中的任何其他存储节点处完成所述写入请求。
7.如条款5所述的方法,其还包括:
确定将要针对另一个存储节点启用所述数据卷的复制,以便根据提高的耐久性状态来处理用于所述数据卷的写入请求;
响应于确定将要启用所述数据卷的复制:
识别所述另一个存储节点来维持所述数据卷的另一个副本;
执行一个或多个复制操作以更新所述数据卷的所述另一个副本,以如在所述一个或多个存储节点处所维持那样来复制所述数据卷;以及
针对所述另一个存储节点启用复制,使得在将另外的写入请求确认为完成之前,在所述另一个存储节点处完成所述另外的写入请求。
8.如条款7所述的方法,其中所述另一个存储节点不同于被确定为不可用的所述存储节点,并且其中被执行来更新所述另一个副本的所述一个或多个复制操作发送所述一个或多个存储节点处所维持的所述数据卷中的全部的拷贝,以存储为所述数据卷的所述另一个副本。
9.如条款7所述的方法,其中所述多个存储节点被实施为存储多个不同数据卷的较大存储节点集合的部分,其中所述确定将要启用所述数据卷的复制至少部分地基于下列各项中的一个或多个:
所述较大存储节点集合之中维持所述数据卷的所述另一个副本的存储能力;
所述较大存储节点集合之中的网络利用率;或
所述数据卷的耐久性状态。
10.如条款9所述的方法,其中所述一个或多个计算装置中的至少一些实施用于所述较大存储节点集合的控制平面,并且其中所述确定将要启用所述数据卷的复制由所述控制平面执行。
11.如条款7所述的方法,其中所述多个存储节点被实施为存储多个不同数据卷的较大存储节点集合的部分,其中用于所述多个不同数据卷中的至少一些的写入请求根据各自的降低的耐久性状态来处理,并且其中所述确定将要启用所述数据卷的复制至少部分地基于用于提高具有所述各自的降低的耐久性状态的所述至少一些数据卷的耐久性的优先化方案。
12.如条款7所述的方法,其中所述多个存储节点被实施为存储多个不同数据卷的较大存储节点集合的部分,其中针对存储所述多个不同数据卷中的不同数据卷的至少一些存储节点来执行所述确定所述存储节点不可用、所述根据所述降低的耐久性状态来处理用于所述数据卷的所述随后接收的的写入请求、所述确定将要启用复制、所述识别所述另一个存储节点、所述执行所述一个或多个复制操作以及所述针对所述另一个存储启用复制。
13.如条款5所述的方法,其中所述多个存储节点是实施基于网络的基于块的存储服务的较大存储节点集合的部分,其中从由基于网络的虚拟计算服务实施的一个或多个虚拟计算实例接收写入请求,其中所述基于网络的基于块的存储服务和所述基于网络的虚拟计算服务一起被实施为同一提供商网络的部分。
14.一种存储程序指令的非暂时性计算机可读存储介质,所述程序指令在由一个或多个计算装置执行时促使所述一个或多个计算装置实施下列各项:
确定维持数据卷的各自副本的多个存储节点中的存储节点不可用于复制,其中在所述多个存储节点中的每一个处完成被接收用于所述数据卷的写入请求以便执行所述数据卷的复制,其中当在所述多个存储节点中的每一个存储节点处完成时,写入请求被确认为完成;
响应于所述确定所述存储节点不可用,根据所述数据卷的降低的耐久性状态来处理用于所述数据卷的随后接收的的写入请求,使得针对所述存储节点禁用所述数据卷的复制,其包括:
针对用于所述数据卷的所述随后接收的写入请求中的每一个:
在可用于复制的所述多个存储节点中的一个或多个存储节点处完成所述随后接收的写入请求,其中所述写入请求在相比于所述多个存储节点较少数量的存储节点处完成;以及
响应于完成所述写入请求,将所述写入请求确认为完成。
15.如条款14所述的非暂时性计算机可读存储介质,其中所述多个存储节点包括主存储节点和从存储节点,其中被确定为不可用的所述存储节点是所述从存储节点,其中所述主存储节点将在所述主存储节点处从所述客户端接收的所述写入请求发送到所述从存储节点以在所述从存储节点处完成,并且其中执行所述在可供用于复制的所述多个存储节点中的所述一个或多个存储节点处完成所述随后接收的写入请求,使得在所述主存储节点处完成所述随后接收的写入请求,而无需在所述多个存储节点中的任何其他存储节点处完成所述写入请求。
16.如条款14所述的非暂时性计算机可读存储介质,其中所述程序指令还促使所述一个或多个计算装置实施下列各项:
确定将要针对另一个存储节点启用所述数据卷的复制,以便根据提高的耐久性状态来处理用于所述数据卷的写入请求;
响应于确定将要启用所述数据卷的复制:
识别所述另一个存储节点来维持所述数据卷的另一个副本;
执行一个或多个复制操作以更新所述数据卷的所述另一个副本,以如在所述一个或多个存储节点处所维持那样来复制所述数据卷;以及
针对所述另一个存储节点启用复制,使得在将另外的写入请求确认为完成之前,在所述另一个存储节点处完成所述另外的写入请求。
17.如条款16所述的非暂时性计算机可读存储介质,其中所述另一个存储节点是所述存储节点,其中所述数据卷的所述另一个副本是所述数据卷的所述各自副本,并且其中,在所述执行所述一个或多个复制操作以更新所述数据卷的所述另一个副本中,所述程序指令促使所述一个或多个计算装置实施:
发送在针对所述存储节点禁用所述数据卷的复制之后被修改的所述数据卷的数据组块,以便更新所述数据卷的所述各自副本。
18.如条款16所述的非暂时性计算机可读存储介质,其中所述多个存储节点被实施为存储多个不同数据卷的较大存储节点集合的部分,并且其中所述确定将要启用所述数据卷的复制至少部分地基于下列各项中的一个或多个:
所述较大存储节点集合之中维持所述数据卷的所述另一个副本的存储能力;
所述较大存储节点集合之中的网络利用率;或
所述数据卷的耐久性状态。
19.如条款16所述的非暂时性计算机可读存储介质,其中所述多个存储节点被实施为存储多个不同数据卷的较大存储节点集合的部分,其中对所述多个不同数据卷中的至少一些的写入请求根据各自的降低的耐久性状态来处理,并且其中所述确定将要启用所述数据卷的复制至少部分地基于用于提高具有所述各自的降低的耐久性状态的所述至少一些数据卷的耐久性的优先化方案。
20.如条款14所述的非暂时性计算机可读存储介质,其中所述多个存储节点是实施基于网络的基于块的存储服务的较大存储节点集合的部分,其中从由基于网络的虚拟计算服务实施的一个或多个虚拟计算实例接收写入请求,其中所述基于网络的基于块的存储服务和所述基于网络的虚拟计算服务一起被实施为同一提供商网络的部分。
如本文所述的降低基于块的存储的耐久性状态以及有效数据卷复制的实施方案可在可与各种其他装置交互的一个或多个计算机***上执行。图11是示出根据一些实施方案的示例性计算机***的框图。例如,在不同实施方案中,计算机***2000可被配置来实施计算集群的存储和/或计算节点、数据存储区和/或客户端。计算机***2000可以是各种类型的装置中的任何一种,包括但不限于:个人计算机***、台式电脑、膝上电脑或笔记本电脑、主机计算机***、手持式计算机、工作站、网络计算机、消费装置、应用服务器、存储装置、电话、移动电话、或大体上任何类型的计算装置。
计算机***2000包括通过输入/输出(I/O)接口2030联接到***存储器2020的一个或多个处理器2010(其中的任何一个可包括多个核心,所述多个核心可以是单线程的或多线程的)。计算机***2000还包括联接到I/O接口2030的网络接口2040。在各种实施方案中,计算机***2000可以是包括一个处理器2010的单处理器***,或包括若干处理器2010(例如两个、四个、八个或另一合适数量)的多处理器***。处理器2010可以是能够执行指令的任何合适处理器。例如,在各种实施方案中,处理器2010可以是实施各种指令集架构(ISA)中的任何一种架构的通用或嵌入式处理器,所述架构诸如x86、PowerPC、SPARC或MIPSISA或者任何其他合适的ISA。在多处理器***中,每一个处理器2010可通常但并非必须实施相同ISA。计算机***2000还包括一个或多个网络通信装置(例如,网络接口2040),用于与其他***和/或部件通过通信网络(例如,互联网、LAN等)通信。
在示出的实施方案中,计算机***2000还包括一个或多个永久性存储装置2060和/或一个或多个I/O装置2080。在各种实施方案中,永久性存储装置2060可对应于磁盘驱动器、磁带驱动器、固态存储器、其他大容量存储装置、基于块的存储装置、或任何其他永久性存储装置。计算机***2000(或在其上操作的分布式应用程序或操作***)可如所希望地将指令和/或数据存储在永久性存储装置2060中,并且可按需检索存储的指令和/或数据。例如,在一些实施方案中,计算机***2000可代管存储***服务器节点,并且永久性存储2060可包括附接到那个服务器节点的SSD。
计算机***2000包括被配置来存储可由处理器2010访问的指令和数据的一个或多个***存储器2020。在各种实施方案中,***存储器2020可使用任何合适的存储器技术(例如,高速缓存、静态随机存取存储器(SRAM)、DRAM、RDRAM、EDO RAM、DDR 10 RAM、同步动态RAM(SDRAM)、Rambus RAM、EEPROM、非暂时性/闪存类型的存储器、或任何其他类型的存储器中的一种或多种)来实施。***存储器2020可包含程序指令2025,所述程序指令2025可由处理器2010执行以便实施本文所述的方法和技术。在各种实施方案中,程序指令2025可以平台本地二进制、任何解译语言(诸如JavaTM字节代码)、或以任何其他语言(诸如C/C++、JavaTM等)、或以其任何组合来编码。例如,在不同实施方案中,在示出的实施方案中,程序指令2025包括可执行来实施存储节点的功能性的程序指令。在一些实施方案中,程序指令2025可实施多个独立的客户端、节点和/或其他部件。
在一些实施方案中,程序指令2025可包括可执行来实施操作***(未示出)的指令,所述操作***可以是各种操作***、诸如UNIX、LINUX、SolarisTM、MacOSTM、WindowsTM等中的任一种。任何或所有程序指令2025可作为计算机程序产品或软件来提供,所述计算机程序产品或软件可包括具有存储在其上的指令的非暂时性计算机可读存储介质,所述指令可用于编码计算机***(或其他电子装置)来执行根据各种实施方案的过程。非暂时性计算机可读存储介质可包括用于存储机器(例如,计算机)可读的形式(例如软件、处理应用程序)的信息的任何机构。一般来说,非暂时性计算机可访问介质可包括计算机可读存储介质或存储器介质,诸如磁性介质或光学介质,例如通过I/O接口2030联接到计算机***2000的磁盘或DVD/CD-ROM。非暂时性计算机可读存储介质还可以包括可作为***存储器2020或另一类型的存储器包括在计算机***2000的一些实施方案中的任何易失性或非易失性介质,诸如RAM(例如,SDRAM、DDR SDRAM、RDRAM、SRAM等)、ROM等。在其他实施方案中,程序指令可使用通过通信介质(诸如网络链接和/或无线链接)传达的光学、声学或其他形式的传播信号(例如,载波、红外信号、数字信号等)来通信,诸如可通过网络接口2040实施的。
在一些实施方案中,***存储器2020可包括可如本文所述配置的数据存储区2045。一般而言,***存储器2020(例如,***存储器2020内的数据存储区2045)、永久性存储2060和/或远程存储2070可存储数据块、数据块副本、与数据块和/或它们的状态相关联的元数据、配置信息、和/或可在实施本文所述的方法和技术中使用的任何其他信息。
在一种实施方案中,I/O接口2030可被配置来协调处理器2010、***存储器2020与***中的任何***装置之间的I/O流量,包括通过网络接口2040或其他***接口。在一些实施方案中,I/O接口2030可执行任何必要协议、时序或其他数据变换,以便将来自一个部件(例如,***存储器2020)的数据信号转换成适合于由另一个部件(例如,处理器2010)使用的格式。在一些实施方案中,I/O接口2030可包括对于通过各种类型***总线附接的装置的支持,例如像***部件互连(PCI)总线标准或通用串行总线(USB)标准的变型。在一些实施方案中,I/O接口2030的功能可划分到两个或更多个独立部件中,例如像北桥和南桥。另外,在一些实施方案中,I/O接口2030的一些或所有功能性,诸如到***存储器2020的接口,可直接并入处理器2010中。
网络接口2040可被配置来允许在计算机***2000与附接到网络的其他装置(例如像其他计算机***2090)之间交换数据。此外,网络接口2040可被配置来允许在计算机***2000与各种I/O装置2050和/或远程存储2070之间进行通信。在一些实施方案中,输入/输出装置2050可包括一个或多个显示终端、键盘、小键盘、触摸屏、扫描装置、语音或光学识别装置,或适合于由一个或多个计算机***2000输入或检索数据的任何其他装置。多个输入/输出装置2050可存在于计算机***2000中或可分布在包括计算机***2000的分布式***的各个节点上。在一些实施方案中,类似输入/输出装置可与计算机***2000分开并且可通过有线或无线连接(诸如通过网络接口2040)来与包括计算机***2000的分布式***的一个或多个节点交互。网络接口2040通常可支持一个或多个无线网络协议(例如,Wi-Fi/IEEE802.11,或另一无线网络标准)。然而,在各种实施方案中,网络接口2040可以支持通过任何合适的有线或无线通用数据网络(例如像其他类型的以太网网络)进行通信。另外,网络接口2040可支持通过电信/电话网络(诸如模拟语音网络或数字光纤通信网络)、通过存储区域网络(诸如光纤信道SAN)或者通过任何其他合适类型的网络和/或协议进行通信。在各种实施方案中,计算机***2000可包括多于、少于、或不同于图11 2000所示的那些的部件(例如,显示器、视频卡、音频卡、***装置、其他网络接口,诸如ATM接口、以太网接口、帧中继接口等)。
应注意,本文所述的分布式***实施方案中的任何一个,或它们的部件中的任何一个,可被实施为一个或多个基于网络的服务。例如,计算服务内的计算集群可将计算和/或存储服务和/或采用本文所述的分布式计算***的其他类型的服务作为基于网络的服务呈现给客户端。在一些实施方案中,基于网络的服务可由设计来支持通过网络进行彼此协作的机对机交互的软件和/或硬件***来实施。基于网络的服务可具有以机器可处理格式描述的接口,诸如Web服务描述语言(WSDL)。其他***可与基于网络的服务以对基于网络的服务的接口的描述所规定的方式进行交互。例如,基于网络的服务可限定其他***可调用的各种操作,并且可限定特定的应用程序编程接口(API),当请求各种操作时,其他***可能期望服从所述特定的应用程序编程接口(API)。虽然
在各种实施方案中,基于网络的服务可通过使用包括与基于网络的服务请求相关联的参数和/或数据的消息来请求或调用。这种消息可根据特定的标记语言(诸如可延伸标记语言(XML))来格式化,和/或可使用协议(诸如简单对象访问协议(SOAP))来封装。为执行基于网络的服务请求,基于网络的服务客户端可汇编包括所述请求的消息,并且使用基于互联网的应用层传输协议(诸如超文本传输协议(HTTP))将所述消息传达给对应于基于网络的服务的可寻址端点(例如,统一资源定位符(URL))。
在一些实施方案中,基于网络的服务可使用表述性状态传输(“RESTful”)技术而不是基于消息的技术来实施。例如,根据RESTful技术实施的基于网络的服务可通过包括在HTTP方法(诸如PUT、GET或DELETE)内而不是封装在SOAP消息内的参数来调用。
尽管已相当详细地描述了以上实施方案,但一旦完全了解以上公开内容,各种改变和修改对本领域的技术人员将变为显而易见。以下权利要求旨在被解释成包含所有这些修改和改变,并且各自地,以上描述应视为具有说明性而非限制性意义。
Claims (15)
1.一种方法,其包括:
由一个或多个计算装置执行下列各项:
确定维持数据卷的副本的多个存储节点中的存储节点不可用于复制,其中在所述多个存储节点处完成被接收用于所述数据卷的写入请求以便执行所述数据卷的复制,其中在完成时将写入请求确认为完成;
响应于所述确定所述存储节点不可用,根据所述数据卷的降低的耐久性状态来处理用于所述数据卷的随后接收的的写入请求,使得针对所述存储节点禁用所述数据卷的复制,其包括:
针对用于所述数据卷的所述随后接收的写入请求中的每一个:
在可用于复制的所述多个存储节点中的一个或多个存储节点处完成所述随后接收的写入请求,其中所述写入请求在相比于所述多个存储节点较少数量的存储节点处完成;以及
响应于完成所述写入请求,将所述写入请求确认为完成。
2.如权利要求1所述的方法,其中所述多个存储节点包括主存储节点和从存储节点,其中被确定为不可用于复制的所述存储节点是主存储节点,其中在所述主存储节点处接收用于所述数据卷的所述写入请求,其中所述主存储节点将在所述主存储节点处接收的所述写入请求发送到所述从存储节点以在所述从存储节点处完成,并且其中所述方法还包括:
响应于所述确定所述存储节点不可用,将所述从存储节点提升为所述数据卷的新的主存储节点,其中在所述新的主存储节点处接收用于所述数据卷的所述随后接收的写入请求;
其中执行所述在可用于复制的所述多个存储节点中的所述一个或多个存储节点处完成所述随后接收的写入请求,使得在所述新的主存储节点处完成所述随后接收的写入请求,而无需在所述多个存储节点中的任何其他存储节点处完成所述写入请求。
3.如权利要求1所述的方法,其还包括:
确定将要针对另一个存储节点启用所述数据卷的复制,以便处理用于所述数据卷的写入请求;
响应于确定将要启用所述数据卷的复制:
识别所述另一个存储节点来维持所述数据卷的另一个副本;
执行一个或多个复制操作以更新所述数据卷的所述另一个副本,以如在所述一个或多个存储节点处所维持那样来复制所述数据卷;以及
针对所述另一个存储节点启用复制,使得在将另外的写入请求确认为完成之前,在所述另一个存储节点处完成所述另外的写入请求。
4.如权利要求3所述的方法,其中所述另一个存储节点不同于被确定为不可用的所述存储节点,并且其中被执行来更新所述另一个副本的所述一个或多个复制操作发送所述一个或多个存储节点处所维持的所述数据卷中的全部的拷贝,以存储为所述数据卷的所述另一个副本。
5.如权利要求3所述的方法,其中所述多个存储节点被实施为存储多个不同数据卷的较大存储节点集合的部分,其中所述确定将要启用所述数据卷的复制至少部分地基于下列各项中的一个或多个:
所述较大存储节点集合之中维持所述数据卷的所述另一个副本的存储能力;
所述较大存储节点集合之中的网络利用率;或
所述数据卷的耐久性状态。
6.如权利要求5所述的方法,其中所述一个或多个计算装置中的至少一些实施用于所述较大存储节点集合的控制平面,并且其中所述确定将要启用所述数据卷的复制由所述控制平面执行。
7.如权利要求3所述的方法,其中所述多个存储节点被实施为较大存储节点集合的部分,其中用于所述多个不同数据卷中的至少一些的写入请求根据各自的降低的耐久性状态来处理,并且其中所述确定将要启用所述数据卷的复制至少部分地基于用于提高具有所述各自的降低的耐久性状态的所述至少一些数据卷的耐久性的优先化方案。
8.如权利要求3所述的方法,其中所述多个存储节点被实施为存储多个不同数据卷的较大存储节点集合的部分,其中针对存储所述多个不同数据卷中的不同数据卷的至少一些存储节点来执行所述确定所述存储节点不可用、所述根据所述降低的耐久性状态来处理用于所述数据卷的所述随后接收的写入请求、所述确定将要启用复制、所述识别所述另一个存储节点、所述执行所述一个或多个复制操作以及所述针对所述另一个存储启用复制。
9.如权利要求1所述的方法,其中所述多个存储节点是实施基于网络的基于块的存储服务的较大存储节点集合的部分,其中从由基于网络的虚拟计算服务实施的一个或多个虚拟计算实例接收写入请求,其中所述基于网络的基于块的存储服务和所述基于网络的虚拟计算服务一起被实施为同一提供商网络的部分。
10.一种存储程序指令的非暂时性计算机可读存储介质,所述程序指令在由一个或多个计算装置执行时促使所述一个或多个计算装置实施下列各项:
确定维持数据卷的副本的多个存储节点中的存储节点不可用于复制,其中在所述多个存储节点处完成被接收用于所述数据卷的写入请求以便执行所述数据卷的复制,其中在完成时将写入请求确认为完成;
响应于所述确定所述存储节点不可用,根据所述数据卷的降低的耐久性状态来处理用于所述数据卷的随后接收的的写入请求,使得针对所述存储节点禁用所述数据卷的复制,其包括:
针对用于所述数据卷的所述随后接收的写入请求中的每一个:
在可用于复制的所述多个存储节点中的一个或多个存储节点处完成所述随后接收的写入请求,其中所述写入请求在相比于所述多个存储节点较少数量的存储节点处完成;以及
响应于完成所述写入请求,将所述写入请求确认为完成。
11.如权利要求10所述的非暂时性计算机可读存储介质,其中所述多个存储节点包括主存储节点和从存储节点,其中被确定为不可用的所述存储节点是所述从存储节点,其中所述主存储节点将在所述主存储节点处从所述客户端接收的所述写入请求发送到所述从存储节点以在所述从存储节点处完成,并且其中执行所述在可供用于复制的所述多个存储节点中的所述一个或多个存储节点处完成所述随后接收的写入请求,使得在所述主存储节点处完成所述随后接收的写入请求,而无需在所述多个存储节点中的任何其他存储节点处完成所述写入请求。
12.如权利要求10所述的非暂时性计算机可读存储介质,其中所述程序指令还促使所述一个或多个计算装置实施下列各项:
确定将要针对另一个存储节点启用所述数据卷的复制,以便处理用于所述数据卷的写入请求;
响应于确定将要启用所述数据卷的复制:
识别所述另一个存储节点来维持所述数据卷的另一个副本;
执行一个或多个复制操作以更新所述数据卷的所述另一个副本,以如在所述一个或多个存储节点处所维持那样来复制所述数据卷;以及
针对所述另一个存储节点启用复制,使得在将另外的写入请求确认为完成之前,在所述另一个存储节点处完成所述另外的写入请求。
13.如权利要求12所述的非暂时性计算机可读存储介质,其中所述另一个存储节点是所述存储节点,其中所述数据卷的所述另一个副本是所述数据卷的所述各自副本,并且其中,在所述执行所述一个或多个复制操作以更新所述数据卷的所述另一个副本中,所述程序指令促使所述一个或多个计算装置实施:
发送在针对所述存储节点禁用所述数据卷的复制之后被修改的所述数据卷的数据组块,以便更新所述数据卷的所述各自副本。
14.如权利要求12所述的非暂时性计算机可读存储介质,其中所述多个存储节点被实施为存储多个不同数据卷的较大存储节点集合的部分,并且其中所述确定将要启用所述数据卷的复制至少部分地基于下列各项中的一个或多个:
所述较大存储节点集合之中维持所述数据卷的所述另一个副本的存储能力;
所述较大存储节点集合之中的网络利用率;或
所述数据卷的耐久性状态。
15.如权利要求10所述的非暂时性计算机可读存储介质,其中所述多个存储节点是实施基于网络的基于块的存储服务的较大存储节点集合的部分,其中从由基于网络的虚拟计算服务实施的一个或多个虚拟计算实例接收写入请求,其中所述基于网络的基于块的存储服务和所述基于网络的虚拟计算服务一起被实施为同一提供商网络的部分。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/204,943 US9600203B2 (en) | 2014-03-11 | 2014-03-11 | Reducing data volume durability state for block-based storage |
US14/204,943 | 2014-03-11 | ||
PCT/US2015/019087 WO2015138221A1 (en) | 2014-03-11 | 2015-03-06 | Reducing data volume durability state for block-based storage |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106170777A true CN106170777A (zh) | 2016-11-30 |
CN106170777B CN106170777B (zh) | 2019-12-27 |
Family
ID=54068912
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580012911.9A Active CN106170777B (zh) | 2014-03-11 | 2015-03-06 | 降低基于块的存储的数据卷耐久性状态的方法 |
Country Status (9)
Country | Link |
---|---|
US (2) | US9600203B2 (zh) |
EP (1) | EP3117326B1 (zh) |
JP (1) | JP6353924B2 (zh) |
KR (1) | KR101862718B1 (zh) |
CN (1) | CN106170777B (zh) |
AU (1) | AU2015229864B2 (zh) |
CA (1) | CA2940328C (zh) |
SG (1) | SG11201607071QA (zh) |
WO (1) | WO2015138221A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114514500A (zh) * | 2019-09-23 | 2022-05-17 | 亚马逊技术有限公司 | 跨区复制块存储装置 |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9720620B1 (en) | 2014-03-11 | 2017-08-01 | Amazon Technologies, Inc. | Efficient data volume replication for block-based storage |
US9600203B2 (en) | 2014-03-11 | 2017-03-21 | Amazon Technologies, Inc. | Reducing data volume durability state for block-based storage |
US9569461B2 (en) * | 2014-06-11 | 2017-02-14 | The Boeing Company | Distributed data authority system |
US11386115B1 (en) * | 2014-09-12 | 2022-07-12 | Amazon Technologies, Inc. | Selectable storage endpoints for a transactional data storage engine |
US10587688B2 (en) * | 2014-09-19 | 2020-03-10 | Netapp, Inc. | Techniques for coordinating parallel performance and cancellation of commands in a storage cluster system |
TWI567554B (zh) * | 2014-11-06 | 2017-01-21 | 慧榮科技股份有限公司 | 緩存及讀取即將寫入儲存單元之資料的方法以及使用該方法的裝置 |
US9817587B1 (en) * | 2015-03-04 | 2017-11-14 | Amazon Technologies, Inc. | Memory-based on-demand data page generation |
US10623486B2 (en) | 2015-06-15 | 2020-04-14 | Redis Labs Ltd. | Methods, systems, and media for providing distributed database access during a network split |
US10078562B2 (en) * | 2015-08-18 | 2018-09-18 | Microsoft Technology Licensing, Llc | Transactional distributed lifecycle management of diverse application data structures |
US10452680B1 (en) * | 2015-09-25 | 2019-10-22 | Amazon Technologies, Inc. | Catch-up replication with log peer |
US9733869B1 (en) * | 2015-09-25 | 2017-08-15 | Amazon Technologies, Inc. | Provisioning a slave for data storage using metadata with updated references |
US9753813B1 (en) | 2015-09-25 | 2017-09-05 | Amazon Technologies, Inc. | Data replication snapshots for persistent storage using operation numbers |
US11194500B2 (en) * | 2016-01-28 | 2021-12-07 | Netapp, Inc. | Resilient implementation of client file operations and replication |
US11301144B2 (en) | 2016-12-28 | 2022-04-12 | Amazon Technologies, Inc. | Data storage system |
US10114582B1 (en) * | 2016-12-28 | 2018-10-30 | EMC IP Holdinig Company LLC | Dynamically selecting between sync and async replication modes |
US10484015B2 (en) | 2016-12-28 | 2019-11-19 | Amazon Technologies, Inc. | Data storage system with enforced fencing |
US10514847B2 (en) | 2016-12-28 | 2019-12-24 | Amazon Technologies, Inc. | Data storage system with multiple durability levels |
US10509601B2 (en) | 2016-12-28 | 2019-12-17 | Amazon Technologies, Inc. | Data storage system with multi-tier control plane |
US10834190B2 (en) | 2018-01-18 | 2020-11-10 | Portworx, Inc. | Provisioning of clustered containerized applications |
JP7191493B2 (ja) * | 2018-03-27 | 2022-12-19 | ネットフリックス・インコーポレイテッド | スケジュール設定されたアンチエントロピー修復の設計のための技法 |
AU2019262799B2 (en) * | 2018-04-30 | 2021-12-16 | Amazon Technologies, Inc. | Distributed replica for block storage systems |
US10409511B1 (en) * | 2018-06-30 | 2019-09-10 | Western Digital Technologies, Inc. | Multi-device storage system with distributed read/write processing |
US10725941B2 (en) | 2018-06-30 | 2020-07-28 | Western Digital Technologies, Inc. | Multi-device storage system with hosted services on peer storage devices |
US10592144B2 (en) | 2018-08-03 | 2020-03-17 | Western Digital Technologies, Inc. | Storage system fabric with multichannel compute complex |
US20200133801A1 (en) * | 2018-10-26 | 2020-04-30 | EMC IP Holding Company LLC | System and method for data backup in mixed disk environment |
US10949125B2 (en) * | 2019-06-28 | 2021-03-16 | Amazon Technologies, Inc. | Virtualized block storage servers in cloud provider substrate extension |
US10949131B2 (en) * | 2019-06-28 | 2021-03-16 | Amazon Technologies, Inc. | Control plane for block storage service distributed across a cloud provider substrate and a substrate extension |
US10949124B2 (en) | 2019-06-28 | 2021-03-16 | Amazon Technologies, Inc. | Virtualized block storage servers in cloud provider substrate extension |
US11044118B1 (en) | 2019-06-28 | 2021-06-22 | Amazon Technologies, Inc. | Data caching in provider network substrate extensions |
US11411771B1 (en) | 2019-06-28 | 2022-08-09 | Amazon Technologies, Inc. | Networking in provider network substrate extensions |
US11374789B2 (en) | 2019-06-28 | 2022-06-28 | Amazon Technologies, Inc. | Provider network connectivity to provider network substrate extensions |
US11169723B2 (en) | 2019-06-28 | 2021-11-09 | Amazon Technologies, Inc. | Data storage system with metadata check-pointing |
US11182096B1 (en) | 2020-05-18 | 2021-11-23 | Amazon Technologies, Inc. | Data storage system with configurable durability |
US11681443B1 (en) | 2020-08-28 | 2023-06-20 | Amazon Technologies, Inc. | Durable data storage with snapshot storage space optimization |
KR102351220B1 (ko) * | 2021-10-08 | 2022-01-14 | 주식회사 이글루시큐리티 | 대용량 데이터 처리 시 효율적인 서버 부하 분산을 위한 db 이중화 방법 및 이를 지원하는 장치 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7418620B1 (en) * | 2001-02-16 | 2008-08-26 | Swsoft Holdings, Ltd. | Fault tolerant distributed storage method and controller using (N,K) algorithms |
US20120159102A1 (en) * | 2009-09-01 | 2012-06-21 | Nec Corporation | Distributed storage system, distributed storage method, and program and storage node for distributed storage |
US20120303999A1 (en) * | 2011-05-23 | 2012-11-29 | Microsoft Corporation | Implementing failover processes between storage stamps |
US20130246840A1 (en) * | 2012-03-19 | 2013-09-19 | Fujitsu Limited | Node apparatus of multi-node storage system and method for managing processing speed |
Family Cites Families (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
NZ229740A (en) | 1988-07-11 | 1991-11-26 | Amdahl Corp | Improving data storage reliability: backup copy written into archive |
JP2713528B2 (ja) * | 1992-08-11 | 1998-02-16 | 日本電信電話株式会社 | 記憶装置容量の無中断拡張方法 |
US5634052A (en) | 1994-10-24 | 1997-05-27 | International Business Machines Corporation | System for reducing storage requirements and transmission loads in a backup subsystem in client-server environment by transmitting only delta files from client to server |
JPH0926916A (ja) | 1995-07-12 | 1997-01-28 | Oki Electric Ind Co Ltd | 非破壊ディスク装置 |
JP2000066843A (ja) | 1998-08-17 | 2000-03-03 | Nec Corp | ディスクアレイ装置 |
JP4214832B2 (ja) * | 2002-07-30 | 2009-01-28 | 株式会社日立製作所 | 記憶装置システム |
US7103727B2 (en) * | 2002-07-30 | 2006-09-05 | Hitachi, Ltd. | Storage system for multi-site remote copy |
US20040204975A1 (en) | 2003-04-14 | 2004-10-14 | Thomas Witting | Predicting marketing campaigns using customer-specific response probabilities and response values |
US6996586B2 (en) | 2003-06-18 | 2006-02-07 | International Business Machines Corporation | Method, system, and article for incremental virtual copy of a data block |
JP4291077B2 (ja) | 2003-07-29 | 2009-07-08 | 株式会社日立製作所 | 分散ストレージ装置のファイル管理方法及び分散ストレージシステム |
JP2005062928A (ja) * | 2003-08-11 | 2005-03-10 | Hitachi Ltd | 複数のサイトにリモートコピーを行うシステム |
US7613945B2 (en) | 2003-08-14 | 2009-11-03 | Compellent Technologies | Virtual disk drive system and method |
JP2006012142A (ja) | 2004-06-09 | 2006-01-12 | Hewlett-Packard Development Co Lp | 非ディスク永続メモリを利用したチェックポイント方法およびシステム |
JP4550541B2 (ja) | 2004-10-06 | 2010-09-22 | 株式会社日立製作所 | ストレージシステム |
US7657578B1 (en) | 2004-12-20 | 2010-02-02 | Symantec Operating Corporation | System and method for volume replication in a storage environment employing distributed block virtualization |
JP4815825B2 (ja) * | 2005-03-10 | 2011-11-16 | 日本電気株式会社 | ディスクアレイ装置及びその再構築方法 |
US7487386B2 (en) | 2005-03-30 | 2009-02-03 | International Business Machines Corporation | Method for increasing file system availability via block replication |
JP4800056B2 (ja) | 2006-02-09 | 2011-10-26 | 株式会社日立製作所 | ストレージシステム及びその制御方法 |
US8706968B2 (en) | 2007-12-06 | 2014-04-22 | Fusion-Io, Inc. | Apparatus, system, and method for redundant write caching |
US8346719B2 (en) | 2007-05-17 | 2013-01-01 | Novell, Inc. | Multi-node replication systems, devices and methods |
US8539513B1 (en) | 2008-04-01 | 2013-09-17 | Alacritech, Inc. | Accelerating data transfer in a virtual computer system with tightly coupled TCP connections |
US7831682B2 (en) | 2008-08-08 | 2010-11-09 | Amazon Technologies, Inc. | Providing a reliable backing store for block data storage |
US7992037B2 (en) * | 2008-09-11 | 2011-08-02 | Nec Laboratories America, Inc. | Scalable secondary storage systems and methods |
US8583893B2 (en) | 2009-05-28 | 2013-11-12 | Marvell World Trade Ltd. | Metadata management for virtual volumes |
US8341115B1 (en) | 2009-12-26 | 2012-12-25 | Emc Corporation | Dynamically switching between synchronous and asynchronous replication |
CN101764712A (zh) | 2010-01-21 | 2010-06-30 | 瑞斯康达科技发展股份有限公司 | 一种日志信息的传输***及方法 |
US8677055B2 (en) | 2010-04-12 | 2014-03-18 | Sandisk Enterprises IP LLC | Flexible way of specifying storage attributes in a flash memory-based object store |
US8612700B1 (en) | 2010-10-29 | 2013-12-17 | Symantec Corporation | Method and system of performing block level duplications of cataloged backup data |
US9805108B2 (en) * | 2010-12-23 | 2017-10-31 | Mongodb, Inc. | Large distributed database clustering systems and methods |
US8694733B2 (en) | 2011-01-03 | 2014-04-08 | Sandisk Enterprise Ip Llc | Slave consistency in a synchronous replication environment |
WO2012116369A2 (en) | 2011-02-25 | 2012-08-30 | Fusion-Io, Inc. | Apparatus, system, and method for managing contents of a cache |
US9146765B2 (en) | 2011-03-11 | 2015-09-29 | Microsoft Technology Licensing, Llc | Virtual disk storage techniques |
US8612392B2 (en) | 2011-05-09 | 2013-12-17 | International Business Machines Corporation | Identifying modified chunks in a data set for storage |
US9294564B2 (en) | 2011-06-30 | 2016-03-22 | Amazon Technologies, Inc. | Shadowing storage gateway |
WO2013025540A1 (en) | 2011-08-12 | 2013-02-21 | Sandisk Enterprise Ip Llc | Cache management including solid state device virtualization |
WO2013024485A2 (en) | 2011-08-17 | 2013-02-21 | Scaleio Inc. | Methods and systems of managing a distributed replica based storage |
US8930309B2 (en) | 2012-02-29 | 2015-01-06 | Symantec Corporation | Interval-controlled replication |
US9600203B2 (en) | 2014-03-11 | 2017-03-21 | Amazon Technologies, Inc. | Reducing data volume durability state for block-based storage |
-
2014
- 2014-03-11 US US14/204,943 patent/US9600203B2/en active Active
-
2015
- 2015-03-06 SG SG11201607071QA patent/SG11201607071QA/en unknown
- 2015-03-06 JP JP2016556707A patent/JP6353924B2/ja active Active
- 2015-03-06 KR KR1020167027932A patent/KR101862718B1/ko active IP Right Grant
- 2015-03-06 WO PCT/US2015/019087 patent/WO2015138221A1/en active Application Filing
- 2015-03-06 EP EP15760637.7A patent/EP3117326B1/en active Active
- 2015-03-06 AU AU2015229864A patent/AU2015229864B2/en active Active
- 2015-03-06 CA CA2940328A patent/CA2940328C/en active Active
- 2015-03-06 CN CN201580012911.9A patent/CN106170777B/zh active Active
-
2017
- 2017-03-20 US US15/464,267 patent/US10489422B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7418620B1 (en) * | 2001-02-16 | 2008-08-26 | Swsoft Holdings, Ltd. | Fault tolerant distributed storage method and controller using (N,K) algorithms |
US20120159102A1 (en) * | 2009-09-01 | 2012-06-21 | Nec Corporation | Distributed storage system, distributed storage method, and program and storage node for distributed storage |
US20120303999A1 (en) * | 2011-05-23 | 2012-11-29 | Microsoft Corporation | Implementing failover processes between storage stamps |
US20130246840A1 (en) * | 2012-03-19 | 2013-09-19 | Fujitsu Limited | Node apparatus of multi-node storage system and method for managing processing speed |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114514500A (zh) * | 2019-09-23 | 2022-05-17 | 亚马逊技术有限公司 | 跨区复制块存储装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2015138221A1 (en) | 2015-09-17 |
AU2015229864B2 (en) | 2017-08-03 |
KR20160130490A (ko) | 2016-11-11 |
JP2017509990A (ja) | 2017-04-06 |
US20150261443A1 (en) | 2015-09-17 |
EP3117326A4 (en) | 2017-10-25 |
US20170206260A1 (en) | 2017-07-20 |
CA2940328C (en) | 2020-12-15 |
CA2940328A1 (en) | 2015-09-17 |
US9600203B2 (en) | 2017-03-21 |
KR101862718B1 (ko) | 2018-05-30 |
JP6353924B2 (ja) | 2018-07-04 |
EP3117326B1 (en) | 2022-07-27 |
US10489422B2 (en) | 2019-11-26 |
SG11201607071QA (en) | 2016-09-29 |
AU2015229864A1 (en) | 2016-09-08 |
CN106170777B (zh) | 2019-12-27 |
EP3117326A1 (en) | 2017-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106170777A (zh) | 降低基于块的存储的数据卷耐久性状态 | |
CN106104511B (zh) | 基于块的存储的页面高速缓存存录 | |
CN106068507B (zh) | 动态修改单独数据卷的耐久性特性 | |
US12003571B2 (en) | Client-directed placement of remotely-configured service instances | |
US9983825B2 (en) | Efficient data volume replication for block-based storage | |
CN105324770B (zh) | 有效读出副本 | |
CN104704773B (zh) | 云存储方法和*** | |
CN107077301A (zh) | 用于存储客户端文件***的存储卷的动态缩放 | |
CN103765406B (zh) | 用于远程更新执行进程的方法和装置 | |
US9405483B1 (en) | Optimized write performance at block-based storage during volume snapshot operations | |
JP2020024733A (ja) | データボリュームの動的な構成 | |
CN107567696A (zh) | 计算集群内的资源实例群组的自动扩展 | |
JP2018514018A (ja) | リソース配置を最適化するための適時性リソース移行 | |
CN106462545A (zh) | 可缩放文件存储服务 | |
CN106462601A (zh) | 针对多盘区操作的原子写入 | |
US9733869B1 (en) | Provisioning a slave for data storage using metadata with updated references | |
US10154091B1 (en) | Deploying infrastructure units according to resource hosting constraints | |
US10817325B2 (en) | Moving storage volumes for improved performance | |
CN115238006A (zh) | 检索数据同步方法、装置、设备及计算机存储介质 | |
US11121981B1 (en) | Optimistically granting permission to host computing resources |
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 |