分布式存储数据恢复的制作方法

文档序号:12142017阅读:249来源:国知局
分布式存储数据恢复的制作方法与工艺

移动服务、社交网络、在线服务、云服务以及其它数据服务正在生成并积累大量数据,有时被称作“大数据”。可以采用从本地弹性磁盘阵列架构到全局分布式和弹性存储架构的范围内的磁盘存储系统来存储、取回和恢复数据。

附图说明

图1示出了根据本公开的例子的分布式数据存储系统的框图;

图2示出了根据本公开的例子的数据矩阵;

图3示出了根据本公开的例子的在数据矩阵中的数据元素和伴随式(syndrome)之间的相互关系;

图4示出了在本公开的单故障点例子中的数据恢复的流程图;

图5示出了在本公开的多故障点例子中的数据恢复的流程图;

图6示出了根据本公开的例子的将节点相互关联的流程图;

图7示出了根据本公开的例子的具有单故障点的分布式数据存储系统的框图;

图8示出了根据本公开的例子的在具有单故障点的数据矩阵中的数据元素与伴随式之间的相互关系;

图9示出了根据本公开例子的具有单故障点的分布式数据存储系统中恢复的框图;

图10示出了根据本公开的例子的在数据恢复之后具有单故障点的分布式数据存储系统的框图;

图11示出了根据本公开的例子的具有多故障点的分布式数据存储系统的框图;

图12示出了根据本公开的例子的具有多故障点的分布式数据存储系统中的恢复的框图;以及

图13示出了根据本公开的例子的在数据恢复之后具有多故障点的分布式数据存储系统的框图;

图14是示出根据本公开的例子的非暂态计算机可读介质的示例性框图,所述介质存储有用于操作计算机(例如,图1的计算机102和106)的代码。

具体实施方式

图1示出了根据本公开的例子的分布式数据存储系统100的框图。在例子中,分布式数据存储系统100可以出于存储效率的目的而利用纠删码(erasure coding)。

在例子中,计算机102可以是管理计算机、服务器、或运行管理软件或磁盘管理模块的其他设备,以管理或配置分布式数据存储系统100。在例子中,计算机102可以创建、存储或管理用于在分布式数据存储系统100中使用的数据矩阵,如在本文中关于图2更详细讨论的。在另一例子中,在分布式数据存储系统100中使用的管理软件或磁盘管理模块和数据矩阵可以存储于例如一个或多个服务器106上。

在例子中,分布式数据存储系统100可以包括多于一个缺陷区(fault zone)、数据区或数据中心,例如数据中心或数据存储114、116和118。在例子中,缺陷区可以包括一个或多个磁盘驱动器、服务器、数据中心、或可以恢复的数据集合。数据中心可以在地理上位于一处,或可以在不同的地理位置处,例如在不同房间、建筑物、城市、州或国家中。在例子中,数据中心114可以在纽约,数据中心116可以在德克萨斯,而数据中心118可以在加利福尼亚。

在分布式数据存储系统100中的每个数据中心(例如,数据中心114、116和118)可以包括至少一个计算机、服务器、主机或其它设备106,来处理和/或存储数据。在例子中,数据可以存储于磁盘驱动器上,例如磁盘驱动器110和112(后文称作“节点”)。节点110和112可以包括任意存储技术,例如,节点可以是HDD、SSD、持久性存储器、其它存储技术、或其组合,并且可以直接连接到服务器106或在其内部,或者可以在服务器106的外部。

分布式数据存储系统100的计算机102、服务器106、节点110和112、以及数据中心114、116和118可以通过网络进行通信或互连,所述网络例如是局域网(LAN)、广域网(WAN)、存储区域网(SAN)、互联网、或任意其它类型的通信链路,例如,网络104。另外,分布式数据存储系统100和/或网络104可以包括系统总线或其它快速互连或直接连接,例如在服务器106与节点110和112之间的直接连接108。

如在下文更详细讨论的,存储于驱动器(例如,节点110和112)上的数据可以包括数据元素(或“数据容器”)和/或伴随式。如在下文更详细讨论的,数据元素和伴随式可以存储于相同的数据中心内,或者可以存储于不同的数据中心内。例如,在图1中,数据中心114存储四个数据元素D1-D4(110)和伴随式S1(112)。数据中心116存储四个数据元素D5-D8(110)和伴随式S2(112)。数据中心118未存储数据元素但存储了四个伴随式S3-S6(112)。

图2示出了根据本公开的例子的数据矩阵。更具体地,图2示出了稀疏校验矩阵202。在例子中,稀疏校验矩阵20可以是数据元素(例如D1-D8(110))和伴随式(例如,S1-S6(112))的矩阵,其具有非常稀疏或“不密集”的布置。在一些例子中,稀疏矩阵可以导致在单纠删(single erasure)时本地恢复的更强能力。例如,在图2的稀疏校验矩阵202中,可能仅需要少量节点来迭代地恢复纠删(erasure)。在一些例子中,稀疏校验矩阵可以包括置换、线性和非线性变换到更密集或更稀疏的矩阵和/或非二进制矩阵。

稀疏校验矩阵202还示出了这样的例子:数据(例如,文件“D”)分裂成八个单独的数据元素或容器D1-D8,其可以存储于例如节点110上。例如,大小为八个吉字节的文件(例如,文件D)可以分裂成八个单独的一吉字节数据元素D1-D8(110),如下文更详细描述的。

稀疏校验矩阵202还示出了六个伴随式S1-S6的例子,其可被存储于例如节点112上,与可被存储于例如节点110上的数据元素D1-D8相关。在例子中,伴随式可以是数字(digit)、标识符、标记(flag)或用于校验错误和/或数据一致性的其它计算出的值,以及如果必要的话再生成数据。在一些例子中,伴随式可以是与校验和形成对照的,校验和可以提供错误检测但是不会再生成数据。在一些例子中,例如,当使用例如RAID6或RAIDMANY的保护方案时,伴随式可以表示伴随式块,其中伴随式表示多于单个比特。在一些例子中,伴随式块可以是字节、冗余块、或另一值,以支持各种不同级别的RAID或更大大小的稀疏校验矩阵。

在图2的例子中,可以基于数据元素D1-D8计算伴随式S1-S6。在例子中,在任意给定列中的数字1是数据被用于计算与在那行中的数据相关的伴随式的指示符。例如,伴随式S3可以从数据元素D1和D5计算,而伴随式S4可以从数据元素D2和D6计算。图2的稀疏校验矩阵202还通过使用阴影示出了跨数据中心的在地理上分布数据和伴随式的例子,也如图1所示。

稀疏校验矩阵202还示出了较强的本地恢复能力,数据元素可以共同位于例如单个数据中心内。更具体地,在稀疏校验矩阵中,可以使较少的节点与单个伴随式相关,减小因为访问剩余的好数据而对网络造成的压力。

图3示出了根据本公开的例子的在数据矩阵中的数据和伴随式之间的相互关系。更具体地,图3示出了图2的稀疏校验矩阵202的相关视图。如上,例如,伴随式S3可以根据D1和D5计算,而伴随式S4可以根据D2和D6计算。

图4示出了在本公开的例子中的单故障点中的数据恢复的流程图。在框402中,在例子中,在检测到故障之前生成矩阵(例如,稀疏校验矩阵202)。可以使用例如渐进边增长(PEG)算法的算法来生成矩阵。

在框404中,生成伴随式,例如图2的S1-S6。如上所讨论的,可以基于稀疏校验矩阵202中的数据元素D1-D8计算伴随式S1-S6。

在框406中,数据元素D1-D8和伴随式S1-S6可以例如存储于一个或多个数据中心内,例如数据中心114、数据中心116和/或数据中心118。在例子中,数据元素D1-D8和伴随式S1-S6可以跨数据中心随机地或基于一个或多个标准(例如,地理散布或地理偏置)进行散布。

在框408中,可以包括在分布式数据存储系统中进行监视,检测单个故障,即,接收故障通知。在各种例子中,单个故障可以包括但不限于:节点故障、驱动器故障、数据集故障、阵列故障、和/或服务器故障。单个故障例如可以通过驱动器子系统、服务器、数据中心、相邻服务器、相邻数据中心、扫描工具、管理计算机(例如图1的计算机102)、磁盘管理模块、或用于监视驱动器性能、健康或正常运行时间的另一机构进行检测。

在框410中,在已经检测到单个故障之后,在例子中,通过访问稀疏校验矩阵202、确定故障节点的相关伴随式、以及通过例如递归过程来在同一数据中心内恢复单个故障,来恢复故障节点。例如可以在具有故障的服务器、另一服务器、数据中心工具或管理工具(例如,图1的计算机102)上执行所述恢复。将结合图7-9在下文中更详细地讨论单个节点的恢复。

在框412中,单个节点被完全恢复,并且可以通过例如服务器、另一服务器、数据中心工具、磁盘管理模块或管理工具生成报告或警报。

图5示出了在本公开的例子中的多故障点中的数据恢复的流程图。

在框502中,在例子中,如在图4和框402中的例子,生成矩阵(例如,稀疏校验矩阵202)。可以使用例如渐进边增长(PEG)算法的算法生成矩阵。如在框404中,在框504中生成伴随式(例如,图2的S1-S6),并可以基于稀疏校验矩阵202中的数据元素D1-D8进行计算。

另外在框506中,如同在框406中,可以将数据元素D1-D8和伴随式S1-S6例如存储于一个或多个数据中心内,例如,数据中心114、数据中心116和/或数据中心118,并可以跨数据中心随机地或基于一个或多个标准进行散布。

在框508中,监视和/或检测多于一个节点的故障(例如,站点灾难),和/或接收通知。在各种例子中,多个节点的故障可以包括但不限于多于一个节点、多于一个驱动器、多于一个数据集、多于一个阵列和/或多于一个服务器的故障。在例子中,多于一个节点的故障可以影响整个数据中心,例如,所有的数据中心114离线。多于一个节点的故障可以例如由驱动器子系统、服务器、数据中心、相邻服务器、相邻数据中心、扫描工具、磁盘管理模块、管理计算机(例如,图1的计算机102)或用于监视驱动器性能、健康或正常运行时间的另一机构检测。

在框510中,在已经检测到多于一个节点的故障之后,在例子中,通过访问稀疏校验矩阵202、确定用于跨其它地理位置的故障节点(例如,数据中心114、116和118)的相关伴随式、以及通过例如递归过程全局地恢复故障数据元素,来恢复故障节点。例如,可以在受影响的服务器、另一服务器、数据中心工具、磁盘管理模块、或管理工具(例如,图1的计算机102)上执行恢复。将在下文中结合图11-13更详细地描述多个节点的恢复。

图6示出了根据本公开的例子的对应节点的流程图。更具体地,图6示出了终端对图5的框502的输入,其中在例子中,生成矩阵(例如,稀疏校验矩阵202)。

在框602中,在例子中,指定本地节点计数,例如,在稀疏校验矩阵202中每行的非零元素的数量。在框604中,指定全局站点的数量。如上所述,全局站点可以包括位于同一处或不同房间、建筑物、城市、州或国家等的数据中心。

在框606中,在例子中,指定与在其它站点中的排他节点相关的每个数据节点的相互关系的数量(correlation number)。然后可以将图6的流程返回到图5的框502。

图7示出了根据本公开的例子的具有单故障点的分布式数据存储系统的框图。在图7的例子中,数据中心114中的服务器106的节点D1已经发生故障,并由故障节点D1(120)表示。

图8示出了根据本公开的例子的在具有单故障点的数据矩阵中的数据元素与伴随式之间的相互关系。在例子中,如结合图4的框410在上文所讨论的,在已经检测到单个故障之后,通过访问稀疏校验矩阵202、确定故障节点的相关伴随式(例如,S1(112))、以及通过例如如图9的例子所描述的递归过程在同一数据中心内恢复单个故障,来恢复故障节点(例如,D1(120))。

图9示出了根据本公开例子的具有单故障点的分布式数据存储系统中恢复的框图。可以执行或使用逻辑运算902(如XOR算子)来从相关伴随式(例如,S1(112))和相关数据元素D4、D3和D2(110)来恢复故障节点(例如,D1(110/120))。在其它例子中,可以代替例如XOR算子使用其它计算算法和恢复方法。

图10示出了根据本公开的例子的在数据恢复之后具有单故障点的分布式数据存储系统的框图。在图10的例子中,D1(110)已经恢复并且不再表现为故障节点D1(120),如图7所示。

图11示出了根据本公开的例子的具有多故障点的分布式数据存储系统的框图。在图1的例子中,在数据中心114中服务器106的节点D1-D4(110)和伴随式S1(112)已经发生故障,并且现在是故障节点D1-D4(120)和S1(122)。在图11的例子中,数据中心114可以被认为是站点灾难。

图12示出了根据本公开的例子的具有多故障点的分布式数据存储系统100中的恢复的框图。在一些例子中,可以使用逻辑运算902(例如,XOR算子)恢复故障节点。在其它例子中,可以替代例如XOR算子使用其它计算算法和恢复方法。

更具体地,如结合图5的框510更详细描述的,在已经检测到多于一个节点的故障之后,在例子中,通过访问稀疏校验矩阵202、确定跨其它地理位置的故障节点(例如,数据中心114、116和118)的相关伴随式、以及通过例如递归过程全局恢复故障,来恢复故障节点。

在一个例子中,如图12所示,其中数据中心114被认为是站点灾难,可以访问稀疏校验矩阵202以确定伴随式S3与数据元素D1和D5相关,如图2和3所示,允许如图12所示恢复D1。

图13示出了根据本公开的例子的在数据恢复之后具有多故障点的分布式数据存储系统的框图。在图13的例子中,D1-D4(110)和S1(112)已经恢复,并且不再表现为故障节点D1-D4(120)和S1(122),如图11所示。

可以理解的是,本文描述的系统和方法还可以从多于一个节点、数据中心或缺陷区的将故障恢复。在各种例子中,使用不同层级的保护方案或虚拟化技术(例如,RAID6),稀疏校验矩阵在大小上可以增加以反映所使用的保护方案,并允许恢复多于一个节点、数据中心或缺陷区。在各种例子中,变化的RAID级别和变化的稀疏校验矩阵大小可以从例如2/3节点故障、5/10数据中心故障或分布式数据存储系统中的其它故障例子恢复。

图14是示出根据本公开的例子的非暂态计算机可读介质的示例性框图,所述介质存储用于操作计算机(例如,图1的计算机102和106)的代码。

在一个例子中,分布式数据存储系统100包括存储于非暂态计算机可读介质1406上的一个或多个程序指令,其由例如在图1的计算机102或服务器106或者例如在分布式数据存储系统内的其它计算机和/或服务器中的处理器1402执行。可以将程序指令从计算机可读介质加载到计算机102或服务器106,所述计算机可读介质例如是DVD、存储器卡、闪存设备、或任意其它类型的存储器设备或与计算机102或服务器106接口的计算机可读介质。在另一例子中,可以从外部设备或网络资源将指令下载到计算机102或服务器106上。

非暂态计算机可读介质通常由参考数字1406指代,并可以包括在本文并结合涉及数据存储和恢复处理的图1-13描述。非暂态计算机可读介质1406可以对应于存储计算机可实现指令(例如,编程代码等)的任意存储设备。例如,非暂态计算机可读介质1406可以包括一个或多个非易失性存储器、易失性存储器和/或一个或多个存储设备。非易失性存储器的例子包括但不限于,电可擦除可编程只读存储器(EEPROM)和只读存储器(ROM)。易失性存储器的例子包括但不限于,静态随机存取存储器(SRAM)和动态随机存取存储器(DRAM)。存储设备的例子包括但不限于,硬盘驱动器、固态驱动器、压缩盘驱动器、数字通用盘驱动器、光驱动器、以及闪存设备。

根据例子,处理器1402一般取回并执行存储于非暂态计算机可读介质1406中的指令,以操作计算机。在例子中,机器可读介质1406可以由处理器1402通过总线1404进行访问。非暂态计算机可读介质1406的区域1406可以包括磁盘存储和恢复功能,例如一个或多个模块1408,如本文所描述的。

本文描述和图示的是本公开的各种例子及其变型。仅通过图示阐述在本文使用的术语、描述和附图,且其不打算作为限制。在本公开的精神和范围内的许多变型是可能的,其中本公开意图由后续权利要求及其等价物定义,其中除非另外指出,否则所有的术语意指其最广泛的合理意义。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1