CN107077301A - 用于存储客户端文件系统的存储卷的动态缩放 - Google Patents

用于存储客户端文件系统的存储卷的动态缩放 Download PDF

Info

Publication number
CN107077301A
CN107077301A CN201580060196.6A CN201580060196A CN107077301A CN 107077301 A CN107077301 A CN 107077301A CN 201580060196 A CN201580060196 A CN 201580060196A CN 107077301 A CN107077301 A CN 107077301A
Authority
CN
China
Prior art keywords
storage
storage volume
client
volume
scaling
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
Application number
CN201580060196.6A
Other languages
English (en)
Other versions
CN107077301B (zh
Inventor
A·P·J·迪潘娜
G·A·布拉姆希尔
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
Priority to CN202010482704.2A priority Critical patent/CN111625201B/zh
Publication of CN107077301A publication Critical patent/CN107077301A/zh
Application granted granted Critical
Publication of CN107077301B publication Critical patent/CN107077301B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5041Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
    • H04L41/5051Service on demand, e.g. definition and deployment of services in real time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • G06F16/183Provision of network file services by network file servers, e.g. by using NFS, CIFS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS
    • H04L41/5009Determining service level performance parameters or violations of service level contracts, e.g. violations of agreed response time or mean time between failures [MTBF]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/04Processing captured monitoring data, e.g. for logfile generation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services

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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Retry When Errors Occur (AREA)

Abstract

一种维护用于在存储客户端处的文件系统的存储卷的基于网络的数据存储区可实现动态存储卷缩放。可根据针对在基于网络的数据存储区处维护的存储卷所指定的缩放策略来检测缩放事件,所述存储卷安装在存储客户端处并且被配置用于文件系统。在至少一些实施方案中,可从所述存储客户端接收用于所述存储卷的所述缩放策略。响应于检测到所述存储事件,可根据所述缩放策略修改维护所述存储卷的存储装置以缩放所述存储卷。可向所述存储客户端发送所述缩放事件的指示,以便更新所述存储客户端处的所述文件系统,以使得所述文件系统可利用所述缩放的存储卷。

Description

用于存储客户端文件系统的存储卷的动态缩放
背景技术
用于跨网络动态共享硬件资源、软件和信息存储的虚拟化的技术的最新革命已增加计算的可靠性、可扩展性和成本效益。更具体地说,随着虚拟化的出现,提供按需虚拟计算资源和存储的能力已使得处理资源和存储的消费者能够响应于立即感知的计算和存储需求来灵活地构建其计算和存储成本。虚拟化允许客户在需要时购买处理器周期和存储装置,而不是在由硬件制造和部署的延迟和成本所决定的供应周期内购买或租赁固定硬件。用户能够在相对瞬时的需要的基础上购买计算和存储资源的使用,而不是依赖于未来需求的预测的准确性来确定计算和存储的可用性。
虚拟化计算环境通常由基于块的存储装置来支持。这种基于块的存储装置提供能够通过一系列标准化存储调用来与各种计算虚拟化进行交互的存储系统,所述一系列标准化存储调用使得基于块的存储装置功能性对于其所支持的卷的结构和功能细节不可知,并且与操作系统进行交互的存储系统,操作系统在其提供存储可用性的虚拟化上执行。然而,随着网络传输能力的提高,以及虚拟化资源的操作能力越来越大,对基于块的存储装置的I/O需求可能会增加。如果I/O需求超过基于块的存储装置对服务请求的容量,那么虚拟化计算资源的基于块的存储装置性能的延时和/或持久性受损,从而导致虚拟化计算性能的损失。
附图说明
图1是根据一些实施方案的示出用于存储客户端文件系统的存储卷的动态缩放的一系列图。
图2是根据一些实施方案的示出实现基于块的存储服务的提供商网络的框图,所述基于块的存储服务实现存储客户端文件系统的存储卷的动态缩放。
图3是根据一些实施方案的示出存储客户端的各种部件的框图。
图4是根据一些实施方案的示出基于块的存储服务的各种部件的框图。
图5是根据一些实施方案的示出存储客户端与实现动态存储卷缩放的基于块的存储服务之间的交互的框图。
图6是根据一些实施方案的示出用于实现用于存储客户端文件系统的存储卷的动态缩放的方法和技术的高级流程图。
图7是根据一些实施方案的示出用于根据文件系统的存储卷的缩放事件来更新文件系统的方法和技术的高级流程图。
图8是根据各种实施方案的示例性计算机系统。
虽然本文通过几个实施方案和说明性附图的示例描述了各实施方案,但是本领域技术人员将认识到,各实施方案不限于所描述的实施方案或附图。应当理解,附图和随之的详细描述并不旨在将实施方案限制为所公开的具体形式,而正相反,本发明旨在涵盖落入由所附权利要求书限定的精神和范围内的所有修改、等效物以及替代方案。本文中使用的任何标题都仅用于组织目的,并且并不意图用于限制描述或权利要求书的范围。如贯穿本申请所用,词语“可”是在许可的意义上(即,意指具有可能性)、而非强制的意义上(即,意指必须)使用。词语“包括(include/including/includes)”表示开放式关系,并且因此意味着包括但不限于。类似地,词语“具有(have/having/has)”也表示开放式关系,并且因此意味着具有但不限于。本文使用的术语“第一”、“第二”、“第三”等用作它们之后的名词的标签,并且不暗示任何类型的排序(例如,空间、时间、逻辑等),除非这种排序另有明确指示。
可将各种部件描述为“被配置来”执行一个或多个任务。在这种情况下,“被配置来”是广泛的表述,通常意味着“具有在操作期间执行一个或多个任务的结构”。因此,即使当部件当前不执行此任务,部件也可被配置来执行此任务(例如,计算机系统即使在当前未正在执行操作时也可被配置来执行操作)。在一些情况下,“被配置来”可以是结构的广泛的表述,通常意味着“具有在操作期间执行一个或多个任务的电路”。因此,即使当部件当前未启动,部件也可被配置来执行任务。一般来讲,形成对应于“被配置来”的结构的电路可包括硬件电路。
为了方便描述,可将各种部件描述为执行一个或多个任务。这种描述应解释为包括短语“被配置来”。引述被配置来执行一个或多个任务的部件明确不旨在调用美国法典第35卷第112条第f项对此部件的解释。
如本文所使用的“基于”,此术语用于描述影响确定的一个或多个因素。此术语不排除可能影响确定的另外因素。也就是说,确定可仅仅基于这些因素,或至少部分地基于这些因素。考虑短语“基于B确定A”。虽然B可能是影响A的确定的因素,但是这种短语并不排除A的确定也基于C。在其他情况下,A可仅基于B来确定。
本公开的范围包括本文(明确地或隐含地)公开的任何特征或特征的组合,或其任何概括,无论其是否减轻本文中解决的任何或全部问题。因此,在对本申请(或要求其优先权的申请)的申请过程期间可为任何这种特征的组合提出新的权利要求。具体地,参考所附权利要求,从属权利要求的特征可以与独立权利要求的特征组合,并且来自各自的独立权利要求的特征可以以任何适当的方式组合,而不仅仅是所附权利要求中列举的具体组合。
具体实施方式
本文描述用于存储客户端文件系统的存储卷的动态缩放的各种实施方案。基于网络的数据存储区为各种不同的存储客户端应用提供持久和灵活的存储解决方案。例如,存储客户端可实现在基于网络的数据存储区中支持文件系统的存储卷。提供存储卷的动态缩放允许存储成本紧密地配合存储卷的实际使用,从而补偿随时间变化的存储要求。图1是根据一些实施方案的示出用于存储客户端文件系统的存储卷的动态缩放的一系列图。基于网络的数据存储区110可为各种存储客户端140提供永久性的数据存储装置。在至少一些实施方案中,基于网络的数据存储区110中的存储装置可以是基于块的存储装置。存储客户端140可在基于网络的数据存储区110中提供存储卷130。在提供数据存储区时,存储客户端140可安装存储卷并将其配置用于在存储客户端140处实现的文件系统。
如前所述,存储容量和/或性能需求可能会随时间而变化。鉴于这些变化,静态提供的存储资源可能会降低成本效益。此外,对于为多个不同存储客户端提供存储装置的基于网络的数据存储区,未使用的存储资源可更好地用于另一个存储客户端,从而降低基于网络的数据存储区的效率。因此,在各种实施方案中,基于网络的数据存储区110可实现用于存储客户端文件系统的存储卷的动态缩放。如场景102所示,在存储客户端140处的文件系统管理器150可向存储卷130发送各种I/O请求,作为利用用于在存储客户端140处实现的文件系统的存储卷的一部分。卷性能可报告132到数据存储区控制平面120,所述数据存储区控制平面120可监测存储卷以检测存储卷130的缩放事件。
可根据存储卷130的缩放策略来检测缩放事件。缩放策略可包括触发各种控制平面动作来缩放存储卷130的一个或多个条件。例如,存储卷130可被缩放以增大大小、减小大小、不同地重新分配用于存储卷的存储资源和/或提供存储卷130的不同的吞吐量性能(例如,每秒的输入/输出操作(IOP))。可相对于卷性能度量和存储容量来评估各种不同的阈值或条件以检测缩放事件(例如太多或太少的存储容量或带宽)。
如场景104所示,已发生存储卷130的缩放事件。数据存储区控制平面120向文件系统管理器150提供卷的缩放事件的指示122。此指示可允许文件系统管理器150访问缩放的存储卷。数据存储区控制平面120还动态地缩放存储卷,在此示例中添加加成132。可执行各种不同的存储操作,以分配与用于缩放事件的存储卷的期望配置相应的存储资源,包括各种存储维护操作。文件系统管理器150可接收指示122,并且更新存储客户端140处的文件系统以包括缩放的存储卷160。例如,文件系统管理器150可执行各种调整大小操作以更新文件系统元数据,以指示作为卷添加132的结果的缩放的存储卷160。文件系统管理器150随后可发送I/O请求114以利用基于网络的数据存储区110中的缩放的存储卷。
请注意,图1提供用于存储客户端文件系统的存储卷的动态缩放的图示,并且不旨在限制为其中所描述的部件、模块或装置的物理布置、大小或数量。
说明书首先描述作为基于块的存储服务的基于网络的数据存储区的示例,这可为存储客户端文件系统提供存储卷的动态缩放。描述可实现基于块的存储服务的各种部件、模块、系统或装置以及基于块的存储服务的客户端。随后,说明书描述用于实现存储客户端文件系统的存储卷的动态缩放的方法的各种实施方案的流程图。接下来,说明书描述可实现所公开技术的示例性系统。在整个说明书中提供各种示例。
图2是根据一些实施方案的示出实现基于块的存储服务的提供商网络的框图,所述基于块的存储服务实现存储客户端文件系统的存储卷的动态缩放。提供商网络200可由诸如公司或公共部门组织的实体来建立,以提供客户端210通过互联网和/或其他网络可访问的一个或多个服务(诸如各种类型的基于云的计算或存储)。提供商网络200可包括托管各种资源池的许多数据中心,诸如实现并分配由提供商网络200提供的基础设施和服务所需要的物理和/或虚拟计算机服务器、存储装置、网络设备等的集合(例如,下文关于图8描述的计算系统1000)。在一些实施方案中,提供商网络200可提供诸如虚拟计算服务230的计算资源、诸如基于块的存储服务220和其他存储服务240的存储服务(其可包括各种存储类型,例如基于对象/键值的数据存储区或各种类型的数据库系统)和/或任何其他类型的基于网络的服务250。客户端210可通过网络260访问由提供商网络200提供的这些各种服务。同样,基于网络的服务本身也可彼此通信和/或利用来提供不同的服务。例如,在称为“实例”的单元(诸如虚拟或物理计算实例或存储实例)中提供给客户端210的计算资源可利用特定数据卷226,从而为计算实例提供虚拟块存储装置。
如上所述,虚拟计算服务230可向客户端210提供各种计算实例232。虚拟计算实例可例如包括具有(可通过指示CPU的类型和数量、主存储器大小等来指定的)指定计算能力和指定的软件堆栈(例如,操作系统的特定版本,其可继而在管理程序的顶部运行)的一个或多个服务器。可在不同的实施方案中单独地或组合地使用多种不同类型的计算装置来实现虚拟计算服务230的计算实例,包括通用或专用计算机服务器、存储装置、网络装置等。在一些实施方案中,实例客户端210或其他任何其他用户可被配置(和/或授权)来将网络流量引导到计算实例。在各种实施方案中,计算实例可附接或映射到由基于块的存储服务220提供的一个或多个数据卷226,以便获得用于执行各种操作的永久性的基于块的存储装置。
计算实例232可操作或实现各种不同的平台,诸如应用服务器实例、JavaTM虚拟机(JVM)、通用或专用操作系统、支持各种解释或编译的编程语言(诸如Ruby、Perl、Python、C、C++等)的平台或者适用于执行客户端应用的高性能计算平台),而不需要例如客户端210访问实例。在一些实施方案中,计算实例基于预期的正常运行时间比具有不同的类型或配置。特定计算实例的正常运行时间比可被定义为实例被激活的时间量与实例被保留的总时间量的比率。在一些实现中,正常运行时间比率也可称为利用率。如果客户端希望在保留实例的时间的相对较短的一小部分时间内使用计算实例(例如,一年保留时间的30%-35%),那么客户端可决定将此实例保留为低正常运行时间比实例,并根据相关联的定价政策来支付折扣小时使用费用。如果客户端希望具有需要实例达到大部分时间的稳定状态的工作负载,那么客户端可保留高正常运行时间比实例,并可能会支付甚至更低的小时使用费用,尽管在一些实施方案中,小时使用费用可根据定价政策而在整个保留期间收取费用,而无论实际使用的小时数如何。在一些实施方案中也可支持具有对应的定价策略的中等正常运行时间比实例的选项,其中前期成本和每小时成本在对应的高正常运行时间比成本与低正常运行时间比成本之间。
计算实例配置还可包括具有一般或特定目的的计算实例,诸如用于计算密集型应用的计算工作负载(例如,高流量web应用、广告服务、批处理、视频编码、分布式分析、高能物理、基因组分析和计算流体动力学)、图形密集型工作负载(例如,游戏流、3D应用流、服务器侧图形工作负载、渲染、财务建模和工程设计)、存储器密集型工作负载(例如,高性能数据库、分布式存储器缓存、存储器中分析、基因组装配和分析)和存储优化工作负载(例如数据仓库和群集文件系统)。计算实例的大小,诸如特定数量的虚拟CPU内核、存储器、缓存、存储装置以及任何其他性能特征。计算实例的配置还可包括它们在特定数据中心、可用性区域、地理位置等中的位置以及(在保留的计算实例的情况下)保留期长度。
在各种实施方案中,提供商网络200还可实现用于执行存储操作的基于块的存储服务220。基于块的存储服务220是由多个独立存储节点224a、224b、224c至224n(例如,服务器块数据存储系统)的池组成的存储系统,其提供利用一个或多个永久性存储装置的块级存储装置226a、226b、226c至226n。维护的存储卷可被映射到特定客户端,从而提供虚拟的基于块的存储装置(例如,硬盘存储装置或其他永久性存储装置)作为逻辑块的连续集合。在一些实施方案中,存储卷可被划分成多个数据组块(包括一个或多个数据块),以用于执行其他块存储操作,诸如快照操作或复制操作。
存储卷的卷快照可以是存储卷的状态的固定时间点表示。在一些实施方案中,卷快照可从维护存储卷的存储节点224远程地存储,诸如存储在备份存储服务240中。可执行快照操作来发送、复制和/或以其他方式保留给定存储卷的快照在另一存储位置(诸如备份存储服务240中的远程快照数据存储区)中。
基于块的存储服务220可实现基于块的存储服务控制平面222以帮助基于块的存储服务220的操作。在各种实施方案中,基于块的存储服务控制平面222有助于管理至客户端的块数据存储装置的可用性,诸如在由虚拟计算服务230和/或位于提供商网络200内的其他基于网络的服务和/或可选地位于一个或多个其他数据中心内的计算系统(未示出)或者通过网络260可用的提供商网络200外部的其他计算系统(例如,客户端210)提供的计算实例上执行的程序。对存储节点224上的存储卷的访问可响应于块数据事务指令来通过提供商网络200内的内部网络或者通过网络260外部地提供。
基于块的存储服务控制平面222可提供与提供块级存储功能相关的各种服务,包括用户帐户的管理(例如,创建、删除、计费、收款等)。基于块的存储服务控制平面222可进一步提供响应于配置请求的与存储卷的创建、使用和删除以及缩放策略相关的服务。基于块的存储服务控制平面222还可提供与卷快照在备份存储服务240上的创建、使用和删除相关的服务。基于块的存储服务控制平面222还可提供与收集和处理与使用存储卷和那些卷的快照相关的性能和审计数据相关的服务。
基于块的存储服务220可以各种不同的方式来管理并维护存储卷。可针对维护存储卷的副本的两个或更多个存储节点中的一些数据卷实现不同的持久性方案。例如,可实现不同类型的镜像和/或复制技术(例如,RAID 1)以增加数据卷的持久性,诸如通过消除数据卷的单个故障点。为了提供对存储卷的访问,存储节点可随后在维护存储卷的副本的两个或多个存储节点之间协调诸如写入请求的I/O请求。
如上所述,提供商网络200还可实现备份存储服务240。备份存储服务240可提供如由基于块的存储服务220提供的相同或不同类型的存储装置。例如,在一些实施方案中,其他存储服务240可提供基于对象的存储服务,其可将数据作为数据对象存储并管理。例如,各种存储卷的卷快照可存储为特定存储卷的快照对象。除了备份存储服务240之外,提供商网络200可实现其他基于网络的服务250,其可包括允许客户端210以及提供商网络200的其他服务(例如,基于块的存储服务220、虚拟计算服务230和/或其他存储服务240)执行或请求各种任务的各种不同类型的分析、计算、存储或其他基于网络的系统。
客户端210可涵盖可配置来向网络提供商200提交请求的任何类型的客户端。例如,给定的客户端210可包括web浏览器的合适版本,或者可包括插件模块或其他类型的代码模块,其被配置来执行为对由web浏览器提供的执行环境的扩展或者在所述执行环境中执行。可替代地,客户端210可涵盖应用,诸如数据库应用(或其用户接口)、媒体应用、办公室应用或者可利用提供商网络200中的计算实例、存储卷或其他基于网络的服务的任何其他应用,以执行各种操作。在一些实施方案中,这种应用可包括用于生成并处理基于网络的服务请求的足够的协议支持(例如,用于超文本传输协议(HTTP)的合适版本),而不必对所有类型的基于网络的数据实现完整的浏览器支持。在一些实施方案中,客户端210可被配置来根据基于表述性状态转移(REST)类型的网络的服务架构、基于文档或消息的服务架构、基于网络的服务架构或者另一合适的基于网络的服务架构来生成基于网络的服务请求。在一些实施方案中,客户端210(例如,计算客户端)可被配置来以对在客户端210上实现的应用透明的方式提供对计算实例或存储卷的访问,所述客户端210利用由计算实例提供的计算资源或由存储卷提供的块存储装置。在至少一些实施方案中,客户端210可提供、安装和配置在基于块的存储服务220处实现用于在客户端210处实现的文件系统的存储卷。
客户端210可通过外部网络260向提供商网络200传送基于网络的服务请求。在各种实施方案中,外部网络260可涵盖在客户端210与提供商网络200之间建立基于网络的通信所必需的网络硬件和协议的任何合适的组合。例如,网络260通常可涵盖共同实现互联网的各种电信网络和服务提供商。网络260还可包括专用网络诸如局域网(LAN)或广域网(WAN)以及公共或专用无线网络。例如,给定的客户端210和提供商网络200都可分别在具有其自己的内部网络的企业内部供应。在这种实施方案中,网络260可包括在给定客户端210与互联网之间以及在互联网与提供商网络200之间建立网络链接所需的硬件(例如,调制解调器、路由器、交换机、负载平衡器、代理服务器等)和软件(例如,协议栈、计费软件、防火墙/安全软件等)。应注意,在一些实施方案中,客户端210可使用专用网络而不是公共互联网与提供商网络200进行通信。
上文讨论的各种存储客户端可以许多方式来实现。图3是根据一些实施方案的示出存储客户端的各种部件的框图。可以是客户端210、虚拟计算实例232或上文讨论的内部客户端的存储客户端300可通过网络360(与上文的网络260类似)与基于块的服务370进行通信。在一些实施方案中,基于块的存储服务370可类似于基于块的存储服务220。存储客户端300可安装在基于块的存储装置系统370中维护以用于在存储客户端300处实现的文件系统的存储卷372。
在各种实施方案中,存储客户端300可实现文件系统管理器310,所述文件系统管理器310可被配置来在存储客户端300的各个部件之间引导输入/输出(I/O)。在各种实施方案中,文件系统管理器310可被实现为用于存储客户端300的操作系统中的内核的一部分。文件系统管理器310可在其他I/O之中处理对文件系统的改变。文件系统管理器310可实现缩放管理模块314以处理来自控制平面374的基于块的存储服务370中的存储卷372的缩放事件的各种指示。例如,缩放管理模块314可执行下文关于图6和图7所讨论的各种技术,以更新在存储客户端300处维护的文件系统。例如,调整大小操作以更新文件系统的各种元数据和信息结构(未示出)。在一些实施方案中,缩放管理模块314可收集各种文件系统性能度量(例如,存储容量、访问模式、I/O性能)并将其发送到控制平面374。在至少一些实施方案中,控制平面374可至少部分地基于在存储客户端处收集的性能度量来检测存储卷的缩放事件。在各种实施方案中,文件系统管理器310可实现备份管理模块316。备份管理模块368可将文件系统的快照引导或发送到备份存储装置,诸如可由上文图2中的备份存储服务240提供。
图4是根据一些实施方案的示出基于块的存储服务的各种部件的框图。一个或多个计算节点或系统,诸如下文在图8中描述的计算系统1000,可实现基于块的服务400的各种部件。存储客户端450可通过网络452(类似于上文讨论的网络260)或者通过在上文讨论的提供商网络中的内部网络路径访问基于块的存储服务400(这可允许计算实例232与基于块的存储服务400通信)。
在各种实施方案中,基于块的存储服务400可实现前端模块412。前端模块412可被配置来接收服务请求并转发请求或从资源管理模块414、动态卷缩放模块418或资源监测器416开始适当响应。在各种实施方案中,前部模块410可被配置来根据用于服务400的编程接口(API)来转换针对基于块的存储服务400的请求和/或接收、处理、指示通过另一接口接收的请求,诸如通过网站实现的用户接口或在使用编程接口的存储客户端450处的命令行接口。
在各种实施方案中,基于块的存储服务400可实现资源管理模块414。资源管理模块414可被配置来为客户端450提供存储卷并且接受存储卷的缩放策略。例如,资源管理器414可存储将在基于块的存储服务400处的特定帐户(和相关联的存储卷)链接到特定客户端450的信息。例如,作为缩放事件的结果,可确定不同的存储卷成本。链接到存储卷的帐户信息可允许存储卷的计量和计费被添加到正确帐户。在一些实施方案中,资源管理模块414可存储/管理用于客户端450访问存储卷的访问凭证或其他信息。在一些实施方案中,资源管理模块414可实现各种锁定或同步方案,以允许多个存储客户端450访问同一个存储卷。资源管理模块412可被配置来提供存储资源,诸如存储节点420上的卷存储装置426的部分。资源管理模块414还可向客户端450或实例提供访问凭证和其他标识信息,以便访问特定客户端450的存储卷。
在各种实施方案中,基于块的存储服务400可实现资源监测器416。资源监测器416可向存储节点420接收性能度量并且/或者执行健康检查。资源监测器416可向资源管理器414(以执行各种资源管理操作)和动态卷缩放模块418分析、集合和/或提供此数据。例如,资源管理模块414可被配置来基于由资源监测器416收集的性能度量和其他信息来进行用于提供或获取新的存储装置/移除存储装置以用于缩放操作的放置决定。在至少一些实施方案中,资源监测器416可提供基于统计的预测,针对所述预测,存储节点可基于那些卷的缩放历史来为存储卷接受更多数据。
在各种实施方案中,基于块的存储服务可实现动态卷缩放模块418以动态地缩放存储卷。如关于下文的图5和图6更详细地讨论的,动态卷缩放模块418可检测特定存储卷的存储缩放事件、根据缩放事件修改存储资源、并向缩放事件的存储客户端提供指示。在至少一些实施方案中,动态卷缩放模块可检测针对各种基于块的存储服务性能准则触发的缩放事件。例如,某些存储节点420可被识别为“热点”,从而接收比其他存储节点更大比例的网络流量。可触发卷缩放事件以将一些卷存储装置重新分配到其他存储节点,以便减少引导至热点的网络流量。动态卷缩放模块418还可引导针对被缩放的存储卷的各种存储维护操作的执行。例如,可执行碎片整理操作以减少存储节点420处的卷存储装置426中的未使用的存储空间。各种其他压缩、回收和/或重组技术可直接来自动态卷缩放模块418(或控制平面410的其他部件或存储节点422处的I/O管理器422)。
基于块的存储服务400可实现多个存储节点420以为在基于块的存储服务400处维护的存储卷提供永久性存储装置。存储节点420可以是一个或多个计算系统或装置,诸如存储服务器或其他计算系统(例如,下文关于图8描述的计算系统1000)。每个存储节点420可维护卷存储装置426中存储卷的各自副本或一部分。存储节点420还可提供多租户存储装置。例如,在一些实施方案中,存储节点可维护用于多个存储客户端450的卷存储装置426中的存储卷。卷存储装置426可将它们各自的数据卷保持在可直接附接到实现各自的存储节点420的计算系统或装置的一个或多个基于块的存储装置(例如,硬盘驱动器、固态驱动器等)中。在各种实施方案中,存储节点可具有不同类型的存储装置的配置,以使得一些存储卷可在具有对应的存储装置的存储节点上实现,以提供请求的性能特征(例如,SSD上的高度供应的存储卷)。
基于块的存储服务400可以各种不同的方式来管理并维护存储卷。可在维护数据卷的相同副本的两个或更多个存储节点中针对一些存储卷实现不同的持久性方案,从而建立存储卷的持久性状态。例如,可实现不同类型的镜像和/或复制技术(例如,RAID 1)以增加存储卷的持久性,诸如通过消除存储卷的单个故障点。为了提供对数据卷的访问,存储节点420随后可在维护存储卷的副本的两个或多个存储节点之间协调诸如写入请求的I/O请求。例如,对于给定存储卷,一个存储节点可用作主存储节点。在各种实施方案中,主存储节点可从存储卷的客户端接收并处理请求(例如,I/O请求)。因此,主存储节点可随后协调诸如写入请求的I/O请求的复制,或者协调对用作从存储节点的一个或多个其他存储节点的存储卷的任何其他改变或修改。因此,当在存储节点处接收到用于存储卷的写入请求时,存储节点可将写入请求转发到另一个存储节点,并等待直到存储节点在完成写入之前将写入请求确认为完成。主存储节点可引导存储卷的其他操作,如同快照操作或其他I/O操作(例如,服务于读取请求)。请注意,在一些实施方案中,可为每个数据卷分配主存储节点和从存储节点的角色。
存储节点420可实现各自的I/O管理器,诸如I/O管理器422。I/O管理器422可处置针对在特定存储节点处维护的数据卷的I/O请求。因此,例如,I/O管理器422可处理并处置对存储节点处的存储卷的写入请求。I/O管理器422可被配置来根据基于块的存储服务应用编程接口(API)和/或诸如互联网小型计算机系统接口(iSCSI)的其他通信协议来处理I/O请求。在一些实施方案中,I/O管理器340可为存储卷(或因此在存储节点420处维护的部分)实现文件系统映射信息。在各种实施方案中,文件系统I/O可使用文件系统映射信息来进行服务。
请注意,图4的先前描述仅用于说明的目的,并且并不旨在限制实现所描述的功能的各种部件的数量、布置或配置。
图5是根据一些实施方案的示出存储客户端与实现动态存储卷缩放的基于块的存储服务之间的交互的框图。存储客户端510(或代表存储客户端510行动的另一个客户端装置)可通过存储服务接口580(例如,API或GUI)向存储服务控制平面520发送用于存储卷的请求561。请求可包括各种参数,包括存储卷的初始大小以及在创建时格式化存储卷的文件系统配置。在各种实施方案中,请求561可通过存储服务接口580指定用于存储卷的缩放策略。请注意,可进行指定缩放策略的单独请求,以及更新、替换和/或移除缩放策略(未示出)的各种请求。存储控制平面520可跨一个或多个存储资源(诸如存储节点530)来提供存储卷563。一旦提供,存储服务控制平面520就可通过存储服务接口580向存储客户端510提供存储卷端点565。例如,iSCSI目标可提供给存储客户端510。
在一些实施方案中,存储客户端510可随后对存储节点530处维护的存储卷启动文件系统I/O。可根据诸如iSCSI的基于网络的存储协议582来执行文件系统I/O。性能度量569以及与监测存储卷有关的其他信息可从存储节点530报告给存储服务控制平面520。在一些实施方案中,存储客户端510可将性能度量589(其中一些可能无法在存储服务处收集)发送到将要用于检测缩放事件的存储服务控制平面520。如果检测到针对存储卷的缩放事件,那么存储服务控制平面520可修改永久性存储装置以缩放存储卷571。例如,可向存储节点530发送各种复制、移动、分配、删除或碎片整理命令。存储服务控制平面520还可通过存储服务接口580向存储客户端510提供存储卷573的缩放事件的指示。在至少一些实施方案中,存储客户端510可通过存储服务接口580提供缩放事件响应575,其可用于协调和/或执行永久性存储装置的修改以缩放存储卷571。因此,请注意,可在不同时间发送和/或接收图5所示的各种消息,并且因此,前面的描述不旨在是限制性的。一旦文件系统被更新,存储客户端510就可对缩放的存储卷执行更新的文件系统I/O 577。应注意,在至少一些实施方案中,执行存储卷的缩放以使得存储卷在线并且能够继续接受文件系统I/O。
应注意,在各种实施方案中,可通过安全代理连接(例如,由网关控制平面管理进入服务和/或提供商网络中的连接)或者可通过公共网络或者可替代地通过诸如虚拟专用网(VPN)连接的专用信道来执行在上文图1至图5和下文图6至图7中描述的基于网络或编程接口(例如API)调用和响应。可根据不同的技术来实现到本文描述的系统部件和/或所述系统部件之间的这些和其他API,所述不同的技术包括但不限于简单对象访问协议(SOAP)技术和表述性状态转移(REST)技术。例如,这些API可能但不一定被实现为SOAP API或RESTful API。SOAP是用于在基于网络的服务的情况下交换信息的协议。REST是分布式超媒体系统的架构风格。RESTful API(也可称为RESTful基于网络的服务)是使用HTTP和REST技术实现的基于网络的服务API。在一些实施方案中,本文描述的API可包装有各种语言的客户端库,包括但不限于C、C++、Java、C#和Perl,以支持与基于网络的数据存储区的集成、实现远程持久记录的客户端装置或者其他系统、服务、部件或装置。
以上关于上述图2至图5所讨论的用于存储客户端文件系统的存储卷的动态缩放的各种实施方案可以不同的方式执行动态缩放。此外,用于存储客户端文件系统的存储卷的动态缩放不限于这类系统。除了示例性块存储服务之外,各种其他种类的存储系统可实现动态缩放。此外,文件系统本身在类型、方案或实现上可能有很大差异。许多不同的装置还可实现对用于存储客户端文件系统的存储卷的动态缩放,包括移动计算装置,诸如平板计算机、膝上计算机、移动电话或个人数字助理。图6是根据一些实施方案的示出用于实现用于存储客户端文件系统的存储卷的动态缩放的方法和技术的高级流程图。系统和/或装置的不同组合可实现下文讨论的各种技术。
如610处所指示,在各种实施方案中,存储卷可在实现为基于网络的数据存储区的一部分的存储装置中提供。基于网络的数据存储区可以是基于块的数据存储区或者在存储客户端处实现的文件系统可利用的其他数据存储区。存储客户端可以是可被配置来将存储卷安装在基于网络的数据存储区中以用作用于在存储客户端处实现的文件系统的存储装置的任何系统、程序或装置。在至少一些实施方案中,基于网络的存储协议(例如,互联网小型计算机串行接口(iSCSI))可用于在存储客户端与基于网络的数据存储区中的存储卷之间进行安装和通信。在一些实施方案中,多个存储客户端可访问同一个存储卷,并且每个可因此执行下文描述的技术。
在至少一些实施方案中,缩放策略可随提供存储卷的请求包括。例如,可使用诸如API或GUI的基于网络的接口来提交提供请求并为存储卷定义缩放策略。缩放策略可包括一个或多个多重条件。例如,缩放策略可定义不同的阈值或警报,以及如果遇到或触发而产生的缩放动作。例如,存储卷处可用存储容量的量可具有下限阈值和/或上限阈值,如果超出,则使存储卷中的存储容量的量相应地增加或减少。类似地,在另一示例中,存储卷的性能特征,诸如在存储存储卷的部分(或全部)的一个或多个存储装置处的每秒输入/输出操作(IOP)的数量。缩放策略可定义响应于触发报警而采取的动作。例如,缩放策略可定义可增加或减少存储卷的速率或量。在一些实施方案中,缩放策略可指示维护存储卷的一部分(或全部)的多个副本或节点,以指示是否应此重新分配此卷。在一些实施方案中,如果基于网络的数据存储区是存储服务,那么缩放策略可根据成本阈值来定义。在一些实施方案中,可使用API来描述缩放策略并将其提供给基于网络的数据存储区,诸如通过将各种信息输入到多个不同的请求字段和/或消息标志中。可使用各种人类可读和/或脚本技术(例如,XML或JSON)来定义缩放策略。在各种实施方案中,缩放策略可被修改、替换和或删除。在至少一些实施方案中,缩放策略可由客户端和/或基于网络的提供商来修改或移除。
在各种实施方案中,如620处所指示,可监测存储卷(或者如果跨基于网络的数据存储区监测的存储卷)。可收集和/或分析各种性能度量、流量度量和/或指示是否发生缩放事件的任何其他信息。在一些实施方案中,控制平面或其他监测部件可从维护存储卷的各种存储节点或部件接收报告,或者与存储卷交互(例如,负载平衡器或其他流量控制器)。在一些实施方案中,存储客户端还可提供各种性能度量。在各种实施方案中,可根据用于存储卷的指定的缩放策略来检测缩放事件,如由来自630的肯定退出所指示。缩放事件可由用于存储卷的缩放策略的条件的失败/满足来触发,这可基于对性能度量的分析来识别。在各种实施方案中,触发的缩放事件可指示在缩放策略中定义的对应的响应动作。
在一些实施方案中,基于网络的数据存储区策略、放置方案或其他服务管理操作或约束可充当针对存储卷指定的默认缩放策略。例如,如果特定存储节点(其可以是多个不同存储卷的多租户托管部分)上的可用存储容量,那么可检测缩放事件。对于特定存储节点上的一个或多个存储卷,缩放事件可触发存储卷重新分配到一个或多个新的存储位置(这可导致基于存储卷的修改的存储位置的文件系统改变)。类似地,热管理、流量控制和/或其他存储系统问题可触发缩放事件以将用于处置文件系统I/O请求的工作负载重新分配(或整合)到存储卷。
如果没有检测到存储卷的缩放事件,那么如由来自620的否定退出所指示,可继续监测存储卷。如果检测到存储卷的缩放事件,那么如由来自630的肯定退出所指示,可动态缩放存储卷。如640处所指示,在各种实施方案中,可根据缩放策略修改维护存储卷的存储装置,以动态地缩放存储卷。因此,可将当前存储资源和装置的部分或新的存储资源或装置(例如,磁盘驱动器或存储节点)添加以维护存储卷或者从维护存储卷中移除。在至少一些实施方案中,永久性存储装置的修改可响应于从存储客户端接收到的信息来执行。例如,如下文关于图7更详细地讨论的,文件系统可确定从存储卷移除哪些存储位置,以便将存储卷缩放成较小大小。如上所述,可根据缩放策略来执行永久性存储装置的修改,所述缩放策略可例如限制存储容量和/或存储带宽(例如,IOP)可针对存储卷增加或减少的速率。
如650处所指示,在各种实施方案中,可为存储客户端指示针对存储卷检测到的缩放事件。可提供指示,以使得存储客户端处的文件系统被更新以利用缩放的存储卷。例如,在一些实施方案中,指示可提供在存储客户端处的用于文件系统的执行调整大小操作的信息或参数,诸如通过提供在存储卷处增加或减少的存储装置的量(例如,数据块的数量/页数)。所述指示可提供在存储客户端处操作的操作系统或基于网络的数据存储代理可执行以更新文件系统的脚本或可执行文件。在一些实施方案中,缩放事件的指示可向存储客户端提供对存储卷的改变的简单通知。对文件系统的更新可以是简单地考虑增加或减少的存储装置,因为基于网络的数据存储区可维护映射信息以链接新的/重新配置的存储位置来作为存储卷的缩放事件的结果,其中那些存储位置在缩放事件(将用于调整大小操作的负担诸如文件碎片整理转移到基于网络的数据存储区而不是存储客户端处的文件系统)之前被呈现给存储客户端。
如前所述,在存储客户端处实现的文件系统可以不同的方式响应基于网络的数据存储区中的缩放的存储卷。例如,一些文件系统可实现在线调整大小功能,以使得其可足以向存储客户端提供缩放存储节点的大小的指示,从而允许文件系统根据所指示的大小进行更新而无需进一步的帮助或与基于网络的数据存储区的交互。然而,一些文件系统可与控制平面(或引导存储卷重新缩放的其他基于网络的数据存储区部件)进行交互、协作和/或协调,以更新存储客户端处的文件系统和/或在基于网络的数据存储区处重新缩放存储卷。图7是根据一些实施方案的示出用于根据用于文件系统的存储卷的缩放事件来更新文件系统的方法和技术的高级流程图。
在各种实施方案中,可在存储客户端处不同地处置不同类型的缩放事件,诸如增长或减少存储卷的缩放事件。如710处所指示,在一些实施方案中,可在存储客户端处接收增长在基于网络的数据存储区处实现的用于在存储客户端处实现的文件系统的存储卷的缩放事件的指示。在各种实施方案中,所述指示可提供增加量。例如,所述指示可提供分配给缩放的存储卷的附加数据块或存储空间页的数量。在一些实施方案中,可指示诸如分配给存储卷的特定逻辑块的映射信息,或者可为在存储客户端处的文件系统留下/保留这种确定。
如720处所指示,在各种实施方案中,可根据所指示的缩放事件来更新文件系统以包括存储卷的附加存储容量。例如,文件系统可运行一个或多个配置操作来更新文件系统元数据和/或其他文件系统结构,以使得可利用附加存储空间的存储客户端处的其他程序、应用、部件或装置可访问附加的存储容量。索引结构、超级块和/或索引节点是在更新文件系统以利用缩放的存储卷时可修改的许多不同的文件系统结构中的一些。一旦文件系统被更新以包括附加的存储容量,那么可利用更新的文件系统来访问缩放的存储卷以用于后续的文件系统输入/输出(I/O),如730处所指示。例如,存储客户端处的利用文件系统的程序、应用、部件或装置现在可创建、利用附加的存储容量以用于存储附加文件(或添加到现有文件)。
对于某些类型的缩放事件,文件系统可在缩放基于网络的数据处的存储卷中发挥更大的作用。例如,如730处所指示,在一些实施方案中,可在存储客户端处接收将用于在存储客户端处实现的文件系统的在基于网络的数据存储区处实现的存储卷减少的缩放事件的指示。所述指示可识别存储卷(例如,多个数据块或页面)的存储容量的减少。
在各种实施方案中,如740处所指示,可更新文件系统以回收分配给存储卷的存储空间,以便根据缩放事件来减少存储卷。例如,可执行一个或多个调整大小的操作来更新文件系统元数据和/或其他文件系统结构,以减少可利用存储空间的存储客户端处的其他程序、应用、部件或装置可访问的存储容量。索引结构、超级块和/或索引节点是在更新文件系统以利用缩放的存储卷时可修改的许多不同的文件系统结构中的一些。在至少一些实施方案中,作为更新文件系统的一部分,可在各种实施方案中识别用于回收的特定存储位置,以便提高用于减少的存储卷的文件系统的性能。例如,可选择某些存储位置以用于回收,以便将数据紧密地包装在剩余的存储位置中。存储客户端处的文件系统可了解哪些存储位置比基于网络的数据存储区更有利地回收(这对于存储客户端处的文件系统的实现可能是不可知的)。在各种实施方案中,可将响应发送到用于识别在基于网络的数据存储区处的永久性存储装置中回收的存储空间的存储卷的控制平面,如750处所指示。在至少一些实施方案中,存储卷的永久性存储装置可不被修改,直到接收到响应,从而识别特定的存储空间来进行回收(例如,识别特定逻辑数据块或页面)。
一旦文件系统被更新以移除存储卷中的回收的存储空间,那么就可使用更新的文件系统来访问缩放的存储卷以用于后续的文件系统输入/输出(I/O),如730处所指示。例如,存储客户端处的利用文件系统的程序、应用、部件或装置可不再使用回收的存储空间,或者在存储附加文件(或添加到现有文件)时可不再考虑存储空间。
尽管上述用于相对于元素730至750减少存储卷的示例涉及协调在存储客户端处的文件系统与基于网络的数据存储区之间的存储空间的回收,但是在至少一些实施方案中,基于网络数据存储区可维护用于服务文件系统I/O请求的映射信息,以使得基于网络的数据存储区可选择哪些要回收的存储空间(即,执行碎片整理),而不执行对存储空间的选择或在存储客户端处进行碎片整理。例如,从基于网络的数据存储区呈现给在存储客户端处的文件系统的逻辑块数量可不同于用于存储卷的永久性存储装置中的对应的逻辑块数量。映射信息可允许基于网络的数据存储区的控制平面或其他部件最优地选择存储空间以回收(即,碎片整理),而不在存储客户端上施加此工作负载。相反,在基于网络的数据存储区处接收到的来自存储客户端的文件系统I/O请求可根据维护用于服务请求的存储卷的映射信息来进行翻译。
本文描述的方法可在各种实施方案中通过硬件和软件的任何组合来实现。例如,在一个实施方案中,可由包括执行存储在耦合到处理器的计算机可读存储介质上的程序指令的一个或多个处理器的计算机系统(例如,如图8所示的计算机系统)来实现此方法。程序指令可被配置来实现本文所描述的功能(例如,各种服务器和实现本文描述的数据库服务/系统和/或存储服务/系统的其他部件的功能)。如图所示和本文描述的各种方法表示方法的示例性实施方案。可改变任何方法的顺序,且各种元素可被添加、重新排序、组合、省略、修改等。
鉴于以下条款,可更好地理解上述内容:
1.一种系统,其包括:
多个计算节点,所述多个计算节点实现为多个存储客户端维护一个或多个各自存储卷的基于块的存储服务;
多个存储节点,所述多个存储节点提供存储装置以维护所述多个存储卷;
所述多个计算节点中的实现用于所述基于块的存储服务的控制平面的至少一些,所述控制平面被配置来:
监测所述多个存储卷;
至少部分地基于所述多个存储卷的所述监测,根据所述多个存储卷的存储卷的指定缩放策略来检测所述存储卷的缩放事件,其中所述存储卷被安装在所述多个存储客户端的存储客户端处并且被配置用于文件系统;
响应于所述缩放事件的所述检测:
根据所述缩放策略修改分配给所述存储卷的所述存储装置以动态地缩放用于所述存储客户端的所述存储卷;以及
为所述存储客户端指示所述存储卷的所述缩放事件,以使得所述存储客户端处的所述文件系统被更新以利用所述修改的存储装置中的所述缩放的存储卷。
2.如条款1所述的系统,其中通过用于所述基于块的存储服务的接口从所述存储客户端接收用于所述存储卷的所述指定的缩放策略。
3.如条款1所述的系统,其还包括:
所述存储客户端,其被配置来:
接收所述存储卷的所述缩放事件的所述指示;
根据所述缩放事件更新所述文件系统;以及
利用所述更新的文件系统来访问所述缩放的存储卷,以用于后续的文件系统输入/输出(I/O)。
4.如条款1所述的系统,其还包括:
所述存储客户端,其被配置来:
收集所述文件系统的一个或多个性能度量;以及
将所述一个或多个性能度量发送到所述控制平面;以及
其中所述缩放事件的所述检测还基于在所述存储客户端处收集的所述一个或多个性能度量。
5.如条款1所述的系统,其中所述基于块的存储服务是实现为提供商网络的一部分的多个基于网络的服务中的一个,并且其中所述存储客户端被实现为所述提供商网络中的所述其他基于网络的服务中的一种的一部分。
6.一种方法,其包括:
由一个或多个计算装置执行:
维护被实现为用于存储客户端的基于网络的数据存储区的一部分的存储装置中的存储卷,其中所述存储卷被安装在所述存储客户端处并且被配置用于文件系统;
根据为所述存储卷指定的缩放策略来检测所述存储卷的缩放事件;
响应于检测所述存储卷的所述缩放事件:
根据所述缩放策略修改维护所述存储卷的所述存储装置以动态地缩放用于所述存储客户端的所述存储卷;以及
为所述存储客户端指示所述存储卷的所述缩放事件,以使得所述存储客户端处的所述文件系统被更新以利用所述修改的存储装置中的所述缩放的存储卷。
7.如条款6所述的方法,其中通过用于所述基于网络的数据存储区的接口从所述存储客户端接收用于所述存储卷的所述指定的缩放策略。
8.如条款6所述的方法,其中所述基于网络的数据存储区是多租户、基于块的存储服务,所述服务为包括所述存储客户端的多个不同的存储客户端维护包括所述存储卷的多个存储卷,其中维护所述存储卷的所述存储装置是维护所述多个存储卷的存储装置的集合的一部分,并且其中检测所述存储卷的所述缩放事件至少部分地基于监测维护所述多个存储卷的所述存储装置的集合。
9.如条款6所述的方法,其中所述缩放事件增长所述存储卷,并且其中修改维护所述存储卷的所述存储装置包括向所述存储卷分配附加的存储空间。
10.如条款9所述的方法,其还包括:
在所述存储客户端处接收所述存储卷的所述缩放事件的所述指示;
在所述存储客户端处根据所述缩放事件更新所述文件系统以包括用于所述存储卷的附加存储容量;以及
在所述存储客户端处利用所述更新的文件系统来访问所述缩放的存储卷,以用于后续的文件系统输入/输出(I/O)。
11.如条款6所述的方法,
其中所述维护、所述检测、所述修改和所述指示由用于所述基于网络的数据存储区的所述控制平面来执行;
其中所述缩放事件减少所述存储卷;
其中所述方法还包括:
在所述存储客户端处接收所述存储卷的所述缩放事件的所述指示;
在所述存储客户端处根据所述缩放事件更新所述文件系统以回收分配给所述存储卷的存储空间;
从所述存储客户端向识别将要在所述存储装置中回收的所述存储空间的用于基于网络的数据存储区的所述控制平面发送缩放事件响应;
在所述存储客户端处利用所述更新的文件系统来访问所述缩放的存储卷,以用于后续的文件系统输入/输出(I/O);以及
其中修改维护所述存储卷的所述存储装置包括回收所述存储装置的所述识别的存储空间。
12.如条款6所述的方法,其中在不拆卸所述存储卷的情况下执行所述检测、所述修改和所述指示。
13.如条款6所述的方法,其中所述基于网络的数据存储区是多租户、基于块的存储服务,并且其中所述存储客户端是所述基于块的存储服务的多个存储客户端中的一个。
14.如条款13所述的方法,其中所述基于块的存储服务是实现为提供商网络的一部分的多个基于网络的服务中的一个,其中所述多个存储客户端中的至少一个另一个存储客户端被实现为所述提供商网络中的所述其他基于网络的服务中的一个的一部分,并且其中所述存储客户端被在所述提供商网络的外部实现。
15.一种非暂时性计算机可读存储介质,其存储当由一个或多个计算装置执行时引起所述一个或多个计算装置实现以下各项的程序指令:
监测在被实现为用于存储客户端的基于网络的数据存储区的一部分的基于块的存储装置中维护的存储卷,其中所述存储卷被安装在所述存储客户端处并且被配置用于文件系统;
至少部分地基于所述监测,根据为所述存储卷指定的缩放策略来检测所述存储卷的缩放事件;
响应于检测所述存储卷的所述缩放事件:
根据所述缩放策略修改维护所述存储卷的所述基于块的存储装置以动态地缩放用于所述存储客户端的所述存储卷;以及
为所述存储客户端指示所述存储卷的所述缩放事件,以使得所述存储客户端处的所述文件系统被更新以利用所述修改的基于块的存储装置中的所述缩放的存储卷。
16.如条款15所述的非暂时性计算机可读存储介质,其中通过用于所述基于网络的数据存储区的接口从所述存储客户端接收用于所述存储卷的所述指定的缩放策略。
17.如条款15所述的非暂时性计算机可读存储介质,其中所述缩放事件减少所述存储卷,并且其中在修改维护所述存储卷的所述存储装置时,所述程序指令引起所述一个或多个计算装置实现回收所述存储装置的分配给所述存储卷的存储空间。
18.如条款15所述的非暂时性计算机可读存储介质,其中所述缩放事件增长所述存储卷,并且其中在修改维护所述存储卷的所述存储装置时,所述程序指令引起所述一个或多个计算装置实现将附加的存储空间分配给所述存储卷。
19.如条款15所述的非暂时性计算机可读存储介质,其中所述程序指令引起所述一个或多个计算装置进一步实现:
在所述存储客户端处接收所述存储卷的所述缩放事件的所述指示;
在所述存储客户端处根据所述缩放事件更新所述文件系统;以及
在所述存储客户端处利用所述更新的文件系统来访问所述缩放的存储卷,以用于后续的文件系统输入/输出(I/O)。
20.如条款15所述的非暂时性计算机可读存储介质,其中所述程序指令进一步引起所述一个或多个计算装置实现:
响应于检测到所述缩放事件,根据所述缩放事件更新在所述基于网络的数据存储区处维护的映射信息,以便服务引导到所述缩放的存储卷的文件系统输入/输出(I/O)。
21.如条款15所述的非暂时性计算机可读存储介质,其中执行所述映射信息的所述更新,以使得使得在所述存储客户端处的所述文件系统被更新,而不对所述缩放的存储卷进行碎片整理。
22.如条款15所述的非暂时性计算机可读存储介质,其中在修改维护所述存储卷的所述基于块的存储装置以动态地缩放用于所述存储客户端的所述存储卷时,所述程序指令进一步引起所述一个或多个计算装置实现:
在维护所述存储卷的所述基于块的存储装置处执行针对所述存储卷的一个或多个存储维护操作。
23.如条款15所述的非暂时性计算机可读存储介质,其中所述基于网络的数据存储区是多租户、基于块的存储服务,其中所述基于块的存储服务是实现为提供商网络的一部分的多个基于网络的服务中的一个,并且其中所述存储客户端被实现为所述提供商网络中的所述其他基于网络的服务中的一个的一部分。
图8是根据各种实施方案的示出被配置来实现用于如本文所述的存储客户端文件系统的存储卷的动态缩放的计算机系统的框图。例如,在不同的实施方案中,计算机系统1000可被配置来实现用于与文件系统改变日志的远程版本交互的客户端装置或基于网络的存储系统的多个节点或部件之一或者日志文件系统服务。计算机系统1000可以是各种类型的装置中的任何一种,包括但不限于个人计算机系统、台式计算机、膝上型计算机或笔记本计算机、大型计算机系统、手持计算机、工作站、网络计算机、消费者装置、应用服务器、存储装置、电话、移动电话或者通常是任何类型的计算装置。
计算机系统1000包括通过输入/输出(I/O)接口1030耦合到系统存储器1020的一个或多个处理器1010(其中任一个可包括可以是单线程或多线程的多个核)。计算机系统1000还包括耦合到I/O接口1030的网络接口1040。在各种实施方案中,计算机系统1000可以是包括一个处理器1010的单一处理器系统,或包括若干处理器1010(例如两个、四个、八个或另一合适数量)的多处理器系统。处理器1010可以是能够执行指令的任何合适的处理器。例如,在各种实施方案中,处理器1010可以是实现各种指令集架构(ISA)中任何一种架构的通用或嵌入式处理器,所述架构诸如x86、PowerPC、SPARC、或MIPS ISA或任何其他合适ISA。在多处理器系统中,每一个处理器1010可通常但不一定实现相同的ISA。计算机系统1000还包括用于通过通信网络(例如,互联网、LAN等)与其他系统和/或部件通信的一个或多个网络通信装置(例如,网络接口1040)。例如,在系统1000上执行的客户端应用可使用网络接口1040与在单个服务器上或在实现本文所描述的基于网络的服务的一个或多个部件的服务器集群上执行的服务器应用进行通信。在另一示例中,在计算机系统1000上执行的服务器应用的实例可使用网络接口1040与可在其他计算机系统(例如,计算机系统1090)上实现的服务器应用(或另一服务器应用)的其他实例进行通信。
在所示实施方案中,计算机系统1000还包括一个或多个永久性存储装置1060和/或一个或多个I/O装置1080。在各种实施方案中,永久性存储装置1060可对应于磁盘驱动器、磁带驱动器、固态存储器、其他大容量存储装置或任何其他永久性存储装置。计算机系统1000(或其上操作的分布式应用或操作系统)可根据需要将指令和/或数据存储在永久性存储装置1060中,并且可根据需要检索存储的指令和/或数据。例如,在一些实施方案中,计算机系统1000可托管存储系统服务器节点,并且永久性存储装置1060可包括附接到此服务器节点的SSD。
计算机系统1000包括被配置来存储处理器1010可访问的指令和数据的一个或多个系统存储器1020。在各种实施方案中,系统存储器1020可使用任何合适的存储器技术(例如,高速缓存、静态随机存取存储器(SRAM)、DRAM、RDRAM、EDO RAM、DDR 10RAM、同步动态RAM(SDRAM)、Rambus RAM、EEPROM、非易失性/闪存型存储器或任何其他类型的存储器)来实现。系统存储器1020可包含程序指令1025,所述程序指令1025可由处理器1010执行以实现本文描述的方法和技术。在各种实施方案中,程序指令1025可以平台本机二进制、任何解释语言(诸如JavaTM字节代码)或者以任何其他语言(诸如C/C++、Java TM等)或者以其任何组合来进行编码。例如,在所示实施方案中,程序指令1025包括可执行以在不同实施方案中实现日志文件系统管理器或基于网络的服务的多个节点中的一个的功能的程序指令。在一些实施方案中,程序指令1025可实现多个单独的客户端、服务器节点和/或其他部件。
在一些实施方案中,程序指令1025可包括可执行以实现操作系统(未示出)的指令,所述操作系统可以是诸如UNIX、LINUX、SolarisTM、MacOSTM、WindowsTM等的各种操作系统中的任何一个。程序指令1025中的任何或全部可被提供为计算机程序产品或软件,其可包括其上存储有指令的非暂时性计算机可读存储介质,其可用于对计算机系统(或其他电子装置)进行编程以执行根据各种实施方案的过程。非暂时性计算机可读存储介质可包括用于以机器(例如,计算机)可读的形式(例如,软件、处理应用)存储信息的任何机制。一般来说,非暂时性计算机可访问介质可包括计算机可读存储介质或存储器介质,诸如磁介质或光介质,例如通过I/O接口1030耦合到计算机系统1000的磁盘或DVD/CD-ROM。非暂时性计算机可读存储介质还可包括可作为系统存储器1020或另一类型的存储器被包括在计算机系统1000的一些实施方案中的任何易失性或非易失性介质,诸如RAM(例如,SDRAM、DDRSDRAM、RDRAM、SRAM等)、ROM等。在其他实施方案中,可使用通过诸如网络和/或无线链路的通信介质传送的光、声或其他形式的传播信号(例如,载波、红外信号、数字信号等)来传送程序指令,诸如这可通过网络接口1040来实现。
在一些实施方案中,系统存储器1020可包括数据存储区1045,其可如本文所述地来配置。例如,本文描述为由基于网络的存储系统存储的信息可在不同的时间和在各种实施方案中存储在数据存储区1045中或一个或多个节点上的系统存储器1020的另一部分中,存储在永久性存储装置1060中,和/或存储在一个或多个远程存储装置1070上。类似地,本文描述为存储的信息可在不同的时间和在各种实施方案中存储在数据存储区1045中或一个或多个节点上的系统存储器1020的另一部分中,存储在永久性存储装置1060中,和/或存储在一个或多个远程存储装置1070上。一般来讲,系统存储器1020(例如,系统存储器1020内的数据存储区1045)、永久性存储装置1060和/或远程存储装置1070可存储数据块、数据块的副本、与数据块相关联的元数据和/或其状态、配置信息和/或可用于实现本文描述的方法和技术的任何其他信息。
在一个实施方案中,I/O接口1030可被配置来协调处理器1010、系统存储器1020和系统中的任何外围装置之间的I/O流量,包括通过网络接口1040或其他外围接口。在一些实施方案中,I/O接口1030可执行任何必需协议、时序或其他数据转换以便将来自一个部件(例如,系统存储器1020)的数据信号转换成适合于由另一个部件(例如,处理器1010)使用的格式。在一些实施方案中,I/O接口1030可包括对于通过各种类型的外围总线附接的装置的支持,所述外围总线例如外围部件互连(PCI)总线标准或通用串行总线(USB)标准的改变形式。在一些实施方案中,I/O接口1030的功能可分成两个或更多个单独的部件中,例如像北桥和南桥。另外,在一些实施方案中,I/O接口1030的一些或所有功能,诸如到系统存储器1020的接口,可直接并入处理器1010中。
例如,网络接口1040可被配置来允许在计算机系统1000和附接到网络的其他装置(诸如其他计算机系统1090(其可实现实现基于网络的服务的一个或多个节点和/或如本文所描述的客户端))之间交换数据。此外,网络接口1040可被配置来允许计算机系统1000与各种I/O装置1050和/或远程存储装置1070之间的通信。在一些实施方案中,输入/输出装置1050可包括一个或多个显示终端、键盘、小键盘、触摸板、扫描装置、语音或光学识别装置或适合于通过一个或多个计算机系统1000输入或检索数据的任何其他装置。多个输入/输出装置1050可存在于计算机系统1000中,或者可分布在包括计算机系统1000的分布式系统的各个节点上。在一些实施方案中,类似的输入/输出装置可与计算机系统1000分离,并且可通过有线或无线连接(诸如通过网络接口1040)与包括计算机系统1000的分布式系统的一个或多个节点进行交互。网络接口1040可共同支持一个或多个无线网络协议(例如,Wi-Fi/IEEE 802.11或另一无线网络标准)。然而,在各种实施方案中,网络接口1040可支持通过任何合适的有线或无线通用数据网络(例如像其他类型的以太网网络)进行通信。另外,网络接口1040可支持通过电信/电话网络(诸如模拟语音网络或数字光纤通信网络)、通过存储区域网络(诸如光纤信道SAN)或通过任何其他合适类型的网络和/或协议进行通信。在各种实施方案中,计算机系统1000可包括比图8所示的更多、更少或不同的部件(例如,显示器、视频卡、音频卡、外围装置、其他网络接口诸如ATM接口、以太网接口、帧中继接口等)
应当注意,本文描述的任何分布式系统实施方案或其任何部件可被实现为一个或多个基于网络的服务。例如,存储服务内的存储节点可呈现数据库服务和/或将本文描述的分布式存储系统对客户端采用作为基于网络的服务的其他类型的数据存储服务。在一些实施方案中,基于网络的服务可由软件和/或硬件系统来实现,所述软件和/或硬件系统被设计来通过网络支持彼此协作的机器对机器交互。基于网络的服务可具有以机器可处理的格式描述的接口,诸如Web服务描述语言(WSDL)。其他系统可以以由基于网络的服务接口的描述规定的方式来与基于网络的服务进行交互。例如,基于网络的服务可定义其他系统可调用的各种操作,并且可定义在请求各种操作时可能期望其他系统符合的特定应用编程接口(API)。
在各种实施方案中,可通过使用包括与基于网络的服务请求相关联的参数和/或数据的消息来请求或调用基于网络的服务。这种消息可根据诸如可扩展标记语言(XML)的特定标记语言来格式化,和/或可使用诸如简单对象访问协议(SOAP)的协议来进行封装。为了执行基于网络的服务请求,基于网络的服务客户端可组装包括请求的消息,并且使用基于互联网的应用层传输协议(诸如超文本传输协议(HTTP))将消息传送到与基于网络的服务相对应的可寻址端点(例如,统一资源定位符(URL))。
在一些实施方案中,可使用表述性状态转移(“RESTful”)技术而不是基于消息的技术来实现基于网络的服务。例如,可通过包括在诸如PUT、GET或DELETE的HTTP方法内而不是封装在SOAP消息内的参数来调用根据RESTful技术实现的基于网络的服务。
尽管已经相当详细地描述了上述实施方案,但是一旦完全理解上述公开内容,就可进行许多变化和修改,这对于本领域技术人员将是明显的。旨在将以下权利要求解释为包含所有此类修改和变化,并且相应地,以上描述应视为具有说明性而非限制性意义。

Claims (15)

1.一种系统,其包括:
多个计算节点,所述多个计算节点实现为多个存储客户端维护一个或多个各自存储卷的基于块的存储服务;
多个存储节点,所述多个存储节点提供存储装置以维护所述多个存储卷;
所述多个计算节点中的实现用于所述基于块的存储服务的控制平面的至少一些,所述控制平面被配置来:
监测所述多个存储卷;
至少部分地基于所述多个存储卷的所述监测,根据用于所述多个存储卷的存储卷的指定缩放策略来检测所述存储卷的缩放事件,其中所述存储卷被安装在所述多个存储客户端的存储客户端处并且被配置用于文件系统;
响应于所述缩放事件的所述检测:
根据所述缩放策略修改分配给所述存储卷的所述存储装置以动态地缩放用于所述存储客户端的所述存储卷;以及
为所述存储客户端指示所述存储卷的所述缩放事件,以使得所述存储客户端处的所述文件系统被更新以利用所述修改的存储装置中的所述缩放的存储卷。
2.如权利要求1所述的系统,其还包括:
所述存储客户端,其被配置来:
接收所述存储卷的所述缩放事件的所述指示;
根据所述缩放事件更新所述文件系统;以及
利用所述更新的文件系统来访问所述缩放的存储卷,以用于后续的文件系统输入/输出(I/O)。
3.如权利要求1所述的系统,其还包括:
所述存储客户端,其被配置来:
收集所述文件系统的一个或多个性能度量;以及
将所述一个或多个性能度量发送到所述控制平面;以及
其中所述缩放事件的所述检测还基于在所述存储客户端处收集的所述一个或多个性能度量。
4.一种方法,其包括:
由一个或多个计算装置执行:
维护被实现为用于存储客户端的基于网络的数据存储区的一部分的存储装置中的存储卷,其中所述存储卷被安装在所述存储客户端处并且被配置用于文件系统;
根据为所述存储卷指定的缩放策略来检测所述存储卷的缩放事件;
响应于检测所述存储卷的所述缩放事件:
根据所述缩放策略修改维护所述存储卷的所述存储装置以缩放用于所述存储客户端的所述存储卷;以及
为所述存储客户端指示所述存储卷的所述缩放事件,以使得所述存储客户端处的所述文件系统被更新以利用所述修改的存储装置中的所述缩放的存储卷。
5.如权利要求4所述的方法,其中通过用于所述基于网络的数据存储区的接口从所述存储客户端接收用于所述存储卷的所述指定的缩放策略。
6.如权利要求4所述的方法,其中所述基于网络的数据存储区是多租户、基于块的存储服务,所述服务为包括所述存储客户端的多个不同的存储客户端维护包括所述存储卷的多个存储卷,其中维护所述存储卷的所述存储装置是维护所述多个存储卷的存储装置的集合的一部分,并且其中检测所述存储卷的所述缩放事件至少部分地基于监测维护所述多个存储卷的所述存储装置的集合。
7.如权利要求4所述的方法,其中所述缩放事件增长所述存储卷,并且其中修改维护所述存储卷的所述存储装置包括向所述存储卷分配附加的存储空间。
8.如权利要求7所述的方法,其还包括:
在所述存储客户端处接收所述存储卷的所述缩放事件的所述指示;
在所述存储客户端处根据所述缩放事件更新所述文件系统以包括用于所述存储卷的附加存储容量;以及
在所述存储客户端处利用所述更新的文件系统来访问所述缩放的存储卷,以用于后续的文件系统输入/输出(I/O)。
9.如权利要求4所述的方法,
其中所述维护、所述检测、所述修改和所述指示由用于所述基于网络的数据存储区的所述控制平面来执行;
其中所述缩放事件减少所述存储卷;
其中所述方法还包括:
在所述存储客户端处接收所述存储卷的所述缩放事件的所述指示;
在所述存储客户端处根据所述缩放事件更新所述文件系统以回收分配给所述存储卷的存储空间;
从所述存储客户端向识别将要在所述存储装置中回收的所述存储空间的用于所述基于网络的数据存储区的所述控制平面发送缩放事件响应;
在所述存储客户端处利用所述更新的文件系统来访问所述缩放的存储卷,以用于后续的文件系统输入/输出(I/O);以及
其中修改维护所述存储卷的所述存储装置包括回收所述存储装置的所述识别的存储空间。
10.一种非暂时性计算机可读存储介质,其存储当由一个或多个计算装置执行时引起所述一个或多个计算装置实现以下各项的程序指令:
监测在被实现为用于存储客户端的基于网络的数据存储区的一部分的基于块的存储装置中维护的存储卷,其中所述存储卷被安装在所述存储客户端处并且被配置用于文件系统;
至少部分地基于所述监测,根据为所述存储卷指定的缩放策略来检测所述存储卷的缩放事件;
响应于检测所述存储卷的所述缩放事件:
根据所述缩放策略修改维护所述存储卷的所述基于块的存储装置以缩放用于所述存储客户端的所述存储卷;以及
为所述存储客户端指示所述存储卷的所述缩放事件,以使得所述存储客户端处的所述文件系统被更新以利用所述修改的基于块的存储装置中的所述缩放的存储卷。
11.如权利要求10所述的非暂时性计算机可读存储介质,其中所述缩放事件减少所述存储卷,并且其中在修改维护所述存储卷的所述存储装置时,所述程序指令引起所述一个或多个计算装置实现回收所述存储装置的分配给所述存储卷的存储空间。
12.如权利要求10所述的非暂时性计算机可读存储介质,其中所述缩放事件增长所述存储卷,并且其中在修改维护所述存储卷的所述存储装置时,所述程序指令引起所述一个或多个计算装置实现将附加的存储空间分配给所述存储卷。
13.如权利要求10所述的非暂时性计算机可读存储介质,其中所述程序指令引起所述一个或多个计算装置进一步实现:
在所述存储客户端处接收所述存储卷的所述缩放事件的所述指示;
在所述存储客户端处根据所述缩放事件更新所述文件系统;以及
在所述存储客户端处利用所述更新的文件系统来访问所述缩放的存储卷,以用于后续的文件系统输入/输出(I/O)。
14.如权利要求10所述的非暂时性计算机可读存储介质,其中所述程序指令进一步引起所述一个或多个计算装置实现:
响应于检测到所述缩放事件,根据所述缩放事件更新在所述基于网络的数据存储区处维护的映射信息,以便服务引导到所述缩放的存储卷的文件系统输入/输出(I/O)。
15.如权利要求10所述的非暂时性计算机可读存储介质,其中在修改维护所述存储卷的所述基于块的存储装置以缩放用于所述存储客户端的所述存储卷时,所述程序指令进一步引起所述一个或多个计算装置实现:
在维护所述存储卷的所述基于块的存储装置处执行针对所述存储卷的一个或多个存储维护操作。
CN201580060196.6A 2014-11-05 2015-11-05 用于存储客户端文件系统的存储卷的动态缩放 Active CN107077301B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010482704.2A CN111625201B (zh) 2014-11-05 2015-11-05 用于存储客户端文件系统的存储卷的动态缩放

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/534,097 2014-11-05
US14/534,097 US9628350B2 (en) 2014-11-05 2014-11-05 Dynamic scaling of storage volumes for storage client file systems
PCT/US2015/059318 WO2016073775A1 (en) 2014-11-05 2015-11-05 Dynamic scaling of storage volumes for storage client file systems

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202010482704.2A Division CN111625201B (zh) 2014-11-05 2015-11-05 用于存储客户端文件系统的存储卷的动态缩放

Publications (2)

Publication Number Publication Date
CN107077301A true CN107077301A (zh) 2017-08-18
CN107077301B CN107077301B (zh) 2020-06-26

Family

ID=54705804

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202010482704.2A Active CN111625201B (zh) 2014-11-05 2015-11-05 用于存储客户端文件系统的存储卷的动态缩放
CN201580060196.6A Active CN107077301B (zh) 2014-11-05 2015-11-05 用于存储客户端文件系统的存储卷的动态缩放

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202010482704.2A Active CN111625201B (zh) 2014-11-05 2015-11-05 用于存储客户端文件系统的存储卷的动态缩放

Country Status (9)

Country Link
US (5) US9628350B2 (zh)
EP (2) EP4044016A3 (zh)
JP (1) JP6381801B2 (zh)
KR (1) KR101920173B1 (zh)
CN (2) CN111625201B (zh)
AU (1) AU2015342945B2 (zh)
CA (1) CA2966355C (zh)
SG (1) SG11201703728TA (zh)
WO (1) WO2016073775A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108572795A (zh) * 2017-12-21 2018-09-25 北京金山云网络技术有限公司 基于搭建存储虚拟化的扩容方法、装置、设备和存储介质
CN109358806A (zh) * 2018-09-25 2019-02-19 郑州云海信息技术有限公司 卷远程容量收缩方法、装置、设备及可读存储介质
CN111488121A (zh) * 2019-01-29 2020-08-04 戴尔产品有限公司 基于动态应用存取的映射系统和方法
CN112753028A (zh) * 2018-09-28 2021-05-04 亚马逊科技公司 远程储存库的客户端侧文件系统

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9665633B2 (en) 2014-02-19 2017-05-30 Snowflake Computing, Inc. Data management systems and methods
US11386115B1 (en) * 2014-09-12 2022-07-12 Amazon Technologies, Inc. Selectable storage endpoints for a transactional data storage engine
US9628350B2 (en) 2014-11-05 2017-04-18 Amazon Technologies, Inc. Dynamic scaling of storage volumes for storage client file systems
US10505862B1 (en) * 2015-02-18 2019-12-10 Amazon Technologies, Inc. Optimizing for infrastructure diversity constraints in resource placement
US9971525B2 (en) * 2015-02-26 2018-05-15 Red Hat, Inc. Peer to peer volume extension in a shared storage environment
US9792168B2 (en) * 2015-04-15 2017-10-17 Dell Products, Lp System and method for cloud remediation of a client with a non-bootable storage medium
US10817544B2 (en) * 2015-04-20 2020-10-27 Splunk Inc. Scaling available storage based on counting generated events
US10282455B2 (en) 2015-04-20 2019-05-07 Splunk Inc. Display of data ingestion information based on counting generated events
US10078562B2 (en) * 2015-08-18 2018-09-18 Microsoft Technology Licensing, Llc Transactional distributed lifecycle management of diverse application data structures
TWI587217B (zh) * 2016-03-07 2017-06-11 威聯通科技股份有限公司 電子裝置及擴增其儲存容量的方法
US11314413B2 (en) * 2016-04-12 2022-04-26 International Business Machines Corporation Adjustable tape storage capacity
US10606625B1 (en) 2016-09-16 2020-03-31 Google Llc Hot growing a cloud hosted block device
US10481836B2 (en) * 2016-09-27 2019-11-19 Bank Of America Corporation Machine learning method and system for predicting file controls
US9678683B1 (en) 2016-11-01 2017-06-13 Red Hat, Inc. Lazy persistent storage volume provisioning
US10868863B1 (en) 2016-12-14 2020-12-15 Ocient Inc. System and method for designating a leader using a consensus protocol within a database management system
US10545699B2 (en) * 2017-04-11 2020-01-28 International Business Machines Corporation Dynamic retention policies and optional deletes
CN109391498B (zh) * 2017-08-10 2021-07-16 华为技术有限公司 网络组件的管理方法和网络设备
US11023128B2 (en) * 2018-03-16 2021-06-01 Portworx, Inc. On-demand elastic storage infrastructure
JP6751111B2 (ja) * 2018-04-26 2020-09-02 株式会社日立製作所 ストレージシステム、ストレージシステムの制御方法及び管理ノード
CN109005056B (zh) * 2018-07-16 2020-06-23 网宿科技股份有限公司 基于cdn应用的存储容量评估方法和装置
US11030314B2 (en) * 2018-07-31 2021-06-08 EMC IP Holding Company LLC Storage system with snapshot-based detection and remediation of ransomware attacks
US11249852B2 (en) 2018-07-31 2022-02-15 Portwonx, Inc. Efficient transfer of copy-on-write snapshots
US11652883B2 (en) * 2018-08-25 2023-05-16 Panzura, Llc Accessing a scale-out block interface in a cloud-based distributed computing environment
US11354060B2 (en) 2018-09-11 2022-06-07 Portworx, Inc. Application snapshot for highly available and distributed volumes
KR102193969B1 (ko) 2019-03-29 2020-12-22 한국전자통신연구원 동적 데이터의 안전한 분산 데이터 관리를 위한 방법 및 시스템
US11237747B1 (en) 2019-06-06 2022-02-01 Amazon Technologies, Inc. Arbitrary server metadata persistence for control plane static stability
US11868772B2 (en) 2020-01-14 2024-01-09 Red Hat, Inc. Heterogeneous memory management and services
US11494128B1 (en) 2020-01-28 2022-11-08 Pure Storage, Inc. Access control of resources in a cloud-native storage system
US11720869B2 (en) 2020-07-27 2023-08-08 Bank Of America Corporation Detecting usage issues on enterprise systems and dynamically providing user assistance
FR3119060B1 (fr) * 2021-01-20 2023-03-24 Ebos Tech Interface d’application dynamique basée sur une intention ascendante
US11531467B1 (en) 2021-01-29 2022-12-20 Pure Storage, Inc. Controlling public access of resources in a secure distributed storage system
US11733897B1 (en) 2021-02-25 2023-08-22 Pure Storage, Inc. Dynamic volume storage adjustment
US11520516B1 (en) 2021-02-25 2022-12-06 Pure Storage, Inc. Optimizing performance for synchronous workloads
US11726684B1 (en) 2021-02-26 2023-08-15 Pure Storage, Inc. Cluster rebalance using user defined rules
US11388235B1 (en) * 2021-03-05 2022-07-12 Netapp, Inc. Decoupling volume deployment requirements and code implementation
US11775186B1 (en) 2021-08-04 2023-10-03 Amazon Technologies, Inc. Dynamic usage-metric-based configuration of storage volumes
US11561709B1 (en) * 2021-08-04 2023-01-24 Amazon Technologies, Inc. Dynamic recovery-objective-based configuration of backup volumes

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060095705A1 (en) * 2004-10-30 2006-05-04 James Wichelman Systems and methods for data storage management
US20070043923A1 (en) * 2005-08-16 2007-02-22 Shue Douglas Y Apparatus, system, and method for modifying data storage configuration
US20140095826A1 (en) * 2009-03-12 2014-04-03 Vmware, Inc. System and method for allocating datastores for virtual machines

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6389432B1 (en) 1999-04-05 2002-05-14 Auspex Systems, Inc. Intelligent virtual volume access
US6609187B1 (en) 1999-07-06 2003-08-19 Dell Products L.P. Method and apparatus for supporting resizing of file system partitions
US8195760B2 (en) * 2001-01-11 2012-06-05 F5 Networks, Inc. File aggregation in a switched file system
JP2002222061A (ja) * 2001-01-25 2002-08-09 Hitachi Ltd 記憶領域を設定する方法、記憶装置およびプログラム記憶媒体
US6829688B2 (en) 2002-06-20 2004-12-07 International Business Machines Corporation File system backup in a logical volume management data storage environment
US7379990B2 (en) * 2002-08-12 2008-05-27 Tsao Sheng Ted Tai Distributed virtual SAN
US7509645B2 (en) 2002-10-17 2009-03-24 Intel Corporation Methods and apparatus for load balancing storage nodes in a distributed network attached storage system
US20050027938A1 (en) 2003-07-29 2005-02-03 Xiotech Corporation Method, apparatus and program storage device for dynamically resizing mirrored virtual disks in a RAID storage system
US7213021B2 (en) * 2004-03-11 2007-05-01 Hitachi, Ltd. Method and apparatus for storage network management
US20060101204A1 (en) * 2004-08-25 2006-05-11 Bao Bill Q Storage virtualization
CN101356506B (zh) * 2005-08-25 2014-01-08 晶像股份有限公司 智能可缩放存储切换架构
US7409523B2 (en) 2005-12-16 2008-08-05 Microsoft Corporation Online storage volume shrink
JP2008204358A (ja) * 2007-02-22 2008-09-04 Hitachi Ltd 継続的データ保護方法および継続的データ保護システム
US7840730B2 (en) 2008-06-27 2010-11-23 Microsoft Corporation Cluster shared volumes
US8793223B1 (en) * 2009-02-09 2014-07-29 Netapp, Inc. Online data consistency checking in a network storage system with optional committal of remedial changes
JP5243991B2 (ja) * 2009-02-18 2013-07-24 株式会社日立製作所 ストレージシステム、容量管理方法、および管理計算機
EP2411918B1 (en) 2009-03-23 2018-07-11 Riverbed Technology, Inc. Virtualized data storage system architecture
US20100332401A1 (en) * 2009-06-30 2010-12-30 Anand Prahlad Performing data storage operations with a cloud storage environment, including automatically selecting among multiple cloud storage sites
US9953178B2 (en) * 2010-02-03 2018-04-24 Os Nexus, Inc. Role based access control utilizing scoped permissions
US8479211B1 (en) * 2010-06-29 2013-07-02 Amazon Technologies, Inc. Dynamic resource commitment management
US9002907B2 (en) * 2010-08-30 2015-04-07 Unwired Planet, Llc Method and system for storing binary large objects (BLObs) in a distributed key-value storage system
KR101638436B1 (ko) 2010-12-10 2016-07-12 한국전자통신연구원 클라우드 스토리지 및 그의 관리 방법
US8601134B1 (en) * 2011-06-30 2013-12-03 Amazon Technologies, Inc. Remote storage gateway management using gateway-initiated connections
US9203900B2 (en) * 2011-09-23 2015-12-01 Netapp, Inc. Storage area network attached clustered storage system
CN102364474B (zh) * 2011-11-17 2014-08-20 中国科学院计算技术研究所 用于机群文件系统的元数据存储系统和管理方法
US20130227145A1 (en) * 2011-12-27 2013-08-29 Solidfire, Inc. Slice server rebalancing
US10394611B2 (en) 2012-11-26 2019-08-27 Amazon Technologies, Inc. Scaling computing clusters in a distributed computing system
WO2014087518A1 (ja) * 2012-12-06 2014-06-12 株式会社 日立製作所 ネットワークシステム及びその運用方法
US8977598B2 (en) * 2012-12-21 2015-03-10 Zetta Inc. Systems and methods for on-line backup and disaster recovery with local copy
CN103049574B (zh) * 2013-01-04 2015-12-09 中国科学院高能物理研究所 实现文件动态副本的键值文件系统及方法
US20140317681A1 (en) * 2013-03-15 2014-10-23 Jon Rav Gagan Shende Cloud forensics
CA3078018C (en) * 2013-03-15 2023-08-22 Amazon Technologies, Inc. Scalable analysis platform for semi-structured data
US20140359127A1 (en) * 2013-06-03 2014-12-04 Microsoft Corporation Zero touch deployment of private cloud infrastructure
CN103561101A (zh) * 2013-11-06 2014-02-05 中国联合网络通信集团有限公司 一种网络文件系统
US9311194B1 (en) * 2014-03-28 2016-04-12 Google Inc. Efficient resource utilization in data centers
US10216770B1 (en) * 2014-10-31 2019-02-26 Amazon Technologies, Inc. Scaling stateful clusters while maintaining access
US9628350B2 (en) 2014-11-05 2017-04-18 Amazon Technologies, Inc. Dynamic scaling of storage volumes for storage client file systems
US10606625B1 (en) * 2016-09-16 2020-03-31 Google Llc Hot growing a cloud hosted block device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060095705A1 (en) * 2004-10-30 2006-05-04 James Wichelman Systems and methods for data storage management
US20070043923A1 (en) * 2005-08-16 2007-02-22 Shue Douglas Y Apparatus, system, and method for modifying data storage configuration
US20140095826A1 (en) * 2009-03-12 2014-04-03 Vmware, Inc. System and method for allocating datastores for virtual machines

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108572795A (zh) * 2017-12-21 2018-09-25 北京金山云网络技术有限公司 基于搭建存储虚拟化的扩容方法、装置、设备和存储介质
CN108572795B (zh) * 2017-12-21 2021-05-25 北京金山云网络技术有限公司 基于搭建存储虚拟化的扩容方法、装置、设备和存储介质
CN109358806A (zh) * 2018-09-25 2019-02-19 郑州云海信息技术有限公司 卷远程容量收缩方法、装置、设备及可读存储介质
CN112753028A (zh) * 2018-09-28 2021-05-04 亚马逊科技公司 远程储存库的客户端侧文件系统
CN111488121A (zh) * 2019-01-29 2020-08-04 戴尔产品有限公司 基于动态应用存取的映射系统和方法
CN111488121B (zh) * 2019-01-29 2024-01-12 戴尔产品有限公司 基于动态应用存取的映射系统和方法

Also Published As

Publication number Publication date
CA2966355C (en) 2019-10-01
US9628350B2 (en) 2017-04-18
US20230344729A1 (en) 2023-10-26
AU2015342945A1 (en) 2017-05-25
CN111625201A (zh) 2020-09-04
EP4044016A2 (en) 2022-08-17
KR101920173B1 (ko) 2018-11-19
EP3215926A1 (en) 2017-09-13
CA2966355A1 (en) 2016-05-12
US11729073B2 (en) 2023-08-15
WO2016073775A1 (en) 2016-05-12
US20200220792A1 (en) 2020-07-09
KR20170077231A (ko) 2017-07-05
AU2015342945B2 (en) 2018-02-08
US20170222890A1 (en) 2017-08-03
EP4044016A3 (en) 2022-11-30
CN107077301B (zh) 2020-06-26
JP6381801B2 (ja) 2018-08-29
SG11201703728TA (en) 2017-06-29
US11165667B2 (en) 2021-11-02
CN111625201B (zh) 2023-08-29
US20160127200A1 (en) 2016-05-05
EP3215926B1 (en) 2022-05-04
JP2017539000A (ja) 2017-12-28
US10594571B2 (en) 2020-03-17
US20220141100A1 (en) 2022-05-05

Similar Documents

Publication Publication Date Title
CN107077301A (zh) 用于存储客户端文件系统的存储卷的动态缩放
AU2019213340B2 (en) Dynamic configuration of data volumes
CN110609797B (zh) 基于块的存储的页面高速缓存存录
JP6353924B2 (ja) ブロックベースストレージに対するデータボリュームの耐久性状態の低減
CN106068507A (zh) 动态修改单独数据卷的耐久性特性
CN107567696A (zh) 计算集群内的资源实例群组的自动扩展

Legal Events

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