分布式独立冗余磁盘阵列存储方法及分布式集群存储系统技术方案

技术编号:8452898 阅读:425 留言:0更新日期:2013-03-21 14:04
本申请涉及一种分布式独立冗余磁盘阵列Raid存储方法,该方法包括:将分布式集群系统中服务器的存储介质划分为数据块;选择Raid级别,且将所述数据块进行分组,以及根据Raid级别选择一个或多个所述数据块作为所述组对应的校验数据块;记录数据块划分信息,该数据块划分信息包括所述Raid级别,分组信息和所述组对应的校验数据块的信息,以及所述数据块与所述服务器的对应信息;根据所述数据块划分信息,对分组后的所述数据块和校验数据块进行写入操作。本申请还涉及一种分布式集群存储系统。本申请把不同的数据块进行冗余校验计算,可以在相同安全保证的前提下大大降低对存储介质的消耗,从而大大节约成本。

【技术实现步骤摘要】

本申请涉及存储领域,尤其涉及一种分布式独立冗余磁盘阵列存储方法及分布式集群存储系统
技术介绍
独立冗余磁盘阵列(RedundantArray of Independent Disk,简称 Raid)技术在存储领域已经有了广泛的应用。Raid技术是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份技术。根据磁盘陈列的不同组合方式,可以将Raid分为不同的级别。 磁盘阵列中针对不同的应用使用的不同技术,称为Raid level (Raid级别)而每一 level都代表着不同技术。根据用户的操作环境及应用来选择Raid级别。一般的Raid实现是并行的将数据写入多块磁盘介质,同时计算校验信息,写入校验磁盘。在一组磁盘中允许一定数量的存储介质损坏而不会导致数据丢失,但是Raid —般用于单机环境。下面介绍下Raid5和Raid6技术中如何计算校验信息,Raid5的校验算法是异或算法,通过计算异或(XOR)的方式来实现容错,也就是说,对于接收的数据,进行分块,并计算校验后,分别存储于不同的磁盘中。如将接收的数据分成数据块0、1和2,检验信息为PO = 0Θ1 @2,其中,@为异或运算。当其中的一个数据块出现问题时,通过计算异或,可得到对应的数据。例如,假设数据块O出现故障,此时可采用如下方式计算数据块O中的数据数据块O=PO 1 2 = 0 1 2 1 2=0 1 1 2 2Raid6是采用双重校验的方法计算校验信息。第一种校验,采用异或(XOR)方法,来计算P ;另一种则为采用李德所罗门编码方式,来计算校验Q。从而使得即使RAID6损坏两个存储设备时,也能够完成正常的操作。例如,假设有4个数据块,即数据块0、1、2、3,分别通过以下两式计算P和Q :po = o l 2 3QO = (KOOO) θ(Κ1Θ1) θ(Κ2Θ2) θ(Κ3Θ3)其中,Θ为伽罗瓦域(Galois Field)计算操作,KO K3是系数。如果丢失一个数据盘和P盘,那么就需要从Q和其它数据盘进行恢复。丢失两个数据盘,则从Q、P和其他数据盘恢复。现在的分布式集群存储系统,就是将数据分散存储在多台独立的存储设备上。存储设备一般都采用廉价PC和廉价存储介质。这使得存储介质损坏成为经常发生的事情。为了保证数据不丢失,目前的分布式集群存储系统采用将一份数据写多份冗余备份的方式。一旦有存储介质损坏则从冗余备份中恢复。这样的解决方案随着冗余备份数的增加,消耗的存储资源也成倍增加,从而增加了存储成本。
技术实现思路
本申请的目的是提供一种分布式独立冗余磁盘阵列存储方法及分布式集群存储系统,利用Raid技术的校验思想以解决现有技术中分布式存储系统的存储资源庞大,以及带来的高存储成本。为实现上述目的,本申请提供了一种分布式Raid存储方法。该方法包括将分布式集群系统中多个服务器的存储介质划分为数据块;将所述数据块进行分组,以及根据Raid级别选择一个或多个所述数据块作为所述组对应的校验数据块;记录数据块划分信息,所述数据块划分信息包括所述Raid级别、分组信息和所述组与校验数据块的对应信息,以及所述数据块与所述服务器的对应信息;根据所述数据块划分信息,对分组后的所述数据块和校验数据块进行写入操作。其中,所述组中的所述数据块和所述校验数据块是按照数据安全性要求分布在所述分布式集群系统中的服务器中。所述根据所述数据块划分信息,对分组后的所述数据块和校验数据块进行写入操作具体为中心节点接收到客户端的数据写入请求后,选择待写入数据的一个数据块,并将所述数据块相关的所述数据块划分信息通知客户端;所述待写入数据的一个数据块对应的服务器,根据客户端发起的写入数据的请求和客户端附加的所述数据块划分信息中的Raid级别所对应的校验算法,计算校验信息,并将待写入数据写入对应数据块中,并将所述校验信息附加所述数据块划分信息,传送给所述组对应的校验数据块所在的服务器;所述组对应的校验数据块所在的服务器将所述校验信息根据所述数据块划分信息中的所述Raid级别所对应的校验算法进行计算,将计算结果写入所述校验数据块。进一步地,所述的分布式独立冗余磁盘阵列存储方法还包括所述数据块对应的服务器和所述校验数据块对应的服务器向所述分布式集群系统的中心节点上报写入完成信肩、O进一步地,所述根据所述数据块划分信息,对分组后的所述数据块和校验数据块进行写入操作之后还包括待读取的一个数据块所对应的服务器根据发起的读取数据的请求,读取待读取的一个数据块上的数据。进一步地,所述根据所述数据块划分信息,对分组后的所述数据块和校验数据块进行写入操作之后还包括当所述数据块中的数据块损坏时,按照所述Raid级别所对应的校验算法,将所述组中剩余的所述数据块和所述校验数据块中的数据进行计算,来恢复所述损坏的数据块的数据。进一步地,所述根据所述数据块划分信息,对分组后的所述数据块和校验数据块进行写入操作之后还包括当待读取的所述数据块损坏时,将从所述组中剩余的所述数据块中和所述校验数据块中按照偏移量和字节长度分别读取出的数据,按照所述Raid级别所对应的校验算法进行计算,将所述计算结果作为所述损坏的待读取的所述数据块中的数据。所述根据客户端发起的写入数据的请求和客户端附加的所述数据块划分信息中的Raid级别所对应的校验算法,计算校验信息,并将待写入数据写入对应数据块中具体包括所述Raid级别为Raid5,按照所述Raid5对应的校验算法,所述待写入的一个数据块对应的服务器根据所述写入数据的请求中的偏移量和字节长度,从所述待写入的一个数据块中读出所述字节长度个字节;将读出的所述字节长度个字节与待写入数据进行按位异或,获得异或结果作为校验信息;将所述待写入数据写入所述一个数据块中。所述组对应的校验数据块所在的服务器将所述校验信息根据所述Raid级别所对应的校验算法计算,将计算结果写到所述校验数据块上具体包括所述校验数据块对应的服务器接收到所述校验信息后,根据所述偏移量和字节长度,从所述校验数据块中读出所述字节长度个字节;将读出的所述校验数据块中的所述字节长度个字节与接收到的所述校验信息按照所述Raid5对应的校验算法进行按位异或计算,将计算的异或的结果写入所述偏移量的存储位置处。本申请还提供了一种分布式集群存储系统,该系统包括中心节点,包括划分单元,用于将分布式集群系统中服务器的存储介质划分为数据块;选择分组单元,用于选择Raid级别,且将所述数据块进行分组,以及根据Raid级别选择一个或多个所述数据块作为所述组对应的校验数据块;记录单元,用于将所述Raid级别,分组信息和所述组对应的校验数据块的信息,以及与所述服务器的对应信息记录于数据块划分信息;以及划分有多个所述数据块的所述服务器,用于根据所述数据块划分信息,对分组后的所述数据块和校验数据块进行写入操作。本申请分布式Raid存储方法及分布式集群存储系统由于采用Raid技术的校验思想,把不同的数据块进行冗余校验计算,可以在相同安全保证的前提下大大降低对存储介质的消耗,从而大大节约存储成本。附图说明图I为本申请分布式Raid存储方法的流程图;图2为本申请分布式集群系统示意图。具体实施本文档来自技高网
...

【技术保护点】
一种分布式独立冗余磁盘阵列Raid存储方法,其特征在于,包括:将分布式集群系统中多个服务器的存储介质划分为数据块;将所述数据块进行分组,以及根据Raid级别选择一个或多个所述数据块作为所述组对应的校验数据块;记录数据块划分信息,所述数据块划分信息包括所述Raid级别、分组信息和所述组与校验数据块的对应信息,以及所述数据块与所述服务器的对应信息;根据所述数据块划分信息,对分组后的所述数据块和校验数据块进行写入操作。

【技术特征摘要】

【专利技术属性】
技术研发人员:褚大鹏
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:

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

1