掌桥专利:专业的专利平台
掌桥专利
首页

具有协同优化的多级擦除系统

文献发布时间:2023-06-19 12:18:04


具有协同优化的多级擦除系统

发明内容

根据一些实施例,数据存储系统具有经由网络控制器连接到多个数据存储设备的主机,其中该多个数据存储设备中的每一个和该网络控制器连接到箱控制器并且该多个数据存储设备中的每一个具有设备控制器。重建策略由重建模块生成,该重建模块连接到该多个数据存储设备、该网络控制器和该箱控制器。通过响应于在该多个数据存储设备中的至少一个数据存储设备中的检测到的故障而执行该重建策略,该重建策略可以涉及在该多个数据存储设备发生故障时将数据重建时间最小化。随后该重建模块响应于在该多个数据存储设备中的检测到的故障而改变该重建策略。

数据存储系统的其他实施例经由网络控制器将主机连接到多个数据存储设备,其中该多个数据存储设备中的每一个和该网络控制器连接到箱控制器并且该多个数据存储设备中的每一个具有设备控制器。重建策略由重建模块生成,该重建模块连接到该多个数据存储设备、该网络控制器和该箱控制器。通过响应于在该多个数据存储设备中的至少一个数据存储设备中的检测到的故障而执行该重建策略,该重建策略可以涉及在该多个数据存储设备发生故障时将数据重建时间最小化。随后该重建模块响应于由该重建模块预测的该多个数据存储设备中的故障来改变该重建策略。

在各种实施例中,系统具有经由网络控制器连接到多个数据存储设备的主机,其中该多个数据存储设备中的每一个和该网络控制器连接到箱控制器并且该多个数据存储设备中的每一个具有设备控制器。利用重建模块生成重建策略,该重建模块连接到该多个数据存储设备、该网络控制器和该箱控制器。该重建策略涉及在该多个数据存储设备发生故障时将数据重建时间最小化。响应于在该多个数据存储设备中的至少一个数据存储设备中的检测到的故障,该重建策略的执行涉及该设备控制器以及该箱控制器和该网络控制器中的至少一者。

鉴于以下详细讨论和附图,可以理解可以表征各种实施例的这些和其他特征。

附图说明

图1提供了其中可以实践各种实施例的示例分布式数据存储系统的功能框图表示。

图2是根据一些实施例所布置的示例数据存储系统的一部分的框图表示。

图3描绘了根据至少一个实施例所配置的示例数据存储系统的各部分的框图表示。

图4示出了根据各种实施例所采用的示例数据存储系统的各部分的框图表示。

图5示出了根据各种实施例所布置和所操作的示例数据存储系统的各部分的框图表示。

图6显示了根据各种实施例的可以在数据存储系统中利用的示例重建模块的框图表示。

图7示出了根据一些实施例所利用的示例数据存储系统的各部分的框图表示。

图8显示了根据各种实施例所布置的示例数据存储系统的各部分的框图表示。

图9示出了根据各种实施例所布置的示例数据存储系统的各部分的框图表示。

图10描绘了根据各种实施例所布置的示例数据存储系统的各部分的框图表示。

图11是可以利用图1-图10的各个实施例执行的示例多级擦除例程。

具体实施方式

本文所讨论的各种实施例通常涉及但不限于分布式数据存储系统,该分布式数据存储系统智能地采用多级擦除以提供经优化的数据持久性以及降低的成本。

随着数据存储硬件的异地定位,云数据存储的扩展允许计算系统变得更精简和更有效。从异地位置存储和访问数据的能力允许计算系统采用较少的现场临时和永久数据存储能力,从而减少了物理尺寸和与操作相关联的功耗。然而,可以被表征为云数据存储的大规模分布式数据存储的演变经历了与提供安全、可靠和快速的数据访问相关联的各种挑战。

分布式数据存储系统可以将数据的各部分存储在多个不同的数据存储设备中,以提供增强的数据可靠性,但是当数据在系统内重建时,数据存储设备的故障可能导致性能退化。跨多个数据存储设备的数据的分发可以通过采用多个数据信道来进一步提供减少的数据访问延迟,但是可能受到与分布式数据存储相关联的数据开销的生成和维护的困扰。许多数据存储设备(诸如采用闪存存储器的设备)具有与有限数量的数据写入相对应的有限使用寿命,该事实会加剧此类问题。

因此,各种实施例通过主动地和/或反应性地配置分布式数据来优化数据存储,以在发生故障时提供快速和有效的数据重建操作。数据的智能主动配置可以减少与在数据存储设备错误和/或故障之后的数据重建相关联的卷和时间。分布式数据存储系统的多个级别之间的通信可以智能地对错误和/或故障作出反应,以提供具有提高的数据持久性的更快速且更有效的重建操作。

图1是其中可以实践各种实施例的示例数据存储系统100的框图表示。系统100可以是任何尺寸并且由任何尺寸、数量和类型的互连计算部件组成。在图1的非限制性配置中,多个数据存储设备102(DSD1-N)分别连接到驻留在分发硬件106中的至少一个共享控制器104。共享控制器104可以将数据存储操作从任何数量的远程主机引导到各种数据存储设备102,或者从各种数据存储设备102引导到任何数量的远程主机。

尽管不是必需的或限制性的,但系统100可以将第一远程主机108和第二远程主机110连接到分发硬件106。远程主机108/110可以在经由有线和/或无线网络112连接到共享控制器104时可以物理分离。共享控制器104可以将数据存储设备102中的一些或全部视为独立磁盘/设备冗余阵列(RAID),如具有诸如级别0、4、5、6等的配置的分段线所示,其中数据在具有奇偶校验数据或不具有奇偶校验数据的情况下被条带化和/或镜像以提供可靠的数据存储。

共享控制器104可以将数据流引导到单个数据存储设备102以及到一组多于一个的数据存储设备102,或者从单个数据存储设备102以及一组多于一个的数据存储设备102引导数据流,以实现未决数据访问请求,诸如从主机108/110的数据读取和数据写入。构想了作为数据存储维护或安全性的一部分,共享控制器104还可以在数据存储设备102中和在数据存储设备102之间引导数据话务。构想但不是必需,各种数据存储设备102物理地存在于不同的位置处(诸如不同的城市、州、国家、大陆或半球),以鉴于与地理位置相对应的单元故障而增加系统完整性。分发硬件106和远程主机108/110也可以采用不同的物理位置。因此,数据存储系统100的每一个方面可以位于不同且唯一的物理位置处,同时由网络112互连。

图2描绘了根据一些实施例所布置的示例数据存储系统120的各部分的框图表示。系统120可以具有一个或多个网络控制器122,该一个或多个网络控制器122操作以执行来自一个或多个主机108/110的数据访问请求。网络控制器122可以补充或替换定位在分发硬件106中的共享控制器104。作为非限制性示例,网络控制器122可以是在前端上与各种主机108/110交互的服务器、路由器、交换机或节点的一部分,而共享控制器104是容纳多个独立数据存储设备102的包壳或机架的一部分。另一个示例可以将网络控制器122和共享控制器122配置为相似类型的网络装备(诸如服务器、路由器或节点),该网络装备具有与向一个或多个所连接的数据存储设备102写入数据和从该一个或多个所连接的数据存储设备102检取数据相关联的不同操作任务。

虽然并入分布式数据存储系统120中的各种数据存储设备102可以具有不同的能力和配置(诸如容量、错误率和数据访问延迟),可以构想,每一个数据存储设备102具有本地控制器124,该本地控制器124对本地存储器126执行至少数据访问和维护操作。这样,数据存储设备102可以采用旋转磁介质、固态阵列或它们的组合以提供存储器126,该存储器126可用于存储来自一个或多个主机108/110的数据。数据存储设备102在数据存储系统120中的物理分离定位允许来自各种系统主机108/110的用户数据跨多个不同的设备102分布,以防止数据存储错误和/或局限于特定物理位置的故障,诸如电力中断或者自然灾害。

图3大致传达了根据各种实施例所配置的示例数据存储系统130的各部分的框图表示。系统130将多个数据存储设备102逻辑地布置为列132和行134,其中每一列132由定位在单个位置处的一个或多个数据存储设备102中的不同数据存储地址组成,而每一行由定位在不同物理位置处的不同数据存储设备102中的不同数据存储地址组成。

也就是说,列132被配置有物理定位在公共位置中的一个或许多个数据存储设备102中的数据目的地。例如,列132可以是单个数据存储设备102中的不同物理块地址(PBA),或者是定位在单个物理位置处的不同数据包壳中的多个数据存储设备102中的不同物理块地址(PBA)。因此,图3中所示的每一列132的每一个数据存储设备102位于公共物理位置处,而每一行134具有跨不同物理位置中的不同数据存储位置分布的不同数据存储设备102。

通过各种数据存储设备102提供到列132和行134中的逻辑块地址(LBA)的逻辑配置可以利用一个或多个控制器136来组织和执行,该一个或多个控制器136可以本地定位(诸如控制器124)、位于分发硬件106中(诸如控制器104)或位于网络中(诸如控制器122)。数据存储系统130的各个控制器136可以独立地、共同地并且顺序地与包括系统130的各种数据存储设备102的本地可编程硬件一起操作,以执行所连接的主机108/110的数据访问请求以及数据维护操作,诸如垃圾收集、去除重复(deduplication)和加密。

分段线框138传达了少于列132的LBA中的全部LBA可以如何成为公共数据存储设备102的一部分。然而,要注意,列132的LBA中的全部LBA可以替代地是多个数据存储设备102的一部分。将来自一个或多个数据存储设备102的LBA聚合到公共逻辑列132的能力允许控制器136自由地形成LBA140配置以优化性能,而不管可用数据存储设备102的数量、类型和容量如何。

要注意,无论提供LBA的数据存储设备的数量和物理位置如何,各个数据存储设备102的数据容量和数据传输速度可以相似或不相似。因此,控制器136可以对具有不同数据存储特性(诸如写入延迟、读取延迟和容量)的数据存储设备102中的LBA组织和执行数据存储操作,诸如数据写入、数据读取、数据更新和数据移动。

控制器136可以将数据存储系统130配置为单个RAID组,其中用户生成的数据(UD)根据预分配的RAID级别(诸如0、4、5或6)在具有静态或旋转奇偶校验数据(PD1和PD2)或不具有静态或旋转奇偶校验数据(PD1和PD2)的情况下被条带化和/或镜像。如图3所示,控制器136可以配置数据存储系统130,其中每一行134是预分配的RAID组(G1/G2/G3/G4),在这些预分配的RAID组中根据所选的RAID级别分发数据。

尽管由RAID级别5和6提供了旋转奇偶校验,但与RAID级别4提供的静态奇偶校验相反,由于在多个数据存储设备102中并发地遇到错误和/或故障,数据存储系统130可能容易受到数据丢失和性能退化的数据重建操作的影响。要注意,对于用户生成的数据的块利用多个奇偶校验值可以为两个并发数据存储设备102故障提供系统130弹性,但是可以与相对长和复杂的数据重建操作相对应。进一步注意,由相同数量的用户数据部分和奇偶校验数据部分组成的均匀数据条带142的使用允许奇偶校验数据的模式化分布,使得并非全部奇偶校验都被存储在合并数量的设备102和/或LBA中,该用户数据部分和奇偶校验数据部分可以被指定为3+2,其中每一个条带142具有3个分布式用户数据部分和2个分布式奇偶校验部分。

虽然维护均匀数据条带142配置可以在分布式模型中提供有效的数据存储,但是随着时间的推移此类均匀配置很少能够被维护,因为数据存储设备102的LBA变得容易出错和/或不能够可靠地存储数据。例如,由于大量数据写入导致的固态数据存储设备102中的LBA的块的故障将导致均匀数据条带142配置被完全重构为有效的LBA,或者将被忽略的LBA的块用于数据存储,这随着时间的推移降低了系统130的实际容量和效率。考虑到这些问题,分布式数据存储系统的实施例涉及利用不规则数据条带配置。

图4示出了根据各种实施例所配置和所采用的示例数据存储系统150的各部分的框图表示。如图所示,在不同物理位置处利用多个数据存储设备102以提供逻辑地布置到列154和行156中的LBA。与图3的均匀数据条带140相比,系统150并发地存储具有不同配置的数据条带。在非限制性示例中,数据条带158(G1)具有存储在LBA的单个行156中的5+2配置,而数据条带160(G2)具有存储在多个不同行156中的4+2配置。

改变用于数据条带的用户数据分区的数量和奇偶校验数据块的数量的能力提供了随时间地推移改变数据存储条件的灵活性和自由,以提供一致的性能和可靠性。然而,与图3的均匀数据条带140相比,不规则数据条带配置的使用由于利用各种LBA 152所需的处理量更大而导致系统150性能退化。当采用奇偶校验数据以重建数据条带的其他部分时,与不规则数据条带相关联的数据存储性能退化可能会在数据重建操作期间尤其严重。也就是说,由于不规则的数据条纹,与均匀数据条带相比,列154的一部分的重构可能涉及更大的处理量和重建时间,在均匀数据条带中,模式化数量的奇偶校验和用户数据将在故障后重构。

在分布式数据存储系统140的多个不同级别中存储奇偶校验数据和/或信息的情况下,可以利用多级擦除来减轻与在采用不规则数据条带的分布式系统150中重建数据相关联的复杂性和处理时间。图5显示了根据各种实施例的采用多级擦除配置的示例数据存储系统170的框图表示。系统170可以采用可以跨多个物理位置分布(诸如在不同时区中)的任何数量的数据存储设备102,以存储来自一个或多个所连接的主机108/110的至少用户数据和相关联的奇偶校验数据。

各个数据存储设备102可以经由一个或多个网络部件(诸如服务器、节点、分发硬件、路由器和交换机)连接到相应的主机108/110,该一个或多个网络部件服务由各种主机108/110进行的数据访问请求,同时以分布式用户数据部分和擦除数据的形式提供稳健的数据存储。要注意,擦除数据可以包括与数据存储设备102的用户数据块和/或数据结构的重建相关的任何数据和信息。例如,擦除数据可以由与用户生成的数据相关联的奇偶校验数据、从系统170的另一个LBA镜像的冗余数据、与用户生成的或非用户生成的数据相关联的元数据,或者与数据存储设备和/或数据存储系统170的一部分的历史、性能、组织或结构有关的信息组成。

通过系统170中各种数据存储部件的组织,数据存储设备102可以被认为是设备级数据存储,而多个数据存储设备102(诸如数据包壳、机架或单个物理位置)可以被认为是箱级(pods-level)数据存储,并且网络部件可以被认为是网络级数据存储。作为非限制性示例,设备级存储可以由存储用户生成的数据和多个不同数据条带的相关联的奇偶校验数据的单个数据存储设备组成;箱级存储可以由与共享控制器104相对应的控制器172组成,该控制器172指导分别存储多个不同数据条带的多个独立数据存储设备的操作;并且网络级存储可以由指导多个不同组数据存储设备的控制器组成。

如图所示,将数据存储设备102逻辑组织为分级层次允许有效的擦除操作,该擦除操作涉及在至少一个数据存储设备102中的至少一些数据的重建。此类分级层次可以与允许快速确定奇偶校验数据和其他擦除信息的不同擦除分辨率相对应。例如,网络级可以存储具有与不同数据机架中的多个不同数据存储设备相对应的第一分辨率的擦除数据,箱级可以存储具有与单个机架中的多个不同数据存储设备相对应的第二分辨率的擦除数据,设备级可以存储与单个数据存储设备相对应的擦除数据。

使用分层擦除级别的非限制性实际示例在各个级别中存储不同分辨率的擦除数据和/或信息,并且响应于数据存储设备错误和/或故障,依次轮询各个网络级、箱级和设备级擦除数据以重构存储在错误/故障数据存储设备中的数据。不同擦除数据分辨率的配置允许擦除数据的轮询在网络级更快但更抽象,而在设备级别更慢但更彻底。结果,与在发生错误/故障时详尽地轮询设备级的每一个数据存储设备以得到擦除数据相比,如果在网络级或箱级中发现充足的擦除数据,则可以更快速地处理设备错误/故障。

虽然与以单个分辨率存储的擦除数据相比,使用不同的擦除数据级别和分辨率可以得到更高的数据重构效率,但可以通过增加各级别之间的通信和协作来优化数据的持久性和分层多级擦除系统170的性能。因此,各种实施例旨在改进多级擦除系统170的使用,以减少与数据存储设备错误或故障之后的数据和/或数据结构的重建/重构相对应的时间和处理。

图6描绘了根据各种实施例的可以在硬件中实现并且在数据存储系统中利用的示例重建模块180的框图表示。重建模块180可以被构造为驻留在单个数据存储设备102、分发硬件106、网络控制器122或主机108中的一个或多个电路和可编程硬件。构想了多个重建模块180可以是数据存储系统的一部分,并且以相似或不相似的能力和配置冗余地、顺序地或独立地利用。

重建模块180可以具有本地控制器182(诸如可编程电路或处理器),该本地控制器182引导至少当前数据存储条件、当前数据存储性能、数据错误率以及数据条带配置的输入以生成重建策略,该重建策略提供要采取的主动和反应性措施,以减少数据存储设备故障的发生并减少与响应于所遇到的数据存储设备错误/故障而修复数据和数据结构相关联的时间。重建模块180可以单独利用本地控制器182,或者与数据存储系统180的其他控制器104/122/136一起利用,以最佳地优化数据重建操作的形式来生成、修改和以其他方式维护重建策略。

重建模块180可以具有预测电路184,预测电路184将输入系统/数据信息转换为与系统中一个或多个位置处的假想故障相关联的至少重建时间。例如,预测电路184可以模拟单个数据存储设备中的数据故障和一个或多个分离位置中的多个数据存储设备中的数据故障,以预报此类故障将花费多长时间来重建毁坏的数据。重建模块180的学习电路186可以补充预测电路184以提高所预报的数据重建时间的准确性。也就是说,学习电路186可以将过去的数据重建操作记录到数据存储设备、数据条带、数据机架和物理位置,以学习用于分布式数据存储系统的各个方面的数据重建的可预测方面。这样,学习电路186可以响应于过去系统事件而面向后(rear-facing),而预测电路184通过预测未来系统事件而面向前(forward-facing)。

了解过去系统事件和准确预报未来数据事件的能力可以确保重建策略可以减轻数据存储设备错误/故障的性能退化。通过将重建电路188合并到重建模块180中,硬件还可以获取当前和历史的数据存储系统信息和条件,以评估不同的主动和反应性重建场景及其对重建时间和所存储的数据脆弱性的影响。重建电路188可以单独地或与预测电路184组合地预测各种不同的主动数据移动、条带配置和重建处理选项,以确保重建策略规定最佳举措以将数据和/或数据结构的重建最小化。

重建电路188可以评估各种不同的反应举措、通信和处理对重建时间的影响,这些反应举措、通信和处理可以由设备级、箱级和网络级部件进行。因此,重建模块180可以基于当前系统条件预测、学习和评估不同的主动和反应性操作将如何影响重建时间。图7-图10分别传达了重建策略实现方式的非限制性实施例。要注意,相应的实现方式不是必需的,并且重建策略可以涉及并发地、顺序地或独立地执行多个不同的主动和/或反应性活动。

图7描绘了根据一些实施例所利用的示例数据存储系统200的各部分的框图表示,利用该示例数据存储系统200以实现从重建模块180生成的重建策略。响应于数据存储设备102中的错误/故障202,设备级控制器136通过轮询至少一个下游、箱级和/或网络级控制器104/122以确定故障202中的哪个LBA包含有效数据,来执行重建策略。例如,重建策略可以通过查询上级控制器来询问故障设备102中的哪个LBA包含当前有效数据(如箭头204和206所表示的),来对数据存储设备102的LBA中的一些或全部LBA中的检测到的故障202作出反应。

构想了所轮询的上级控制器104/122不只是返回有效数据(诸如数据的故障部分的LBA中的每一个LBA的状态)的位置。例如,如果LBA为空、非当前版本的数据、错误/故障、奇偶校验、镜像、或当前版本的数据,则所轮询的上级控制器104/122可以返回。通过利用(多个)上级控制器104/122以确定故障设备102的哪个LBA包含有效数据而不是本地设备控制器,允许确保重建故障LBA以有效地重构仅有效数据。此类重建无效数据和容易出错的LBA的避免消除了不必要的处理并减少了重建时间。

虽然每一个数据存储设备102可以维护有效数据、无效数据和容易出错的LBA的表是可能的,但是此类表的维护将极大地增加由本地控制器进行的处理操作。除了与增加的本地控制器处理的卷相关联的退化的性能之外,数据存储设备102中标识每一个LBA的状态的信息的存储和频繁更新将快速达到将数据写入固态存储器的有限阈值。因此,与本地控制器124相比,由一个或多个上级控制器104/122来维护LBA的状态可以更有效地进行处理并利用用于状态表的各种存储位置。

图8显示了根据各种实施例所利用的示例数据存储系统210的各部分的框图表示,利用该示例数据存储系统210以实现从重建模块180生成的重建策略。响应于一个或多个数据存储设备102的故障212被估计为花费相对较长的时间来重建,上级控制器104/122(箱级和/或网络级)可以引导非故障设备214临时地提高至少一个数据条带的数据持久性。数据持久性的提高可以涉及改变数据条带以包括一个或多个附加奇偶校验的卷,诸如在不同的设备102和位置中写入更多的奇偶校验。

一些实施例提高非故障设备214中的数据条带的持久性以补偿故障设备212的数据条带。例如,具有与八卷用户生成的数据相关联的两卷奇偶校验数据的数据条带发生故障时,可以通过向其他非故障数据条带写入附加卷的奇偶校验数据来提示补偿。此类补偿在多级擦除系统中尤其有效,其中数据条带具有不同数量的奇偶校验卷,诸如如果第一级条带具有十个数据卷和一个奇偶校验卷,而第二级条带具有八个数据卷和两个奇偶校验卷,则在故障转移到第二级之前,通过将奇偶校验卷增加到三个或更多个来进行补偿。

响应于故障212临时地或永久性地提高数据的持久性,或主动地预期重建策略中所预测的故障的能力,允许更多的奇偶校验数据卷和位置用于数据条带重建操作。在多个数据存储设备102的灾难性故障中,奇偶校验数据卷的数量的提升可以显著减少与在多个数据存储设备102上重建多个数据条带相关联的时间。构想了增加的奇偶校验数据卷可以临时地被写入分布式数据存储系统210(诸如其他数据存储设备、引起故障212的数据存储设备的非故障部分、网络高速缓存、或远程缓冲器)中的任何位置。

图9描绘了根据各种实施例所利用的示例数据存储系统220的各部分的框图表示,利用该示例数据存储系统220以实现从重建模块180生成的重建策略。奇偶校验数据的卷的维护允许无视丢失多个数据存储设备102而重建数据条带。本地设备控制器124可以执行一个或多个重建操作以从奇偶校验数据的卷修复至少一个数据条带。然而,此类重建操作可能是处理密集型的并且相对缓慢。

通过重建策略的实现方式,本地控制器124可以采用一个或多个上级控制器104/122来帮助一个或多个数据条带的重建,如箭头222和224所表示的。例如,本地控制器124可以初始地将总体数据重建计算的一半分发给一个或多个上级控制器104/122。在另一个示例中,本地控制器124可以在将重建处理/计算中的一些或全部传递到一个或多个上级控制器104/122之前,在由重建策略指定的阈值时间量内执行全部的重建计算和处理。主动地和反应性地采用分布式数据存储系统220的其他处理部件的能力允许本地控制器124接收重建操作的帮助,以在不使处理部件的性能退化的情况下改进重建时间。

构想了重建策略和执行该策略的本地控制器124可以针对特定控制器104/122规定某些数据、数据条带或数据类型的重建。针对特定控制器104/122的重建的此类分配可以与更高级别的数据安全性、将花费更长时间以利用本地控制器124重建的数据条带配置、或者所分配的控制器相对于本地控制器的处理能力相一致。所执行的重建策略的一些实施例在处理和计算用于重建数据条带中的一些或全部数据条带的数据时并发地使用多个不同的控制器124/104/122。

采用(多个)控制器以帮助重建故障数据的能力不限于上级控制器104/122。图10描绘了根据一些实施例所配置的示例数据存储系统230的各部分的框图表示,利用该示例数据存储系统230以实现从重建模块180生成的重建策略。系统230采用非故障数据存储设备102的一个或多个本地控制器以帮助执行重建操作,如箭头232和234所表示的。与上级控制器104/122相比,使用其他本地控制器124代替上级控制器104/122可以提高利用硬件的擦除编码和重建性能并且减少工作负荷。例如,本地控制器124可以具有可以从一个或多个奇偶校验卷提供有效的数据重建的数据重建专用集成电路。

尽管不是限制的或必需的,但是使用其他控制器104/122/124来执行重建操作可以涉及确定一个或多个数据存储设备102的故障LBA的什么数据。也就是说,代替重建故障设备102的每一个LBA,一个或多个系统控制器104/122/124可以计算故障LBA的内容并且重建由于故障而实际丢失的数据。对故障LBA的内容的确定可以进一步用于对数据的重建进行优先级排序或调度,诸如首先或最后重建严重退化的数据条带、敏感数据、或者数据条带的仅奇偶校验数据部分。

图11显示了可以利用图1-图10的各种实施例执行的示例多级擦除例程250。最初,分布式数据存储系统被设置和互连,使得至少一个远程主机可以将数据访问操作引导到至少一个数据存储设备,或者从至少一个数据存储设备引导数据访问操作。构想了多个数据存储设备被布置为用于主机请求的数据存储,而主机不知道或不具有控制什么数据存储设备将服务于请求的能力。分布式数据存储系统可以将一个或多个控制器定位在连接到重建模块的不同的分级层次上,诸如网络级、箱级和设备级。

在步骤252中接收到新的主机数据提示跨系统的多个数据存储设备计算和存储数据条带。在单级擦除系统中,将跨多个独立数据存储设备创建单个数据条带,该多个独立数据存储设备具有预定数量的用户数据卷和预定数量的相对应的奇偶校验数据卷。利用多级擦除系统,多级至少数据条带奇偶校验卷被创建并被存储在相应的系统级(网络/箱/设备)中。因此,步骤254、256和258继续进行以生成擦除数据,该擦除数据是用于网络级控制器、箱级控制器和设备级控制器的至少主机提供的奇偶校验卷、用户生成的数据。

用于相应系统级的擦除数据可以被配置在不同的分层布置中。例如,最高级可以具有单个奇偶校验卷,而箱级具有两个奇偶校验卷,而设备级具有三个奇偶校验卷,用于存储在箱的数据存储设备中的每一个数据条带。也就是说,设备级擦除数据可以驻留在数据存储设备中,并且箱级擦除数据可以涉及存储在由箱级控制器(诸如定位在与各自所连接的数据存储设备相同的物理位置处的机架或服务器控制器)控制的数据存储设备中的每一个中存储的每一个数据条带的奇偶校验数据。

在分布式数据存储系统的各种级别中生成不同量的奇偶校验数据允许对奇偶校验数据进行有效的分层轮询,该分层轮询可以减轻本地设备或箱中的工作负荷和延迟,从而在故障/错误已经损害一个或多个数据条带之后重建数据。虽然不是必需的,但步骤260可以利用来自一个或多个级别的奇偶校验数据来重构在所遇到的故障/错误中受损的用户生成的数据中的一些或全部。例程250可以循环地执行步骤252-步骤260以接收新数据、生成奇偶校验数据,并且根据重建策略使用该奇偶校验数据来重构受损数据。

然而,构想了重建模块可以连续地或偶发地,在决策262中评估一个或多个数据存储设备中的数据存储条件和性能,以确定对现有重建策略的改变是否可以改善数据存储设备故障的风险和/或减少在遇到错误/故障之后完成数据重建的时间。重建策略改变将得益于决策262的确定结果提示步骤264以生成新的重建策略,然后在步骤266中由分布式数据存储系统的至少一个级别将该重建策略放置到位。

在一些实施例中,决策262可以确定可以执行一个或多个主动举措以降低数据存储设备故障/错误的风险。例如,可以改变重建策略以将用户生成的数据划分为更多、更少、更大或更小的分区,这些分区跨更多或更少的数据存储设备,以降低设备遇到错误的可能性。构想了在改变后的重建策略中的数据条带可以维护条带配置,但是可以移动到不同组的数据存储设备以避免容易出错的设备。数据条带的此类移动可以将奇偶校验数据从相对应的用户生成的数据中分离出来。

可以替代地改变重建策略来改变一个或多个级别(网络/箱)的奇偶校验配置,以提高数据条带的持久性。因此,决策262可以针对故障/错误评估存储数据的当前持久性,并且修改当前数据条带配置和/或重建策略以减轻永久性数据丢失和长重建时间的风险。要注意,持久性可以被表征为对数据存储设备的错误/故障的弹性。因此,随着能够用于重建故障数据的奇偶校验数据卷的数量增加,数据持久性提高。还可以通过将奇偶校验数据卷移动到不太容易发生错误和故障的数据存储位置来提高持久性,这些错误和故障将需要重建奇偶校验数据。

响应于当前和/或预测的系统条件而主动地改变系统的一个或多个级别上的数据条带和奇偶校验配置的能力允许在不使数据存储性能退化的情况下对系统进行准确和有效的管理。通过生成对检测到的系统条件执行主动和/或反应性举措的重建策略,可以将数据重建时间最小化,并且可以避免和/或减轻数据存储故障。

通常,当下级块擦除系统丢失驱动器时,系统不知道哪些丢失的块持有有效数据,哪些没有。如果系统知道这一点,那么可以通过仅重建持有效数据的块来改进重建操作,因为重建持有无效数据的块是不必要的浪费工作。因此,各种实施例引入API,通过该API,下级块擦除系统可以查询上级对象擦除系统以询问哪些块是有效的。

构想了当上级擦除系统需要从整个下级块擦除系统的灾难性故障中恢复时,系统将需要跨网络传输大量数据,这是必要的但可能是缓慢的。如果操作缓慢,则会危及数据持久性,因为在缓慢的重建期间可能会发生附加的故障。因此,一些实施例引入API,通过该API,上级可以请求其他下级擦除系统临时地提高它们内部持久性,从而更快地恢复期望的持久性水平。一旦上级重建完成,系统可以向下级发出信号,以移除临时提高的额外持久性。例如,假设我们在上级处具有10+1并且在下级处具有8+2。如果我们丢失整个下级系统,我们在上级处的10+1可以恢复丢失的数据,但这将是缓慢的。因此,它可以临时地请求相关的下级系统临时地增加到8+3,以补偿外部级别处的丢失的持久性。

当下级块擦除系统不可挽回地丢失数据时(例如,8+2和3个驱动器在相同时间发生故障),系统可以请求上级恢复丢失的数据。通过为此目的添加API,下级可以通过该API请求上级计算用于特定块的数据,从而可以优化操作。

实施例可以优化低级擦除块系统内的擦除编码性能和成本。为了进一步提高性能和降低成本,可以添加API,使得上级对象擦除系统可以请求下级块擦除系统为其计算擦除,从而允许多级擦除系统中的全部级别使用经优化的擦除单元。因此,多级擦除系统构建在块设备之上,这些块设备仅经由非常狭窄和受约束的块接口与那些块设备交互,这允许比标准块接口更丰富的接口,从而可以优化多块擦除系统的操作。

进一步的示例

示例1.一种方法,包括:

经由网络控制器将主机连接到多个数据存储设备,所述多个数据存储设备中的每一个和所述网络控制器连接到箱控制器,所述多个数据存储设备中的每一个包括设备控制器;

利用连接到所述多个数据存储设备、所述网络控制器和所述箱控制器的重建模块生成重建策略,所述重建策略涉及在所述多个数据存储设备发生故障时将数据重建时间最小化。

响应于在所述多个数据存储设备中的至少一个数据存储设备中的检测到的故障,执行所述重建策略;以及

响应于在数据存储条件中检测到的变化,利用所述重建模块改变所述重建策略。

示例2.如示例1所述的方法,其特征在于,所述重建模块包括引导重建电路的操作的控制器。

示例3.如示例1所述的方法,其特征在于,所述重建模块维护对于所述多个数据存储设备的数据存储操作的日志,所述日志用于生成所述重建策略。

示例4.如示例1所述的方法,其特征在于,改变后的重建策略提高了存储在所述多个数据存储设备中的至少一个数据条带的数据持久性。

示例5.如示例4所述的方法,其特征在于,通过为所述数据条带写入至少一个附加奇偶校验卷来提高所述数据持久性。

示例6.如示例5所述的方法,其特征在于,所述附加奇偶校验卷存储在所述多个数据存储设备中的不包含用于所述数据条带的奇偶校验卷的数据存储设备中。

示例7.如示例1所述的方法,其特征在于,由所述设备控制器首先执行所述重建策略的第一部分直到满足所述重建策略的预定阈值,然后所述箱控制器执行所述重建策略的剩余部分。

示例8.如示例1所述的方法,其特征在于,执行所述重建策略以从所述检测到的故障中丢失的所述数据条带重构至少一个用户生成的数据卷。

示例9.一种方法,包括:

经由网络控制器将主机连接到多个数据存储设备,所述多个数据存储设备中的每一个和所述网络控制器连接到箱控制器,所述多个数据存储设备中的每一个包括设备控制器;

利用连接到所述多个数据存储设备、所述网络控制器和所述箱控制器的重建模块生成重建策略,所述重建策略涉及在所述多个数据存储设备发生故障时将数据重建时间最小化。

响应于在所述多个数据存储设备中的至少一个数据存储设备中第一检测到的故障,执行所述重建策略;以及

响应于由所述重建模块预测的数据存储条件中的变化,利用所述重建模块改变所述重建策略。

示例10.如示例9所述的方法,其特征在于,所述重建模块包括预测电路,所述预测电路基于在所述多个数据存储设备中的检测到的当前数据存储条件来预报所述数据存储条件中的至少一个变化。

示例11.如示例9所述的方法,其特征在于,所述重建模块包括学习电路,所述学习电路将过去记录的数据存储条件与所述多个数据存储设备中的未来数据存储条件进行关联。

示例12.如示例9所述的方法,其特征在于,改变后的重建策略通过响应于所述数据存储条件中的预测的变化,添加至少一个奇偶校验卷来改变数据条带。

示例13.如示例9所述的方法,其特征在于,所述改变后的重建策略响应于所述数据存储条件中的所述预测的变化,临时地增加由所述网络控制器存储在网络级处的所述奇偶校验卷的数量。

示例14.如示例9所述的方法,其特征在于,所述改变后的重建策略响应于所述数据存储条件中的所述预测的变化,临时地增加由所述箱控制器存储在箱级处的所述奇偶校验卷的数量。

示例15.如示例9所述的方法,其特征在于,所述改变后的重建策略响应于所述数据存储条件中的所述预测的变化,临时地增加由所述设备控制器存储在设备级处的所述奇偶校验卷的数量。

示例16.如示例9所述的方法,其特征在于,所述改变后的重建策略将至少一个所述奇偶校验卷添加到所述箱级或所述网络级,以平衡与所述第一检测到的故障相关联的所述设备级处的所述奇偶校验卷的丢失。

示例17.如示例10所述的方法,其特征在于,所述改变后的重建策略采用具有控制器的所述箱控制器以重建由于第二检测到的故障丢失的数据。

示例18.如示例10所述的方法,其特征在于,所述改变后的重建策略采用所述网络控制器和所述箱控制器以重建由于第二故障丢失的所述数据。

示例19.如示例10所述的方法,其特征在于,所述改变后的重建策略采用所述多个数据存储设备中的独立数据存储设备的多个设备控制器以重建由于所述第二故障丢失的所述数据。

示例20.一种方法,包括:

经由网络控制器将主机连接到多个数据存储设备,所述多个数据存储设备中的每一个和所述网络控制器连接到箱控制器,所述多个数据存储设备中的每一个包括设备控制器;

利用连接到所述多个数据存储设备、所述网络控制器和所述箱控制器的重建模块生成重建策略,所述重建策略涉及在所述多个数据存储设备发生故障时将数据重建时间最小化;以及

响应于在所述多个数据存储设备中的至少一个数据存储设备中的检测到的故障,利用所述设备控制器以及所述箱控制器和所述网络控制器中的至少一者执行所述重建策略。

相关技术
  • 具有协同优化的多级擦除系统
  • 具有存储器擦除功能的非易失性存储器及其擦除方法
技术分类

06120113241049