动态修改单独数据卷的耐久性特性的制作方法与工艺

文档序号:12968461阅读:173来源:国知局


背景技术:
近年来在跨网络动态共享硬件资源、软件和信息存储的虚拟化技术方面的改革已经增加了计算的可靠性、可扩缩性和成本效率。更具体地说,通过虚拟化的出现按需提供虚拟计算资源和存储的能力已经使处理资源和存储的消费者能够响应于立即被察觉的计算和存储需求而灵活地组织他们的计算和存储成本。虚拟化允许客户在需要的时候购买处理器周期和存储,而不是在开通周期(provisioningcycle)中购买或租赁固定的硬件,所述开通周期由制造和部署硬件的延迟和成本决定。用户能够在相对瞬时的按需基础上购买计算和存储资源的使用权,而不是取决于对未来需求的预测的准确性来确定计算和存储的可用性。虚拟化计算环境经常地由基于块的存储支持。这类基于块的存储提供能够通过一系列标准化的存储调用与各种计算虚拟化进行交互的存储系统,这使得所述基于块的存储与其所支持的卷的结构和功能细节,并且与在所述基于块的存储向其提供存储可用性的虚拟化上执行的操作系统在功能上无关。然而,随着网络传输能力的增强、伴随更大的对虚拟化资源的处理能力,对基于块的存储的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可以多种不同方式管理和维持数据卷。可在维持数据卷的相同副本的两个或更多个存储节点之中针对一些数据卷实施不同的耐久性方案。例如,可实施不同类型的镜像和/或复制技术(例如,RAID1),以便诸如通过消除数据卷的单一故障点而增加数据卷的耐久性。为了提供对数据卷的访问,存储节点然后可在维持数据卷副本的两个或更多个存储节点之中协调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可在永久性存储器装置上实施,所述永久性存储器装置诸如非易失性随机存取存储器(NVRAM)、电池或电容备份存储器、或其他类型的基于忆阻器的电阻性随机存取存储器(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、EDORAM、DDR10RAM、同步动态RAM(SDRAM)、RambusRAM、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、DDRSDRAM、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所述的非暂时性计算机可读存储介质,其中所述存储节点被实施为实施基于网络的基于块的存储服务的多个存储节点中的一个,其中所述基于网络的基于块的存储服务为多个不同客户端维持数据卷。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1