CN102349053A - 用于冗余性保护的聚集体的系统和方法 - Google Patents
用于冗余性保护的聚集体的系统和方法 Download PDFInfo
- Publication number
- CN102349053A CN102349053A CN2010800112613A CN201080011261A CN102349053A CN 102349053 A CN102349053 A CN 102349053A CN 2010800112613 A CN2010800112613 A CN 2010800112613A CN 201080011261 A CN201080011261 A CN 201080011261A CN 102349053 A CN102349053 A CN 102349053A
- Authority
- CN
- China
- Prior art keywords
- aggregation
- parity
- data
- owner
- response
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/1028—Distributed, i.e. distributed RAID systems with parity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/1045—Nested RAID, i.e. implementing a RAID scheme in another RAID scheme
Abstract
本发明提供了一种用于利用奇偶性保护模块以在条式聚集体上备份数据的系统和方法。具体而言,该系统针对在多个构成聚集体中的每个构成聚集体的具体位置处存储的数据计算奇偶性数据并且在构成聚集体中的作为该具体数据位置的奇偶性属主的一个构成聚集体上存储该奇偶性。在构成聚集体之一失效的情况下,系统(条式聚集体)仍然可以访问新数据以写入新数据和读取存储于失效的聚集体上的数据。具体而言,奇偶性保护模块通过运行逆奇偶性计算来允许客户端从失效的聚集体读取数据,该计算也可以用来向失效的聚集体恢复数据。
Description
技术领域
本发明涉及存储系统并且具体地涉及一个或者多个存储系统上的冗余性保护的聚集体(aggregate)。
背景技术
存储系统通常包括按照需要可以向其中录入信息并且可以从其获得信息的一个或者多个存储设备。存储系统包括通过尤其调用支持该系统所实施的存储服务的存储操作而在功能上组织该系统的存储操作系统。可以根据各种存储架构来实施存储系统,这些存储架构包括但不限于网络附属的存储环境、存储区域网络和直接附属到客户端或者主机计算机的盘组件。存储设备可以是持久型电子存储设备(比如闪存)、但是通常是组织为盘阵列的盘驱动器,其中术语“盘”普遍描述自备式旋转磁介质存储设备。术语“盘”在本上下文中与硬盘驱动器(HDD)或者直接访问存储设备(DASD)同义。
信息在盘阵列上的存储示意性地实施于物理盘的一个或者多个存储卷上从而限定存储空间的整体逻辑布置。存储系统的存储操作系统可以实施高级模块(比如文件系统)以将存储于卷上的信息在逻辑上组织为数据容器(比如文件和逻辑单元)的分级结构。例如,每个“盘上”文件可以实施为如下数据结构(即盘块)的集合,这些数据结构被配置成存储信息,比如用于文件的实际数据。在文件系统维护的卷块编号(vbn)空间内组织这些数据块。
存储系统还可以被配置成根据信息递送的客户端/服务器模型来操作从而允许多个客户端访问存储于系统上的数据容器。在这一模型中,客户端可以包括在如下计算机上执行的应用(比如数据库应用),该计算机通过计算机网络比如通过公共网络比如因特网实施的虚拟专用网(VPN)、点到点链路、共享局域网(LAN)或者广域网(WAN)而“连接”到存储系统。每个客户端可以通过经过网络向系统发出基于文件和基于块的协议消息(以分组的形式)来请求存储系统的服务。
多个存储系统或者节点可以互连以提供被配置成服务于多个客户端的存储系统群集。每个存储系统可以被配置成服务于一个或者多个聚集体,其中每个聚集体包含盘的一卷或者多卷。在通过引用将其内容结合于此的、John
K. Edwards等人的、标题为EXTENSION OF WRITE ANYWHERE FILE SYSTEM
LAYOUT、公开号为2005/0246401、共同拥有的共同待决美国专利中进一步描述聚集体。聚集体可能出于诸多原因(包括失去连接、在卷和/或聚集体内的大量盘失效、等)而失效。当聚集体失效时,客户端可能不能访问包含于失效的聚集体上的数据。
通常将卷/聚集体的盘组织成独立(或者廉价)盘冗余阵列(RAID)组。多数RAID实施方式通过跨越RAID组中的给定数目的物理盘对数据“条”的冗余写入并且通过存储关于条式数据的冗余性信息(例如奇偶性)来增强数据存储的可靠性/完整性。RAID组的使用因此保护本地存储于聚集体的组中的数据。也就是说,RAID组一般提供预防丢失在由特定存储系统所服务的聚集体的组内的一个或者多个盘上的数据。然而如果存储系统本身失效,则存储于所服务的聚集体上的数据不再可由客户端访问、因此造成聚集体失效。
一种对这种聚集体失效的解决方案是创建在另一存储系统上镜像的服务和聚集体上包含的数据的镜像映像(“镜像”)。聚集体的镜像通常需要完整复制包括存储设备的存储系统资源,从而造成存储空间的低效使用(例如由于利用在存储系统上消耗的整个空间的一半)和大量运营成本。此外,一些镜像系统(例如镜像同步存储系统)中的响应时间可能特别缓慢,因为这样的系统在系统可以向客户端响应已持久存储了数据之前在两个镜像中存储数据。
发明内容
本发明通过提供一种跨越互连为群集的多个节点实施冗余性保护的聚集体的存储架构来克服现有技术的弊端。每个节点被实施为主要负责服务于本地附属聚集体的存储系统。另外,每个存储系统与被配置成在失效的情况下服务于聚集体的群集中的指定“伙伴”存储系统相关联。也就是说,冗余性保护的聚集体被配置成使得如果存储系统(例如它的附属聚集体)失效则存储系统(或者它的伙伴)可以重构原本将不可从失效的聚集体访问的数据。
为此,群集的多个聚集体被示意性地组织为“条式聚集体”。条式聚集体示意性地包括多个构成聚集体,其中每个构成聚集体包括例如组织成一个或者多个RAID组的多个盘。具体而言,当向具体聚集体上的盘写入数据时,向该聚集体的每个盘写入数据(例如跨越每个盘对该数据进行条化)。然后比较写入的数据与其余构成聚集体的数据以计算在对应位置处存储于聚集体之一(“奇偶性属主(parity
owner)”聚集体)上的对应冗余性信息,例如奇偶性。例如,可以计算逻辑(例如异或(XOR))值以确定是否应当改变关于具体奇偶性属主的有关奇偶性。
示意性地,每个聚集体的存储空间的块范围被划分成任意固定大小的“奇偶性区域”,其中在每个区域内分配仅一个构成聚集体作为奇偶性属主。然而奇偶性区域的权属可以跨越群集均匀分布,使得未指定构成聚集体比任何其它构成聚集体更经常地用作区域的奇偶性属主。因此,对于多个N聚集体中的任何给定块,N-1个聚集体是一组数据/消耗者聚集体,而第N个聚集体是在块存储空间内的具体偏移处的奇偶性属主聚集体。消耗者聚集体在存储空间的偏移处存储它们自己的数据,而奇偶性属主聚集体在该相同偏移处存储消耗者聚集体的奇偶性。例如,为了维护和存储奇偶性保护的数据,每个构成聚集体可以示意性地保留它自己的存储空间容量的1/N以用于存储与其它构成聚集体对应的数据的奇偶性,其中N为条式聚集体中的聚集体的数目。
附图说明
可以通过参照结合其中相似参考标号表明相同或者功能类似单元的附图的以下描述来更好地理解发明的上述和更多优点:
图1是根据本发明一个示意性实施例的互连为群集的多个节点的示意框图;
图2是根据本发明一个示意性实施例的节点的示意框图;
图3是可以有利地与本发明的一个示意性实施例一起使用的存储操作系统的示意框图;
图4是图示了根据本发明一个示意性实施例的群集结构(cluster
fabric,CF)消息的格式的示意框图;
图5是根据本发明一个示意性实施例的聚集体的示意框图;
图6是根据本发明一个示意性实施例的管理过程汇集的示意框图;
图7是根据本发明一个示意性实施例的配置成实施条式聚集体的存储系统群集的示意框图;
图8是图示了根据本发明一个示意性实施例的奇偶性保护的条式聚集体中的奇偶性分布的示意框图;
图9是根据本发明的条式聚集体的一个示意性实施例的示意框图;
图10是图示了根据本发明一个示意性实施例的向条式聚集体系统添加盘的示意框图;
图11是图示了根据本发明一个示意性实施例的向条式聚集体系统添加聚集体的示意框图;
图12是表示根据本发明一个示意性实施例的由条式聚集体在正常模式中执行的过程的示意时序图;
图13是图示了根据本发明一个示意性实施例的用于处理奇偶性写入请求的规程的流程图;
图14是图示了根据本发明一个示意性实施例的在用于存储系统的主存储器脱机并且群集正在降级模式中运行时对条式聚集体执行写入请求的示意时序图;
图15是图示了根据本发明一个示意性实施例的由群集采取的用于重建过程的规程的流程图;并且
图16是图示了根据本发明一个实施例的用于确定条式聚集体的操作模式的规程的流程图。
具体实施方式
根据这里描述的一个或者多个实施例,冗余性保护的聚集体被配置成使得如果群集存储系统的一个聚集体失效则存储系统(或者它的伙伴)可以重构原本将不可由群集的其它存储系统访问的存储于失效的聚集体上的数据。例如,条式聚集体示意性地包括多个构成聚集体。冗余性信息(例如奇偶性)基于群集中的构成聚集体的数目和任意固定大小的“奇偶性区域”而分布于构成聚集体当中,其中在每个区域内分配仅一个构成聚集体作为奇偶性属主。在“正常”操作模式期间,向聚集体写入数据,并且例如基于写入的数据的奇偶性区域和条式聚集体的构成聚集体而向对应的奇偶性属主写入针对数据计算的奇偶性。在聚集体失效时进入“降级”模式,其中存储系统利用分布式奇偶性区域的奇偶性以确定并且服务于失效的聚集体的数据。一旦恢复或者更换失效的聚集体,“重建”模式可以提供对恢复的聚集体的任何更新(或者整个数据集)。
A.群集环境
图1是互连为群集100并且配置成提供与信息在存储设备上的组织有关的存储服务的多个节点200的示意框图。节点200包括各种功能部件,这些功能部件配合以提供群集100的分布式存储系统架构。为此,每个节点200一般被组织为网元(N-模块310)和盘单元(D-模块350)。N-模块310包括使节点200能够通过计算机网络140连接到客户端180的功能,而每个D-模块350连接到一个或者多个存储设备,比如盘阵列120的盘130。节点200由在该示意性实施例中可以实施为吉比特以太网交换机的群集交换结构150互连。在公开于2002年8月22日、M. Kazar等人的、标题为METHOD AND
SYSTEM FOR RESPONDING TO FILE SYSTEM REQUESTS、公开号为US
2002/0116593的美国专利申请中一般描述了一种示意性分布式文件系统架构。应当注意,尽管示出了在示意性群集100中数目相等的N和D-模块,但是根据本发明的各个实施例可以有数目不同的N和/或D-模块。例如,可以有未反映N与D-模块之间的一一对应的群集配置100中互连的多个N-模块和/或D-模块。这样,对包括一个N-模块和一个D-模块的节点200的描述应当仅视为示意性。
客户端180可以是被配置成根据信息递送的客户端/服务器模型来与节点200交互的通用计算机。也就是说,每个客户端可以请求节点的服务,并且节点可以通过经过网络140交换分组来返回客户端所请求的服务的结果。客户端可以在访问形式为文件和目录的信息时通过传输控制协议/因特网协议(TCP/IP)发出包括基于文件的访问协议(比如通用因特网文件系统(CIFS)协议或者网络文件系统(NFS)协议)的分组。备选地,客户端可以在访问形式为块的信息时发出包括基于块的访问协议(比如在TCP上封装的小型计算机系统接口(SCSI)协议(iSCSI)和通过光纤信道封装的SCSI(FCP))的分组。
B.存储系统节点
图2是示意性地实施为如下存储系统的节点200的示意框图,该存储系统包括由系统总线223互连的多个处理器222a-b、存储器224、网络适配器225、群集访问适配器226、存储适配器228、持久型电子存储设备比如非易失性随机存取存储器(NVRAM)232和本地存储器230。本地存储器230包括由节点用来本地存储配置信息(例如存储在配置表235中)的一个或者多个存储设备,比如盘。群集访问适配器226包括适于将节点200耦合到群集100的其它节点的多个端口。在该示意性实施例中,以太网用作群集协议和互连介质,尽管本领域技术人员将清楚可以在这里描述的群集架构内利用其它类型的协议和互连。在其中N-模块和D-模块实施于单独的存储系统或者计算机上的备选实施例中,群集访问适配器226由N/D-模块用于与群集100中的其它N/D-模块通信。
每个节点200示意性地实施为如下双处理器存储系统,该双处理器存储系统执行存储操作系统300,该存储操作系统300优选地实施高级模块(比如文件系统)以在盘上将信息在逻辑上组织为已命名目录、文件和特殊类型的文件(称为虚拟盘(下文一般为“块”))的分级结构。然而本领域普通技术人员将清楚,备选地,节点200可以包括单个或者多于两个处理器系统。示意性地,一个处理器222a执行节点上的N-模块310的功能而另一处理器222b执行D-模块350的功能。
存储器224示意性地包括可由处理器和适配器寻址的如下存储位置,这些存储位置用于存储与本发明关联的软件程序代码和数据结构。处理器和适配器又可以包括配置成执行软件代码并且操纵数据结构的处理单元和/或逻辑电路。存储操作系统300(其部分通常驻留于存储器中并且由处理单元执行)通过尤其调用支持由节点实施的存储服务的存储操作来在功能上组织节点200。本领域技术人员将清楚,包括各种计算机可读介质的其它处理和存储装置可以用于存储和执行与这里描述的发明有关的程序指令。
网络适配器225包括适于通过点到点链路、广域网、通过公共网络(例如因特网)实施的虚拟专用网或者共享局域网而将节点200耦合到一个或者多个客户端180的多个端口。网络适配器225因此可以包括为了将节点连接到网络而需要的机械、电和信令电路。示意性地,计算机网络140可以实施为以太网网络或者光纤信道(FC)网络。每个客户端180可以通过根据预定义协议(比如TCP/IP)交换离散数据帧或者分组在网络140上与节点通信。
存储适配器228与在节点200上执行的存储操作系统300配合以访问客户端所请求的信息。信息可以存储于任何类型的可写入存储设备介质(比如视频带、光学、DVD、磁带、磁泡存储器、电子随机存取存储器(例如闪存)、微机电和适于存储信息(包括数据和冗余性(例如奇偶性)信息)的任何其它类似介质)附属阵列上。然而如这里示意性描述的那样,信息优选地存储于阵列120的盘130上。存储适配器包括具有如下输入/输出(I/O)接口电路的多个端口,该I/O接口电路通过I/O互连布置(比如常规高性能FC链路拓扑)耦合到盘。
信息在每个阵列120上的存储优选地实施为如下一个或者多个存储“卷”,该一个或者多个卷包括物理存储盘130的汇集,这些存储盘配合以限定卷块编号(vbn)空间在(一个或多个)卷上的整体逻辑布置。每个卷一般(虽然未必)与它自己的文件系统关联。卷内的盘还可以进一步组织为包括一组或者多组盘的聚集体,其中每组可以作为独立(或者廉价)盘冗余阵列(RAID)而操作。大多数RAID实施方式(比如RAID-4级实施方式)通过跨越RAID组中的给定数目的物理盘对数据“条”进行冗余写入并且适当存储关于条式数据的奇偶性信息来增强数据存储的可靠性/完整性。
奇偶性保护在存储系统中用来防范丢失存储设备(比如盘)上的数据。通过跨越保持不同数据的多个类似盘对特定字大小(通常为一位)的数据进行求和(通常模2)、然后在附加的类似盘上存储结果来计算奇偶性值。也就是说,可以对由在每个盘上的对应位置中的位组成的1位宽的矢量计算奇偶性。当对1位宽的矢量计算时,奇偶性可以是计算出的求和或者它的补数;这些分别称为偶数奇偶性和奇数奇偶性。加法和减法对于1位矢量而言等效于异或(XOR)逻辑运算,因而加法和减法运算被XOR运算所取代。然后保护数据以防丢失任何盘。如果存储奇偶性的盘丢失,则可以根据数据重新生成奇偶性。如果数据盘之一丢失,则可以通过将留存数据盘的内容相加在一起、然后从存储的奇偶性减去该结果来重新生成数据。
通常,盘被划分成奇偶性组,每个奇偶性组包括一个或者多个数据盘和奇偶性盘。盘存储空间被划分成条,其中每个条包含来自每个盘的一个块。条的块通常处于组中的每个盘上的相同位置。在条内,除了一个块之外的所有块包含数据(“数据块”),并且块之一包含通过对所有数据进行XOR而计算的奇偶性(“奇偶性块”)。如果奇偶性块所有都存储于一个盘上从而提供包含所有(并且唯一)奇偶性信息的单个盘,则提供了一种RAID-4实施方式。如果奇偶性块包含于每条中的不同盘内(通常在旋转模式中),则该实施方式称为RAID-5。尽管RAID实施方式的示意性例子是RAID-4或者RAID-5级实施方式,但是应当理解,可以根据这里描述的发明原理使用其它类型和级别的RAID实施方式。
NVRAM
232可以实施为具有备用电池或者其它内置式最后状态保留能力(例如闪存)的固态随机存取存储器阵列,其在阵列的任何功率损耗的情况下保持存储器的最后状态。NVRAM
232的部分被组织为如下非易失性日志(NVLOG 233),该日志被配置成提供暂时而持久的存储空间,该存储空间能够特别地按照系统的失效来维护如下写入请求(包括写入数据(更新)),这些写入请求涉及节点(存储系统)所服务的数据容器。为此,NVLOG
233在数据被存储于盘上之前存储写入数据,从而提高对客户端请求的响应性。
示意性地,NVRAM 232(例如NVLOG 233)可以被组织成多个区域,这些区域例如包括消息区域239、“发送-WIF”区域241、“接收-WIF”区域243和一个或者多个重建位图245,每个区域如这里所述。具体而言,消息区域239用来存储从如下客户端操作接收的写入数据,这些客户端操作涉及正由存储系统所服务的数据容器。发送-WIF区域241用来如下面进一步描述的那样通过存储事务的记录来提供在(例如向存储系统的本地附属聚集体)本地写入块与向远程节点发送奇偶性更新请求之间的原子性(atomicity)。一旦已向聚集体的本地盘写入块并且已更新奇偶性,就从发送WIF区域去除记录。在备选实施例中,可以将发送-WIF区域241镜像到失效转移(failover)伙伴。NVLOG 233也实施接收-WIF区域243以保证有仅一组语义向奇偶性写入。例如当根据第一请求向这一区域写入记录和关联的事务标识符(ID)时,NVLOG 233将检测尝试执行相同奇偶性写入的第二复制请求,并因此删除第二请求。根据本发明的一个示意性实施例,接收-WIF区域可以用失效转移伙伴来镜像它的记录。最后,在NVLOG 233中为每个聚集体分配至少一个重建位图区域245。起初,这些位图区域是干净的(空的),并且仅在群集处于降级模式时被填充以表明聚集体的哪些区域已变脏并且在恢复期间被重建。
C.存储操作系统
为了有助于对盘130的访问,存储操作系统300可以示意性地实施如下随处写入文件系统,该系统与一个或者多个虚拟化模块配合以“虚拟化”盘130所提供的存储空间。文件系统在盘上将信息在逻辑上组织为已命名数据容器(比如目录和文件)的分级结构。每个“盘上”文件可以实施为配置成存储信息(比如数据)的盘块的集合,而目录可以实施为名称以及指向其它文件和目录的链接存储于其中的特殊格式化文件。(一个或多个)虚拟化模块允许文件系统在盘上将信息在逻辑上组织为作为已命名逻辑单元编号(lun)而导出的数据容器(比如块)的分级结构。
在示意性实施例中,存储操作系统优选地为可从Sunnyvale, California的NetApp公司获得的NetApp® Data
ONTAP®操作系统,该操作系统实施随处写入文件布局(WAFL®)文件系统。然而,明确设想,可以根据这里描述的发明原理来增强任何适当存储操作系统以供使用。这样,在运用术语Data
ONTAP®的情况下,它应当广义地视为指代以其它方式可适于本发明教导的任何存储操作系统。
图3是可以根据本发明的一个示意性实施例而有利地使用的存储操作系统300的示意框图。存储操作系统包括一系列软件层,这些软件层被组织成形成集成网络协议栈或者更一般地形成如下多协议引擎325,该引擎提供数据路径以供客户端使用块和文件访问协议来访问存储于节点上的信息。多协议引擎包括网络驱动器(例如吉比特以太网驱动器)的媒体访问层312,该媒体访问层对接到网络协议层,比如IP层314及其支持传送机制、TCP层316和用户数据报协议(UDP)层315。文件系统协议层提供多协议文件访问并且为此而包括对直接访问文件系统(DAFS)协议318、NFS协议320、CIFS协议322和超文本传输协议(HTTP)协议324的支持。如DAFS协议318要求的那样,VI层326实施VI架构以提供直接访问传送(DAT)能力,比如RDMA。iSCSI驱动器层328通过TCP/IP网络协议层提供块协议访问,而FC驱动器层330从存储系统/节点接收块访问请求并且向存储系统/节点发送块访问响应。当访问节点200上的块时,FC和iSCSI驱动器提供对块的FC特定和iSCSI特定访问控制,并且因此管理lun向iSCSI或者FCP或者备选地向iSCSI和FCP二者的导出。
此外,存储操作系统包括一系列软件层,这些软件层被组织成形成如下存储服务器365,该存储服务器提供用于访问存储于节点200的盘130上的信息的数据路径。为此,存储服务器365包括与奇偶性保护模块370、RAID系统模块380和盘驱动器系统模块390有配合关系的文件系统模块360。RAID系统380根据I/O操作来管理向卷/盘存储信息和从卷/盘取回信息,而盘驱动器系统390实施盘访问协议,比如例如SCSI协议。根据如这里描述的本发明的一个示意性实施例,奇偶性保护模块370实施条式聚集体。应当注意,尽管示出了奇偶性保护模块370介于文件系统360与RAID系统380之间,但是奇偶性保护模块370的功能可以备选地集成到其它模块(例如RAID系统和/或文件系统360)中。这样,对单独的奇偶性保护模块370的描述应当仅视为示意性。
文件系统360通过与一个或者多个虚拟化模块的交互来实施存储操作系统300的虚拟化系统,这些虚拟化模块示意性地实施为例如虚拟盘(vdisk)模块(未示出)和SCSI目标模块335。vdisk模块响应于用户(系统管理员)向节点200发出命令,通过管理接口(比如管理框架的用户接口)来实现访问。SCSI目标模块335一般分别设置于FC和iSCSI驱动器330、328与文件系统360之间,以在块(lun)空间与文件系统空间之间提供虚拟化系统的转译层,其中lun表示为块。
文件系统360示意性地是如下基于消息的系统,该系统提供在访问存储于存储设备(比如盘)上的信息时使用的逻辑卷管理能力。也就是说,除了提供文件系统语义之外,文件系统360提供通常与卷管理器关联的功能。这些功能包括(i)盘的聚集、(ii)盘的存储带宽的聚集和(iii)可靠性保证比如镜像和/或奇偶性(RAID)。文件系统360示意性地实施WAFL文件系统(下文一般为“随处写入文件系统”),该文件系统具有基于块的盘上格式表示,该盘上格式表示例如使用4千字节(kB)的块并且使用索引节点(“inode”)以标识文件和文件属性(比如创建时间、访问权限、大小和块位置)。文件系统使用文件以存储对它的文件系统的布局进行描述的元数据;这些元数据文件其中包括inode文件。文件句柄(即包括inode编号的标识符)用来从盘取回inode。
广义地说,随处写入文件系统的所有inode被组织成inode文件。文件系统(fs)信息块指定文件系统中的信息布局并且包括如下文件的inode,该文件包括文件系统的所有其它inode。每个逻辑卷(文件系统)具有优选地在例如RAID组内的固定位置处存储的fsinfo块。inode文件的inode可以直接引用(指向)inode文件的数据块或者可以引用inode文件的如下间接块,这些间接块进而引用inode文件的数据块。在inode文件的每个数据块内是嵌入式inode,每个所述嵌入式inode可以引用如下间接块,这些间接块进而引用文件的数据块。
在操作上,来自客户端180的请求作为分组通过计算机网络140转发到节点200上,其中在网络适配器225处接收它。(层312或者层330的)网络驱动器处理分组并且在适合时把它传递到网络协议和文件访问层,以用于在向随处写入文件系统360转发之前的附加处理。这里(例如对于读取请求),如果所请求的数据未驻留“于核心中”(即于存储器224中),则文件系统生成用于从盘130加载(取回)该数据的操作。如果信息不在存储器中,则文件系统360使用inode编号来编索引成inode文件以访问适当条目并且取回逻辑vbn。文件系统然后向RAID系统380传递包括逻辑vbn的消息结构;逻辑vbn被映射到盘标识符和盘块编号(盘,dbn)并且被发送到盘驱动器系统390的适当驱动器(例如SCSI)。盘驱动器访问来自指定盘140的dbn并且在存储器中加载(一个或多个)所请求的数据块以供节点处理。在完成请求时,节点(和操作系统)通过网络140向客户端180返回答复。
应当注意,备选地可以用硬件来实施如下软件“路径”,该路径经过为针对在节点处接收到的客户端请求来执行数据存储访问所需要的上述存储操作系统层。也就是说,在本发明的一个备选实施例中,存储访问请求数据路径可以实施为在现场可编程门阵列(FPGA)或者专用集成电路(ASIC)内实施的逻辑电路。这一类型的硬件实施方式响应于客户端180发出的请求来增强节点200所提供的存储服务的性能。另外,在本发明的另一备选实施例中,适配器225和/或228的处理单元可以被配置成从处理器222分别卸载一些或者所有分组处理和存储访问操作,从而增强节点所提供的存储服务的性能。明确设想,可以用硬件、固件或者软件来实施这里描述的各种过程、架构和规程。
如这里使用的,术语“存储操作系统”一般指代可在计算机上操作以执行管理数据访问的存储功能的计算机可执行代码,并且在节点200的情况下可以实施通用操作系统的数据访问语义。存储操作系统也可以实施为微内核、在通用操作系统(比如UNIX®或者Windows NT®)上操作的应用程序或者实施为具有如下可配置功能的通用操作系统,该可配置功能被配置用于如这里描述的存储应用。
此外,本领域技术人员将理解,这里描述的本发明可以应用于实施为或者包括存储系统的任何类型的专用(例如文件服务器、文件或者存储服务装置)或者通用计算机(包括独立计算机或者其部分)。另外,本发明的教导可以适于各种存储系统架构(包括但不限于网络附属存储环境、存储区域网络和直接附属于客户端或者主机计算机的盘组件)。术语“存储系统”因此应当广义地视为包括除了配置成执行存储功能且与其它设备或者系统关联的任何子系统之外这样的布置。应当注意,尽管按照随处写入文件系统撰写了本说明书,但是本发明的教导可以与包括适当位置写入(write
in place)文件系统的任何适当文件系统一起使用。
D.CF协议
在示意性实施例中,存储服务器365实施为存储操作系统300的D-模块350以服务于一个或者多个阵列卷120。此外,多协议引擎325实施为N-模块310以(i)针对通过网络140发出传入数据访问请求分组的客户端执行协议终止以及(ii)将那些数据访问请求重定向至群集100的任何存储服务器365。另外,N-模块310和D-模块350配合以提供群集100的高度可伸缩、分布式存储系统架构。为此,每个模块包括适于在模块之间实施群集内通信(包括用于这里描述的数据容器条化操作的D-模块到D-模块通信)的群集结构(CF)接口模块340a、b。
N-模块310的协议层(例如NFS/CIFS层和iSCSI/FC层)起如下协议服务器的作用,这些协议服务器将来自客户端的基于文件和基于块的数据访问请求转译成用于与D-模块350通信的CF协议消息。也就是说,N-模块服务器将传入数据访问请求转换成CF接口模块340在CF消息内嵌入的文件系统原始操作(命令)以用于发送到群集100的D-模块350。特别地,CF接口模块340配合以跨越群集100中的所有D-模块350提供单个文件系统映像。因此,接收客户端请求的N-模块的任何网络端口可以访问位于群集的任何D-模块350上的单个文件系统映像内的任何数据容器。
继续该示意性实施例,N-模块310和D-模块350实施为存储操作系统300的单独调度的过程;然而在一个备选实施例中,模块可以实施为单个操作系统过程内的代码段。因此,虽然在不同节点的N-模块与D-模块之间的远程通信的情况下通过群集交换结构150来进行模块之间的消息传递,但是示意性地通过使用这样的消息传递来实现在N-模块与D-模块之间的通信。由存储操作系统提供的用于在模块(过程)之间传输信息的一种已知消息传递机制是过程间通信(IPC)机制。与IPC机制一起使用的协议示意性地是如下通用的基于文件和/或块的“不可知”CF协议,该协议包括构成CF应用编程接口(API)的方法/功能汇集。这样的不可知协议的例子是可从NetApp公司获得的SpinFS和CF协议。在通过引用将其内容结合于此的、Michael
Kazar等人的公开号为US 2002/0116593的上文引用的美国专利METHOD AND SYSTEM FOR RESPONDING TO FILE SYSTEM
REQUEST中描述了SpinFS协议。
CF接口模块340实施用于在群集100的模块之间传达文件系统命令的CF协议。通信示意性地由如下D-模块实现,该D-模块暴露N-模块(或者另一D-模块)向其发出调用的CF API。为此,CF接口模块340被组织为CF编码器和CF解码器。N-模块310上的例如CF接口340a的CF编码器将CF消息封装为(i)在向驻留于相同节点200上的D-模块350传达文件系统命令时的本地规程调用(LPC)或者(ii)在向驻留于群集100的远程节点上的D-模块传达命令时的远程规程调用(RPC)。在任一情况下,D-模块350上的CF接口340b的CF解码器将CF消息解封装并且处理文件系统命令。
图4是图示了根据本发明一个实施例的CF消息400的格式的示意框图。CF消息400示意性地用于在群集100的远程模块之间通过交换结构150的RPC通信;然而应当理解,术语“CF消息”一般可以用来指代群集的模块之间的LPC和RPC通信。CF消息400包括媒体访问层402、IP层404、UDP层406、可靠连接(RC)层408和CF协议层410。如所注意到的那样,CF协议是如下通用文件系统协议,该协议传送与在针对访问存储于群集100上的数据容器的客户端请求内包含的操作有关的文件系统命令;CF协议层410是消息400的如下部分,该部分携带文件系统命令。CF协议示意性地基于数据报并且这样涉及到以可靠方式从源(例如N-模块310)向目的地(例如D-模块350)发送消息或者“封包”。RC层408实施可靠的传送协议,该协议适于根据无连接协议(比如UDP 406)处理这样的封包。根据本发明的一个示意性实施例,如下面进一步描述的那样,CF协议被实施成将与在由群集的节点所服务的聚集体的盘上存储的数据关联的奇偶性分发到针对给定奇偶性区域托管该奇偶性的另一节点(存储系统)。
E.文件系统组织
图5是可以与本发明一起有利地使用的聚集体500的一个实施例的示意框图。根据一个示意性实施例,聚集体500是如下物理卷,该物理卷包括存储系统的一个或者多个盘组,比如RAID组。聚集体具有它自己的物理vbn(PVBN)存储空间并且在该PVBN空间内维护元数据,比如块分配结构。另外,聚集体500可以被分摊到一个或者多个虚拟卷中。每个虚拟卷具有它自己的虚拟卷块编号(VVBN)存储空间并且在该VVBN空间内维护元数据,比如块分配结构。Lun(块)502、目录504、qtree 506和文件508可以包含于虚拟卷(比如灵活卷510)内,这些虚拟卷进而包含于聚集体500内。聚集体500示意性地层叠于由至少一个RAID丛(plex)550所表示(根据存储配置是否被镜像)的RAID系统顶部上,其中每个丛550包括至少一个RAID组560。每个RAID组还包括多个盘530,例如一个或者多个数据(D)盘和至少一个(P)奇偶性盘。
尽管聚集体500类似于常规存储系统的物理卷,但是灵活卷类似于该物理卷内的文件。也就是说,聚集体500可以包括一个或者多个文件,其中每个文件包含灵活卷510并且其中灵活卷所消耗的存储空间之和在物理上小于(或者等于)整个物理卷的大小。聚集体利用如下物理PVBN空间,该空间限定由物理卷的盘所提供的块存储空间,而(文件内的)每个嵌入式灵活卷利用逻辑VVBN空间以将那些块例如组织为文件。每个VVBN空间是与文件内的位置对应的独立编号集,这些位置然后被转译成盘上的dbn。
F.VLDB
图6是图示了管理过程汇集的框图,这些管理过程作为用户模式应用600在存储操作系统300上执行以提供对用于群集的存储系统/节点的配置信息(即管理数据)的管理。为此,管理过程包括管理框架过程610和卷位置数据库(VLDB)过程630,每个过程利用链接为库的数据复制服务(RDB
650)。管理框架610经由命令行接口(CLI)和/或基于万维网的图形用户接口(GUI)提供用户到管理员670接口。管理框架示意性地基于常规公共接口模型(CIM)对象管理器,该管理器提供用户/系统管理员与节点200交互至的实体以便管理群集100。
VLDB
630是如下数据库过程,该过程跟踪各种存储部件(例如聚集体)在群集100内的位置,从而有助于请求在整个群集内的路由。VLDB包括多个条目,这些条目进而在配置表235中提供条目内容;此外,这些VLDB条目保持对灵活卷(下文一般为“卷510”)和聚集体500在群集内的位置的跟踪。
VLDB示意性地实施RPC接口,例如Sun RPC接口,该接口允许N-模块310查询VLDB 630。N-模块在遇到未存储于它的配置表中的内容时向VLDB过程发送RPC。作为响应,VLDB 630向N-模块返回适当的映射信息,该映射信息包括拥有数据容器的D-模块的标识符(ID)。N-模块在它的配置表235中高速缓存信息并且使用D-模块ID以向适当数据容器转发传入请求。通过RDB库用户模式应用600和管理过程的汇集,基于全群集范围(cluster-wide)来协调在N-模块310与D-模块350之间的所有功能和交互。
为此,管理过程具有与RDB 650的接口(紧密耦合到RDB
650)。RDB包括如下库,该库针对管理过程所处理的管理数据提供持久型对象存储(存储对象)。特别地,RDB
650跨越群集100的所有节点200复制和同步管理数据对象存储访问,从而保证RDB数据库映像在所有节点200上相同。在系统启动时,每个节点200将它的接口的状态/状况和IP地址(它“拥有”的那些IP地址)记录到RDB数据库中。
F.条式聚集体
如所注意到的那样,根据这里描述的一个或者多个实施例,冗余性保护的聚集体被配置成使得:如果群集的一个聚集体失效,则群集的存储系统可以重构原本将不可由群集访问的数据。例如,条式聚集体示意性地包括多个构成聚集体。奇偶性基于群集中的构成聚集体的数目和任意固定大小的“奇偶性区域”而分布于构成聚集体当中,其中在每个区域内分配仅一个构成聚集体作为奇偶性属主。
图7是根据本发明一个示意性实施例的配置成实施条式聚集体700的存储系统群集的示意框图。条式聚集体700示意性地包括驻留于存储系统A-D(分别为712、722、732和742)上的四个构成聚集体A-D(分别为714、724、734和744)。如在本发明的示意性实施例中所示,存储系统A-D可以驻留于远程位置A-D(分别为710、720、730和740),使得如果在一个位置处存在灾难性失效,则其它位置可以幸免于该失效。存储系统由奇偶性连接703互连。奇偶性连接703是可以通过使用以太网连接或者任何其它群集间网络连接(比如公知的因特网连接)实施的通信介质。
如这里描述的条式聚集体700由N个聚集体组成,每个聚集体示意性地由在存储系统A-D内操作性地互连的本地RAID架构建。根据一个示意性实施例,用于构成聚集体A的数据存储于本地附属于存储系统A的存储设备上。此外,影响聚集体A的操作使奇偶性在条式聚集体700中的其它位置处更新。另外,构成聚集体A(714)被示意性地指定为存储系统B 724的失效转移伙伴。失效转移伙伴用来在条式聚集体700中的聚集体失效的情况下获得冗余性信息(例如奇偶性)。这意味着如果聚集体A(714)要是失效,则客户端170将仍然能够基于存储于构成聚集体(例如B-D)上的奇偶性、使用伙伴聚集体B(724)来访问信息。例如,如果存储系统A失效,则存储系统B负责通过例如模拟对聚集体A(714)中的盘的访问以根据其它构成聚集体中可用的其余数据执行逆奇偶性计算来接管存储系统A在群集中的作用(这里进一步描述)。另外,NVRAM镜像(701)应用于聚集体与聚集体的失效转移伙伴之间。例如,如果聚集体B是聚集体A的失效转移伙伴,则在聚集体A上的NVRAM 232中存储的信息也存储于聚集体B中的NVRAM上。
图8是根据本发明一个示意性实施例的奇偶性保护的条式聚集体800中的奇偶性分布的示意框图。这里,条式聚集体由存储系统群集的构成聚集体A-D组成。在示意性条式聚集体800中,每个构成聚集体(801-804)保留它自己的存储空间容量的1/N以存储来自其它构成聚集体的冗余性信息,其中N为构成聚集体的数目。因此,对于任何给定物理卷块编号(PVBN),N-1个构成聚集体(“消耗者”)使用该偏移以存储它们自己的数据。第N个构成聚集体(该偏移的奇偶性属主)在该相同偏移处存储其它构成聚集体的数据的冗余性信息(例如奇偶性和/或校验和),即并非将它自己的数据存储于此。
另外,为了防止群集引入性能瓶颈,分发奇偶性权属作用。条式聚集体800(参见图8、图9和图10)的PVBN范围被划分成任意固定大小的“奇偶性区域”805-850。在区域805-850内,分配一个构成聚集体作为奇偶性属主。在该示意性实施例中,聚集体A(801)负责奇偶性区域0(805)和区域4(825)内的奇偶性。在任何给定时间,对于任一区域0或者4内的任何PVBN,聚集体A中的对应块存储用于聚集体B(802)、C(803)和D(804)中的等效PVBN中包含的数据的冗余性信息。可以使用如在通过引用将其内容结合于此的、Richard Jernigan等人的公开为2006/0248273的美国专利DATA
ALLOCATION WITHIN A STORAGE SYSTEM ARCHITECTURE中描述的过程来分发奇偶性区域的权属。如应用于聚集体的这里描述的算法防止构成聚集体(即它的关联奇偶性保护模块370)比任何其它构成聚集体更经常地被指定为奇偶性属主。除了平衡的消耗之外,该算法还防止群集“热点化(hot-spotting)”,这意味着奇偶性保护模块可能不采用(assume)针对聚集体中的多个连续区域的奇偶性权属。最后,例如下面描述的那样(例如图10和图11),该算法致使聚集体的添加或者减去更容易。
图9是根据本发明的分别包括构成聚集体A-C(910、920和930)的条式聚集体900的一个示意性实施例的示意框图。示意性聚集体A包括存储设备903、906和909,这些存储设备被以100的偏移进一步指定到示意性PVBN范围0-2699中。因此,存储设备1(903)中的第一PVBN范围为0-99。此外,如上文所注意到的聚集体也被指定到九个示意性区域中。因此,根据一个示意性实施例,PVBN范围0-99、900-999和1800-1899位于相同区域中,但是未位于相同范围或者存储设备中。这里描述的示例性存储设备可以是任何种类的存储设备(例如由多个盘组成的RAID架、闪存等)。在条式聚集体900中,冗余性信息(例如奇偶性)可以分布于构成聚集体A-C上,使得对于每个区域而言仅一个聚集体在该具体区域中存储奇偶性。因此,在条式聚集体的区域1(参照图8)中,奇偶性仅存储于聚集体B上,而在区域2中,聚集体A存储奇偶性等。另外,对于在聚集体中存储奇偶性的每个区域,该聚集体的区域中的每个PVBN也示意性地存储奇偶性。例如,聚集体A的区域2跨越存储设备903、906和909在PVBN范围100-199、1000-1099和1900-1999中存储奇偶性。在一个示意性实施例中,每个聚集体具有数目相等的存储设备和区域,因此相应地,可以类似地分配PVBN范围。
特别地,可以通过向群集中的每个构成聚集体添加存储设备或者通过向群集添加新的构成聚集体来扩展冗余性保护的聚集体。图10是图示了根据本发明一个示意性实施例的向条式聚集体900的现有存储设备(分别为存储设备1008、1028和1038)添加存储设备(例如第四存储设备)的示意框图。注意,所添加的存储设备中无阴影的范围表示填写零的范围,即尚待填充的PVBN范围。新添加的存储设备中有阴影的PVBN范围是仅利用该特定聚集体上的奇偶性填充的奇偶性属主区域。通过向每个构成聚集体添加相同几何形状,新的奇偶性属主区域是对来自对应的先前填充的奇偶性属主区域的PVBN块的XOR。
图11是图示了根据本发明一个示意性实施例的向条式聚集体900(上文)添加聚集体(第四聚集体D,1140)的示意框图。这里,从聚集体A-C至D中重新分配奇偶性区域,使得每个聚集体包括整个条式聚集体中包含的奇偶性的1/N。可以分别向聚集体D(1140)的区域5、0和8传输图9的聚集体A(910)、B(920)和C(930)的区域5、0和8,从而平衡群集,使得在一个聚集体上包含整个群集的奇偶性的不多于1/N。再次通过向每个构成聚集体添加相同几何形状,新的奇偶性属主区域是对来自对应的先前填充的奇偶性属主区域的PVBN块的XOR。也就是说,现有奇偶性数据从一些PVBN区域传输到它们的新对应PVBN区域中的聚集体上。然后将从其传输现有奇偶性数据的PVBN区域保持为填写零并且可以在以后的时间被填写。
H.条式聚集体操作和操作模式
在操作上,奇偶性保护可以示意性地利用存储系统200的持久型存储设备(比如NVRAM 232)中的存储空间。如所注意到的那样,每个存储系统可以组织和分配NVRAM中的“飞行中写入”(WIF)区域。存储于WIF区域中的数据与(例如响应于在“本地”存储系统处接收的写入请求)正向块本地写入的数据(比如存储于非易失性日志(NVLOG)233中的数据)一致。从位于NVRAM 232的WIF区域中的发送-WIF区域241向群集的远程存储系统(例如奇偶性属主聚集体)发送奇偶性更新请求。发送和接收请求的记录可以存储于(发送存储系统上的)发送-WIF区域和(接收存储系统的)接收WIF区域中。当针对具体数据块已完成两个请求时,从NVRAM
232去除这些记录(条目)。如所注意到的那样,本地存储系统还组织和分配NVRAM 232的WIF区域中的至少一个接收-WIF区域243。接收-WIF区域243记录如下数据,该数据被配置成保证群集可以检测到尝试执行相同奇偶性更新的重复请求。此外,存储系统针对系统所拥有的每个聚集体组织和分配NVRAM
232的重建区域/位图245。重建区域起初为干净的,然后在降级模式(下面描述)期间被填充以表明聚集体的哪些奇偶性区域已“变脏”(更新),并且在从失效的聚集体恢复期间被重建。与NVRAM
232关联的这些区域反映在群集中在任何给定时间当前未完成的奇偶性更新的数目。因此,仅在已完成本地数据和奇偶性更新时才可以从NVRAM
232去除(清除)关联的记录。在本发明的一个示意性实施例中,群集(例如条式聚集体)能够在各种操作模式中运行。例如,如这里描述的那样,根据存储系统的各种状况,条式聚集体可以在正常模式中或者在降级模式、挂起模式或者重建模式中操作。
某些信息暂时和持久地存储于NVLOG中。NVLOG
233暂时存储这样的信息以增强存储系统的可靠性和性能。在一致性模型事件(例如一致性点(CP))期间示意性地向盘写入存储系统所接收和处理的写入数据。示意性地,可以在填写NVLOG的预定部分(例如一半)时发起CP。作为响应,存储系统向它的本地聚集体和群集中的对应奇偶性块的属主清除写入数据。这一过程称为正常模式。在完成CP时,存储系统然后可以从NVRAM 232丢弃/去除信息。
具体而言,在正常模式中,本地存储系统的奇偶性保护模块370通过读取当前在待盖写的块中的数据、针对新数据和当前数据计算XOR并且创建新的发送-WIF记录以在NVLOG 233中存储新数据和冗余性信息(奇偶性),来对针对新数据的写入请求做出响应。一旦奇偶性存储系统(奇偶性属主)确认了写入请求,存储系统就向客户端发回写入响应。并行地,存储系统向它的本地聚集体写入NVLOG
233所存储的信息(例如写入数据)并且向奇偶性块的属主(奇偶性属主)发送针对XOR更新的请求。奇偶性属主然后通过在奇偶性属主的NVLOG中写入事务ID和计算出的XOR来创建它自己的接收-WIF记录。奇偶性属主然后向本地奇偶性保护模块370返回成功响应。随后,奇偶性属主向盘写入计算出的XOR,从而允许从NVLOG删除XOR。
同时,一旦已向本地聚集体写入存储于本地NVLOG 233上的数据,就去除该数据。然而,一旦奇偶性属主响应是奇偶性已成功存储于奇偶性属主的NVLOG上,就可以去除XOR值。当已从NVLOG去除本地数据和奇偶性更新时,本地附属聚集体的奇偶性保护模块丢弃事务ID。最后,在CP结束时,存储系统进行对NVLOG 233的一次最后清除调用以保证已去除所有事务。
图12是表示根据本发明一个示意性实施例的由条式聚集体在正常模式中执行的过程的示意时序图。当群集的本地存储系统(即本地附属数据聚集体1242)在步骤1202中从客户端(未示出)接收到写入请求时,数据聚集体的奇偶性保护模块在步骤1206中通过读取数据并且计算XOR来做出响应。奇偶性保护系统同时创建新的发送-WIF记录以在NVLOG中存储新数据和XOR数据。如果在发送-WIF区域241中的空间不足以创建另一记录,则数据聚集体停止(stall)直至空间被释放。如果空间可用,则在步骤1208中NVLOG 233存储事务ID并且奇偶性保护模块计算XOR。一旦在NVLOG上创建了记录,就向客户端发回表明写入请求已完成的写入响应。
接着在步骤1213中,从数据聚集体的奇偶性保护模块向奇偶性属主(即奇偶性聚集体1244)发送XOR更新请求。在步骤1220中向数据聚集体1242上的盘(并行)写入已修改的任何数据(即高速缓存的脏数据)。一旦已向盘写入数据,就在步骤1222中从NVLOG 233清除/删除数据。然而,直至在步骤1224中从奇偶性属主接收到如下XOR响应才删除冗余性信息和事务ID,该XOR响应表明冗余性信息已记录于奇偶性属主的NVLOG 233上。在步骤1220和1222正在处理时,奇偶性聚集体1244示意性地并行操作。在步骤1218中,奇偶性聚集体向NVLOG写入事务ID和冗余性信息并且在步骤1224中向奇偶性保护模块发回如下响应,该响应表明XOR更新已完成。然后,数据聚集体的奇偶性保护模块可以删除记录于它的NVLOG上的冗余性信息和事务ID(步骤1226和1230)。同时,奇偶性属主/聚集体1244向盘写入更新后的XOR(步骤1232)并且从它的NVLOG删除该XOR,从而保持事务ID直至数据聚集体1242的奇偶性保护模块向奇偶性属主1244发回表明该过程完成的“XOR完成”响应。这时,奇偶性属主1244从NVLOG删除事务ID(步骤1240),并且该过程重复。在备选实施例中,数据聚集体可以将请求“背负式运输(piggyback)”到奇偶性属主以便提高效率。因此,在发送“XOR完成”请求(步骤1238)时,数据聚集体也向奇偶性属主发送新的XOR更新请求(步骤1238)。(特别地,如本领域技术人员将理解的那样,当在正常模式中时接收到读取请求时,数据聚集体以常规方式从它们在数据聚集体1242的本地盘上的原始存储位置读取文件。)。
具体而言,每个聚集体在条式聚集体中不仅存储它自己的数据而且存储针对另一构成聚集体的某种类型的冗余性信息(例如奇偶性)。如所注意到的那样,当另一存储系统(请求者)请求向远程存储系统(即奇偶性聚集体)写入奇偶性时,请求者提供目标聚集体ID、正被写入的聚集体内的PVBN、表明旧块数据与新块数据之间的区别的XOR、以及唯一事务标识符(ID)。事务ID用来提供目标的语义集。
图13是图示了根据本发明一个示意性实施例的用于处理奇偶性写入请求的规程1300的流程图。规程1300在步骤1302中开始并且继续至步骤1304,在步骤1304中在数据聚集体处接收奇偶性写入并且在该聚集体的接收-WIF NVLOG区域中进行记录。然后在步骤1306中,本地奇偶性保护模块确定具有该相同事务ID的记录是否已经存在于数据聚集体的NVLOG中。如果事务ID确实存在,则传入奇偶性写入为副本并且可以被忽略以便防止对相同聚集体复制XOR过程。当首次将记录写入到接收-WIF区域243中时,NVLOG不仅记录事务ID而且记录XOR数据本身,例如以保证XOR写入的原子性。因此,一旦确定了在NVLOG中无相同记录,数据聚集体就在步骤1308中读取当前块。在步骤1310中将块与传入XOR数据进行异或。一旦冗余性信息完成,就在步骤1312中奇偶性保护模块向NVLOG的接收-WIF区域243写入XOR/奇偶性计算,从而允许在步骤1320中发送如下响应,该响应表明1304中的写入请求已在步骤1322中完成。
与特定聚集体关联的发送-WIF区域241还示意性地以记录的形式保持对任何如下写入请求的跟踪,聚集体针对这些写入请求发送奇偶性写入。在一个示意性实施例中,这些记录存储附加信息。也就是说,不仅记录存储事务ID和XOR数据,而且NVLOG 233也存储正向数据聚集体写入的新(写入)数据。也可以存储写入数据,以便保证在失效转移的情况下构成聚集体可以完成本地写入请求,正如失效的聚集体将会进行的那样。
另外,事务ID可以随时间累积于接收-WIF中。例如,在重启时,存储系统可能未“记住”事务ID需要“清理”,因此未向与接收WIF关联的存储系统通知已提交(commit)事务。因此,每个存储系统将向其它构成存储系统发送它保持事务ID的周期性请求,从而向构成存储系统询问事务ID是否仍然有效,并且从而允许系统在响应表明事务ID不再处于使用时清理旧事务。
一旦聚集体失效,奇偶性保护的模块就使聚集体/群集转移至降级模式以取回客户端所请求的数据。在降级模式中,在用于群集中的聚集体的主存储器脱机(即已识别出失效的聚集体)时向该聚集体发送写入请求。奇偶性保护模块首先接收对失效的聚集体的写入请求。注意,失效的聚集体可以是任何如下聚集体,在该聚集体中不能访问包含数据的存储设备;然而,连接到失效的聚集体的D模块(即它的奇偶性保护模块)可以完全操作以便发送和接收来自客户端的文件。失效的聚集体然后将来自它的奇偶性保护模块的读取请求发送到托管多个目标数据块的数据的每个远程聚集体。每个读取请求造成锁定目标数据块并且从盘取回数据。一旦该锁定在远程聚集体上就位,就防护对数据块的奇偶性的所有更新。(即,其它存储系统这时不能修改块的奇偶性)。在这一防护就位时,失效的聚集体的奇偶性保护模块可以根据所有远程数据块以及奇偶性保护模块希望向其写入的块来计算XOR。然后,失效的聚集体上的奇偶性保护模块向失效的聚集体上的NVLOG 233写入计算出的XOR和事务ID。向拥有奇偶性的聚集体的奇偶性保护模块(经由写入请求)直接发送所得到的计算,并且向客户端发回写入响应。
图14是图示了当存储系统的主存储器脱机并且群集正在降级模式中运行(例如聚集体失效并且在重建聚集体之前需要由客户端访问)时对条式聚集体1400执行写入请求的示意时序图。在步骤1402中,在失效的聚集体1420的存储系统(D-模块)处从客户端接收写入请求。D模块的奇偶性保护模块向其它构成数据聚集体1440发送读取请求(步骤1404),其中锁定多个目标数据块(步骤1406)并且从位于每个数据聚集体1440上的对应盘读取这些目标数据块(步骤1408)。一旦对每个数据聚集体设置了锁定,就向失效的聚集体发回读取响应,并且防护将向奇偶性聚集体(即包含与失效的聚集体关联的奇偶性的聚集体)发送的更新,使得这时不能修改块的奇偶性(步骤1412)。在防护就位时,(对应聚集体的)奇偶性保护模块针对所有远程数据块和当前写入请求来计算新的奇偶性XOR(1414)。然后将新的奇偶性XOR与事务ID一起写入到失效的聚集体1420上的NVLOG 233。这时,向客户端发回表明写入请求已完成的响应(步骤1418)。奇偶性保护模块向奇偶性属主1460发送写入请求从而锁定目标数据块(步骤1424)并且写入新的传入数据(计算出的XOR)作为新的奇偶性块(步骤1426)。将数据块解锁并且向失效的聚集体上的奇偶性保护模块发回表明写入请求已完成的写入响应。这时,失效的聚集体上的奇偶性保护模块从它的NVLOG删除事务ID和冗余性信息(步骤1432),从而触发解锁响应回到远程数据聚集体1440上的奇偶性保护模块。相应地,将数据块解锁(步骤1436)并且向失效的聚集体上的奇偶性保护模块发回表明该过程已完成的响应(步骤1438)。
特别地,当存储系统在群集处于降级模式时发出读取请求时,它的奇偶性保护模块执行逆奇偶性计算以获得所请求的数据。通过使用适当存储的奇偶性以确定丢失的数据值来执行逆奇偶性计算。具体而言,当失效的聚集体在群集处于降级模式时接收到读取请求时,它的奇偶性保护模块向其它构成数据聚集体发送读取请求。然后从位于每个数据聚集体上的对应盘(即每个对应PVBN)读取数据。随后向失效的聚集体上的奇偶性保护模块发回读取响应。(失效的聚集体的)奇偶性保护模块针对所有远程数据块计算逆奇偶性XOR以便确定当前读取请求。然后相应地,可以从失效的聚集体的奇偶性保护模块向请求客户端返回逆奇偶性计算结果。
在一个示意性实施例中,一旦失效的聚集体恢复联机,失效的聚集体的奇偶性保护模块就继续至重建模式。首先,失效的聚集体的奇偶性保护模块向奇偶性属主发送写入请求。这一请求锁定每个适当数据块并且在奇偶性属主上写入传入数据作为更新后的奇偶性块。奇偶性属主的奇偶性保护模块然后将数据块解锁并且向失效的聚集体的奇偶性保护模块发回写入响应。失效的聚集体的奇偶性保护模块然后从NVLOG
233删除XOR和事务ID并且向远程数据聚集体发回解锁请求,以允许目标数据块被解锁以供其它构成聚集体的D模块访问。最后,当构成聚集体的所有奇偶性保护模块已向失效的聚集体上的奇偶性保护模块发回表明返回到正常模式是安全的解锁响应时,完成该过程。
利用一次涉及一个奇偶性区域的滚动防护来执行重建。已重建并且根据正常模式操作来访问处于防护“后面”的奇偶性区域(例如已经遍历的区域)。对照而言,根据降级模式操作来访问处于防护“前面”的奇偶性区域。防护正被主动重建的奇偶性区域,并且对该区域的所有访问在正在重建区域时停止。
图15是图示了根据本发明一个示意性实施例的由群集采取的用于重建过程的规程的流程图。示意性地在失效的聚集体返回到群集和/或被更换时采取重建过程,以便“追上”群集的其余部分。重建过程开始于确定需要重建哪些奇偶性区域的步骤1505。如果条式聚集体正在重构需要重新初始化的失效的聚集体,则重建所有奇偶性区域。然而,如果条式聚集体正在重构例如脱机(“停机”)的先前失效的聚集体,则奇偶性保护模块从所有构成部分(constituent)收集重建位图245并且在逻辑上组合它们(例如对它们进行OR运算)以判决哪些区域在这一失效的聚集体停机时已变脏(步骤1510)。滚动防护然后从一个脏区域继续至下一个(步骤1515),因而如果失效是短暂的,则重建时段也将是短暂的。
在步骤1525中,通过将奇偶性区域块拆分成分段并且向不同构成聚集体传输用于不同分段的重建作业(步骤1530)来重建奇偶性区域。为了重建分段,先前失效的聚集体的奇偶性保护模块从它自己的NVLOG 233和所有其它构成聚集体读取数据(步骤1535)、计算丢失的补数段(步骤1540)(比如通过(上文提到的)逆奇偶性计算)并且向先前失效的聚集体发回该段(例如摘要),该先前失效的聚集体然后向盘写入数据(1550)。可以调节重建过程以保证不多于N个重建分段请求同时在飞行(in
flight)。注意,N的值越大,重建就完成得越快,但群集在重建期间针对所有其它业务的响应性就将越低。另外,示意性地预期奇偶性区域为预定大小(例如100MB),并且单个重建分段的大小将受可以在单个CF调用时发送或者接收的数据量影响。
图16是图示了根据本发明一个实施例的用于确定条式聚集体的操作模式的规程1600的流程图。(注意,可以用如下阶段(era)来标注条式聚集体(即群集)的当前操作模式,该阶段是每当操作模式改变就递增的整数值。此外,在VLDB
630内持久地记录条式聚集体的操作模式。)在从启动(步骤1605)移动时,客户端通过首先使每个相关存储系统维护它自己的健康的阵列来确定要进入哪个模式。在步骤1615中,通过存储系统是否可以将奇偶性写入引导至条式聚集体中的所有构成部分来限定它的健康。通过正常奇偶性写入尝试以及通过存储操作系统所运行的周期性健康查询来连续更新存储系统的健康。基于这一信息阵列,存储系统判决它认为全部条式聚集体应当采用哪个模式。如果每个聚集体的奇偶性保护模块能够向任何其它构成聚集体发送奇偶性,则奇偶性保护的模块判决群集应当处于正常模式(步骤1613)。
如果不能向群集中的恰好一个聚集体写入数据,则广播节点在聚集体不能到达时确定群集的奇偶性保护模块处于降级模式(步骤1617)。按照群集中的哪个聚集体由于失效而丢失来进一步界定降级模式。另外,除了界定失效的聚集体之外,降级模式还界定哪个聚集体将正模拟失效的聚集体(即失效的聚集体的失效转移伙伴)。当条式聚集体进入降级模式时,VLDB
630记录条式聚集体的当前状况。如果有不止一个失效的聚集体(或者如果条式聚集体到达两个或者更多聚集体有困难),则群集中的奇偶性保护模块在步骤1620中转移至挂起模式。对保持处于挂起模式的判决因条式聚集体的当前状况而变复杂。这意味着如果聚集体为脏(例如在降级模式正运行时失效),则任何第二失效要求条式聚集体进入挂起模式。
存储系统可以检查/分析它的健康状态以判决与条式聚集体的当前模式不匹配的操作模式。当它做出改变模式的判决时,存储系统(例如由系统管理员这样配置的广播节点)向条式聚集体的所有其它存储系统发送针对改变成正常(健康)模式、降级模式等的请求。每个存储系统然后接收请求并且测试它自己以确定请求是否兼容于它自己的健康。一旦测试完成,每个其它存储系统就用成功或者失败对请求做出响应。在从所有存储系统收集所有响应之后,广播节点评估响应以确定法定数目(quorum)的存储系统是否希望继续重放。因此,条式聚集体保持处于挂起模式,直至在步骤1625中法定数目的存储系统同意条式聚集体不再需要保持处于挂起模式。一旦有法定数目的存储系统同意,条式聚集体/群集就继续至重放模式(步骤1630),其中它等待数据重放开始。这里,群集的每个节点/存储系统重放记录于NVLOG上的任何WIF记录以便同步/改变条式聚集体(步骤1635)。在步骤1640中,重放在群集处于挂起模式时存储的任何NVLOG记录。在存储系统已在步骤1645中完成它的重放规程之后,完成的聚集体转向“重放完成”模式(步骤1650)并且在步骤1655中等待来自广播节点的如下消息:群集中的所有聚集体已完成重放。
随后,广播节点再次开始从存储系统发送并且接收请求和响应以确定条式聚集体(群集)的操作模式。这时,群集可以继续至降级模式、正常模式或者重建模式(步骤1623)。然而,如果广播节点判决首先进入降级模式,则群集在进入健康/正常模式之前转移至重建模式,从而最终在步骤1660中完成。(特别地,在步骤1660中的完成可以意味着重启(步骤1605)以基于一个或者多个聚集体的失效来更新群集是否将保持处于正常模式的状态。)。
再次概括而言,本发明提供了一种用于利用奇偶性保护模块以在条式聚集体上备份数据的系统和方法。具体而言,奇偶性保护模块针对在多个构成聚集体中的每个构成聚集体的具体位置处存储的数据计算奇偶性并且在构成聚集体中的作为该具体数据位置的奇偶性属主的一个构成聚集体上存储该奇偶性。在构成聚集体之一失效的情况下,条式聚集体仍然可以访问数据以写入数据和读取存储于失效的聚集体上的数据。具体而言,奇偶性保护模块通过执行逆奇偶性计算来允许客户端从失效的聚集体读取数据,该逆奇偶性计算也可以用来向失效的聚集体恢复数据。
前文描述已涉及本发明的具体实施例。将清楚可以对所描述的实施例进行其它变化和修改,其中获得它们的优点中的一些或者所有优点。例如明确设想,可以实施本发明的教导,包括具有在计算机上执行的程序指令的计算机可读介质、硬件、固件或者其组合。此外,尽管就在奇偶性保护的模块上的条式聚集体方面撰写了本说明书,但是应当注意,可以利用其它数据容器实施方式。这样,使用冗余性信息(例如奇偶性)以支持奇偶性保护的模块应当仅视为示意性。相应地,本说明书将仅视为举例而不以其它方式限制本发明的范围。因此,所附权利要求的目的在于覆盖如落在本发明的真正精神和范围内的所有这样的变化和修改。
Claims (19)
1.一种方法,包括:
将多个构成聚集体组织为条式聚集体,所述构成聚集体跨越互连为群集的多个节点而实施,所述构成聚集体包括一个或者多个数据聚集体和奇偶性属主聚集体;
在每个所述数据聚集体上存储从至少一个客户端接收的数据;
针对在每个所述数据聚集体的具体位置处存储的数据计算冗余性信息;并且
在针对具体数据位置的所述奇偶性属主聚集体上存储所计算出的冗余性信息。
2.根据权利要求1所述的方法,其中计算所述冗余性信息还包括:
向所述群集中的节点的非易失性存储设备写入所述数据、冗余性信息和一个或者多个标识符;并且
一旦已向所述非易失性设备写入所述数据,就向所述客户端发回响应。
3.根据权利要求1所述的方法,其中在所述奇偶性属主聚集体上存储所计算出的冗余性信息还包括:
向群集上的所述节点的非易失性存储设备写入一个或者多个奇偶性标识符;
向数据聚集体发回第一响应;
向所述奇偶性属主聚集体写入奇偶性块;并且
向所述数据聚集体发回第二响应。
4.根据权利要求3所述的方法,其中所述数据聚集体是接收存储于所述构成聚集体上的数据的聚集体。
5.根据权利要求4所述的方法,还包括:
在接收到写入请求之后确定数据聚集体已失效;并且
响应于确定所述数据聚集体已失效而初始化用于从奇偶性属主和任何未填写的数据聚集体读取数据的规程。
6.根据权利要求5所述的方法,还包括:
向所述奇偶性属主聚集体发送读取请求;
在与所述奇偶性属主聚集体关联的节点的奇偶性保护模块上执行逆奇偶性计算;
利用所述逆奇偶性计算以读取用于失效的聚集体的数据块;并且
向所述群集上的广播节点发送读取响应。
7.根据权利要求6所述的方法,还包括利用重建规程来恢复所述失效的聚集体。
8.根据权利要求1所述的方法,其中所述构成聚集体是根据条式交叉实施的RAID实施方式来组织的。
9.根据权利要求8所述的方法,其中所述RAID实施方式是RAID 4实施方式。
10.一种用于利用条式数据容器以备份存储系统的系统,所述系统包括:
第一存储系统,服务于互连到多个构成聚集体的聚集体;
第二存储系统,服务于奇偶性属主聚集体,所述奇偶性属主与所述多个构成聚集体互连;
所述第一存储系统被配置成:(i)将所述多个构成聚集体组织为条式聚集体,所述构成聚集体跨越互连为群集的多个节点而实施,所述构成聚集体包括一个或者多个数据聚集体和奇偶性属主聚集体;(ii)在每个所述数据聚集体上存储从至少一个客户端接收的数据;(iii)针对在每个所述数据聚集体的具体位置处存储的数据计算冗余性信息;以及(iv)在针对具体数据位置的所述奇偶性属主聚集体上存储所计算出的冗余性信息。
11.一种计算机程序产品,利用条式聚集体以备份存储系统,所述计算机程序产品包括:
将多个构成聚集体组织为条式聚集体的计算机代码,所述构成聚集体跨越互连为群集的多个节点而实施,所述构成聚集体包括一个或者多个数据聚集体和奇偶性属主聚集体;
在每个所述数据聚集体上存储从至少一个客户端接收的数据的计算机代码;
针对在每个所述数据聚集体的具体位置处存储的数据计算冗余性信息的计算机代码;
在针对具体数据位置的所述奇偶性属主聚集体上存储所计算出的冗余性信息的计算机代码;以及
存储这些计算机代码的计算机可读介质。
12.一种用于利用条式数据容器以备份存储系统的方法,包括:
由在节点上执行的奇偶性保护模块确定任何构成聚集体是否已在条式聚集体上失效,所述构成聚集体跨越互连为群集的多个节点而实施,所述构成聚集体包括至少一个数据聚集体和奇偶性属主聚集体;
响应于确定无失效的聚集体存在于所述条式聚集体中而在所述条式聚集体上的聚集体上接收写入请求,所述条式聚集体当前处于正常模式;
向所述条式聚集体上的构成数据聚集体写入新数据;
与写入并行地向所述奇偶性属主聚集体发送奇偶性更新请求并且向客户端发送写入响应;并且
向所述奇偶性属主聚集体写入所述奇偶性更新请求。
13.根据权利要求12所述的方法,所述奇偶性更新请求包括所述新数据与正被修改的块的任何旧数据的XOR。
14.一种用于利用条式数据容器以备份存储系统的方法,包括:
由在节点上执行的奇偶性保护模块确定任何构成聚集体是否已在条式聚集体上失效,所述构成聚集体跨越互连为群集的多个节点而实施,所述构成聚集体包括一个或者多个数据聚集体和奇偶性属主聚集体;
响应于确定仅一个失效的构成聚集体存在于所述群集中而确定请求的类型;
响应于确定所述请求为读取类型请求而确定是否需要所述条式聚集体中的失效的聚集体以便读取所述数据;
响应于确定无需所述失效的聚集体而从所述聚集体读取所请求的数据;并且
向客户端返回读取响应数据。
15.根据权利要求14所述的方法,还包括:
响应于确定所述读取请求需要访问所述失效的聚集体而向所述条式聚集体上的所有数据聚集体并行发出多个远程读取请求;
从位于每个数据聚集体上的对应存储设备读取所述数据;
向所述失效的聚集体上的奇偶性保护模块发回读取响应,所述奇偶性保护模块能够针对从所述数据聚集体接收的所有数据计算逆奇偶性XOR;
在所述奇偶性保护模块上计算新的奇偶性XOR;并且
向所述客户端返回读取响应。
16.根据权利要求14所述的方法,还包括:
响应于确定已在可用聚集体上接收到写入类型请求并且所述奇偶性属主聚集体可用于目标数据块而在所述数据聚集体上锁定目标数据块;
向所述条式聚集体上的数据聚集体写入所述数据;并且
与写入并行地向所述奇偶性属主聚集体发送奇偶性更新请求并且向客户端发送写入响应;
在所述奇偶性属主聚集体上锁定数据块;
向所述奇偶性属主聚集体写入所述奇偶性更新请求;
在所述奇偶性属主聚集体上将所述数据块解锁;并且
在所述数据聚集体上将所述数据块解锁。
17.根据权利要求14所述的方法,还包括:
响应于确定已在可用聚集体上接收到写入类型请求、但是所述奇偶性属主聚集体是所述失效的聚集体,仅向所述数据聚集体写入所述数据而不等待所述奇偶性属主聚集体恢复联机。
18.根据权利要求14所述的方法,还包括:
响应于确定已在失效的聚集体上接收到写入类型请求、但是所述奇偶性属主聚集体可用,从所述失效的聚集体的所述奇偶性保护模块向所述条式聚集体上的任何可用构成数据聚集体发送并行远程读取请求;
针对所有目标数据块并且针对当前写入请求而在所述失效的聚集体的奇偶性保护模块上计算新的奇偶性XOR;
将所述新的奇偶性与事务ID一起写入到所述失效的聚集体上的非易失性LOG(NVLOG);
并行地向所述客户端发回表明所述写入请求已完成的写入响应并且向所述奇偶性属主聚集体发送写入请求;并且
向所述奇偶性属主聚集体写入从所述奇偶性保护模块发送的所计算出的奇偶性数据作为新的奇偶性块。
19.一种方法,包括:
由在节点上执行的奇偶性保护模块确定任何构成聚集体是否已在条式聚集体上失效,所述构成聚集体跨越互连为群集的多个节点而实施,所述构成聚集体包括至少一个数据聚集体和奇偶性属主聚集体;并且
响应于确定在所述条式聚集体中有不止一个失效的构成聚集体而进入挂起模式,直至法定数目的聚集体同意所述条式聚集体不再需要处于挂起模式。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/351,476 US8495417B2 (en) | 2009-01-09 | 2009-01-09 | System and method for redundancy-protected aggregates |
US12/351476 | 2009-01-09 | ||
PCT/US2010/000029 WO2010080696A1 (en) | 2009-01-09 | 2010-01-07 | System and method for redundancy-protected aggregates |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102349053A true CN102349053A (zh) | 2012-02-08 |
CN102349053B CN102349053B (zh) | 2014-08-06 |
Family
ID=41809145
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080011261.3A Expired - Fee Related CN102349053B (zh) | 2009-01-09 | 2010-01-07 | 用于冗余性保护的聚集体的系统和方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8495417B2 (zh) |
EP (1) | EP2377020A1 (zh) |
CN (1) | CN102349053B (zh) |
CA (1) | CA2749129A1 (zh) |
WO (1) | WO2010080696A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112889033A (zh) * | 2018-10-15 | 2021-06-01 | Netapp股份有限公司 | 提高具有变化的数据冗余方案的系统中的可用存储空间 |
Families Citing this family (82)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8103903B2 (en) * | 2010-02-22 | 2012-01-24 | International Business Machines Corporation | Read-modify-write protocol for maintaining parity coherency in a write-back distributed redundancy data storage system |
US8583866B2 (en) * | 2010-02-22 | 2013-11-12 | International Business Machines Corporation | Full-stripe-write protocol for maintaining parity coherency in a write-back distributed redundancy data storage system |
US8156368B2 (en) * | 2010-02-22 | 2012-04-10 | International Business Machines Corporation | Rebuilding lost data in a distributed redundancy data storage system |
US8103904B2 (en) * | 2010-02-22 | 2012-01-24 | International Business Machines Corporation | Read-other protocol for maintaining parity coherency in a write-back distributed redundancy data storage system |
US8671265B2 (en) | 2010-03-05 | 2014-03-11 | Solidfire, Inc. | Distributed data storage system providing de-duplication of data using block identifiers |
US8402106B2 (en) * | 2010-04-14 | 2013-03-19 | Red Hat, Inc. | Asynchronous future based API |
US8849877B2 (en) | 2010-08-31 | 2014-09-30 | Datadirect Networks, Inc. | Object file system |
US8782339B2 (en) * | 2010-10-11 | 2014-07-15 | Open Invention Network, Llc | Storage system having cross node data redundancy and method and computer readable medium for same |
US8645799B2 (en) * | 2010-12-31 | 2014-02-04 | Microsoft Corporation | Storage codes for data recovery |
CN102185897B (zh) * | 2011-04-14 | 2013-08-21 | 上海交通大学 | 安全分散式虚拟存储池系统 |
US8732401B2 (en) | 2011-07-07 | 2014-05-20 | Atlantis Computing, Inc. | Method and apparatus for cache replacement using a catalog |
US9054992B2 (en) | 2011-12-27 | 2015-06-09 | Solidfire, Inc. | Quality of service policy sets |
US9838269B2 (en) | 2011-12-27 | 2017-12-05 | Netapp, Inc. | Proportional quality of service based on client usage and system metrics |
EP2672387B1 (en) * | 2012-06-04 | 2018-08-01 | Amplidata NV | A distributed object storage system |
US9122699B2 (en) * | 2012-12-14 | 2015-09-01 | Datadirect Networks, Inc. | Failure resilient distributed replicated data storage system |
US8843447B2 (en) | 2012-12-14 | 2014-09-23 | Datadirect Networks, Inc. | Resilient distributed replicated data storage system |
US9069472B2 (en) | 2012-12-21 | 2015-06-30 | Atlantis Computing, Inc. | Method for dispersing and collating I/O's from virtual machines for parallelization of I/O access and redundancy of storing virtual machine data |
US9277010B2 (en) | 2012-12-21 | 2016-03-01 | Atlantis Computing, Inc. | Systems and apparatuses for aggregating nodes to form an aggregated virtual storage for a virtualized desktop environment |
US9311333B1 (en) * | 2012-12-28 | 2016-04-12 | Emc Corporation | Managing files of file systems |
US9372865B2 (en) | 2013-02-12 | 2016-06-21 | Atlantis Computing, Inc. | Deduplication metadata access in deduplication file system |
US9250946B2 (en) | 2013-02-12 | 2016-02-02 | Atlantis Computing, Inc. | Efficient provisioning of cloned virtual machine images using deduplication metadata |
US9471590B2 (en) | 2013-02-12 | 2016-10-18 | Atlantis Computing, Inc. | Method and apparatus for replicating virtual machine images using deduplication metadata |
US9020893B2 (en) | 2013-03-01 | 2015-04-28 | Datadirect Networks, Inc. | Asynchronous namespace maintenance |
US9268502B2 (en) | 2013-09-16 | 2016-02-23 | Netapp, Inc. | Dense tree volume metadata organization |
US9405783B2 (en) | 2013-10-02 | 2016-08-02 | Netapp, Inc. | Extent hashing technique for distributed storage architecture |
US9152684B2 (en) | 2013-11-12 | 2015-10-06 | Netapp, Inc. | Snapshots and clones of volumes in a storage system |
US9201918B2 (en) | 2013-11-19 | 2015-12-01 | Netapp, Inc. | Dense tree volume metadata update logging and checkpointing |
US9170746B2 (en) | 2014-01-07 | 2015-10-27 | Netapp, Inc. | Clustered raid assimilation management |
US9251064B2 (en) | 2014-01-08 | 2016-02-02 | Netapp, Inc. | NVRAM caching and logging in a storage system |
US9529546B2 (en) | 2014-01-08 | 2016-12-27 | Netapp, Inc. | Global in-line extent-based deduplication |
US9448924B2 (en) | 2014-01-08 | 2016-09-20 | Netapp, Inc. | Flash optimized, log-structured layer of a file system |
US9152330B2 (en) | 2014-01-09 | 2015-10-06 | Netapp, Inc. | NVRAM data organization using self-describing entities for predictable recovery after power-loss |
US9454434B2 (en) | 2014-01-17 | 2016-09-27 | Netapp, Inc. | File system driven raid rebuild technique |
US9483349B2 (en) | 2014-01-17 | 2016-11-01 | Netapp, Inc. | Clustered raid data organization |
US9268653B2 (en) | 2014-01-17 | 2016-02-23 | Netapp, Inc. | Extent metadata update logging and checkpointing |
US9256549B2 (en) | 2014-01-17 | 2016-02-09 | Netapp, Inc. | Set-associative hash table organization for efficient storage and retrieval of data in a storage system |
US20150244795A1 (en) | 2014-02-21 | 2015-08-27 | Solidfire, Inc. | Data syncing in a distributed system |
US9354992B2 (en) * | 2014-04-25 | 2016-05-31 | Netapp, Inc. | Interconnect path failover |
US9495293B1 (en) * | 2014-05-05 | 2016-11-15 | EMC IP Holding Company, LLC | Zone consistency |
US9372767B2 (en) | 2014-06-06 | 2016-06-21 | Netapp, Inc. | Recovery consumer framework |
US9798728B2 (en) | 2014-07-24 | 2017-10-24 | Netapp, Inc. | System performing data deduplication using a dense tree data structure |
US9501359B2 (en) | 2014-09-10 | 2016-11-22 | Netapp, Inc. | Reconstruction of dense tree volume metadata state across crash recovery |
US9524103B2 (en) | 2014-09-10 | 2016-12-20 | Netapp, Inc. | Technique for quantifying logical space trapped in an extent store |
US9671960B2 (en) | 2014-09-12 | 2017-06-06 | Netapp, Inc. | Rate matching technique for balancing segment cleaning and I/O workload |
US10133511B2 (en) | 2014-09-12 | 2018-11-20 | Netapp, Inc | Optimized segment cleaning technique |
US10296621B2 (en) | 2014-09-30 | 2019-05-21 | Hewlett Packard Enterprise Development Lp | Database and data stream query |
WO2016051512A1 (ja) | 2014-09-30 | 2016-04-07 | 株式会社日立製作所 | 分散型ストレージシステム |
US9836229B2 (en) | 2014-11-18 | 2017-12-05 | Netapp, Inc. | N-way merge technique for updating volume metadata in a storage I/O stack |
US9720601B2 (en) | 2015-02-11 | 2017-08-01 | Netapp, Inc. | Load balancing technique for a storage array |
US11294893B2 (en) * | 2015-03-20 | 2022-04-05 | Pure Storage, Inc. | Aggregation of queries |
US9762460B2 (en) | 2015-03-24 | 2017-09-12 | Netapp, Inc. | Providing continuous context for operational information of a storage system |
US9710317B2 (en) | 2015-03-30 | 2017-07-18 | Netapp, Inc. | Methods to identify, handle and recover from suspect SSDS in a clustered flash array |
US10565230B2 (en) | 2015-07-31 | 2020-02-18 | Netapp, Inc. | Technique for preserving efficiency for replication between clusters of a network |
US10394660B2 (en) | 2015-07-31 | 2019-08-27 | Netapp, Inc. | Snapshot restore workflow |
US9740566B2 (en) | 2015-07-31 | 2017-08-22 | Netapp, Inc. | Snapshot creation workflow |
US9785525B2 (en) | 2015-09-24 | 2017-10-10 | Netapp, Inc. | High availability failover manager |
US20170097771A1 (en) | 2015-10-01 | 2017-04-06 | Netapp, Inc. | Transaction log layout for efficient reclamation and recovery |
US9836366B2 (en) | 2015-10-27 | 2017-12-05 | Netapp, Inc. | Third vote consensus in a cluster using shared storage devices |
US10235059B2 (en) | 2015-12-01 | 2019-03-19 | Netapp, Inc. | Technique for maintaining consistent I/O processing throughput in a storage system |
US10229009B2 (en) | 2015-12-16 | 2019-03-12 | Netapp, Inc. | Optimized file system layout for distributed consensus protocol |
US9830103B2 (en) | 2016-01-05 | 2017-11-28 | Netapp, Inc. | Technique for recovery of trapped storage space in an extent store |
US10108547B2 (en) | 2016-01-06 | 2018-10-23 | Netapp, Inc. | High performance and memory efficient metadata caching |
US9846539B2 (en) | 2016-01-22 | 2017-12-19 | Netapp, Inc. | Recovery from low space condition of an extent store |
WO2017130022A1 (en) | 2016-01-26 | 2017-08-03 | Telefonaktiebolaget Lm Ericsson (Publ) | Method for adding storage devices to a data storage system with diagonally replicated data storage blocks |
US10929022B2 (en) | 2016-04-25 | 2021-02-23 | Netapp. Inc. | Space savings reporting for storage system supporting snapshot and clones |
US9952767B2 (en) | 2016-04-29 | 2018-04-24 | Netapp, Inc. | Consistency group management |
US10642763B2 (en) | 2016-09-20 | 2020-05-05 | Netapp, Inc. | Quality of service policy sets |
US11301144B2 (en) | 2016-12-28 | 2022-04-12 | Amazon Technologies, Inc. | Data storage system |
US10771550B2 (en) | 2016-12-28 | 2020-09-08 | Amazon Technologies, Inc. | Data storage system with redundant internal networks |
US10514847B2 (en) * | 2016-12-28 | 2019-12-24 | Amazon Technologies, Inc. | Data storage system with multiple durability levels |
US10484015B2 (en) | 2016-12-28 | 2019-11-19 | Amazon Technologies, Inc. | Data storage system with enforced fencing |
US10509601B2 (en) | 2016-12-28 | 2019-12-17 | Amazon Technologies, Inc. | Data storage system with multi-tier control plane |
US10521135B2 (en) | 2017-02-15 | 2019-12-31 | Amazon Technologies, Inc. | Data system with data flush mechanism |
US11010064B2 (en) | 2017-02-15 | 2021-05-18 | Amazon Technologies, Inc. | Data system with flush views |
US10360099B2 (en) | 2017-04-28 | 2019-07-23 | Netapp Inc. | Object format resilient to remote object store errors |
US10901848B2 (en) * | 2018-08-03 | 2021-01-26 | Western Digital Technologies, Inc. | Storage systems with peer data recovery |
US11138158B2 (en) * | 2019-05-20 | 2021-10-05 | Callplex, Inc. | Binding a local data storage device to remote data storage |
US11169723B2 (en) | 2019-06-28 | 2021-11-09 | Amazon Technologies, Inc. | Data storage system with metadata check-pointing |
US11182096B1 (en) | 2020-05-18 | 2021-11-23 | Amazon Technologies, Inc. | Data storage system with configurable durability |
US11681443B1 (en) | 2020-08-28 | 2023-06-20 | Amazon Technologies, Inc. | Durable data storage with snapshot storage space optimization |
CN113326006B (zh) * | 2021-06-17 | 2023-09-29 | 上海天玑科技股份有限公司 | 一种基于纠删码的分布式块存储系统 |
JP7443404B2 (ja) * | 2022-01-21 | 2024-03-05 | 株式会社日立製作所 | ストレージシステム |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0521630A2 (en) * | 1991-07-03 | 1993-01-07 | International Business Machines Corporation | DASD array hierarchies |
US5864655A (en) * | 1996-09-09 | 1999-01-26 | International Business Machines Corporation | Managing removable media in raid and rail environments |
US20020048284A1 (en) * | 2000-02-18 | 2002-04-25 | Moulton Gregory Hagan | System and method for data protection with multidimensional parity |
CN1350674A (zh) * | 1999-03-03 | 2002-05-22 | 约塔约塔股份有限公司 | 用来实现共用磁盘阵列管理功能的方法和系统 |
US20040205387A1 (en) * | 2002-03-21 | 2004-10-14 | Kleiman Steven R. | Method for writing contiguous arrays of stripes in a RAID storage system |
US20050166016A1 (en) * | 2004-01-28 | 2005-07-28 | Hiroyuki Morimoto | Storage unit, storage unit control method, and storage system |
Family Cites Families (92)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3876978A (en) | 1973-06-04 | 1975-04-08 | Ibm | Archival data protection |
US4092732A (en) | 1977-05-31 | 1978-05-30 | International Business Machines Corporation | System for recovering data stored in failed memory unit |
US4201976A (en) | 1977-12-23 | 1980-05-06 | International Business Machines Corporation | Plural channel error correcting methods and means using adaptive reallocation of redundant channels among groups of channels |
US4205324A (en) | 1977-12-23 | 1980-05-27 | International Business Machines Corporation | Methods and means for simultaneously correcting several channels in error in a parallel multi channel data system using continuously modifiable syndromes and selective generation of internal channel pointers |
JPS5637883A (en) | 1979-09-04 | 1981-04-11 | Fanuc Ltd | Information rewrite system |
US4467421A (en) | 1979-10-18 | 1984-08-21 | Storage Technology Corporation | Virtual storage system and method |
US4375100A (en) | 1979-10-24 | 1983-02-22 | Matsushita Electric Industrial Company, Limited | Method and apparatus for encoding low redundancy check words from source data |
US4547882A (en) | 1983-03-01 | 1985-10-15 | The Board Of Trustees Of The Leland Stanford Jr. University | Error detecting and correcting memories |
US4825403A (en) | 1983-05-16 | 1989-04-25 | Data General Corporation | Apparatus guaranteeing that a controller in a disk drive system receives at least some data from an invalid track sector |
JPS60142418A (ja) | 1983-12-28 | 1985-07-27 | Hitachi Ltd | 入出力エラ−回復方式 |
FR2561428B1 (fr) | 1984-03-16 | 1986-09-12 | Bull Sa | Procede d'enregistrement dans une memoire a disques et systeme de memoire a disques |
US4667326A (en) | 1984-12-20 | 1987-05-19 | Advanced Micro Devices, Inc. | Method and apparatus for error detection and correction in systems comprising floppy and/or hard disk drives |
US5202979A (en) | 1985-05-08 | 1993-04-13 | Thinking Machines Corporation | Storage system using multiple independently mechanically-driven storage units |
US4722085A (en) | 1986-02-03 | 1988-01-26 | Unisys Corp. | High capacity disk storage system having unusually high fault tolerance level and bandpass |
JPH0675329B2 (ja) | 1986-02-18 | 1994-09-21 | ソニー株式会社 | ディスクプレーヤ |
US4761785B1 (en) | 1986-06-12 | 1996-03-12 | Ibm | Parity spreading to enhance storage access |
US4775978A (en) | 1987-01-12 | 1988-10-04 | Magnetic Peripherals Inc. | Data error correction system |
USRE34100E (en) | 1987-01-12 | 1992-10-13 | Seagate Technology, Inc. | Data error correction system |
US4796260A (en) | 1987-03-30 | 1989-01-03 | Scs Telecom, Inc. | Schilling-Manela forward error correction and detection code method and apparatus |
US5257367A (en) | 1987-06-02 | 1993-10-26 | Cab-Tek, Inc. | Data storage system with asynchronous host operating system communication link |
US4849976A (en) | 1987-08-03 | 1989-07-18 | Scs Telecom, Inc. | PASM and TASM forward error correction and detection code method and apparatus |
US4849974A (en) | 1987-08-03 | 1989-07-18 | Scs Telecom, Inc. | PASM and TASM forward error correction and detection code method and apparatus |
US4837680A (en) | 1987-08-28 | 1989-06-06 | International Business Machines Corporation | Controlling asynchronously operating peripherals |
US4870643A (en) | 1987-11-06 | 1989-09-26 | Micropolis Corporation | Parallel drive array storage system |
US4847842A (en) | 1987-11-19 | 1989-07-11 | Scs Telecom, Inc. | SM codec method and apparatus |
US4899342A (en) | 1988-02-01 | 1990-02-06 | Thinking Machines Corporation | Method and apparatus for operating multi-unit array of memories |
US4989206A (en) | 1988-06-28 | 1991-01-29 | Storage Technology Corporation | Disk drive memory |
US5077736A (en) | 1988-06-28 | 1991-12-31 | Storage Technology Corporation | Disk drive memory |
US4989205A (en) | 1988-06-28 | 1991-01-29 | Storage Technology Corporation | Disk drive memory |
US5128810A (en) | 1988-08-02 | 1992-07-07 | Cray Research, Inc. | Single disk emulation interface for an array of synchronous spindle disk drives |
US5218689A (en) | 1988-08-16 | 1993-06-08 | Cray Research, Inc. | Single disk emulation interface for an array of asynchronously operating disk drives |
US5148432A (en) | 1988-11-14 | 1992-09-15 | Array Technology Corporation | Arrayed disk drive system and method |
US5163131A (en) | 1989-09-08 | 1992-11-10 | Auspex Systems, Inc. | Parallel i/o network file server architecture |
US5101492A (en) | 1989-11-03 | 1992-03-31 | Compaq Computer Corporation | Data redundancy and recovery protection |
US5233618A (en) | 1990-03-02 | 1993-08-03 | Micro Technology, Inc. | Data correcting applicable to redundant arrays of independent disks |
US5088081A (en) | 1990-03-28 | 1992-02-11 | Prime Computer, Inc. | Method and apparatus for improved disk access |
US5210860A (en) | 1990-07-20 | 1993-05-11 | Compaq Computer Corporation | Intelligent disk array controller |
US5166936A (en) | 1990-07-20 | 1992-11-24 | Compaq Computer Corporation | Automatic hard disk bad sector remapping |
US5375128A (en) | 1990-10-18 | 1994-12-20 | Ibm Corporation (International Business Machines Corporation) | Fast updating of DASD arrays using selective shadow writing of parity and data blocks, tracks, or cylinders |
US5208813A (en) | 1990-10-23 | 1993-05-04 | Array Technology Corporation | On-line reconstruction of a failed redundant array system |
US5235601A (en) | 1990-12-21 | 1993-08-10 | Array Technology Corporation | On-line restoration of redundancy information in a redundant array system |
US5274799A (en) | 1991-01-04 | 1993-12-28 | Array Technology Corporation | Storage device array architecture with copyback cache |
US5579475A (en) | 1991-02-11 | 1996-11-26 | International Business Machines Corporation | Method and means for encoding and rebuilding the data contents of up to two unavailable DASDS in a DASD array using simple non-recursive diagonal and row parity |
US5271012A (en) | 1991-02-11 | 1993-12-14 | International Business Machines Corporation | Method and means for encoding and rebuilding data contents of up to two unavailable DASDs in an array of DASDs |
US5179704A (en) | 1991-03-13 | 1993-01-12 | Ncr Corporation | Method and apparatus for generating disk array interrupt signals |
EP0519669A3 (en) | 1991-06-21 | 1994-07-06 | Ibm | Encoding and rebuilding data for a dasd array |
US5237658A (en) | 1991-10-01 | 1993-08-17 | Tandem Computers Incorporated | Linear and orthogonal expansion of array storage in multiprocessor computing systems |
US5305326A (en) | 1992-03-06 | 1994-04-19 | Data General Corporation | High availability disk arrays |
US5410667A (en) | 1992-04-17 | 1995-04-25 | Storage Technology Corporation | Data record copy system for a disk drive array data storage subsystem |
US5963962A (en) | 1995-05-31 | 1999-10-05 | Network Appliance, Inc. | Write anywhere file-system layout |
DE69425658T2 (de) | 1993-06-03 | 2001-04-19 | Network Appliance Inc | Anordnung eines dateisystems zum beschreiben beliebiger bereiche |
US6138126A (en) | 1995-05-31 | 2000-10-24 | Network Appliance, Inc. | Method for allocating files in a file system integrated with a raid disk sub-system |
EP0701716B1 (en) | 1993-06-03 | 2002-08-14 | Network Appliance, Inc. | Method and file system for allocating blocks of files to storage space in a RAID disk system |
DE69434381T2 (de) | 1993-06-04 | 2006-01-19 | Network Appliance, Inc., Sunnyvale | Verfahren zur Paritätsdarstellung in einem Raid-Untersystem unter Verwendung eines nichtflüchtigen Speichers |
US5537567A (en) | 1994-03-14 | 1996-07-16 | International Business Machines Corporation | Parity block configuration in an array of storage devices |
US5623595A (en) | 1994-09-26 | 1997-04-22 | Oracle Corporation | Method and apparatus for transparent, real time reconstruction of corrupted data in a redundant array data storage system |
US5657468A (en) | 1995-08-17 | 1997-08-12 | Ambex Technologies, Inc. | Method and apparatus for improving performance in a reduntant array of independent disks |
US5812753A (en) | 1995-10-13 | 1998-09-22 | Eccs, Inc. | Method for initializing or reconstructing data consistency within an array of storage elements |
US5862158A (en) | 1995-11-08 | 1999-01-19 | International Business Machines Corporation | Efficient method for providing fault tolerance against double device failures in multiple device systems |
US5884098A (en) | 1996-04-18 | 1999-03-16 | Emc Corporation | RAID controller system utilizing front end and back end caching systems including communication path connecting two caching systems and synchronizing allocation of blocks in caching systems |
US5805788A (en) | 1996-05-20 | 1998-09-08 | Cray Research, Inc. | Raid-5 parity generation and data reconstruction |
US5950225A (en) | 1997-02-28 | 1999-09-07 | Network Appliance, Inc. | Fly-by XOR for generating parity for data gleaned from a bus |
KR100267366B1 (en) | 1997-07-15 | 2000-10-16 | Samsung Electronics Co Ltd | Method for recoding parity and restoring data of failed disks in an external storage subsystem and apparatus therefor |
US6092215A (en) | 1997-09-29 | 2000-07-18 | International Business Machines Corporation | System and method for reconstructing data in a storage array system |
JP3618529B2 (ja) * | 1997-11-04 | 2005-02-09 | 富士通株式会社 | ディスクアレイ装置 |
JP3616487B2 (ja) | 1997-11-21 | 2005-02-02 | アルプス電気株式会社 | ディスクアレイ装置 |
US6138125A (en) | 1998-03-31 | 2000-10-24 | Lsi Logic Corporation | Block coding method and system for failure recovery in disk arrays |
US6138201A (en) | 1998-04-15 | 2000-10-24 | Sony Corporation | Redundant array of inexpensive tape drives using data compression and data allocation ratios |
US6247157B1 (en) | 1998-05-13 | 2001-06-12 | Intel Corporation | Method of encoding data signals for storage |
US6557123B1 (en) | 1999-08-02 | 2003-04-29 | Inostor Corporation | Data redundancy methods and apparatus |
US6742137B1 (en) | 1999-08-17 | 2004-05-25 | Adaptec, Inc. | Object oriented fault tolerance |
US6532548B1 (en) | 1999-09-21 | 2003-03-11 | Storage Technology Corporation | System and method for handling temporary errors on a redundant array of independent tapes (RAIT) |
US6546499B1 (en) * | 1999-10-14 | 2003-04-08 | International Business Machines Corporation | Redundant array of inexpensive platters (RAIP) |
US6581185B1 (en) | 2000-01-24 | 2003-06-17 | Storage Technology Corporation | Apparatus and method for reconstructing data using cross-parity stripes on storage media |
US6779095B2 (en) | 2000-06-19 | 2004-08-17 | Storage Technology Corporation | Apparatus and method for instant copy of data using pointers to new and original data in a data location |
US7072916B1 (en) | 2000-08-18 | 2006-07-04 | Network Appliance, Inc. | Instant snapshot |
US6671772B1 (en) | 2000-09-20 | 2003-12-30 | Robert E. Cousins | Hierarchical file system structure for enhancing disk transfer efficiency |
US6745284B1 (en) | 2000-10-02 | 2004-06-01 | Sun Microsystems, Inc. | Data storage subsystem including a storage disk array employing dynamic data striping |
US6671773B2 (en) | 2000-12-07 | 2003-12-30 | Spinnaker Networks, Llc | Method and system for responding to file system requests |
US20020124137A1 (en) | 2001-01-29 | 2002-09-05 | Ulrich Thomas R. | Enhancing disk array performance via variable parity based load balancing |
US6571326B2 (en) | 2001-03-08 | 2003-05-27 | Intel Corporation | Space allocation for data in a nonvolatile memory |
US7073115B2 (en) | 2001-12-28 | 2006-07-04 | Network Appliance, Inc. | Correcting multiple block data loss in a storage array using a combination of a single diagonal parity group and multiple row parity groups |
US6993701B2 (en) | 2001-12-28 | 2006-01-31 | Network Appliance, Inc. | Row-diagonal parity technique for enabling efficient recovery from double failures in a storage array |
JP2003345531A (ja) * | 2002-05-24 | 2003-12-05 | Hitachi Ltd | ストレージシステム、管理サーバ、及びそのアプリケーションの管理方法 |
US7188270B1 (en) * | 2002-11-21 | 2007-03-06 | Adaptec, Inc. | Method and system for a disk fault tolerance in a disk array using rotating parity |
JP4270371B2 (ja) * | 2003-05-09 | 2009-05-27 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 記憶システム、制御装置、制御方法、及び、プログラム |
US7246301B2 (en) * | 2003-06-13 | 2007-07-17 | Dell Products L.P. | Method for storage array error correction |
US7328305B2 (en) | 2003-11-03 | 2008-02-05 | Network Appliance, Inc. | Dynamic parity distribution technique |
US7409494B2 (en) | 2004-04-30 | 2008-08-05 | Network Appliance, Inc. | Extension of write anywhere file system layout |
JP4440803B2 (ja) * | 2005-03-03 | 2010-03-24 | 富士通株式会社 | 記憶装置、その制御方法及びプログラム |
US7617370B2 (en) | 2005-04-29 | 2009-11-10 | Netapp, Inc. | Data allocation within a storage system architecture |
US20080201524A1 (en) * | 2007-02-15 | 2008-08-21 | Harris Corporation | System and method for increasing video server storage bandwidth |
-
2009
- 2009-01-09 US US12/351,476 patent/US8495417B2/en active Active
-
2010
- 2010-01-07 CA CA2749129A patent/CA2749129A1/en not_active Abandoned
- 2010-01-07 CN CN201080011261.3A patent/CN102349053B/zh not_active Expired - Fee Related
- 2010-01-07 EP EP10700602A patent/EP2377020A1/en not_active Withdrawn
- 2010-01-07 WO PCT/US2010/000029 patent/WO2010080696A1/en active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0521630A2 (en) * | 1991-07-03 | 1993-01-07 | International Business Machines Corporation | DASD array hierarchies |
US5864655A (en) * | 1996-09-09 | 1999-01-26 | International Business Machines Corporation | Managing removable media in raid and rail environments |
CN1350674A (zh) * | 1999-03-03 | 2002-05-22 | 约塔约塔股份有限公司 | 用来实现共用磁盘阵列管理功能的方法和系统 |
US20020048284A1 (en) * | 2000-02-18 | 2002-04-25 | Moulton Gregory Hagan | System and method for data protection with multidimensional parity |
US20040205387A1 (en) * | 2002-03-21 | 2004-10-14 | Kleiman Steven R. | Method for writing contiguous arrays of stripes in a RAID storage system |
US20050166016A1 (en) * | 2004-01-28 | 2005-07-28 | Hiroyuki Morimoto | Storage unit, storage unit control method, and storage system |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112889033A (zh) * | 2018-10-15 | 2021-06-01 | Netapp股份有限公司 | 提高具有变化的数据冗余方案的系统中的可用存储空间 |
Also Published As
Publication number | Publication date |
---|---|
CA2749129A1 (en) | 2010-07-15 |
CN102349053B (zh) | 2014-08-06 |
EP2377020A1 (en) | 2011-10-19 |
WO2010080696A1 (en) | 2010-07-15 |
US20100180153A1 (en) | 2010-07-15 |
US8495417B2 (en) | 2013-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102349053B (zh) | 用于冗余性保护的聚集体的系统和方法 | |
US10789020B2 (en) | Recovering data within a unified storage element | |
US11960777B2 (en) | Utilizing multiple redundancy schemes within a unified storage element | |
CN102460439B (zh) | 通过条带式文件系统中的容量平衡进行数据分布 | |
US10613791B2 (en) | Portable snapshot replication between storage systems | |
CN106407040B (zh) | 一种远程数据复制方法及系统 | |
US11216369B2 (en) | Optimizing garbage collection using check pointed data sets | |
CN102667727B (zh) | 用于实现从多达n个存储设备失效恢复的n路奇偶校验技术 | |
CN101218583B (zh) | 用于在群集的卷上带区化数据容器内容的存储系统体系结构 | |
US9378088B1 (en) | Method and system for reclamation of distributed dynamically generated erasure groups for data migration between high performance computing architectures and data storage using non-deterministic data addressing | |
CN105960639B (zh) | 分布式存储系统中的优先化数据重构 | |
CN101410783A (zh) | 内容可寻址存储阵列元件 | |
CN100485678C (zh) | 将虚拟映射存入对象属性中的分布式基于对象的存储系统 | |
US20210019063A1 (en) | Utilizing data views to optimize secure data access in a storage system | |
CN106164899B (zh) | 从分布式存储系统的高效数据读取 | |
US8386838B1 (en) | High-availability of a storage system in a hierarchical virtual server environment | |
US20220217049A1 (en) | Path Management For Container Clusters That Access Persistent Storage | |
US10810123B1 (en) | Flush strategy for using DRAM as cache media system and method | |
US20210240347A1 (en) | Policy based data tiering | |
CN103631539B (zh) | 基于擦除编码机制的分布式存储系统及其存储方法 | |
CN107003920A (zh) | 用于处置灾难恢复群集中的多节点故障的系统和方法 | |
CN104902009A (zh) | 一种基于可擦除编码和链式备份的分布式存储系统 | |
CN106686095A (zh) | 一种基于纠删码技术的数据存储方法及装置 | |
WO2019209392A1 (en) | Hybrid data tiering | |
US20220398018A1 (en) | Tiering Snapshots Across Different Storage Tiers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C56 | Change in the name or address of the patentee | ||
CP01 | Change in the name or title of a patent holder |
Address after: American California Patentee after: NETAPP incorporated company Address before: American California Patentee before: Netapp Inc. |
|
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20140806 Termination date: 20200107 |
|
CF01 | Termination of patent right due to non-payment of annual fee |