CN104067240A - 块级存储 - Google Patents

块级存储 Download PDF

Info

Publication number
CN104067240A
CN104067240A CN201280068694.1A CN201280068694A CN104067240A CN 104067240 A CN104067240 A CN 104067240A CN 201280068694 A CN201280068694 A CN 201280068694A CN 104067240 A CN104067240 A CN 104067240A
Authority
CN
China
Prior art keywords
data block
storage
piece
memory node
block
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.)
Pending
Application number
CN201280068694.1A
Other languages
English (en)
Inventor
C-H.苏
M.基尔希伯格
B.S.李
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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of CN104067240A publication Critical patent/CN104067240A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • 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/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/0614Improving the reliability of storage systems
    • G06F3/0617Improving the reliability of storage systems in relation to availability
    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/10Providing a specific technical effect
    • G06F2212/1048Scalability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/26Using a specific storage system architecture
    • G06F2212/263Network storage, e.g. SAN or NAS

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种存储系统包括用来接收块级存储请求的前端处理子系统以及耦合到前端子系统的多个后端存储节点。每一个后端存储节点包括存储设备和用来在存储设备上创建、读取、更新和删除数据块的块管理器。前端处理子系统维持多个块引用数据结构,其可由前端处理子系统使用以访问后端数据存储节点,以便为存储系统提供平衡性、冗余性和可扩展性。

Description

块级存储
背景技术
块级存储涉及原始存储卷的创建。基于服务器的操作系统连接到这些卷并且将它们用作单独的硬盘。块级存储服务可以基于文件或卷表示。在文件表示中,文件可以由各个用户共享。通过创建基于块的卷并且然后安装操作系统或文件系统并且附着到该卷,文件可以使用本机操作系统来被共享。在卷表示中,每一个卷被附着到特定机器,从而提供原始存储能力。
附图说明
为了详细描述各个示例,现在将参照附图,在附图中:
图1A示出根据示例的系统;
图1B示出根据示例的硬件图;
图2示出块引用数据结构的示例;
图3示出读取事务方法的示例;
图4示出读取事务方法的另一示例;
图5示出写入事务方法的示例;以及
图6示出写入事务方法的另一示例。
具体实施方式
如以上所指出的,块存储服务可以基于文件或卷表示。卷包括固定大小的块的阵列。尽管这样的方案已经被证实适用于集中式存储环境,但是这些方案并不特别适合作为向虚拟化机器环境提供存储服务(特别是在云环境中)的高性能分布式块存储服务的基础。在云环境中,大量(例如,数百个或数千个)物理或虚拟计算机器可能需要访问基于云的公共存储服务。用来作为虚拟机器的主机的物理机器通常具有用于管理虚拟机器所需的软件的小覆盖区(footprint),但是提供终端用户操作系统软件和服务的虚拟机器可能具有大的存储需求。
还期望的是以动态方式为虚拟机器分配存储。即,存储空间分配应当是按需进行的(即,在后分配,意味着在系统初始化期间的存储空间分配之后)。如虚拟机器所被部署的,它们通常使用标准操作系统映像来实例化,该映像的系统文件可以在虚拟机器的使用期间保持不变。更新主要被应用于系统配置文件、自定义应用和用户空间文件。因此,期望支持数据去重(deduplication)。
除了使用标准操作系统映像之外,云存储服务应当允许客户端保存它们运行虚拟机器的快照,包括例如操作系统内核、应用和用户空间文件。这样的快照作为例如备份或者作为用于安装其他类似的虚拟机器的蓝图可以是有用的,并且这样的虚拟机器可以按需(即,在需要时)大量生产。
本文描述解决这些问题中的一些或全部的存储架构的各种示例。一般地,所公开的示例包括块级存储系统,其基于数据库技术以用于其后端存储需求。通过将数据库技术组合在块级存储系统中,所得到的存储系统是鲁棒且可扩展的。本文所述的存储系统实现了可扩展性、冗余性和平衡性。可扩展性是指存储系统通过使用附加的存储节点来应对越来越高的工作负载的能力,并且使得存储系统能够用在例如云环境中。冗余性是指存储系统将块复制到一个或多个存储节点的能力。平衡性是指存储系统在各个存储节点之间分布读取和写入请求并且还在存储节点之间迁移数据块以匹配存储节点上的工作负载模式的变化的能力。
图1A示出系统90,其中一个或多个物理计算机92能够访问存储系统100。每一个物理计算机92可以是一个或多个虚拟机器94的主机,或者如果需要的话可以没有虚拟机器。每一个物理机器92和/或虚拟机器94可以对存储系统100执行读取和写入事务。
存储100可以实现为块级存储系统。就此而言,物理机器92和虚拟机器94可以对存储系统100执行块级访问请求。
图1A中所示出的说明性存储系统100包括前端处理子系统102,其耦合到一个或多个后端存储节点104。简略地参照图1B,前端处理子系统102的示例包括耦合到非暂时性存储设备105(例如,硬盘、随机存取存储器等)的处理器103。非暂时性存储设备105存储可由处理器103执行的前端处理代码107。代码107给予处理器103本文所描述的归因于前端处理子系统102的功能性中的一些或全部。
每一个后端存储节点104可以包括访问存储设备110(例如,硬盘驱动器)的块管理器108。块管理器108可以实现为执行代码的硬件处理器。在一些实现中,每一个块管理器108包括“瘦”数据库,其独立于与其他块管理器相关的瘦数据库来执行(即,不是分布式数据库)。瘦数据库的示例是仅能够创建、复制、更新和删除记录的数据库。图1B的硬件实现还可以被用来在一些实施例中实现块管理器108(其中代码107被数据库代码替换)。
通常,前端处理子系统102从各个物理机器92和/或虚拟机器94接收块访问请求,并且处理该请求以便对各个后端存储节点104完成。
因为在一些实现中块管理器108包括瘦数据库,所以前端处理子系统102可以执行在如果使用更复杂的数据库时原本将会由后端节点105所执行的功能性中的至少一些。此外,存储系统100能够实现数据去重、惰性复制、以及其他数据存储功能。对于能够实现这些功能性的存储系统100,前端处理子系统102实现以下所述的各种动作。
为了执行以下所述功能中的一个或多个,前端处理子系统102维持并使用块引用数据结构106。块引用数据结构106提供关于单独数据块以及这些数据块中的每一个存储在哪一个存储节点上的信息。块引用数据结构106使存储系统能够提供负载平衡性、冗余性和可扩展性。块引用数据结构106的示例在图2中示出。在图的示例中,块引用数据结构106包括多个表格120和122。表格120被称作主块引用表格。表格122被称作从块引用表格。表格124被称作块存储表格并且存储在相应的存储节点中。在表格120-124中所提供的信息可以在其他实施例中以不同于表格的形式来提供。
主引用表格120包括多个条目,其中每一个条目包括客户端标识符(ID)130、快照ID 132、块索引值134、元数据136、以及包含块ID或间接ID的字段138。客户端ID 130是虚拟机器94或物理机器96的唯一标识符,其对主引用表格120中的对应条目所引用的数据块进行控制。快照是在特定时间点存储卷的状态。快照ID 132是所引用的数据块所属的机器内的快照的唯一标识符。块索引134是用于虚拟机器内的特定快照的所引用块的唯一标识符。元数据136包括与数据块相关的信息。元数据136的示例包括这样的信息项目:处理ID、块修改处的用户证书和时间戳、以及复制状态。
字段138包括块ID或间接ID。块ID是对实际后端存储节点104并对所引用的数据块实际存储所在的那个存储节点内的物理位置的引用。如果所引用的数据块是存储系统100中的数据的多个副本中的一个,那么在字段138中使用间接ID而不是块ID。间接ID包括指向从引用表格122中的条目的指针。
从引用表格122被用来保持追踪数据块的各个副本。间接ID 140包含与主引用表格120中的间接ID 138中的至少一个相同的值。链接计数器142包括字段144中的相关块ID的数量的计数值。链接计数器142因而指示相同数据块的附加副本的数量。根据一些示例,在每一次产生卷的快照时,该卷中的每一块的相关链接计数器就递增。如果快照图像被删除,则对应的链接计数器就递减。如果块是唯一的,则链接计数器可以设置为值1。字段144中的块ID包括对后端存储节点104上的数据块以及在每一个节点内数据块所实际驻留于的位置的引用。
块存储表格124包括字段150和152。字段150包含块ID,并且字段152包含对应于相关块ID的实际数据。
图3针对由存储系统100执行的用于读取事务的方法150。方法150的各种动作可以按照图示顺序或者以不同顺序来执行。此外,动作中的两个或更多个可以并行执行。方法150的动作可以由存储系统100的前端处理子系统102来执行。
在152处,方法包括接收针对数据块的读取请求。由前端处理子系统102从物理机器92或虚拟机器94中的一个或多个来接收读取请求。
在154处,方法包括访问块引用数据结构106,并且从该数据结构确定所请求的数据块的(一个或多个)位置。例如,方法可以包括从主引用表格120检索块ID或间接ID。如果ID是间接ID,则方法可以包括从从引用表格122获取(一个或多个)对应块ID。所请求的数据块可能以多个副本的形式存在于各个后端存储节点104上。访问块引用数据结构106以确定存在的目标数据块的副本数量以及它们在存储节点104上的位置。例如,主引用块引用表格120可以包括如上所指出的块ID或间接ID。如果存在块ID,则可以从该特定块ID所引用的后端存储节点来读取目标数据。前端处理子系统102在156处向该特定存储节点发出读取请求。
在另一方面,如果存在间接ID,则前端存储子系统102使用间接ID查阅从块引用表格122并且读取链接计数器142。链接计数器指示目标数据块的副本数量。对应数据块的块ID 144也从从块引用表格122来读取。读取请求是由前端处理子系统102向包含最初读取请求的目标数据块的副本的各个后端存储节点104发出(156)的。给定的后端存储节点104有多快地以所请求的数据来响应前端处理子系统102可能在存储节点间不同。
前端处理子系统102从如上所解释那样接收了读取请求的存储节点104接收所请求的数据。如果前端存储子系统102仅向单个后端存储节点104发出读取请求,那么只要目标数据被提供回到前端处理子系统102,前端处理子系统102就将该数据返回到最先创始读取请求的物理或虚拟机器。如果多个后端存储节点104被发出了如上所述的请求,那么前端处理子系统102从首先以所请求的数据响应前端存储子系统102的那个后端存储节点104来将数据返回到物理机器92或虚拟机器94。
图4同样针对读取事务。在图4中,方法107针对这样的情形:其中多个物理机器92或虚拟机器84试图在大概相同的时间读取相同的数据块。前端处理子系统102对多个物理或虚拟机器试图读取相同的数据块进行识别(例如,通过标识针对相同的块或间接ID的并发请求),并且前端处理子系统102向包含请求数据的副本的每一个后端存储节点104发出单个读取请求,而不是对于每一个到来的读取请求向后端存储节点发出多个读取请求。
方法107的各种动作可以按照图示顺序或者以不同顺序来执行。此外,动作中的两个或更多个可以并行执行。方法170的动作可以由存储系统100的前端处理子系统102来执行。
在172处,方法170包括从多个请求系统(例如,物理机器92、虚拟机器94)中的每一个接收针对数据块的读取请求。由前端处理子系统102从多个物理机器92或虚拟机器94来接收读取请求。
在174处,前端处理子系统102确定多个并发的读取请求的目标是相同的数据块。在176处,前端处理子系统102向包含目标数据块的每一个后端存储节点104发出单个读取请求。前端处理子系统102根据块引用数据结构106来确定哪些节点包含目标数据块。
在178处,方法还包括前端处理子系统102从后端存储节点中的一个或多个接收所请求的数据,并且在180处将首先(或仅)接收到的目标数据块转发到最先创始读取请求的物理机器92或虚拟机器94。
图5提供针对写入事务的方法190。方法190的各种动作可以按照图示顺序或者以不同顺序来执行。此外,动作中的两个或更多个可以并行执行。方法190的动作可以由存储系统100的前端处理子系统102来执行。
在192处,方法包括前端处理子系统102从物理机器92或虚拟机器94接收写入请求。在194处,基于块引用数据结构,前端处理子系统102确定目标数据块是否存在于多个后端存储节点104上。如果多个后端存储节点104包含写入事务的目标数据块,则前端处理子系统102确定目标数据块的多个副本中的哪一个是“主”数据块。在一些实现中,写入事务仅对主数据块完成,并且不对其他副本(即,从数据块)完成。元数据136可以包括充足的信息,从其中可以明确被确定为主数据块的块。
在196处,前端处理子系统102然后对包含被确定为主数据块的数据块的后端存储节点104完成写入事务。在198处,前端存储子系统102将被确定为主数据块的数据块复制到其他存储节点104上的数据块的所有其他副本。这种块复制过程可以在后台并且以相比于对主数据块的最初写入更慢的节奏来执行。就此而言,从主数据块到从数据块的复制可以被称为“惰性复制”并且为存储系统100提供了冗余容量。
图6提供针对写入事务的方法200,该写入事务是针对只读块的。数据块可以被指定为只读的,这是因为例如数据块可以由多个物理机器92或虚拟机器94共享。数据块的多个副本存在于存储节点104上,并且所有都被指定为只读的。如果数据块是共享的,则共享的物理/虚拟机器中没有一个可以被允许对它们的数据块副本执行写入事务,以避免数据一致性问题。为了对只读的共享数据块执行写入事务,数据块首先被复制并且停止共享。
方法200的各种动作可以按照图示顺序或者以不同顺序来执行。此外,动作中的两个或更多个可以并行执行。方法200的动作可以由存储系统100的前端处理子系统102来执行。
在202处,方法包括前端处理子系统102接收针对存在于第一后端存储节点104上的只读数据块的写入请求。在204处,前端处理子系统102确定目标块是否为“写时复制”(copy-on-write)块,其意指在对块执行写入事务时应当复制的块。在链接计数器大于1的情形中,所有共享的块可以被指定为写时复制的。
在206处,如果第一后端存储节点104上的目标数据块是COW数据块,则前端处理子系统102在第一后端存储节点104上分配新数据块。最新分配的数据块被指定为可读且可写的(“RW”)。在208处,前端处理子系统102将与接收到的写入事务包括在一起数据写入到最新分配的RW数据块。
在212处,前端处理子系统102还分配存在于第二后端存储节点104上的数据块的RW副本,并且然后开始将最新分配的块的内容从第一存储节点复制到第二存储节点上的最新分配的块。复制可以在208处的数据的最初写入已经完成之后发生或继续发生。
本文所述的存储系统100是可扩展的,这是因为具有例如瘦数据库的附加存储节点104可以被容易地添加,并且前端处理子系统102通过其块引用数据结构106保持追踪各个存储节点104。因而,存储系统100可以容易地用在云环境中。块引用数据结构106使得能够在大存储容量上快速进行索引。各种后端存储节点104表示在多个物理节点上的分布式存储,其在标准数据库环境中并不是可容易实现的。此外,存储系统100使得被删除的存储空间能够有效地回收利用。
上述讨论意为说明本发明的原理和各种实施例。一旦完全理解上述公开,许多变型和修改就将对本领域技术人员变得显而易见。所附权利要求旨在被解释为包含所有这样的变型和修改。

Claims (15)

1. 一种存储系统,包括:
前端处理子系统,其用来接收块级存储请求;以及
多个后端存储节点,其耦合到所述前端子系统,每一个所述后端存储节点包括存储设备和用来在所述存储设备上创建、读取、更新和删除数据块的独立的块管理器;
其中所述前端处理子系统用来维持块引用数据结构,所述块引用数据结构可被所述前端处理子系统使用以访问所述后端数据存储节点,以便为所述存储系统提供平衡性、冗余性和可扩展性。
2. 根据权利要求2所述的存储系统,其中所述块引用数据结构包括主块引用表格,其包括用于多个后端存储子系统上所存储的每一个数据块的引用。
3. 根据权利要求2所述的存储系统,其中每一个引用包括客户端标识符、快照标识符和块索引。
4. 根据权利要求2所述的存储系统,其中对于多个实例中的驻留于所述存储设备上的数据块,所述主块引用表格包括到从块引用表格的间接标识符。
5. 根据权利要求4所述的存储系统,其中所述从块引用表格包括间接标识符、链接计数器、以及一个或多个块标识符。
6. 根据权利要求5所述的存储系统,其中所述链接计数器包括指示所述存储设备上的数据块的副本的实例的数量的计数值。
7. 根据权利要求6所述的存储系统,其中所述一个或多个块标识符包括用于所述数据块的实例中的每一个的块标识符。
8. 根据权利要求1所述的存储系统,其中所述前端处理子系统接收针对数据块的读取请求,根据块引用表格确定所请求的块是否作为多个副本存储在后端存储子系统上,并且向根据所述块引用数据结构确定存储有所请求的数据的副本的每一个后端存储节点发出请求。
9. 根据权利要求1所述的存储系统,其中所述前端处理子系统从多个请求系统中的每一个接收针对数据块的读取请求,确定所述读取请求的目标是相同的数据块,并且向根据所述块引用数据结构所确定的包含目标块的每一个后端存储节点发出单个读取请求。
10. 根据权利要求1所述的存储系统,其中多个后端存储子系统中的每一个存储数据块的副本,并且所述前端处理子系统接收针对所述数据块的写入请求,写入到所述副本中的一个副本,并且导致所述一个副本的内容被复制到所述数据块的所有其他副本。
11. 根据权利要求1所述的存储系统,其中多个后端存储子系统中的每一个存储只读的写时复制(RO COW)数据块的副本,并且所述前端处理子系统接收目标是RO COW数据块的写入请求,并且作为接收所述写入请求的响应,所述前端存储子系统在所述多个后端存储子系统中的每一个上分配新数据块,写入到最新分配的数据块中的一个,并且导致被写入的数据块复制到所有其他最新分配的数据块。
12. 一种存储系统,包括:
前端处理子系统,其用来接收块级存储请求;以及
多个后端存储节点,其耦合到所述前端子系统,每一个后端存储子系统包括存储设备和用来在所述存储节点上创建、读取、更新和删除数据块的独立的块管理器;
其中所述前端处理子系统用来访问块引用数据结构以访问后端数据存储系统,以便确定访问哪些后端存储节点来完成接收到的块级存储请求。
13. 根据权利要求12所述的存储系统,其中所述块引用数据结构包括主块引用表格和从块引用表格,所述主块引用表格包括用于多个后端存储子系统上所存储的每一个数据块的引用,对于多个实例中的驻留于存储子系统上的数据块,所述主块引用表格包括到所述从块引用表格的间接标识符。
14. 一种方法,包括:
接收针对只读数据块的写入块访问请求;
确定所述数据块是否要在写入所述数据块时被复制;
在第一后端存储节点上分配第一新数据块;
将数据写入到第一新分配的数据块;
在另一个后端存储节点上分配第二新数据块;以及
将第一新分配的数据块的内容从所述第一后端存储节点复制到所述另一个后端存储节点上的第二新分配的数据块。
15. 根据权利要求14所述的方法,其中将第一新分配的数据块的内容从所述第一后端存储节点复制到所述另一个后端存储节点上的第二新分配的数据块能够在写入到第一新分配的数据块已经完成之后发生或继续发生。
CN201280068694.1A 2012-04-30 2012-04-30 块级存储 Pending CN104067240A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2012/035908 WO2013165382A1 (en) 2012-04-30 2012-04-30 Block level storage

Publications (1)

Publication Number Publication Date
CN104067240A true CN104067240A (zh) 2014-09-24

Family

ID=49514648

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280068694.1A Pending CN104067240A (zh) 2012-04-30 2012-04-30 块级存储

Country Status (4)

Country Link
US (1) US20140380007A1 (zh)
EP (1) EP2845103A4 (zh)
CN (1) CN104067240A (zh)
WO (1) WO2013165382A1 (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104021034B (zh) * 2014-06-24 2017-12-08 上海众源网络有限公司 任务处理方法及系统
US9848046B2 (en) * 2014-11-13 2017-12-19 Commvault Systems, Inc. Archiving applications in information management systems
US9535731B2 (en) * 2014-11-21 2017-01-03 International Business Machines Corporation Dynamic security sandboxing based on intruder intent
JP2016115253A (ja) * 2014-12-17 2016-06-23 富士通株式会社 情報処理装置、メモリ管理方法およびメモリ管理プログラム
US9904480B1 (en) * 2014-12-18 2018-02-27 EMC IP Holding Company LLC Multiplexing streams without changing the number of streams of a deduplicating storage system
US10306005B1 (en) * 2015-09-30 2019-05-28 EMC IP Holding Company LLC Data retrieval system and method
US10241725B2 (en) 2015-10-30 2019-03-26 International Business Machines Corporation Workload balancing in a distributed storage system
US10320906B2 (en) * 2016-04-29 2019-06-11 Netapp, Inc. Self-organizing storage system for asynchronous storage service
US10812543B1 (en) * 2017-02-27 2020-10-20 Amazon Technologies, Inc. Managed distribution of data stream contents
US10929048B2 (en) * 2018-10-01 2021-02-23 EMC IP Holding Company LLC Dynamic multiple proxy deployment
JP7050034B2 (ja) * 2019-07-29 2022-04-07 株式会社日立製作所 ストレージシステム及びノード管理方法
US11386072B1 (en) * 2020-05-08 2022-07-12 Amazon Technologies, Inc. Automatic consistency for database write forwarding
US11816073B1 (en) 2020-05-08 2023-11-14 Amazon Technologies, Inc. Asynchronously forwarding database commands
US12007954B1 (en) 2020-05-08 2024-06-11 Amazon Technologies, Inc. Selective forwarding for multi-statement database transactions
US11606429B2 (en) * 2020-10-14 2023-03-14 EMC IP Holding Company LLC Direct response to IO request in storage system having an intermediary target apparatus

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5485475A (en) * 1993-09-22 1996-01-16 Kabushiki Kaisha Toshiba Data storage device and data managing method
US20080243773A1 (en) * 2001-08-03 2008-10-02 Isilon Systems, Inc. Systems and methods for a distributed file system with data recovery
US7958328B2 (en) * 2006-09-05 2011-06-07 Hitachi, Ltd. Computer system, storage system and method for saving storage area by integrating same data
US20120084519A1 (en) * 2010-09-30 2012-04-05 Commvault Systems, Inc. Systems and methods for retaining and using data block signatures in data protection operations

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6047309A (en) * 1995-10-02 2000-04-04 International Business Machines Corporation Recording observed and reported response characteristics at server and/or client nodes in a replicated data environment, and selecting a server to provide data based on the observed and/or reported response characteristics
DE10212890A1 (de) * 2002-03-22 2003-10-23 Oce Printing Systems Gmbh Dokumenten-Bearbeitungsauftragssteuerungssystem, Verfahren zum Steuern von Dokumenten-Bearbeitungsaufträgen und Softwareprodukt zum Ausführen eines solchen Verfahrens
US7219203B2 (en) * 2004-04-21 2007-05-15 Xiv Ltd. Reading data from a multiplicity of disks in a data storage system
GB0514529D0 (en) * 2005-07-15 2005-08-24 Ibm Virtualisation engine and method, system, and computer program product for managing the storage of data
US7739241B2 (en) * 2007-01-03 2010-06-15 International Business Machines Corporation Implementing dynamic copy-on-write (COW) storage compression through purge function
US7752170B2 (en) * 2007-01-03 2010-07-06 International Business Machines Corporation Implementing dynamic copy-on-write (COW) storage compression in COW storage through zero and deleted blocks
US8046378B1 (en) * 2007-09-26 2011-10-25 Network Appliance, Inc. Universal quota entry identification
US8667224B1 (en) * 2007-12-20 2014-03-04 Emc Corporation Techniques for data prefetching
TWI375931B (en) * 2008-04-03 2012-11-01 Univ Nat Taiwan Distant ecosystem monitoring system back-end control server device
JP5023018B2 (ja) * 2008-08-21 2012-09-12 株式会社日立製作所 ストレージシステム及びデータ管理方法
US9323775B2 (en) * 2010-06-19 2016-04-26 Mapr Technologies, Inc. Map-reduce ready distributed file system
US8306950B2 (en) * 2010-08-26 2012-11-06 International Business Machines Corporation Managing data access requests after persistent snapshots
US9026737B1 (en) * 2011-06-29 2015-05-05 Emc Corporation Enhancing memory buffering by using secondary storage

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5485475A (en) * 1993-09-22 1996-01-16 Kabushiki Kaisha Toshiba Data storage device and data managing method
US20080243773A1 (en) * 2001-08-03 2008-10-02 Isilon Systems, Inc. Systems and methods for a distributed file system with data recovery
US7958328B2 (en) * 2006-09-05 2011-06-07 Hitachi, Ltd. Computer system, storage system and method for saving storage area by integrating same data
US20120084519A1 (en) * 2010-09-30 2012-04-05 Commvault Systems, Inc. Systems and methods for retaining and using data block signatures in data protection operations

Also Published As

Publication number Publication date
US20140380007A1 (en) 2014-12-25
WO2013165382A1 (en) 2013-11-07
EP2845103A1 (en) 2015-03-11
EP2845103A4 (en) 2016-04-20

Similar Documents

Publication Publication Date Title
CN104067240A (zh) 块级存储
US10437486B2 (en) Method and apparatus for tenant-aware storage sharing platform
US9613040B2 (en) File system snapshot data management in a multi-tier storage environment
CN101799742B (zh) 用于在存储系统之间转移精简配置卷的方法和装置
JP6019513B2 (ja) 記憶リソースを共有する方法およびシステム
US9417955B2 (en) Data reconstruction in distributed data storage system with key-based addressing
US7836266B2 (en) Managing snapshot history in a data storage system
US7467268B2 (en) Concurrent data restore and background copy operations in storage networks
US8103628B2 (en) Directed placement of data in a redundant data storage system
US7669032B2 (en) Host-based virtualization optimizations in storage environments employing off-host storage virtualization
CN111587423B (zh) 分布式存储系统的分层数据策略
US20160054920A1 (en) Distributed Data Storage System with Key-Based Addressing
US11409454B1 (en) Container ownership protocol for independent node flushing
US20230221897A1 (en) Implementing coherency and page cache support for a storage system spread across multiple data centers
US20200379686A1 (en) Flash registry with write leveling
CN107948229B (zh) 分布式存储的方法、装置及系统
US11455275B2 (en) Storing a point in time coherently for a distributed storage system
KR101601877B1 (ko) 분산 파일시스템에서 클라이언트가 데이터 저장에 참여하는 장치 및 방법
CN113342258B (zh) 用以进行全快闪存储器阵列伺服器的数据存取管理的方法与设备
US20210109814A1 (en) Delta information volumes to enable chained replication of data
Meyer et al. Supporting heterogeneous pools in a single ceph storage cluster
US11327895B1 (en) Protocol for processing requests that assigns each request received by a node a sequence identifier, stores data written by the request in a cache page block, stores a descriptor for the request in a cache page descriptor, and returns a completion acknowledgement of the request
WO2018055686A1 (ja) 情報処理システム
CN112083886B (zh) 一种nas设备的存储管理方法、系统及装置
CN112988034B (zh) 一种分布式系统数据写入方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20140924