用于跨存储设备写入数据的方法和系统的制作方法_2

文档序号:8269678阅读:来源:国知局
单元呈现给计算机的设备。因此,RAID控制器是存储指令和执行这些指令的一块硬件(物理对象,例如处理器)。术语写入请求意指纠删码系统的客户端发送将要存储在系统上的数据。术语数据是指由计算机对其执行操作的量、字符或符号。例如,客户端可以请求向系统写入文件。
[0035]实际上,由高速缓冲存储器10接收写入请求,如图5上图解的那样。高速缓冲存储器充当在其中暂时存储写入、更新、删除请求(步骤S20)直到RAID控制器可用于处理请求的缓冲器。
[0036]然后,在步骤S30处,已经将写入请求的数据从写入式高速缓存发送到一个或多个RAID控制器。实际上,由一个或多个RAID控制器处理写入请求,也就是说,几个RAID控制器当中的一个RAID控制器从将被存储在系统中的数据计算数据块和奇偶校验块。
[0037]数据块和奇偶校验块是由RAID控制器对将被存储的数据执行变换的结果:RAID控制器已经对将被存储在系统上的数据进行编码。术语块意指一位或多位数据。术语奇偶校验块意指用于所述一个或多个数据块上的错误检测和纠正的一位或多位数据。数据和奇偶校验块可以构成一块数据;例如,将奇偶校验块放置在数据块的末尾,如本领域已知的那样。应理解的是,数据块和奇偶校验块的数目可以取决于用于对数据进行编码的纠删码而变化。例如,对于若干个数据块可以有一个奇偶校验块。
[0038]RAID控制器对数据的编码是纠删编码的一部分,纠删编码是一种数据保护的方法,在该方法中数据被分成片段,利用冗余数据片被扩展和编码,并跨越诸如磁盘、存储节点或地理位置之类的一组不同的位置被存储。例如,所提出的方法可以用于但不限于最大距离可分(MDS)纠删码。
[0039]现在参考在图5中描绘的系统,其包括仅执行编码和解码操作的若干个RAID控制器20和实现不同级别的冗余(即,不同的纠删码)的至少两个不同的RAID控制器。
[0040]返回来参考图1,在步骤S40处,将数据和奇偶校验块发送到一个或多个布置节点。布置节点是管理数据和奇偶校验块跨存储设备的布置方案的软件。术语软件意指由计算机处理器执行的一组计算机可读指令,计算机处理器由于执行指令而执行操作。通常,布置节点是计算机程序。将数据和奇偶校验块发送到一个或多个布置节点包括:由(一个或多个)布置节点管理原来由(一个或多个)RAID控制器管理的块。术语布置方案意指系统的存储设备上的块布置策略。通常,布置方案将确定将要在其上存储奇偶校验块的存储设备的位置。实际上,可以将数据和奇偶校验块发送到一个布置节点。
[0041]可以预期到若干种布置方案,例如成簇或分簇布置方案。例如,一种布置方案考虑使用(l,m)-MDS纠删码的存储系统。将每组I个用户数据块映射到一组m个数据块(被称作代码字),使得代码字的任何I块可以被用来恢复I个用户数据块。这样的代码字可以幸免于多达m-Ι个代码字块的损失。这种纠删码的示例是复制(其中,对于r路复制,I =I, m = r), RAID-5 (其中,m_l = I), RAID-6 (其中,m_l = 2),以及里德 _ 所罗门码。一旦一组I个用户数据块已经被编码到m块的一个代码字中,那么这m块需要被存储在系统的η个存储设备的m个上。在大规模数据存储系统中,m的值通常比η的值小得多。因此,存在大量可以将长度m的代码字布置在具有η个磁盘的系统中的可能方式。
[0042]现在参考图4,其是例示的成簇(clustered)和分簇(declustered)布置方案。在成簇布置中,将η个磁盘划分成m个磁盘的不相交集(称作簇),并且将每个代码字布置在这些簇中的一个中。在图4中,将n = 6个磁盘划分成m = 3个磁盘的2簇。在分簇布置方案中,将用于布置代码字的从η中选出m(n-ch00Se-m)的可能方式中的每一个均等地用于将代码字跨所有磁盘存储的过程中。在图4中,针对m = 3和η = 6示出分簇布置方案。
[0043]返回到图1,一旦已经将数据和奇偶校验块发送到至少一个布置节点(步骤S40),那么在步骤S50处(一个或多个)布置节点选择布置方案。由于根据由(一个或多个)布置节点选择的预定布置方案可以将数据块和其对应的奇偶校验块布置在系统中的任何一组存储设备上,所以这有利地避免将系统中的存储设备划分成(具有潜在的不同级别的冗余的)不同奇偶校验群,并且数据块和其对应的奇偶校验块不会被布置在这些群中的一个中。
[0044]可以根据由已经执行数据编码的(一个或多个)RAID控制器使用的纠删码来执行布置方案的选择。通过允许系统根据给定的纠删码来使用针对将被存储在系统上的到来数据的布置策略,系统的可靠性得以显著增强。
[0045]有趣的是,可以有一个布置节点与一个RAID控制器相关联。系统因此包括一组RAID控制器/布置节点对。布置节点因此不执行在若干个布置方案当中进行的布置方案的选择(S50),因为纠删码将被布置节点使用。
[0046]然后,在步骤S60处,提供所计算的数据和奇偶校验块在存储设备中的位置。术语位置意指存储设备中的物理存储。布置节点知道系统的完整逻辑地址空间。可以利用布置元数据将此知识提供给布置节点。针对每个数据块和奇偶校验块,布置元数据包括系统中的块的逻辑地址空间与存储设备中的块的物理地址空间之间的映射。
[0047]通常,可以将布置元数据存储在数据库30上,如图5上所示。可以将数据库安装在运行(一个或多个)布置节点的计算机系统上。可替换地,可以将数据库安装在专用计算机系统上。因此,布置节点40将在本地或远程访问布置元数据。
[0048]返回到图1的流程图,在步骤S70处,识别出的逻辑地址中的位置由布置节点存储在布置元数据中,使得关于逻辑地址空间的信息维持最新。因此,布置元数据包括针对将被写入到存储设备上的每个新块的新条目。
[0049]然后,在步骤S80处,将数据和奇偶校验块存储在系统上的识别出的位置上。在该方法的此阶段,已经完成写入请求。
[0050]现在参考图2,其例示了更新请求;将被存储的第二数据是已经存储的第一数据(例如,参考图1在纠删码系统中存储的数据)的更新。
[0051]在步骤S90处,由计算机客户端发送用于在纠删码系统中更新数据的更新请求。由至少一个RAID控制器接收该更新请求。实际上,由图5上图解的高速缓冲存储器10接收该更新请求并将其存储在其中(步骤S100)。
[0052]接下来,在步骤SllO处,一个或多个RAID控制器向一个或多个布置节点请求需要被更新的数据和奇偶校验块。为此目的,(一个或多个)布置节点在布置元数据中执行搜索以便识别数据和奇偶校验块的对应位置;然后,在步骤S120处,(一个或多个)布置节点将所请求的块传递到RAID控制器。
[0053]在接收到更新请求的RAID控制器实现与用于存储将被更新的块的RAID控制器不同的冗余级别的情况下,(一个或多个)布置节点可以选择实现初始冗余级别的另一 RAID控制器。在这种情况下,所选择的RAID控制器将处理更新。可替换地,已经接收到更新请求的RAID控制器无论如何将处理请求。
[0054]然后,在步骤S130处,处理更新请求的RAID控制器通过修改在步骤S120处提供的数据和奇偶校验块来计算数据块和奇偶校验块。根据更新请求的数据执行修改,如本领域已知的那样。
[0055]一旦已经由RAID控制器对更新后的数据和奇偶校验块进行编码,RAID控制器将更新后的数据和奇偶校验块发送到一个或多个布置节点(步骤S140),例如发送到在步骤S120处已经传递所请求的块的布置节点。应理解的是,步骤S120和S140的布置节点可以不同。
[0056]然后,在步骤S150处,接收到更新后的块的布置节点为更新后的数据和奇偶校验块提供存储设备中的位置。如参考步骤S60描述的那样执行位置的识别。
[0057]接下来,在步骤S170处,将更新后的数据和奇偶校验块存储在识别出的位置上。更新请求因此得以完成。
[0058]现在参考图3
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1