使用基于对象的存储设备在文件系统上使用覆盖对象进行故障处理技术方案

技术编号:4284158 阅读:158 留言:0更新日期:2012-04-11 18:40
在阵列中进行数据存储的系统和方法。系统包括连接到存储子系统的客户端,存储子系统包括可作为阵列中的行和列寻址的数据存储位置。每一列都包括单独的存储设备。每一行都包括冗余数据。对于给定行,协调存储设备协调冗余数据的计算和存储。系统检测存储区域的故障,作为响应,配置覆盖存储设备以临时覆盖所述发生故障的区域,维护所述覆盖存储设备和所述发生故障的区域之间的关联,以及,维护在区域处于发生故障的状态时对覆盖存储设备进行的更改的记录。作为对检测到所述发生故障的区域已经恢复的响应,系统使用该关联标识覆盖设备,并使用对覆盖设备进行的更改的记录来使发生故障的区域再同步。

【技术实现步骤摘要】

本专利技术涉及计算机系统,更具体来说,涉及计算机系统内的数据存储子系统。
技术介绍
计算机系统常常包括用于存储数据的数据存储子系统。具体来说,包括通过网络 互连在一起的多个客户端的计算机系统越来越多地通过网络共享一个或多个数据存储子 系统。数据存储子系统可以包括或进一步连接到由一个或多个磁盘存储设备、磁带驱动器 或其他存储介质组成的存储器。计算机系统也可以包括一个或多个服务器,在这些服务器 中,维护描述所包括的存储设备的内容的元数据。 数据存储子系统可以带有某种冗余地存储数据,以从存储器错误中恢复。有各 种冗余地存储数据的技术,包括擦除编码技术,如里德-索罗蒙编码和使用各种布局的 RAID(独立磁盘冗余阵列),如RAID-l、RAID-5或RAID-6。这些RAID布局可以在基于对象 的文件系统内实现,每一个独立的存储设备都被当作磁盘。每一个客户端设备都可以通过 网络向存储设备传输数据。令人遗憾的是,可能需要某种仲裁来自多个客户端的写访问请 求的方式,以避免在冗余数据中产生不一致。 一种仲裁方法是要求每一个客户端在访问存 储位置之前获取一个锁。然而,此方法要求,每一个客户端都负责执行涉及使用锁定机制的 序列化写入的全部功能,并被信任。例如,在RAID-5或RAID-6的情况下,这些功能可以包 括读取旧数据和旧奇偶校验,计算新的奇偶校验,记录新的数据和新的奇偶校验,并向一起 构成了 RAID布局中的行的一部分或整个行的它们的相应的存储位置写入新的数据和新的 奇偶校验。此外,对于每一个向RAID布局中的单个位置的写入操作,客户端都可能需要从 元数据服务器(MDS)检索信息。这些功能的执行延长了写入延迟,并增大了每一个客户端 复杂性,并带来了大量的计算和存储开销。 除上面的考虑之外,数据存储子系统被设计为当一个或多个设备发生故障时最小 化可能发生的数据的损失。虽然RAID布局旨在提供高可用性和容错,但是,如果客户端负 责维护冗余,在复杂的读取或写入操作过程中,设备容易发生故障的可能性会增大。客户端 可能不值得信任,或没有足够的资源处理由数据存储子系统中的设备故障所引起的错误。 客户端除了面临冗余地存储数据所需的任务,包括处理设备故障给带来负担,某些基于对 象的文件系统可能假设,客户端不被信任,并依赖于单个对象存储设备协作地管理冗余。然 而,甚至在这样的协作系统中,也需要在处理设备故障时允许继续执行读取和写入操作,而 不会丢失数据,并且也不会给系统的客户端带来负担。还进一步需要当发生故障的设备从 故障恢复时能够使发生故障的设备再同步,或如果发生故障的设备不能足够快地恢复,完 全使更换设备同步,而不会降低存储器的可用性。 考虑到上面的情况,需要能够解决这些问题的用于管理基于对象的数据存储子系 统中的设备故障的有效系统和方法。
技术实现思路
公开了计算机系统和方法的各种实施例。在一个实施例中,计算机系统包括连接到存储子系统的客户端。存储子系统包括可作为阵列中的行和列寻址的多个数据存储位置。阵列的每一列都包括单独的存储设备。阵列的每一行中存储的数据包括至少某些冗余数据。对于阵列中的给定行,协调存储设备协调冗余数据的计算和存储。计算机系统检测包括存储设备的至少一部分的存储区域的故障。作为对检测到故障的响应,计算机系统配置覆盖存储设备以临时覆盖发生故障的区域,维护覆盖存储设备和发生故障的区域之间的关联,并维护在区域处于发生故障的状态时对覆盖存储设备作出的更改的记录。 在进一步的实施例中,作为对检测到发生故障的区域已经恢复的响应,计算机系统使用该关联来标识覆盖存储设备,并使用对覆盖存储设备进行的更改的记录,使发生故障的区域再同步。在更进一步的实施例中,响应于判断区域的故障是永久的,计算机系统使用该关联来标识覆盖存储设备,并将以前存储在发生故障的区域的数据复制到覆盖存储设备。 在进一步的实施例中,阵列中的行利用擦除-编码布局,如镜像布局、RAID-5布 局,或RAID-6布局。对于阵列中的给定行,协调存储设备从以向覆盖设备写入数据为目标 的客户端接收写入请求,基于从给定行中的非覆盖设备中检索到的旧数据,计算并存储冗 余值,并将写入数据转发到至少包括所述覆盖设备的给定行中的设备。此外,对于阵列中的 给定行,协调存储设备从以从覆盖设备读取数据为目标的客户端接收读取请求,使用从给 定行中的非覆盖设备中检索到的数据,从发生故障的区域重建数据,并将重建的数据返回 到客户端。在一个实施例中,由协调存储设备检测包括存储设备的至少一部分的存储区域 的故障。 在考虑下列描述以及附图的情况下,这些及其他实施例将变得显而易见。 附图说明 图1显示了计算机系统的一个实施例。 图2是RAID-5数据存储子系统的一个实施例的一般化方框图。 图3是RAID-6数据存储子系统的一个实施例的一般化方框图。 图4是RAID-1数据存储子系统的一个实施例的一般化方框图。 图5说明了用于处理镜像布局中的设备故障的过程的一个实施例。 图6是显示了客户端和镜像布局中的行之间的I/O事务的一个实施例的顺序图。 图7说明了用于处理RAID-5布局中的设备故障的过程的一个实施例。 图8是说明了客户端和RAID-5布局中的部分行之间的读取事务的一个实施例的顺序图,其中,读取操作的目标存储设备包括临时存储设备。 图9是说明了客户端和RAID-5布局中的部分行之间的写入事务的一个实施例的 顺序图,其中,写入操作的目标存储设备包括临时存储设备。 图10说明了用于处理RAID-6布局中的设备故障的过程的一个实施例。 图11是说明了客户端和RAID-6布局中的部分行之间的读取事务的一个实施例的顺序图,其中,读取操作的其中一个目标存储设备是临时存储设备,临时存储设备不是奇偶校验存储设备。 图12是说明了客户端和RAID-6布局中的部分行之间的读取事务的一个实施例的 顺序图,其中, 一个临时存储设备是接收读取请求的奇偶校验存储设备,另一个临时存储设 备是读取请求的其中一个目标存储设备。 图13是说明了客户端和RAID-6布局中的部分行之间的写入事务的一个实施例的 顺序图,其中,写入操作的目标存储设备包括临时存储设备。 图14显示了在存储设备发生故障的情况下客户端和存储设备布局中的行之间的 I/O事务过程中可以使用的过程的一个实施例。 图15说明了可以用来覆盖和恢复存储子系统中的发生故障的存储设备的过程的 一个实施例。 图16显示了用于处理镜像布局中的1/0请求的过程的一个实施例,其中,覆盖存 储设备以临时覆盖发生故障的存储设备。 图17显示了用于处理RAID-5布局中的I/O请求的过程的一个实施例,其中,覆盖 存储设备以临时覆盖发生故障的存储设备。 图18显示了用于处理RAID-6布局中的I/O请求的过程的一个实施例,其中,两个 覆盖存储设备临时覆盖发生故障的存储设备。 尽管本专利技术可以具有各种修改和替代形式,但是,这里将通过图形中的示例显示 特定实施例,并进行详细描述。然而,应了解,图形和详细描述不打算将本专利技术只限于所说 明的特定形式,相反地,本专利技术可以覆盖如所附权利要求所定义的本专利技术的精神和范围内 的所有修改、等效内容和替代方案。具体实施例方式图1显示了计算机系统100的一本文档来自技高网
...

【技术保护点】
一种计算机系统,包括:客户端;以及连接到所述客户端的存储子系统;其中,所述计算机系统被配置为:检测包括存储设备的至少一部分的存储区域的故障;作为对检测到所述故障的响应,配置覆盖存储设备以临时覆盖发生故障的区域;维护所述覆盖存储设备和所述发生故障的区域之间的关联;以及维护在区域处于发生故障的状态时对覆盖存储设备进行的更改的记录。

【技术特征摘要】
US 2008-12-30 12/346,374一种计算机系统,包括客户端;以及连接到所述客户端的存储子系统;其中,所述计算机系统被配置为检测包括存储设备的至少一部分的存储区域的故障;作为对检测到所述故障的响应,配置覆盖存储设备以临时覆盖发生故障的区域;维护所述覆盖存储设备和所述发生故障的区域之间的关联;以及维护在区域处于发生故障的状态时对覆盖存储设备进行的更改的记录。2. 根据权利要求1所述的系统,其中,作为对检测到所述发生故障的区域已经恢复的响应,所述计算机系统进一步被配置为使用所述关联标识所述覆盖存储设备;以及使用所述对覆盖存储设备进行的更改的记录,再同步所述发生故障的区域。3. 根据权利要求1所述的系统,其中,响应于判断所述区域的故障是永久性的,所述计算机系统进一步被配置为使用所述关联标识所述覆盖存储设备;以及将以前存储在所述发生故障的区域中的数据复制到所述覆盖存储设备。4. 根据权利要求1所述的系统,其中,所述存储子系统包括可作为阵列中的行和列寻址的多个存储位置,所述阵列的每一列都包括多个存储设备的单独的存储设备,并且其中,对于阵列中的给定行,协调存储设备被配置为协调所述给定行中冗余数据的计算和存储。5. —种在存储子系统的存储位置维护数据的方法,所述方法包括检测包括存储设备的至少一部分的存储区域的故障;作为对检测到所述故障的响应,配置覆盖存储设备以临时覆盖发生故障的区域;维护所述覆盖存储设备和所述发生故障的区域之间的关联;以及维护在区域处于发生故障的状态时对覆盖存储设备进行的更改的记录。6. 根据权利要求5所述的方法,其中,作为对检测到所述发生故障的区域已经恢复的响应,所述方法进一步包括使用所述关联标识所述覆盖存储设备;以及使用所述对覆盖存储设备进行的更改的记录,再同步所述发生故障的区域。7. 根据权利要求5所述的方法,其中,响应于判断所述区域的故障是永久性的,所述方法进一步包括使用所述关联标识所述覆盖存储设备;以及将以前存储在所述发生故障的区域中的数据复制到所述覆盖存储设备。8. 根据权利要求5所述的方法,其中,所述存储子系统包括可作为阵列中的行和列寻址的多个存储位置,所述阵列的每一列都包括单独...

【专利技术属性】
技术研发人员:G马修CK哈默B拉詹
申请(专利权)人:赛门铁克公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1