CN106068507B - 动态修改单独数据卷的耐久性特性 - Google Patents

动态修改单独数据卷的耐久性特性 Download PDF

Info

Publication number
CN106068507B
CN106068507B CN201580012909.1A CN201580012909A CN106068507B CN 106068507 B CN106068507 B CN 106068507B CN 201580012909 A CN201580012909 A CN 201580012909A CN 106068507 B CN106068507 B CN 106068507B
Authority
CN
China
Prior art keywords
book
page cache
write
log
record
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
CN201580012909.1A
Other languages
English (en)
Other versions
CN106068507A (zh
Inventor
D·韦
K·Q·李
何佳华
B·A·霍克斯
J·L·格思里二世
J·M·汤普森
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 CN106068507A publication Critical patent/CN106068507A/zh
Application granted granted Critical
Publication of CN106068507B publication Critical patent/CN106068507B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3485Performance evaluation by tracing or monitoring for I/O devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/885Monitoring specific for caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/313In storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/46Caching storage objects of specific type in disk cache
    • G06F2212/461Sector or disk block
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/50Control mechanisms for virtual memory, cache or TLB
    • G06F2212/502Control mechanisms for virtual memory, cache or TLB using adaptive policy

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Retry When Errors Occur (AREA)

Abstract

一种基于块的存储***可针对页面高速缓存写入存录实施动态耐久性调整。可监测对存储节点处所维持的数据卷的传入写入请求的速率。可至少部分地基于所述传入写入请求的速率,对数据卷的耐久性特性进行动态修改,诸如启用所述数据卷的页面高速缓存写入存录或禁用所述数据卷的写入存录。当接收到传入写入请求时,可作出关于特定数据卷的页面高速缓存写入存录是否被启用的确定。对于带有禁用的页面高速缓存写入存录的写入请求,可更新所述页面高速缓存并且可确认所述写入请求,而无需将描述所述更新的日志记录存储在页面高速缓存写入日志中。

Description

动态修改单独数据卷的耐久性特性
背景技术
近年来在跨网络动态共享硬件资源、软件和信息存储的虚拟化技术方面的改革已经增加了计算的可靠性、可扩缩性和成本效率。更具体地说,通过虚拟化的出现按需提供虚拟计算资源和存储的能力已经使处理资源和存储的消费者能够响应于立即被察觉的计算和存储需求而灵活地组织他们的计算和存储成本。虚拟化允许客户在需要的时候购买处理器周期和存储,而不是在开通周期(provisioning cycle)中购买或租赁固定的硬件,所述开通周期由制造和部署硬件的延迟和成本决定。用户能够在相对瞬时的按需基础上购买计算和存储资源的使用权,而不是取决于对未来需求的预测的准确性来确定计算和存储的可用性。
虚拟化计算环境经常地由基于块的存储支持。这类基于块的存储提供能够通过一系列标准化的存储调用与各种计算虚拟化进行交互的存储***,这使得所述基于块的存储与其所支持的卷的结构和功能细节,并且与在所述基于块的存储向其提供存储可用性的虚拟化上执行的操作***在功能上无关。然而,随着网络传输能力的增强、伴随更大的对虚拟化资源的处理能力,对基于块的存储的I/O需求可增长。如果I/O需求超过基于块的存储服务请求的能力,那么虚拟化计算资源的基于块的存储的等待时间和/或性能耐久性变差。
附图说明
图1是示出根据一些实施方案的在基于块的存储处进行页面高速缓存写入存录(logging)的一系列框图。
图2是示出根据一些实施方案的实施包括基于块的存储服务的多个基于网络的服务的提供商网络的框图,所述基于块的存储服务在存储节点处实施页面高速缓存写入存录。
图3是示出根据一些实施方案的存储节点的框图,所述存储节点实施用于对在存储节点处实施的页面高速缓存的更新的页面高速缓存写入日志。
图4是示出根据一些实施方案的存储节点的框图,所述存储节点被配置来修剪存储节点处的页面高速缓存的页面高速缓存写入日志中的日志条目。
图5是示出根据一些实施方案的基于块的存储中所维持的数据卷的动态选择性页面高速缓存写入存录的框图。
图6是示出根据一些实施方案的用于在基于块的存储处进行页面高速缓存写入存录的各种方法和技术的高级流程图。
图7是示出根据一些实施方案的用于从页面高速缓存写入日志恢复页面高速缓存的各种方法和技术的高级流程图。
图8是示出根据一些实施方案的用于修剪页面高速缓存写入日志的各种方法和技术的高级流程图。
图9是示出根据一些实施方案的用于部署页面高速缓存写入存录技术的各种方法和技术的高级流程图。
图10是示出根据一些实施方案的用于动态修改存储节点处所维持的数据卷的耐久性特性的各种方法和技术的高级流程图。
图11是示出根据一些实施方案的用于确定是启用还是禁用数据卷的页面高速缓存写入存录的各种方法和技术的高级流程图。
图12是示出根据一些实施方案的根据特定数据卷的耐久性特性在存储节点处处理对特定数据卷的写入请求的各种方法和技术的高级流程图。
图13是示出根据一些实施方案的用于在启用和禁用写入存录的情况下进行数据卷恢复的各种方法和技术的高级流程图。
图14是示出根据一些实施方案的示例性计算***的框图。
虽然在本文中通过列举若干实施方案和示意性附图的方式描述了实施方案,但本领域的技术人员应认识到,实施方案并不限于所描述的实施方案或附图。应理解,附图和对其的详细描述并非意图将实施方案限于所公开的特定形式,而是相反地,其意图在于涵盖落入由所附权利要求书限定的精神和范围内的所有修改、等效物以及替代方案。本文中使用的标题都仅用于组织目的,并且并不意图用于限制说明书或权利要求书的范围。如贯穿本申请所使用的,词语“可以”是在容许意义上(即,意指具有可能性)而非强制意义上(即,意指必须)使用的。类似地,词语“包括(include/including/includes)”表示包括但不限于。
具体实施方式
本文所述的***和方法可实施基于块的存储的页面高速缓存写入存录。基于块的存储***通常实施页面高速缓存来(在***存储器中)快速地存储对页面高速缓存中所维持的数据卷的更新。最终,可将页面高速缓存转储到基于块的存储装置以更新永久性存储。然而,当***存储器在***故障的情况下不永久时,仅被存储在页面高速缓存中的写入不是耐久的并且可能丢失。页面高速缓存写入存录可在存储节点处实施,以在发生引起页面高速缓存中的数据丢失的故障的情况下保留页面高速缓存的状态。在一些实施方案中,可针对同一存储***处所维持的不同数据卷来选择性地实施页面高速缓存写入存录。可根据存储***处的各种条件(诸如将要存录到页面高速缓存写入日志中的传入写入请求的速率)来动态修改各自数据卷的耐久性特性,所述耐久性特性描述对应数据卷的页面高速缓存写入存录是被启用还是被禁用。
图1是示出根据一些实施方案的在基于块的存储处进行页面高速缓存写入存录的一系列框图。如在102处所指示,块存储服务器100(其可以是通用计算***,诸如下文参考图14描述的***2000)可将数据卷120存储在附接到块存储服务器的一个或多个基于块的存储装置上。当接收到对数据卷120的写入请求142时,I/O管理器102可并行地或接近并行地发送对页面高速缓存140中的各自页面或条目的更新146以及写入144到页面高速缓存写入日志130的日志记录,所述页面高速缓存写入日志130可在永久性存储装置(所述永久性存储装置可与存储卷120的基于块的存储装置分开)上实施。在各种实施方案中,日志记录可描述对页面高速缓存140的特定页面或条目的更新。在一些实施方案中,日志记录可顺序地存储在页面高速缓存写入日志130中。响应于存储日志记录144和更新页面高速缓存146,可确认写入请求。稍后,可将页面高速缓存中的页面转储148以更新基于块的存储装置中的卷120。在一些实施方案中,可基于转储操作148将存储在页面高速缓存写入日志130中的日志记录从页面高速缓存移除或修剪,使得描述对页面的更新的日志记录(其在卷120中成为永久性的)可改造并且变得可供用于存储另外的日志记录。
如在情景104处所示,***故障152导致页面高速缓存数据丢失。因此,页面高速缓存数据中的写入请求因为它们尚未被转储到永久性存储中的卷120中而丢失。在一些实施方案中,I/O管理器132可从页面高速缓存写入日志130获得日志记录132并且重放对页面高速缓存的更新134以复原页面高速缓存在***故障之前的状态,从而使得页面高速缓存数据恢复。
在一些实施方案中,可以在每卷基础上实施页面高速缓存写入存录。例如,在一些实施方案中,可动态修改数据卷的耐久性特性(其指示页面高速缓存写入存录是否被启用),以适应存储节点处的变化的条件。例如,在一些实施方案中,I/O管理器102可监测将要存录到页面高速缓存写入日志130中的传入写入请求的速率,并且动态修改各自的一个或多个数据卷120的一个或多个耐久性特性。如果,例如,特定数据卷120的页面高速缓存写入存录被禁用,那么可完成指向所述数据卷的写入请求142(例如,页面高速缓存140被更新),而不将描述所述更新的日志记录存储在页面高速缓存写入日志中。类似地,如果页面高速缓存写入存录被启用,那么如情景102中所示,在启用页面高速缓存写入存录之后接收的写入请求可具有在将写入确认为完成之前执行的对页面高速缓存140的更新以及在此之前存储在页面高速缓存写入日志130中的日志记录两者。在一些实施方案中,针对具有不同耐久性特性的数据卷进行的恢复操作可发生变化,其中与页面高速缓存写入存录被禁用的那些数据卷相比,使得页面高速缓存写入存录被启用的那些数据卷可供用于更快地接收新的写入请求,或具有更少的后续恢复操作。
请注意,先前的描述并不意图进行限制,而仅作为在基于块的存储处进行的页面高速缓存写入存录的实例来提供。各种其他部件可挑起或参与对写入请求进行存录、恢复或处理。其他不同之处,例如像存储节点、数据卷或耐久性方案(例如,在多个节点上复制数据卷)的数量,也可以不同于图1中所示的。
本说明书始于对基于块的存储服务提供商的概述,所述基于块的存储服务提供商可实施页面高速缓存写入存录以及动态修改数据卷的耐久性特性。然后论述基于块的存储服务提供商的各种实例,包括可用作基于块的存储提供商的部分的不同的部件/模块或部件/模块的布置。然后论述用于实施页面高速缓存写入存录以及动态修改数据卷的耐久性特性的许多不同方法和技术,所述不同方法和技术中的一些在随附的流程图中示出。最后,提供对可在其上实施各种部件、模块、***、装置和/或节点的示例性计算***的描述。在整个说明书中提供各种实例。
图2是示出根据一些实施方案的实施包括基于块的存储服务的多个基于网络的服务的提供商网络的框图,所述基于块的存储服务在快照操作期间实施优化的写入性能。提供商网络200可由实体、诸如公司或公共部门组织机构建立,以便向客户端210提供可通过互联网和/或其他网络访问的一种或多种服务(诸如各种类型的基于云的计算或存储)。提供商网络200可包括托管实施和分布由提供商网络200提供的基础设施和服务所需的各种资源池的许多数据中心,所述资源池诸如物理和/或虚拟化计算机服务器、存储装置、联网设备等(例如,下文参考图14描述的计算***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通信。
图3是示出根据一些实施方案的存储节点的框图,所述存储节点针对对在存储节点处实施的页面高速缓存的更新实施页面高速缓存写入日志并且动态地修改数据卷的耐久性特性。可实施多个存储节点(诸如存储节点310a、310b、310c至310n)以便提供基于块的存储服务。存储节点310可以是一个或多个计算***或装置,诸如存储服务器或其他计算***(例如,下文参考图14描述的计算***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还可提供多租户存储。例如,在一些实施方案中,存储节点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可在永久性存储器装置上实施,所述永久性存储器装置诸如非易失性随机存取存储器(NV RAM)、电池或电容备份存储器、或其他类型的基于忆阻器的电阻性随机存取存储器(ReRAM)、三维NAND技术、铁电RAM、磁阻RAM(MRAM)、或任何各种类型的相变存储器(PCM)。对这类永久性存储装置进行顺序写入通常比随机存取写入快。在各种实施方案中,页面高速缓存写入日志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。日志管理部件可至少部分地基于日志记录来执行各种日志管理功能,诸如下文参考图4、图7和图8进一步详细讨论的修剪日志记录和/或执行页面高速缓存恢复。
图4是示出根据一些实施方案的存储节点的框图,所述存储节点被配置来修剪存储节点处的页面高速缓存的页面高速缓存写入日志中的日志条目。在I/O管理器420中实施的日志管理模块422可控制存储节点402处的页面高速缓存写入日志400的日志操作。日志管理模块422可确定何时执行修剪操作(例如,检测修剪事件,诸如下文参考图8讨论的)。当修剪操作开始时,日志管理模块可首先标记日志中的修剪点412(诸如日志400中的点)。加阴影的日志记录410是在修剪点之前的被存储的那些日志记录并且因此适合被修剪(因为如果页面高速缓存被整体转储,那么就不需要保留那些日志记录)。日志管理模块414可命令页面高速缓存430开始高速缓存转储414。可执行一个或多个转储操作来将页面高速缓存条目转储432到维持卷440a、440b至440n的各自的基于块的存储装置。一旦页面高速缓存条目被转储,那么维持数据卷440的基于块的存储装置可永久性地存储先前存储在页面高速缓存430中的已完成的写入操作。在一些实施方案中,日志管理模块422可确定转储操作的大小,从而增加或减少一次被转储的页面高速缓存的部分。一旦接收到高速转储已完成416的指示,日志管理模块随后就可改造在日志修剪点之前的日志记录418(例如,将其删除并标记为可用),从而为另外的日志记录腾出空间。
图5是示出根据一些实施方案的基于块的存储中所维持的数据卷的选择性页面高速缓存写入存录的框图。如以上所指出,在一些实施方案中,可以在每数据卷基础上启用或禁用页面高速缓存写入存录。可将在I/O管理器420处接收的写入502引导通过日志管理模块422。日志管理模块422可被配置来确定特定数据卷的耐久性特性(其指示页面高速缓存写入存录是被启用还是被禁用)。在示出的实例中,卷控制520b和520c防止针对写入请求504的页面高速缓存存录进入页面高速缓存写入日志400。而指向耐久性特性能够允许页面高速缓存写入存录的数据卷的其他写入504经过506并且作为日志记录被写入508到页面高速缓存写入日志400。
在一些实施方案中,卷日志管理422可对数据卷的耐久性特性执行动态修改,如下文参考图10和图11讨论的。例如,I/O管理器420和/或日志管理模块422可监测将要存录的传入写入请求的速率,并且可基于所述传入速率来动态修改一个或多个数据卷的耐久性特性。其他数据(诸如在日志管理422处接收的控制平面数据510)也可用于对数据卷的耐久性特性作出动态修改,所述其他数据诸如指示其他存储节点的耐久性特性的数据,所述其他存储节点维持所述存储节点处所维持的数据卷的相同副本中的一个或多个。
已经关于基于块的存储服务给出上文参考图2-5讨论的维持数据卷的基于块的存储的页面高速缓存写入存录的实例。各种其他类型或配置的基于块的存储可实施这些技术。例如,基于块的存储的客户端(发送对数据卷的写入请求的应用程序、操作***或其他部件)可与执行快照操作的存储节点在相同的计算***上实施。不同配置的存储节点还可实施各种数量的复制、镜像或其他耐久性技术,所述各种数量的复制、镜像或其他耐久性技术可实施由不同地配置的存储节点针对数据卷执行的页面高速缓存写入存录。图6是示出根据一些实施方案的用于在基于块的存储处进行页面高速缓存写入存录的各种方法和技术的高级流程图。这些技术可使用如上文参考图2-5描述的一个或多个存储节点(或基于块的存储中维持数据卷的其他***部件)来实施。
如在610处所指示,在各种实施方案中,可接收对存储节点处所维持的基于块的存储装置中的数据卷的写入请求。写入请求可对数据卷进行写入、删除、改变或以其他方式进行修改。可针对写入请求,更新存储节点处的***存储器中的页面高速缓存中的对应于已修改数据的条目,如在620处所指示。同样地,可并行地或接近并行地将描述对对应条目的更新的日志记录存储在页面高速缓存写入日志中。例如,日志记录可包括修改或新数据的精确值,或可包括可从其导出所述更新的值(例如,在值+1之前)。响应于更新页面高速缓存中的对应条目并且将描述对对应条目的更新的日志记录存储在页面高速缓存写入日志中,可将所述写入请求确认为完成,如在640处所指示。在一些实施方案中,页面高速缓存可维持已更新条目,直到以下这样的时间为止:作为转储操作的部分,已经将所述条目写入到维持数据卷的已更新部分的永久性存储装置。
如以上所指出,将日志记录保留在页面高速缓存写入日志中可允许将页面高速缓存在引起页面高速缓存中数据丢失的***故障之前的状态复原到页面高速缓存。图7是示出根据一些实施方案的用于从页面高速缓存写入日志恢复页面高速缓存的各种方法和技术的高级流程图。如在710处所指示,从***故障开始的恢复可在存储节点处发生。***故障通常可以是引起***存储器中的页面高速缓存中的数据丢失的任何故障,诸如功率故障或软件故障。在恢复之后,可获得存储在存储页面高速缓存写入日志的永久性存储装置中的日志记录,所述日志记录描述页面高速缓存的状态,如在720处所指示。例如,作为针对维持数据卷的存储节点进行的一个或多个不同恢复操作、例行程序或过程的部分,可顺序地从页面高速缓存日志读取日志记录。
如在730处所指示,可应用从页面高速缓存写入日志获得的日志记录,以便将页面高速缓存在***故障之前的状态写入到页面高速缓存。例如,在一些实施方案中,因为日志记录描述对页面高速缓存日志的更新,所以可按顺序重放所述日志记录,从而重建对页面高速缓存的更新,以便复原存储页面高速缓存的状态。在一些实施方案中,日志记录可与页面高速缓存写入日志中的先前日志记录相关或不相关。在一些实施方案中,一旦被复原,就可使得存储节点可供用于处理I/O请求。
在各种实施方案中,当写入请求可能非常频繁地发生时,随时间的推移,即使大的页面高速缓存写入日志也可能会变满。图8是示出根据一些实施方案的用于修剪页面高速缓存写入日志的各种方法和技术的高级流程图。如在810处所指示,可检测维持日志记录的页面高速缓存日志的修剪事件,所述日志记录描述对存储节点的页面高速缓存的更新。修剪事件可以是页面高速缓存写入日志中的可用存储空间已经超过一定阈值的指示或确定。另外地或可替代地,可使用其他指示或确定。例如,自前一修剪事件以来所经过的时间量可触发修剪事件的计时器或其他指示。在一些实施方案中,当已经发生脏页面的页面高速缓存转储、使得页面高速缓存写入日志中的日志记录的连续部分可不再有必要存留时,可检测修剪事件。
响应于检测到页面高速缓存日志的修剪事件,可识别页面高速缓存日志中的修剪位置。所述修剪位置可以是日志中的在修剪事件时的当前位置。在执行修剪的同时,可将修剪事件位置保存或记录在别处。如在830处所指示,在各种实施方案中,可执行转储操作来将来自***存储器的页面高速缓存条目写入到存储数据卷的基于块的存储装置。转储操作可将页面高速缓存的部分的内容写入到它们在基于块的存储装置中的对应位置。在一些实施方案中,仅可转储页面高速缓存的已经被修改的(即,脏的)那些部分。
在至少一些实施方案中,可作出关于页面高速缓存转储操作的大小的确定。例如,在执行转储操作期间,阻断对页面高速缓存的已转储部分的写入请求。已转储区域的部分的大小可根据日志需要被修剪的速度来加以调整,这与添加到被阻断的某些写入请求的等待时间相反。例如,如果写入请求将要被写入到页面高速缓存的处于转储操作的已转储区域内的部分,那么已转储区域的部分的大小可通过增加或减少特定写入请求可被阻断的可能性来增加或减少待决写入请求的等待时间。在完成转储操作之后,维持页面高速缓存日志的永久性存储装置的部分可被改造以用于存储(sting)描述对页面高速缓存的更新的另外的日志记录,如在840处所指示。
在一些实施方案中,控制平面或其他***部件可针对将数据卷维持在基于块的存储中的存储节点引导页面高速缓存写入存录的部署、实施和/或启用。图9是示出根据一些实施方案的用于部署页面高速缓存写入存录技术的各种方法和技术的高级流程图。如在910处所指示,可识别基于块的存储***中的不维持页面高速缓存写入日志的存储节点。例如,可维持指示存储节点的版本、配置或状态(包括是否实施页面高速缓存写入存录)的***级元数据。如在920处所指示,可评估所识别存储节点以确定每个存储节点的耐久性评分。例如,如果特定存储节点被实施在易于出现功率故障的数据中心或其他物理或地理位置中,那么这类信息可降低存储节点的耐久性评分。类似地,如果同一数据中心或地理位置中的大多数对等体已经实施了页面高速缓存写入存录,那么耐久性评分可得到提升。许多其他因素可影响存储节点的耐久性评分,诸如存储节点上所维持的大多数数据卷是否在页面高速缓存写入存录被启用的其他存储节点上具有副本。取决于这些各种因素的不同加权、组合或其他计算可用于确定特定存储节点的耐久性评分。因此,先前实例并不意图对可能影响耐久性评分的各种其他因素进行限制。
如在930处所指示,在各种实施方案中,可基于存储节点的耐久性评分选择一个或多个存储节点来实施页面高速缓存写入存录。可根据不同通信机制将这类选择提供给各种不同的基于块的存储服务行政或管理接口。在一些实施方案中,可针对实施基于块的存储服务的存储节点的给定子集(例如,特定房间、数据中心或其他地理位置或分组)或实施基于块的存储服务的整群存储节点定期地或不定期地执行图9中所示的技术。在一些实施方案中,图9中的方法的每次迭代被分配预定义数目的部署,并且因此可基于耐久性评分选择存储节点,直到分派了所述数目的可用部署为止。
在各种实施方案中,页面高速缓存写入存录可增加存储节点处所维持的数据卷的耐久性。通过将日志记录存储在页面高速缓存写入日志中,在***故障的情况下,可能够复原页面高速缓存的状态。然而,在一些实施方案中,执行页面高速缓存写入存录的增加的负担可能超过维持页面高速缓存写入日志的永久性存储装置的能力或妨碍写入请求的执行。允许更细粒的页面高速缓存写入存录可允许存储节点有效地调谐其性能,以便最大化耐久性并最小化等待时间。图10是示出根据一些实施方案的用于动态修改存储节点处所维持的数据卷的耐久性特性的各种方法和技术的高级流程图。
如在1010处所指示,在各种实施方案中,可针对在维持多个数据卷的存储节点处接收的写入请求,来维持存储描述对页面高速缓存的更新的日志记录的页面高速缓存写入日志。如上文所讨论,速缓存写入日志可维持在永久性存储装置中。页面高所述永久性存储装置可以是基于块的存储装置,诸如硬盘驱动器或固态驱动器。在一些实施方案中,所述永久性存储装置可以是非易失性随机存取存储器装置(NV-RAM)。可顺序地将日志记录写入和/或存储在永久性存储装置中,以便减少写入等待时间。不同数据卷的日志记录可基于执行写入请求以更新页面高速缓存的时间来进行存储,并且在一些实施方案中,可能不与同一数据卷的日志记录一起被分组或存储。
如在1020处所指示,在各种实施方案中,可监测到存储节点的将要存录在页面高速缓存写入日志中的传入写入请求的速率。如下文参考图11讨论的,在一些实施方案中,所述速率可以是对在一定时间段内接收的将要存录的写入请求数量的简单量度。还可将所述速率转换成指示将要执行以便执行写入请求的工作量的量度(例如,每秒输入/输出操作数(IOPS))。在各种实施方案中,可连续地、定期地或不定期地执行对写入请求的监测。
如在1030处所指示,可至少部分地基于到存储节点的将要存录的传入写入请求的速率来动态修改数据卷中的一个(或多个)的耐久性特性。在各种实施方案中,所述耐久性特性可指示数据卷的页面高速缓存写入存录是被启用还是被禁用。因此,可根据特定数据卷的耐久性特性在接收写入请求时的当前状态,通过修改耐久性特性来存录或不存录指向所述数据卷的写入请求。在一些实施方案中,动态修改可包括存储节点处所维持的所有数据卷。例如,在一些实施方案中,所有数据卷的页面高速缓存写入存录可被禁用(或被启用)。
监测到存储节点的传入写入请求的速率可允许存储节点适应于变化的条件,诸如所接收写入请求的数量的动态增加或减少。图11是示出根据一些实施方案的用于确定是启用还是禁用数据卷的页面高速缓存写入存录的各种方法和技术的高级流程图。传入写入请求的速率可用于采取改良的动作,或用于最大化存储节点处所维持的数据卷的性能和/或耐久性。
如在1110处所指示,可确定到存储节点110的将要存录到页面高速缓存写入日志的传入写入请求的速率。在一些实施方案中,所述速率可以是对在一定时间段内接收的写入请求的数量的简单量度。还可将所述速率转换成指示将要执行以便执行写入请求的工作量的量度(例如,每秒输入/输出操作数(IOPS))。一旦被确定,就可将传入写入请求的速率与存录速率上限进行比较,如在1120处所指示。在一些实施方案中,存录速率上限可被确定或被配置成对应于实施页面高速缓存写入日志的永久性存储装置的一定吞吐能力。例如,如果硬盘驱动器可以最大值8000IOPS执行,那么可将存录速率上限确定为处于或低于硬盘驱动器的最大吞吐量的某一数值(例如,7000IOPS)。在一些实施方案中,存录速率上限可被设定成低于永久性存储装置的最大吞吐量,以便允许有时间动态修改耐久性特性以降低当前速率,而不超过所述装置的吞吐能力(超过所述装置的吞吐能力可造成日志记录丢失或阻断的写入请求—因为写入请求可能被阻断、直到页面高速缓存写入日志可以赶上为止)。
如果如由来自1120的肯定出路所指示,确定的传入写入请求的速率超过存录速率上限,那么可选择一个或多个数据卷来禁用所选择数据卷的页面高速缓存写入存录,以便将将要存录的传入写入请求的速率降低到低于存录速率上限。可从存储节点处的页面高速缓存写入存录当前被启用的数据卷中选择数据卷。例如,如果10个数据卷中的8个的页面高速缓存写入存录被启用,那么可从10个数据卷中的这8个中进行选择。
选择可基于若干不同因素作出。例如,选择可以是基于每个数据卷的大小。例如,最大数据卷可接收不相称的大量的写入请求。选择还可基于指向特定数据卷的写入请求的数量作出。例如,如果数据卷(虽然小)接收频繁的写入请求,那么小的数据卷可能推动将要存录的传入写入请求的速率超过速率上限。基于这些和各种其他因素,可选择一个或多个数据卷。例如,数据卷可具有与每个数据卷相关联的写入请求的估算速率。可继续选择数据卷,直到对所选择数据卷的写入请求的估算速率将传入写入请求的速率降低到可接受量为止。在一些实施方案中,可强制实施数据卷的排序或优先方案,以便优先其他数据卷选择一些数据卷。例如,在一些实施方案中,其他存储节点处所维持的数据卷副本的耐久性特性可以是已知的。因此,如果特定数据卷比另一个数据卷具有更高数量的写入请求,而且所述特定数据卷的页面高速缓存写入存录仅在此存储节点处(而不在维持副本的其他存储节点处)被启用,那么所述特定数据卷可在用于选择的排序或优先方案中被排除或降低。一旦被选择,可禁用所选择数据卷的页面高速缓存写入存录,如在1140处所指示。
在一些实施方案中,还可将将要存录在页面高速缓存写入日志中的传入写入请求的速率与存录速率下限进行比较,如在1150处所指示。类似于上文所讨论的分析,参考存录速率上限,存录速率下限可指示以下传入写入请求的速率:针对所述速率,存储节点可另外启用页面高速缓存写入存录。例如,可基于每个卷的平均写入请求数量来确定或设定存录速率下限,使得低于存录速率下限的速率指示:可能的或历史的平均数据卷的写入存录被启用,而不超过存录速率上限1120。
可从页面高速缓存写入存录被禁用的那些数据卷选择一个数据卷(或多个数据卷)。如上所讨论,选择可以是基于每个数据卷的大小。例如,最小数据卷可接收不相称的小量的写入请求。选择还可基于指向特定数据卷的写入请求的数量作出。例如,如果数据卷(虽然大)历史地接收不太频繁的写入请求,那么大的数据卷可能不会推动将要存录的传入写入请求的速率超过存录速率上限。基于这些和各种其他因素,可选择一个或多个数据卷,如在1160处所指示。例如,数据卷可具有与每个数据卷相关联的写入请求的估算速率。可继续选择数据卷,直到对所选择数据卷的写入请求的估算速率将传入写入请求的速率升高到高于存录速率下限。在一些实施方案中,可强制实施数据卷的排序或优先方案,以便优先其他数据卷选择一些数据卷。例如,在一些实施方案中,其他存储节点处所维持的数据卷副本的耐久性特性可以是已知的。因此,如果特定数据卷比另一个数据卷具有更高数量的写入请求,而且所述特定数据卷的页面高速缓存写入存录在(维持数据卷副本的)任意存储节点处都未被启用,那么所述特定数据卷可在用于选择的排序或优先方案中占优势。一旦被选择,可启用所选择数据卷的页面高速缓存写入存录,如在1170处所指示。
从1150返回到1110的否定出路指示可在监测传入写入请求的速率的同时重复执行这种评估。以此方式,可随时间的推移对数据卷的耐久性特性进行调整。
因为可随时间的推移动态改变存储节点处所维持的数据卷的耐久性特性,可在在一个时间具有页面高速缓存写入存录并且在另一个时间不具有页面高速缓存写入存录的情况下,处理针对同一数据卷的写入请求。图12是示出根据一些实施方案的根据特定数据卷的耐久性特性在存储节点处处理对特定数据卷的写入请求的各种方法和技术的高级流程图。
如在1210处所指示,可接收对数据卷的写入请求。可在存储节点处维持指示数据卷的耐久性特性的元数据或其他信息。可评估所述元数据以确定数据卷的页面高速缓存写入存录是否被启用,如在1220处所指示。如果是,那么可针对所述写入更新页面高速缓存,如在1250处所指示,并且可将描述对页面高速缓存的更新的日志记录存储在存储节点处的页面高速缓存写入日志中,如在1260处所指示。如上文参考图6所指出,在一些实施方案中,针对写入更新页面高速缓存1250以及将日志记录存储在页面高速缓存写入日志中1260可并行地或接近并行地执行(例如,同时开始,但一个操作在另一个操作之前结束)。一旦页面高速缓存被更新并且日志记录被存储,就可将写入请求确认为完成,如在1270处所指示。如果如由来自1220的否定出路所指示,数据卷的页面高速缓存写入存录未被启用,那么可针对写入请求更新页面高速缓存,如在1230处所指示,并且将写入请求确认为完成,如在1240处所指示,而不将日志记录存储在页面高速缓存写入日志中。
如上文参考图7讨论的,可重放页面高速缓存写入日志中的日志记录,以便将页面高速缓存在***故障之前的状态复原到页面高速缓存。以此方式,被确认为完成的写入请求可不会丢失,即使页面高速缓存尚未将页面高速缓存条目转储到维持数据卷的基于块的存储装置。因此,基于如存储在基于块的存储装置中和如在页面高速缓存写入日志中描述的数据卷来保持数据卷的当前版本。由于存储节点处的特定数据卷的页面高速缓存写入存录可被启用和被禁用,因而存储节点上的一些数据卷可能是当前的,而其他数据卷可能不是当前的。图13是示出根据一些实施方案的用于在启用和禁用写入存录的情况下进行数据卷恢复的各种方法和技术的高级流程图。
如在1310处所指示,存储节点可从***故障开始恢复。存储节点可维持多个数据卷。为了执行另外的恢复操作,可评估数据卷以识别页面高速缓存写入存录被启用的那些数据卷。如在1320处所指示,可选择特定数据卷。数据卷的耐久性特性可用于确定数据卷的页面高速缓存写入存录是否被启用,如在1330处所指示。如果是(如由肯定出路所指示),可将数据卷识别为当前的,如在1350处所指示,并且可使所述数据卷可供用于I/O请求,如在1360处所指示。例如,如果特定数据卷被识别为当前的,那么基于块的存储服务控制平面或存储节点本身可在耐久性方案中识别用于数据卷的新角色,诸如将存储节点识别为数据卷的主存储节点。所识别主存储节点然后可获取一个或多个从存储节点来维持数据卷的新副本,并且将数据卷复制到从存储节点。可替代地,在一些实施方案中,存储节点可在无需获得任何对等体或从存储节点的情况下,开始处理针对当前数据卷的I/O请求。可执行针对当前数据卷的任何其他恢复操作,以便使数据卷准备好用于I/O请求。然而,如果数据卷的页面高速缓存写入存录未被启用,如由来自1330的否定出路所指示,那么数据卷可被识别为不是当前的,如在1340处所指示。非当前的数据卷可经历额外的恢复操作,诸如等待维持数据卷副本的另一个存储节点来识别它是否维持数据卷的当前版本。在一些实施方案中,可从存储节点处的基于块的存储装置删除或移除未被识别为当前的数据卷。
在各种实施方案中,本文所述的方法可通过硬件和软件的任何结合来实施。例如,在一种实施方案中,所述方法可由包括执行程序指令的一个或多个处理器的计算机***(例如,如图14中的计算机***)来实施,所述程序指令存储在联接到处理器的计算机可读存储介质上。程序指令可被配置来实施本文所述的功能性(例如,各种服务器、存储节点、控制平面、管理器和/或其他部件(诸如实施本文所述的基于块的存储服务的那些)的功能性)。如在图中所示和本文所描述的各种方法表示方法的示例性实施方案。任何方法的次序可以改变,并且各个元素可以被添加、重新排序、组合、省略、修改等。
如本文描述的基于块的存储的页面高速缓存写入存录的实施方案可在一个或多个计算机***上执行,所述计算机***可与各种其他装置交互。图14是示出根据各种实施方案的示例性计算机***的框图。例如,在不同实施方案中,计算机***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 10RAM、同步动态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可包括多于、少于、或不同于图142000所示的那些的部件(例如,显示器、视频卡、音频卡、***装置、其他网络接口,诸如ATM接口、以太网接口、帧中继接口等)。
应注意,本文所述的分布式***实施方案中的任何一个,或它们的部件中的任何一个,可被实施为一个或多个基于网络的服务。例如,计算服务内的计算集群可将计算和/或存储服务和/或采用本文所述的分布式计算***的其他类型的服务作为基于网络的服务呈现给客户端。在一些实施方案中,基于网络的服务可由设计来支持通过网络进行彼此协作的机对机交互的软件和/或硬件***来实施。基于网络的服务可具有以机器可处理格式描述的接口,诸如Web服务描述语言(WSDL)。其他***可与基于网络的服务以对基于网络的服务的接口的描述所规定的方式进行交互。例如,基于网络的服务可限定其他***可调用的各种操作,并且可限定特定的应用程序编程接口(API),当请求各种操作时,其他***可能期望服从所述特定的应用程序编程接口(API)。虽然
在各种实施方案中,基于网络的服务可通过使用包括与基于网络的服务请求相关联的参数和/或数据的消息来请求或调用。这种消息可根据特定的标记语言(诸如可延伸标记语言(XML))来格式化,和/或可使用协议(诸如简单对象访问协议(SOAP))来封装。为执行基于网络的服务请求,基于网络的服务客户端可汇编包括所述请求的消息,并且使用基于互联网的应用层传输协议(诸如超文本传输协议(HTTP))将所述消息传达给对应于基于网络的服务的可寻址端点(例如,统一资源定位符(URL))。
在一些实施方案中,基于网络的服务可使用表述性状态传输(“RESTful”)技术而不是基于消息的技术来实施。例如,根据RESTful技术实施的基于网络的服务可通过包括在HTTP方法(诸如PUT、GET或DELETE)内而不是封装在SOAP消息内的参数来调用。
尽管已相当详细地描述了以上实施方案,但一旦完全了解以上公开内容,各种改变和修改对本领域的技术人员将变为显而易见。以下权利要求旨在被解释成包含所有这些修改和改变,并且相应地,以上描述应视为具有说明性而非限制性意义。
本公开的实施方案可以鉴于以下条款来描述:
1.一种实施存储节点的***,其包括:
多个基于块的存储装置,所述多个基于块的存储装置维持多个数据卷;
***存储器,所述***存储器包括页面高速缓存,其中所述页面高速缓存定期地或不定期地被转储到所述多个基于块的存储装置,以便永久地更新所述多个数据卷;
永久性存储装置,所述永久性存储装置维持页面高速缓存写入日志,所述页面高速缓存写入日志维持描述对所述页面高速缓存的更新的多个日志记录,其中所述多个日志记录描述所述页面高速缓存在导致所述页面高速缓存中数据丢失的***故障的情况下将要复原到所述页面高速缓存的状态;
日志管理模块,所述日志管理模块被配置来:
监测到所述存储节点的将要存录到所述页面高速缓存写入日志的传入写入请求的速率;
至少部分地基于所述传入写入请求的速率,动态修改所述多个数据卷中的至少一个数据卷的耐久性特性,这包括:
启用所述至少一个数据卷的页面高速缓存写入存录;或者
禁用所述至少一个数据卷的页面高速缓存写入存录。
2.如条款1所述的***,其中为了动态修改所述至少一个数据卷的所述耐久性特性,所述日志管理模块还被配置来:
至少部分地基于下列各项来选择所述至少一个数据卷进行修改:
所述多个数据卷中的每一个的各自大小;或者
指向所述多个数据卷中的每一个的写入请求的各自量。
3.如条款1所述的***,其中所述日志管理模块还被配置来
接收对特定数据卷的写入请求;
确定所述特定数据卷的页面高速缓存写入存录被禁用;并且
响应于根据所述写入请求更新所述页面高速缓存,将所述写入请求确认为完成,而不将所述写入请求的日志记录存储在所述页面高速缓存写入日志中。
4.如条款1所述的***,其中所述存储节点被实施为实施基于网络的基于块的存储服务的多个存储节点中的一个,其中所述基于网络的基于块的存储服务为多个不同客户端维持数据卷。
5.一种方法,其包括:
由一个或多个计算装置执行下列各项:
根据对所述存储节点处所维持的多个数据卷的写入请求,在存储节点处将页面高速缓存写入日志维持在存储多个日志记录的永久性存储装置中,所述日志记录各自描述对所述存储节点处的页面高速缓存的更新;
监测到所述存储节点的将要存录到所述页面高速缓存写入日志的传入写入请求的速率;
至少部分地基于所述传入写入请求的速率,动态修改所述多个数据卷中的至少一个数据卷的耐久性特性,这包括:
启用所述至少一个数据卷的页面高速缓存写入存录;或者
禁用所述至少一个数据卷的页面高速缓存写入存录。
6.如条款5所述的方法,其中所述动态修改所述至少一个数据卷的耐久性特性还包括:
至少部分地基于下列各项来选择所述至少一个数据卷进行修改:
所述多个数据卷中的每一个的各自大小;或者
指向所述多个数据卷中的每一个的写入请求的各自量。
7.如条款6所述的方法,其中所述存储节点是实施基于块的存储***的多个存储节点中的一个,其中所述多个存储节点中的不同存储节点维持所述存储节点处所维持的所述多个数据卷的各自副本,其中所述选择所述至少一个数据卷进行修改还至少部分地基于所述不同存储节点处所维持的所述多个数据卷的所述各自副本的各自耐久性。
8.如条款5所述的方法,其中所述存储节点处的所有所述多个数据卷的所述耐久性特性被修改成是相同的。
9.如条款5所述的方法,其还包括:
接收对所述多个数据卷中的特定数据卷的写入请求;
确定所述特定数据卷的页面高速缓存写入存录被禁用;以及
响应于根据所述写入请求更新所述页面高速缓存,将所述写入请求确认为完成,而不将所述写入请求的日志记录存储在所述页面高速缓存写入日志中。
10.如条款9所述的方法,其还包括:
接收对所述多个数据卷中的另一个数据卷的写入请求;
确定所述另一个数据卷的页面高速缓存写入存录被启用;
响应于确定所述另一个数据卷的页面高速缓存写入存录被启用:
根据所述另一个写入请求更新所述页面高速缓存;
将描述针对所述另一个写入请求对所述页面高速缓存进行的所述更新的日志记录存储在所述页面高速缓存写入日志中;以及
响应于根据所述另一个写入请求更新所述页面高速缓存并且将所述另一个写入请求的描述对所述页面高速缓存的所述更新的所述日志记录存储在所述页面高速缓存写入日志中,将所述另一个写入请求确认为完成。
11.根据条款5所述的方法,
其中响应于确定所述传入写入请求的速率低于存录速率下限而执行所述启用所述至少一个数据卷的页面高速缓冲存储器写入存录;并且
其中响应于确定所述传入写入请求的速率超过存录速率上限而执行所述禁用所述至少一个数据卷的禁页面高速缓存写入存录。
12.如条款5所述的方法,其还包括:
在从***故障开始恢复时:
将所述多个数据卷中的页面高速缓存写入存录被启用的数据卷识别为当前的;以及
使所识别数据卷可供用于处理输入/输出(I/O)请求。
13.如条款5所述的方法,其中所述存储节点是实施基于网络的基于块的存储服务的多个存储节点中的一个,其中从由基于网络的虚拟计算服务实施的虚拟计算实例接收写入请求,其中所述基于网络的块存储服务和所述基于网络的虚拟计算服务一起被实施为同一基于网络的服务提供商网络的部分。
14.一种存储程序指令的非暂时性计算机可读存储介质,所述程序指令在由一个或多个计算装置执行时致使所述一个或多个计算装置实施下列各项:
根据对所述存储节点处所维持的多个数据卷的写入请求,在存储节点处将页面高速缓存写入日志维持在存储多个日志记录的永久性存储装置中,所述日志记录各自描述对所述存储节点处的页面高速缓存的更新;
监测到所述存储节点的将要存录到所述页面高速缓存写入日志的传入写入请求的速率;
至少部分地基于所述传入写入请求的速率,动态修改所述多个数据卷中的至少一个数据卷的耐久性特性,这包括:
启用所述至少一个数据卷的页面高速缓存写入存录;或者
禁用所述至少一个数据卷的页面高速缓存写入存录。
15.如条款14所述的非暂时性计算机可读存储介质,其中,在所述动态修改所述至少一个数据卷的耐久性特性中,所述程序指令致使所述一个或多个计算装置实施下列各项:
至少部分地基于下列各项来选择所述至少一个数据卷进行修改:
所述多个数据卷中的每一个的各自大小;或者
指向所述多个数据卷中的每一个的写入请求的各自量。
16.如条款15所述的非暂时性计算机可读存储介质,其中所述存储节点是实施基于块的存储***的多个存储节点中的一个,其中所述多个存储节点中的不同存储节点维持所述存储节点处所维持的所述多个数据卷的各自副本,其中所述选择所述至少一个数据卷进行修改还至少部分地基于所述不同存储节点处所维持的所述多个数据卷的所述各自副本的各自耐久性。
17.如条款14所述的非暂时性计算机可读存储介质,
其中响应于确定所述传入写入请求的速率低于存录速率下限而执行所述启用所述至少一个数据卷的页面高速缓冲存储器写入存录;
其中响应于确定所述传入写入请求的速率超过存录速率上限而执行所述禁用所述至少一个数据卷的禁页面高速缓存写入存录。
18.如条款14所述的非暂时性计算机可读存储介质,其中所述程序指令还致使所述一个或多个计算装置实施下列各项:
接收对所述多个数据卷中的特定数据卷的写入请求;
确定所述特定数据卷的页面高速缓存写入存录被禁用;以及
响应于根据所述写入请求更新所述页面高速缓存,将所述写入请求确认为完成,而不将所述写入请求的日志记录存储在所述页面高速缓存写入日志中。
19.如条款18所述的非暂时性计算机可读存储介质,其中所述程序指令还致使所述一个或多个计算装置实施下列各项:
接收对所述多个数据卷中的另一个数据卷的写入请求;
确定所述另一个数据卷的页面高速缓存写入存录被启用;
响应于确定所述另一个数据卷的页面高速缓存写入存录被启用:
根据所述另一个写入请求更新所述页面高速缓存;
将描述针对所述另一个写入请求对所述页面高速缓存进行的所述更新的日志记录存储在所述页面高速缓存写入日志中;以及
响应于根据所述另一个写入请求更新所述页面高速缓存并且将所述另一个写入请求的描述对所述页面高速缓存的所述更新的所述日志记录存储在所述页面高速缓存写入日志中,将所述另一个写入请求确认为完成。
20.如条款14所述的非暂时性计算机可读存储介质,其中所述存储节点被实施为实施基于网络的基于块的存储服务的多个存储节点中的一个,其中所述基于网络的基于块的存储服务为多个不同客户端维持数据卷。

Claims (14)

1.一种实施存储节点的***,包括:
多个基于块的存储装置,其维持多个数据卷;
***存储器,其包括页面高速缓存,其中所述页面高速缓存定期地或不定期地转储到所述多个基于块的存储装置,以便永久地更新所述多个数据卷;
永久性存储装置,其维持页面高速缓存写入日志,所述页面高速缓存写入日志维持描述对所述页面高速缓存的更新的多个日志记录,其中所述多个日志记录描述所述页面高速缓存在导致所述页面高速缓存中数据丢失的***故障的情况下将要复原到所述页面高速缓存的状态;
日志管理模块,其被配置来:
监测到所述存储节点的将要存录到所述页面高速缓存写入日志的传入写入请求的速率;
至少部分地基于所述传入写入请求的速率,动态修改所述多个数据卷中的至少一个数据卷的耐久性特性,其包括:
启用所述至少一个数据卷的页面高速缓存写入存录;或者
禁用所述至少一个数据卷的页面高速缓存写入存录。
2.如权利要求1所述的***,其中为了动态修改所述至少一个数据卷的所述耐久性特性,所述日志管理模块还被配置来:
至少部分地基于下列各项来选择所述至少一个数据卷进行修改:
所述多个数据卷中的每一个的各自大小;或者
指向所述多个数据卷中的每一个的写入请求的各自量。
3.如权利要求1所述的***,其中所述日志管理模块还被配置来:
接收对特定数据卷的写入请求;
确定针对所述特定数据卷禁用页面高速缓存写入存录;并且
响应于根据所述写入请求更新所述页面高速缓存,将所述写入请求确认为完成,而无需将所述写入请求的日志记录存储在所述页面高速缓存写入日志中。
4.如权利要求1所述的***,其中所述存储节点被实施为实施基于网络的基于块的存储服务的多个存储节点中的一个,其中所述基于网络的基于块的存储服务为多个不同客户端维持数据卷。
5.一种方法,包括:
通过一个或多个计算装置执行下列各项:
根据对存储节点处所维持的多个数据卷的写入请求,在所述存储节点处将页面高速缓存写入日志维持在存储多个日志记录的永久性存储装置中,所述日志记录每一个均描述对所述存储节点处的页面高速缓存的更新;
监测到所述存储节点的将要存录到所述页面高速缓存写入日志的传入写入请求的速率;
至少部分地基于所述传入写入请求的速率,动态修改所述多个数据卷中的至少一个数据卷的耐久性特性,其包括:
启用所述至少一个数据卷的页面高速缓存写入存录;或者
禁用所述至少一个数据卷的页面高速缓存写入存录。
6.如权利要求5所述的方法,其中所述动态修改所述至少一个数据卷的耐久性特性还包括:
至少部分地基于下列各项来选择所述至少一个数据卷进行修改:
所述多个数据卷中的每一个的各自大小;或者
指向所述多个数据卷中的每一个的写入请求的各自量。
7.如权利要求6所述的方法,其中所述存储节点是实施基于块的存储***的多个存储节点中的一个,其中所述多个存储节点中的不同存储节点维持所述存储节点处所维持的所述多个数据卷的各自副本,其中所述选择所述至少一个数据卷进行修改还至少部分地基于所述不同存储节点处所维持的所述多个数据卷的所述各自副本的各自耐久性。
8.如权利要求5所述的方法,其中将所述存储节点处的所述多个数据卷中的全部的所述耐久性特性修改成为相同的。
9.如权利要求5所述的方法,其还包括:
接收对所述多个数据卷中的特定数据卷的写入请求;
确定针对所述特定数据卷禁用页面高速缓存写入存录;以及
响应于根据所述写入请求更新所述页面高速缓存,将所述写入请求确认为完成,而无需将所述写入请求的日志记录存储在所述页面高速缓存写入日志中。
10.如权利要求9所述的方法,其还包括:
接收对所述多个数据卷中的另一个数据卷的写入请求;
确定针对所述另一个数据卷启用页面高速缓存写入存录;
响应于确定针对所述另一个数据卷启用页面高速缓存写入存录:
根据所述另一个写入请求更新所述页面高速缓存;
将描述针对所述另一个写入请求对所述页面高速缓存进行的所述更新的日志记录存储在所述页面高速缓存写入日志中;以及
响应于根据所述另一个写入请求更新所述页面高速缓存并且将所述另一个写入请求的描述对所述页面高速缓存的所述更新的所述日志记录存储在所述页面高速缓存写入日志中,将所述另一个写入请求确认为完成。
11.如权利要求5所述的方法,
其中响应于确定所述传入写入请求的速率低于存录速率下限来执行所述启用所述至少一个数据卷的页面高速缓存写入存录;并且
其中响应于确定所述传入写入请求的速率超过存录速率上限来执行所述禁用所述至少一个数据卷的页面高速缓存写入存录。
12.如权利要求5所述的方法,其还包括:
在从***故障开始恢复时:
将所述多个数据卷中的带有启用的页面高速缓存写入存录的数据卷识别为当前的;以及
使所识别数据卷可供用于处理输入/输出(I/O)请求。
13.如权利要求5所述的方法,其中所述存储节点是实施基于网络的基于块的存储服务的多个存储节点中的一个,其中从由基于网络的虚拟计算服务实施的虚拟计算实例接收写入请求,其中所述基于网络的块存储服务和所述基于网络的虚拟计算服务一起被实施为同一基于网络的服务提供商网络的部分。
14.一种计算机可读存储介质,包括程序,所述程序当被运行时执行根据权利要求5至13中任一项所述的方法。
CN201580012909.1A 2014-03-11 2015-03-10 动态修改单独数据卷的耐久性特性 Active CN106068507B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/204,916 2014-03-11
US14/204,916 US9342457B2 (en) 2014-03-11 2014-03-11 Dynamically modifying durability properties for individual data volumes
PCT/US2015/019576 WO2015138376A1 (en) 2014-03-11 2015-03-10 Dynamically modifying durability properties for individual data volumes

Publications (2)

Publication Number Publication Date
CN106068507A CN106068507A (zh) 2016-11-02
CN106068507B true CN106068507B (zh) 2019-10-18

Family

ID=54069037

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580012909.1A Active CN106068507B (zh) 2014-03-11 2015-03-10 动态修改单独数据卷的耐久性特性

Country Status (9)

Country Link
US (1) US9342457B2 (zh)
EP (1) EP3117331B1 (zh)
JP (1) JP6389268B2 (zh)
KR (1) KR101764085B1 (zh)
CN (1) CN106068507B (zh)
AU (1) AU2015229685B2 (zh)
CA (1) CA2940456C (zh)
SG (1) SG11201607073SA (zh)
WO (1) WO2015138376A1 (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108431783B (zh) * 2015-12-30 2020-09-18 华为技术有限公司 访问请求处理方法、装置及计算机***
EP3385846B1 (en) * 2015-12-30 2020-02-12 Huawei Technologies Co., Ltd. Method and device for processing access request, and computer system
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
US11301144B2 (en) 2016-12-28 2022-04-12 Amazon Technologies, Inc. Data storage system
US10387398B2 (en) * 2017-03-07 2019-08-20 Sap Se Continuous database page flusher
US10474541B2 (en) * 2017-03-07 2019-11-12 Sap Se Optimized savepoint during database recovery
US10310946B2 (en) * 2017-04-07 2019-06-04 Sap Se Parallel database page flusher
US10409695B2 (en) * 2017-04-25 2019-09-10 Sap Se Self-adaptive continuous flushing of pages to disk
US10402389B2 (en) * 2017-04-25 2019-09-03 Sap Se Automatic adaptation of parameters controlling database savepoints
US10360111B2 (en) * 2017-05-03 2019-07-23 Sap Se Self-adaptive parallel database page flusher
US10558530B2 (en) * 2017-07-11 2020-02-11 Sap Se Database savepoint with shortened critical phase time
CN108829720B (zh) * 2018-05-07 2022-01-14 麒麟合盛网络技术股份有限公司 数据处理方法及装置
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
US11262918B1 (en) 2020-09-30 2022-03-01 Amazon Technologies, Inc. Data storage system with uneven drive wear reduction
US20220261356A1 (en) * 2021-02-16 2022-08-18 Nyriad, Inc. Cache operation for a persistent storage device
CN114564662A (zh) * 2022-03-04 2022-05-31 北京达佳互联信息技术有限公司 页面引导方法、装置、电子设备、介质及产品
CN116166194B (zh) * 2023-01-16 2023-11-03 广州辰创科技发展有限公司 一种装备保障维修维护管理方法及***

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101764712A (zh) * 2010-01-21 2010-06-30 瑞斯康达科技发展股份有限公司 一种日志信息的传输***及方法

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7426617B2 (en) * 2004-02-04 2008-09-16 Network Appliance, Inc. Method and system for synchronizing volumes in a continuous data protection system
US7778972B1 (en) * 2005-12-29 2010-08-17 Amazon Technologies, Inc. Dynamic object replication within a distributed storage system
US8307359B1 (en) 2006-06-23 2012-11-06 Emc Corporation Embedded virtual storage area network using a virtual block network fabric
US7979652B1 (en) * 2007-12-20 2011-07-12 Amazon Technologies, Inc. System and method for M-synchronous replication
US8159210B2 (en) * 2008-07-11 2012-04-17 Kinects Solutions, Inc. System for automatically detecting power system configuration
US8578083B2 (en) 2009-03-03 2013-11-05 Vmware, Inc. Block map based I/O optimization for storage virtual appliances
US8407403B2 (en) * 2009-12-07 2013-03-26 Microsoft Corporation Extending SSD lifetime using hybrid storage
US8341115B1 (en) * 2009-12-26 2012-12-25 Emc Corporation Dynamically switching between synchronous and asynchronous replication
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
US20110276963A1 (en) 2010-05-04 2011-11-10 Riverbed Technology, Inc. Virtual Data Storage Devices and Applications Over Wide Area Networks
US8380962B2 (en) * 2010-08-16 2013-02-19 Symantec Corporation Systems and methods for efficient sequential logging on caching-enabled storage devices
US20120079229A1 (en) 2010-09-28 2012-03-29 Craig Jensen Data storage optimization for a virtual platform
WO2012116369A2 (en) 2011-02-25 2012-08-30 Fusion-Io, Inc. Apparatus, system, and method for managing contents of a cache
US8725782B2 (en) 2011-04-25 2014-05-13 Microsoft Corporation Virtual disk storage techniques
US9294564B2 (en) 2011-06-30 2016-03-22 Amazon Technologies, Inc. Shadowing storage gateway
JP5828701B2 (ja) * 2011-07-19 2015-12-09 キヤノン株式会社 情報処理装置および情報処理方法、プログラム並びに記憶媒体
US8909996B2 (en) 2011-08-12 2014-12-09 Oracle International Corporation Utilizing multiple storage devices to reduce write latency for database logging
WO2013024485A2 (en) 2011-08-17 2013-02-21 Scaleio Inc. Methods and systems of managing a distributed replica based storage
US9158568B2 (en) 2012-01-30 2015-10-13 Hewlett-Packard Development Company, L.P. Input/output operations at a virtual block device of a storage server
US9069806B2 (en) 2012-03-27 2015-06-30 Google Inc. Virtual block devices

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101764712A (zh) * 2010-01-21 2010-06-30 瑞斯康达科技发展股份有限公司 一种日志信息的传输***及方法

Also Published As

Publication number Publication date
AU2015229685B2 (en) 2018-01-04
EP3117331B1 (en) 2021-05-05
WO2015138376A1 (en) 2015-09-17
SG11201607073SA (en) 2016-09-29
KR101764085B1 (ko) 2017-08-14
JP6389268B2 (ja) 2018-09-12
KR20160130493A (ko) 2016-11-11
EP3117331A1 (en) 2017-01-18
CN106068507A (zh) 2016-11-02
CA2940456A1 (en) 2015-09-17
EP3117331A4 (en) 2017-11-22
JP2017520030A (ja) 2017-07-20
US20150261673A1 (en) 2015-09-17
US9342457B2 (en) 2016-05-17
AU2015229685A1 (en) 2016-09-08
CA2940456C (en) 2019-04-16

Similar Documents

Publication Publication Date Title
CN106104511B (zh) 基于块的存储的页面高速缓存存录
CN106068507B (zh) 动态修改单独数据卷的耐久性特性
JP6928055B2 (ja) データボリュームの動的な構成
CN106170777A (zh) 降低基于块的存储的数据卷耐久性状态
CN107077301A (zh) 用于存储客户端文件***的存储卷的动态缩放
US10817325B2 (en) Moving storage volumes for improved performance
CN113885797A (zh) 一种数据存储方法、装置、设备及存储介质
US20210141782A1 (en) Concurrent update management

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