数据分条、分配和重构的制作方法

文档序号:11333705阅读:374来源:国知局
数据分条、分配和重构的制造方法与工艺

优先权主张

本申请主张2015年2月26日提交的新加坡专利申请no.10201501440t的优先权。

本发明总体上涉及用于具有主动存储装置的阵列的存储系统中的数据存储的方法和设备,并且更特别地,涉及用于具有主动存储装置的阵列的存储系统内的数据分条、奇偶校验计算、数据分配和重构的方法和设备。



背景技术:

具有主动存储装置的阵列的存储系统包含硬盘驱动器(hdd)和主动存储单元。理想地,数据存储系统中发生故障的数据存储装置中数据的数据重构作为离线重构进行,其中存储系统停止依赖于任何客户端/应用服务器以便允许数据重构过程以全速运行。然而,该情景在大多数生产环境中是不现实的,因为大多数存储系统即便在它们正从盘故障恢复时也需要提供不间断的数据服务。

当在系统中存在装置故障时,纠删码保护数据。与利用数据复制相比,利用纠删码来提高系统可靠性更经济。实施的纠删码可以保护hdd和包括主动控制器板(acb)和hdd的主动存储单元免遭故障。在另一方面,复制需要高得多的冗余数据量,其与原始数据一样大或者大小是原始数据的好多倍。然而,复制具有短得多的恢复等式(recoveryequation),意味着在盘故障之后其具有更高的恢复效率。

因此,所需要的是一种用于具有主动存储装置的阵列的存储系统内的数据分条、奇偶校验计算、数据分配和数据重构的方法和设备,其至少部分克服现有方法的缺点并且提供提高的数据存取性能和缩短的故障重构时间。另外,结合附图和本公开的该背景技术进行考虑,根据后续的详细描述和随附的权利要求,其他可取特征和特性将变得明了。



技术实现要素:

根据本发明的至少一个实施例,提供了一种用于主动驱动存储系统中的数据分条、分配和重构的方法,所述主动驱动存储系统包括多个主动对象存储装置,所述多个主动对象存储装置中的每一个包括一个或多个存储装置和控制器。所述方法包括下述步骤:所述多个主动对象存储装置中的所述被识别的一个的控制器将接收的数据分段成多个数据块并且响应于所述多个数据块生成一个或多个奇偶校验块。所述方法还包括下述步骤:所述多个主动对象存储装置中的所述被识别的一个的控制器响应于所述多个数据块的数量和接收的数据要被存储到其中的所述多个主动对象存储装置中的一个或多个的数量重组所述多个数据块和所述一个或多个奇偶校验块。最后,所述方法包括下述步骤:所述多个主动对象存储装置中的所述被识别的一个的控制器将所述多个数据块和所述一个或多个奇偶校验块存储到所述多个主动对象存储装置中的一个或多个中。

根据本发明的至少一个实施例的另一方面,提供了一种用于在主动驱动存储系统中的数据分条、分配和重构的方法,所述主动驱动存储系统包括耦接到一个或多个应用服务器的多个主动对象存储装置。所述方法包括下述步骤:接收数据以存储在所述多个主动对象存储装置中的一个或多个中,并且在所述一个或多个应用服务器处将接收的数据分段成多个数据块。所述方法还包括下述步骤:所述一个或多个应用服务器响应于所述多个数据块生成一个或多个奇偶校验块;以及响应于所述多个数据块的数量和接收的数据要存储到其中的所述多个主动对象存储装置中的一个或多个的数量,重组所述多个数据块和所述一个或多个奇偶校验块。最后,所述方法包括:所述一个或多个应用服务器中的一个将所述多个数据块和所述一个或多个奇偶校验块存储到所述多个主动对象存储装置中的一个或多个中。

根据本公开的至少一个实施例的另一方面,提供了一种用于根据主动驱动存储系统中的主动对象存储装置的故障进行故障恢复的方法,所述主动驱动存储系统包括多个主动对象存储装置,所述多个主动对象存储装置中的每一个属于多个群组中的一个,并且所述多个主动对象存储装置中的每一个包括一个或多个存储装置和控制器。所述方法包括下述步骤:为发生故障的主动对象存储装置已经加入的多个群组中的每一个选择恢复列表构造器,以及每个恢复列表构造器为其群组构造需要被构造的数据列表。所述方法包括下述步骤:每个恢复列表构造器将用于其群组的需要被构造的数据列表发送到被指派为用于群组的恢复主机的替换主动对象存储装置,并且每个恢复主机调度群组的重构,其包括下述中的一个或多个:发送请求以存取数据和相应的奇偶校验数据、响应于存取的数据和相应的奇偶校验数据计算恢复的数据以及将恢复的数据写入到恢复主机。然后,所述方法包括下述步骤:恢复主机充当替换主动对象存储装置。

附图说明

附图用于示意各种实施例并说明根据本实施例的各种原理和优点,在附图中相同的参考标号指示前后单独的视图中相同或功能上相似的元件,并且附图和下面的详细描述一起并入在说明书中并且形成说明书的一部分。

图1示意了根据本实施例的用于主动存储阵列的机箱壳体的前右上透视图。

图2示意了根据本实施例的向各种应用服务器提供存储服务的主动存储阵列的框图。

图3示意了根据本实施例的图2的主动存储阵列的框图,描绘了在主动控制器板(acb)中实施的数据分条和分布。

图4示意了根据本实施例的图2的主动存储阵列的框图,描绘了在应用服务器中实施的数据分条和分布。

图5示意了根据本实施例的五位int码的tanner图结构。

图6示意了根据本实施例的主动存储装置的阵列中的包括acb和硬盘驱动器(hdd)的主动存储单元(asu)的图。

图7示意了根据本实施例的主动存储装置的阵列中的数据分条和分布过程的图。

图8示意了根据本实施例的主动存储阵列中的数据写入过程的流程图。

图9示意了根据本实施例的主动存储阵列中的部分数据写入和数据更新过程的流程图。

图10示意了根据本实施例的主动存储阵列中的数据读出过程的流程图。

图11示意了根据本实施例的主动存储阵列中的读出故障恢复过程的流程图。

图12示意了根据本实施例的主动存储阵列中的装置故障恢复过程的流程图。以及

图13示意了根据本实施例的描绘了主动存储阵列中的恢复列表构造和恢复主机的图。

技术人员将理解,出于清楚和简要示意了附图中的元件,并且不必按照比例来描绘附图中的元件。例如,图2、3、4、6、7和13的示意是根据本实施例的主动存储阵列的各种元件的关系和结构的表示。

具体实施方式

下面的详细描述本质上仅是示例性的并且不打算限制发明或发明的应用和使用。另外,没有打算受在发明的前面的背景中或下面的详细描述中提出的任何理论束缚。本实施例的意图是为了提出用于具有主动存储装置的阵列的存储系统的数据分条、奇偶校验计算、数据分配和重构的架构和处理。还提出了数据读出和写入以及更新程序、读出故障和节点/装置故障重构过程,其允许通过提出的方法和系统的高并行性极大地提高数据存取性能并且缩短读出故障重构时间。因此,根据本实施例,提出了用于数据分条、奇偶校验计算、分组和分配的过程;读出和写入并且更新数据的过程;在遭遇读出故障时重构数据的过程;以及在系统故障之后重构节点的过程。

参考图1,示出根据本实施例的机箱壳体102的前右上透视图100,机箱壳体102充当用于主动存储装置的阵列的存储装置外壳。单个主动存储单元(asu)104、106装配到机箱壳体102的主动混合隔区中并且由一个主动控制器板(acb)108和六个硬盘驱动器(hdd)110构成。本领域技术人员将会意识到,一个acb对六个hdd的比率仅是示意性的acb对hdd的其他比率也是可以的。另外,本领域技术人员将会意识到,主动控制器板可以是板(例如,图1中描绘的板108),其还可以是与机箱102或hdd110中的一个或多个整合或者与这些装置分离的子系统或其他部件,其充当用于控制hdd110的控制器。在机箱壳体102中有三十个隔区。隔区中的二十九个被配置为接收基本与asu106相同的asu,asu106由一个acb和六个hdd构成。这二十九个asu用于数据存储。最后一个隔区配置为接收由两个acb和两个hdd构成的特殊单元104。单元104用于管理和/或网关控制。另外,本领域技术人员将会意识到,机箱中隔区的数量属于设计选择并且此处所述的三十个隔区的选择仅是示例性的。因此,根据机箱壳体102中可用的空间,可以添加主动存储单元(asu)106。

根据本实施例,每个acb伴随有非易失性存储器(nvm),例如快闪存储器或sttmram存储器装置、芯片上系统(soc)存储装置、dram存储器装置或其他存储部件。nvm存储元数据和经常使用的数据。每个acb可以将多达六个hdd连接到asu中。每个hdd可以均为一个主动对象存储装置(activeobjectstoragedevice,aosd)。因此,在一个asu中,存在最多六个aosd,并且在一个机箱中,存在最多174个aosd。

系统的软件安装/嵌入在acb中。根据本实施例,软件的主要功能是管理存储,包括nvm和hdd中的存储,并且管理存储集群/分布式存储以使得能够扩展到超过一个机箱的整个系统能够自管理并且能够自愈。

机箱102可以安装在数据中心的机架中并且连接到各种应用服务器以提供存储服务。参考图2,描绘了主动存储阵列202的框图200。根据本实施例,主动存储阵列202经由高速以太网连接212向各种应用服务器(例如,块应用服务器204、文件应用服务器206、s3对象应用服务器208或键值应用服务器)提供存储服务。

如在上面讨论的,机箱中asu106的最大数量为二十九,asu106中的每一个(称为主动对象存储装置(aosd)214)均包括nvm216和多达六个hdd218。如在上面讨论的,机箱中的第三十个装置是特殊单元104,其由两个acb和两个hdd构成,并且控制主动存储阵列202中的管理220和网关222功能。当需要附加存储时,在不扰乱存储服务的情况下通过添加更多机箱可以动态地添加更多asu106,在添加附加asu106时,特殊单元104控制主动存储阵列202的管理220和网关222功能。

当存在装置故障时,纠删码用于保护数据。装置故障可能是asu106中的一个的acb108的故障或hdd的故障。纠删码(即,int码)设计成使得系统202可以承受多个故障,包括acb108故障和/或hdd110故障。

存在在主动存储系统202中实施纠删码的两种不同方法。第一,如果机箱内部的asu106的acb108执行数据分条和奇偶校验计算,则可以在acb108层级实施纠删码。以这种方式,通过主动存储系统202(特别是通过acb108)来完成数据分条和分布。另一种方式是在应用服务器204、206、208、210处实施纠删码。当在应用服务器层级实施纠删码时,在应用服务器204、206、208、210处完成数据分条和分布,应用服务器204、206、208、210需要从主动存储系统202存取数据。

这两种方法具有优点也有缺点。acb纠删码实施方法不需要在应用服务器204、206、208、210处的任何修改或软件安装。应用服务器纠删码实施方法需要在应用服务器204、206、208、210处的软件安装和/或修改,但是能够支持比acb纠删码实现方法更高的性能,因为应用服务器纠删码实施方式提供更高的数据并行性。

参考图3和图4,示意了两种纠删码实施方式并在对两种纠删码实施方式在当在两个不同位置实施数据分条和奇偶校验计算时能够如何存取数据方面进行了比较。图3示意了根据本实施例的主动存储阵列202的框图300,描绘了当在asu106的acb108中实现纠删码数据分条和分布时的主要步骤。图4示意了根据本实施例的主动存储阵列202的框图400,描绘了当在应用服务器204、206、208、210中实现纠删码数据分条和计算时的主要步骤。

参考图3,在acb纠删码数据分条和分布实施方式存储数据时,涉及两个主要步骤。首先,应用服务器(例如,应用服务器204)存取302纠删码群组的主aosd304进行读出和写入请求。然后,为了写入数据,主aosd304执行数据分条和奇偶校验计算,同时还将数据写入请求发送306到群组中相应的aosd214。为了读出数据,主aosd304首先计算要被读出的数据的数据位置,并且然后将数据读出请求发动到群组中的相应的aosd214以对它们检索。

参考图4,在应用服务器纠删码数据分条和分布实施方式中,仅需要一个步骤。当读出数据时,应用服务器(例如,数据中心中的虚拟机(vm)402)计算要被读出的数据的位置并且然后同时将读出请求发送404到相应的aosd214。为了写入数据,应用服务器402执行数据分条和计算,并且然后同时将数据写入请求发送404到相应的aosd214。

两种方法具有其优点和缺点并且可以单独地或共同地实施。

int码是设计用于系统的纠删码以使得该系统能够同时承受多个装置故障。根据本实施例,在主动存储系统中实施int码以提供高数据可靠性和可用性。根据本实施例,可以在主动存储系统中实施其他纠删码(例如,里德索罗门码);然而,与相应的里德索罗门码相比,int码能够缩短重构时间至少百分之五十。

根据本实施例,描述了一种用于使用int码时的数据分条和分配的方法。图5示意了根据本实施例的5位int码的tanner图结构500,其被设计用于主动存储系统以承受多达三个同时发生的故障。使用六个校验节点502,五位int码的最大码群组大小为三十二。三十二个装置中六个装置为存储奇偶校验数据的奇偶校验节点504,而三十二个装置中的其余二十六个装置为存储数据的数据节点506。利用这种系统设计,可以保护主动存储系统免受多达三个同时发生的故障之害。

图6示意了根据本实施例的存储外壳(例如,机箱102(图1))内的主动存储装置的阵列中的包括acb604和硬盘驱动器(hdd)606的二十九个主动存储单元(asu)602的图600。每个asu602具有一个acb604和连接到该acb604的六个hdd606,并且每个hdd606被配置为aosd214。因此,一个asu602中aosd214的最大数量为六,机箱中asu602的最大数量为二十九,并且一个机箱中aosd的最大数量为174。

为了实施上述五位int码,纠删码群组大小被选择为二十八。这与包括二十九个asu602的当前机箱设计是相容的。这样,在每个纠删码群组中,存在二十八个aosd214,并且这二十八个aosd214当中,其中的六个存储奇偶校验数据而其中的二十二个存储数据。

参考图7,图700示意了根据本实施例的主动存储装置的阵列中的数据分条和分配过程,并且描绘了如何在主动存储装置的阵列内执行纠删码计算、数据分条和分配。对于数据写入存在三个主要步骤:数据分段702、数据重组704和纠删码计算和数据分配706。

数据分段702将具有暂时存储在输入数据缓冲器708中的输入数据(in_data)大小(即,要被写入到存储装置的数据大小)的进入的写入数据请求分成多个较小但是相同大小的数据块(datachunk)710。数据块大小是可配置的(例如,数据块大小可以小如一千字节)。在图700中,in_data已经被分段为60个数据块。

在数据重组704过程中,多个分段的数据块710被重组成条712。每个条712的数据块710的数量由纠删码群组大小来确定。在图700中,每个条712包括二十二个数据块710和六个奇偶校验块714。这样,在图700中可以看到,存在针对具有in_data的大小的写入请求形成的三个条712。

在纠删码计算和数据分布706中,针对每个条712计算奇偶校验块714。在图700中,每个条712需要计算六个奇偶校验块714,每个具有块大小(chunk_size)的大小。该计算基于通过tanner图500设计的int码编码算法。将所有数据块710和奇偶校验块714分布到相应的aosd。如参考图6在上面描述的,在每个纠删码群组中存在二十八个aosd214,并且在二十八个aosd214(即,aosd1到aosd28)当中,其中的二十二个(aosd1到aosd22)存储数据而其中的六个(aosd23到aosd28)存储奇偶校验数据。因而,回头参考图700,三个数据块(数据块0、22、43)将被写入到aosd1,数据块1、23、44将被写入到aosd2,等等。

以这种方式,aosd1到aosd28是包含二十八个aosd的逻辑群组。群组中的每个逻辑装置映射到系统中对应的aosd。换言之,为了保存in_data,二十八个aosd必须要从系统中的174个aosd中进行选择以形成逻辑群组。根据本实施例,可以(如下所述)选择这二十八个aosd以便能够取得高数据可靠性。

在根据本实施例的主动驱动器系统中,主要存在两种类型的故障:一种是hdd故障而另一种是asu故障。asu故障可能归因于asu的acb的故障或连接的六个hdd的故障。当hdd发生故障时,存储在hdd中的数据将不再可存取。当一个asu发生故障时,存储在asu中的六个hdd中的数据不再可存取。

根据本实施例,当承受大故障时,将规则应用到主动存储系统以保护系统。大故障取决于acb与hdd的比率。在对于一个acb存在六个hdd的情况下,大故障被定义为:任何三个同时发生的asu故障、任何三个同时发生的hdd故障、任何一个asu故障同时发生有任何两个hdd故障或任何两个asu故障同时发生有任何一个hdd故障。首先,连接到一个acb的所有hdd不应当在相同的纠删码群组中,它们应当加入到多于一个群组。例如,在二十九个asu并且每个asu包括一个acb和六个hdd的情况下,规则是在一个asu内部连接到一个acb的所有六个hdd必须加入不同的码群组。这样,这二十八个aosd必须来自系统中的二十八个不同的asu(即,每个asu仅能够选择一个hdd/aosd处于码群组中)。例如,参考图6中的图600,一个可能的纠删码群组可以通过选择连接到从acb1到acb28的二十八个acb604的每一个的所有hdd610来形成。

参考图8,流程图800描绘了根据本实施例的主动存储阵列中的数据写入过程。对于在系统的acb中实施数据分条和计算的实施方式的情况,需要存取数据的应用服务器204、206、208、210首先必须计算或选择aosd214的群组、在群组中识别一个主要aosd并且然后连接到主要aosd以写入数据。

主要aosd检查802数据写入是否针对新数据写入(即,存储的数据不需要被产生)。如果要写入802新数据,则执行804图700(图7)中示意的数据分段、重组、纠删码计算和数据分配。还需要基于上面提及的规则来选择具有二十八个aosd的码群组。这一旦完成,主要aosd就同时地将数据写入发送到相应的aosd以执行全条写入806。一旦完成写入806,主要aosd就保持对象大小信息;其还可以将对象大小信息808发送到aosd,aosd持有数据的奇偶校验以保持额外的副本。通过经由现有系统中的setxattr功能将一个属性、对象大小添加到xattr的现有数据结构来执行该步骤808。

当被写入的数据不是新数据802而是用于更新或修改的数据时,对象大小可以通过主要aosd从相应的奇偶校验块810读出,并且执行812对象数据的数据分段、重组、纠删码计算和数据分布。如果主要aosd已经具有相应的对象大小信息,则主要aosd可以跳过读出对象大小的步骤。借助对象大小810,并且基于数据分布和纠删码计算812,可以识别条号和aosd。如果需要更新一整条,则应用服务器将执行全写入814。当需要更新条的仅一部分时,主要aosd可以执行部分写入814。对于全写入,主要aosd将数据和奇偶校验发送到群组中的所有相应的aosd以写入816。对于部分写入,图9中描绘了程序。

对于在应用服务器中实施数据分条和计算的情况,需要执行数据分条和计算的应用服务器204、206、208、210执行流程图800的对象写入。这样,应用服务器检查数据读出是否是针对新数据写入802。如果其针对新数据写入802,则执行数据分段、重组、纠删码计算和数据分布,并且基于上述规则选择具有二十八个aosd的码群组。然后,应用服务器同时地将数据写入指令发送到相应的aosd以执行全写入806。一旦写入完成806,应用服务器就通过经由现有系统中的setxattr功能将一个属性、对象大小添加到xattr的现有数据结构来将对象大小信息发送到aosd,aosd持有数据的奇偶校验以用于其中的存储808。

当应用服务器针对不是新数据的数据而是用于更新或修改的数据执行对象写入时802,应用服务器首先发送请求810以从持有奇偶校验的aosd通过getxattr读出目标大小。借助对象大小并且基于数据分布和纠删码计算812,可以识别条号和aosd。当需要更新一整条时,则应用服务器执行全写入814。当需要更新条的仅一部分时,应用服务器执行814部分写入(如图9所讨论)。对于全写入814,应用服务器将数据和奇偶校验发送到群组中的所有相应的aosd以写入816。

图9示意了根据本实施例的主动存储阵列中的部分数据写入和数据更新过程的流程图900。当在系统的acb中实施数据分条和计算时,主要aosd发送读出请求以读出要被更新的数据块和相应的奇偶校验块902。然后基于数据和读出的奇偶校验并且还基于要写入的新数据来计算904新奇偶校验数据。一旦计算904出新奇偶校验,主要aosd会同时地将新数据和奇偶校验发送到相应的aosd。

当在应用服务器中实施数据分条和计算时,应用服务器发送读出请求以读出要被更新的数据块和相应的奇偶校验块902。然后基于数据和读出的奇偶校验并且还基于要写入的新数据来计算904新奇偶校验数据。一旦应用服务器计算出新奇偶校验数据904,应用服务器会同时地将新数据和新奇偶校验数据发送到相应的aosd906。

参考图10,描绘了流程图1000,其用于根据本实施例的主动存储阵列中的数据读出过程。当在系统的acb中实施数据分条和计算时,如果主要aosd具有要读出的对象的大小的信息,则其不需要从其他aosd读出该信息。否则,主要aosd计算1002存储数据块的aosd的位置,并且将块读出请求发送1004到aosd以将数据块读出。当存在要读出的多个块时,主要aosd同时地向所有相应的osd发出读出请求1004。如果成功地完成读出1006,则主要aosd在将所有数据块发回到请求方之前将所有数据块合并在一起1008。如果没有成功地完成读出1006,则主要aosd将针对每个丢失的块发起读出故障恢复过程1010,如图11所述。

当在应用服务器中实施数据分条和计算时,为了执行数据读出,应用服务器首先必须通过调用getxattr功能从存储信息的aosd(即,保持奇偶校验块的aosd)读出数据的大小。一旦完成该功能,应用服务器就可以识别存储数据块的aosd的位置1002并且发出读出请求1004以将数据块读出。当存在要读出的多个块时,应用服务器同时地向所有相应的osd发出读出请求1004。如果成功地读出1006数据块,则应用服务器可以在将所有数据块发回到请求方之前将所有数据块合并在一起1008。如果没有成功地完成读出1006,则应用服务器将根据图11针对每个丢失的块发起读出故障恢复过程1010。

图11示意了根据本实施例的主动存储阵列中的读出故障恢复过程的流程图1100。当在系统的acb中实施数据分条和计算时,当遭遇读出故障时,主要aosd将发起读出故障恢复过程1102。基于纠删码和数据分布算法,主要aosd将读出请求发出到相应的aosd以读出需要被用于恢复的数据块1104。一旦接收到数据,主要aosd将计算并恢复发生故障的数据1106并且将其发回到请求方。同时,主要aosd还能够将数据写入到其读出是最初故障的aosd或指定的任何其他aosd1108。

当在应用服务器中实施数据分条和计算时,一旦应用服务器遭遇读出故障,则其将发起读出故障恢复过程1102。基于纠删码和数据分布算法,应用服务器将读出请求发出到相应的aosd以读出恢复所需的数据块1104。一旦接收到数据1104,应用服务器将计算并恢复发生故障的数据1106并且将其发回到请求方。另外,应用服务器将数据写入到其读出是最初故障的aosd或指定的任何其他aosd1108。

图12示意了根据本实施例的主动存储阵列中的aosd故障恢复过程的流程图1200。当在系统的acb中实施数据分条和计算时,可以通过系统中的管理来识别aosd故障,并且管理可以发起恢复过程。主要aosd被选择作为用于其群组的恢复列表构造器1202,并且如果主要aosd不具有群组中的需要被重构的对象的列表,则主要aosd负责构建该列表1204。这可以通过扫视群组中所有可用的aosd来完成。一旦列表被完成1204,主要aosd将把列表发送到相应的指派的替换aosd1206。指派的替换aosd将是负责重构调度、计算和数据写入1208的恢复主机。

当在应用服务器中实施数据分条和计算时,由于一个aosd可以加入多个纠删码群组,并且当应用服务器实施数据分条和计算时不存在主要aosd,所以对于每个群组选择/指派恢复列表构造器1202。每个恢复列表构造器负责为其自己的群组构造需要被重构的对象/数据列表1204。一旦列表被完成1204,恢复列表构造器会将列表发送到指派的相应的替换aosd1206,该替换aosd将是负责重构调度、计算和数据写入的恢复主机1208。

当asu的故障是多重故障时,aosd重构过程1200遵循单个aosd故障恢复过程以逐个地重构每个aosd。

图13示意了根据本实施例的描绘了主动存储阵列中的码群组中的恢复列表构造和恢复主机的图1300。当在应用服务器中实施数据分条和计算时,在群组中不存在构建用于重构的恢复列表的主要aosd。在群组中存在七个aosd,它们是aosdl、aosdb、aosdz、aosdp、aosds、aosdn和aosdf。一旦aosdp发生故障,任何可用的aosd都可以是恢复列表构造器,其将通过扫视群组中的所有数据来构造需要被重构的数据的列表。当在系统的acb中实施数据分条和计算时,该群组的主要aosd将是负责构造列表的恢复列表构造器。

一旦列表被构造,恢复列表构造器会将列表发送到aosdw,其是被系统管理指派的替换aosd。aosdw将是该群组的恢复主机。基于接收到的列表,aosdw将负责调度重构过程、计算数据和将数据写入到其存储装置。以这种方式,减少了在重构过程中需要在网络上传输的数据,提供了时间和工作。

因此,可以看到本实施例能够提供一种用于具有主动存储装置的阵列的存储系统内的数据分条、奇偶校验计算、数据分配和数据重构的方法和设备,其提供提高的数据存取性能和缩短的读出故障重构时间。本发明适用于数据分条和分布实施于asu的acb中的纠删码以及数据分条和计算实施于应用服务器中的纠删码。

尽管已经在本发明的前述详细描述中呈现了示例性实施例,但是应当可以理解存在大量的变型。还应当可以理解,示例性实施例仅为示例,而不以任何方式打算限制发明的范围、适用性、操作或配置。而是,前面的详细描述将给本领域技术人员提供用于实施本发明的示例性实施例的方便的路线路,可以理解,可以在示例性实施例中描述的元件和操作的方法的功能和布置方面进行各种改变而不脱离所附权利要求中阐述的本发明的范围。

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