CN102520890B - 基于gpu的rs-draid系统及存储设备数据控制方法 - Google Patents
基于gpu的rs-draid系统及存储设备数据控制方法 Download PDFInfo
- Publication number
- CN102520890B CN102520890B CN201110456533.7A CN201110456533A CN102520890B CN 102520890 B CN102520890 B CN 102520890B CN 201110456533 A CN201110456533 A CN 201110456533A CN 102520890 B CN102520890 B CN 102520890B
- Authority
- CN
- China
- Prior art keywords
- check code
- data
- application layer
- server
- gpu
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提出一种基于GPU的RS-DRAID系统及存储设备数据控制方法,包括:多个设备映射机、多个服务器,用于接收写IO请求,将写IO请求划分为多个逻辑片并进行同步传输;多个存储设备,用于控制向多个存储设备中写入、对失效的存储设备进行恢复,每个服务器包括内存单元;校验码计算单元用于根据来自设备映射机的逻辑片并行计算校验码,且当存储设备失效时重新计算校验码并将重新计算的校验码写入内存单元中以恢复失效的存储设备,校验码计算单元为图形处理器GPU;中央处理器CPU用于控制向存储设备中写入数据。本发明在服务器集群中实现RS-DRAID算法,由GPU实现并行计算校验码的过程,可以提高存储设备的利用率。
Description
技术领域
本发明涉及RAID(Redundant Array of Independent Disk,独立磁盘冗余阵列)技术领域,特别涉及一种基于GPU的RS-DRAID系统以及基于GPU的存储设备数据控制方法。
背景技术
RS-DRAID算法是一种将RS纠删码(Reed-Solomon erasure codes)算法应用于分布式RAID系统的算法。Reed-Solomon erasure codes算法最初用于在不可靠的通道上进行传输时(当数据被删除时)进行前向纠错(Forward error correction)。此外,RS-DRAID算法也可以用于RAID6中。其中,RADI6技术是在RAID 5基础上,为了进一步加强数据保护而设计的一种RAID方式,实际上是一种扩展RAID 5等级。RADI6与RAID 5的不同之处于除了每个硬盘上都有同级数据XOR校验区外,还有一个针对每个数据块的XOR校验区。
RS-DRAID算法的核心是采用数据和校验码的结构。其中,D1,D2,......,Dn为数据,C1,C2,......,Cm为冗余码。其中,冗余码C1,C2,......,Cm是将数据D1,D2,......,Dn通过冗余码算法F(D1,D2,......,Dn)进行计算得到的。D1,D2,......Dn和C1,C2,......,Cm构成数据,当硬盘的数据失效时,通过任意n个数据块(D1,D2,......,Dn)即可恢复。
RS-DRAID算法可以应用在多个硬盘同时失效的情况,因为在大型分布式RAID系统中硬盘个数动辄上千块,组件失效被视为常态。但是传统的RS-DRAID系统中校验码的计算均采用服务器中的CPU(Central Processing Unit,中央处理器)进行。而在RS-DRAID算法中进行编码和解码均会耗费相当多的CPU资源。
传统的服务器集群现多采用以下两种方式来实现数据的冗余保护:
(1)以同一份数据存储多份(通常为3份)镜像的方式实现数据冗余保护,但这种方式的硬盘利用率仅为n/3,其中n为硬盘数量。例如:谷歌文件系统(Google FileSystem)。
这种方式的缺陷是:由于CPU占用资源过大,导致硬盘利用率很低。
(2)每个服务器上通过RAID技术来实现数据的冗余,大多数采用RAID5计算。其中,RAID 5为一种存储性能、数据安全和存储成本兼顾的存储解决方案,可以理解为是RAID 0和RAID 1的折中方案。RAID 5可以为系统提供数据安全保障,但保障程度要比Mirror低而磁盘空间利用率要比Mirror高。其中,硬盘利用率可以提高为(n-1)/n,其中,n为硬盘数量,1为校验盘的数量。但是仅能接受单个硬盘失效,即当单个硬盘失效时,RAID系统仍可以工作,但是读写性能急剧下降;当两个或两个以上硬盘失效时,RAID系统不能正常工作。
这种方式的缺陷是:无法支持多个硬盘同时失效,并且在单个硬盘失效时读写性能急剧下降且重建校验码的时间过长。
发明内容
本发明的目的旨在至少解决上述技术缺陷。
为此,本发明的第一个目的在于提供一种基于GPU的RS-DRAID系统,该系统可以在服务器集群中实现RS-DRAID算法的方式中,利用GPU代替CPU进行校验码的计算等过程,从而降低CPU的资源利用率,进而提高存储设备的利用率。本发明的第二个目的在于提供一种基于GPU的存储设备数据控制方法。
为达到上述目的,本发明第一方面的实施例提出一种基于GPU的RS-DRAID系统,包括:多个设备映射机、多个服务器和多个存储设备,其中,所述多个服务器和所述多个存储设备一一对应,所述多个设备映射机用于接收来自应用层设备的写IO请求,其中,每个所述设备映射机用于将所述写IO请求划分为多个逻辑片并将所述多个逻辑片发送给对应服务器,以及将所述多个逻辑片在多个所述服务器中进行同步传输以向多个所述服务器写入IO请求;所述多个服务器用于处理所述IO请求,并控制应用层设备向多个所述存储设备中写入数据以及对失效的存储设备进行恢复,其中,所述多个服务器包括:数据服务器,用于存储数据;校验服务器,用于存储校验码;元数据服务器,用于存储元数据;以及备份元数据服务器,用于对所述元数据进行备份存储;每个所述服务器包括:内存单元,用于存储数据;校验码计算单元,用于根据来自所述设备映射机的逻辑片并行计算校验码,并将所述校验码写回至所述内存单元中,且当所述存储设备失效时重新计算校验码并将重新计算的校验码写入所述内存单元中以恢复失效的存储设备,其中,所述校验码计算单元为图形处理器;和中央处理器,用于根据所述设备映射机写入的IO请求控制向所述存储设备中写入数据。
根据本发明实施例的基于GPU的RS-DRAID系统,在服务器集群中实现RS-DRAID算法,由GPU实现并行计算校验码的过程,不仅可以提高计算速度,而且降低CPU的资源利用率,进而提高存储设备的利用率以及提升了RS-DRAID系统的性能。
本发明的第二方面的实施例提出一种基于GPU的存储设备数据控制方法,包括如下步骤:应用层设备向多个设备映射机发送写IO请求;所述多个设备映射机在接收到所述写IO请求后,将所述写IO请求划分为多个逻辑片并将所述多个逻辑片发送给对应的所述服务器,并将所述逻辑片在多个服务器中进行同步传输;所述多个服务器处理所述写IO请求,并控制所述应用层设备向存储设备中写入数据以及对失效的存储设备进行恢复,其中,所述多个服务器中的校验服务器的图像处理单元根据所述多个逻辑片并行计算校验码,并将所述校验码写回至校验服务器中以写入IO请求,且当存储设备失效时重新计算校验码并将重新计算的校验码写入所述校验服务器中以恢复失效的存储设备。
根据本发明实施例的基于GPU的存储设备数据控制方法,在服务器集群中实现RS-DRAID算法,由GPU实现并行计算校验码的过程,不仅可以提高计算速度,而且降低CPU的资源利用率,进而提高存储设备的利用率以及提升了RS-DRAID系统的性能。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为根据本发明实施例的基于GPU的RS-DRAID系统的结构图;
图2为根据本发明实施例的基于GPU的RS-DRAID系统的系统架构图;
图3为根据本发明实施例的多个服务器中数据服务器和校验服务器的示意图;和
图4为根据本发明实施例的基于GPU的存储设备数据控制方法的流程图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
参照下面的描述和附图,将清楚本发明的实施例的这些和其他方面。在这些描述和附图中,具体公开了本发明的实施例中的一些特定实施方式,来表示实施本发明的实施例的原理的一些方式,但是应当理解,本发明的实施例的范围不受此限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
本发明可以在服务器集群中实现RS-DRAID算法的方式中,利用GPU(GraphicProcessing Unit,图形处理器)代替CPU进行校验码的计算等过程,利用GPU多线程和浮点运算的特点,不仅可以提高计算速度,而且可以降低CPU的资源利用率,进而提高存储设备的利用率。
下面参考图1和图2描述根据本发明实施例的基于GPU的RS-DRAID系统100。
图1为根据本发明实施例的基于GPU的RS-DRAID系统的结构图。如图1所示,本发明实施例提供的基于GPU的RS-DRAID系统100,包括多个设备映射机100、多个服务器200和多个存储设备300,其中,设备映射机100可以为DM(Device mapper,设备映射)层设备。多个服务器200和多个存储设备300是一一对应的。在本发明的一个示例中,存储设备300可以为硬盘。多个设备映射机100用于接收来自应用层设备的写IO请求,将预设的IO请求划分为多个逻辑片(chunk)并将多个逻辑片在对应的服务器200中进行同步传输以向对应的服务器200写入IO请求。多个服务器200用于处理IO请求并控制应用层设备向多个存储设备300中写入数据以及对失效的存储设备300进行恢复,其中,多个服务器200可以分为:数据服务器、校验服务器、元数据服务器和备份元数据服务器。其中,数据服务器用于存储数据。校验服务器用于存储校验码。元数据服务器用于存储元数据。备份元数据服务器用于对元数据进行备份存储。其中,数据服务器、校验服务器、元数据服务器和备份元数据服务器的结构相同。每个服务器包括:内存单元210,用于存储数据;校验码计算单元220,用于根据来自设备映射机100的逻辑片计算校验码,并将校验码写回至内存单元210中,且当存储设备300失效时重新计算校验码并将重新计算的校验码写入内存单元210中以恢复失效的存储设备300。其中,校验码计算单元220为GPU;CPU230用于根据设备映射机写入的IO请求控制向存储设备300中写入数据。
根据本发明实施例的基于GPU的RS-DRAID系统,在服务器集群中实现RS-DRAID算法,由GPU实现并行计算校验码的过程,不仅可以提高计算速度,而且降低CPU的资源利用率,进而提高存储设备的利用率以及提升了RS-DRAID系统的性能。
多个服务器300中的校验服务器和数据服务器的数量均可以为一个或多个(可以由用户自行设置)。其中,校验服务器用于存储校验码数据;数据服务器用于存储基础数据。多个服务器300中的一台服务器可以作为MDS(Meta Data Server,元数据服务器),另一台服务器可以作为Backup MDS(Backup Meta Data Server,备份元数据服务器)。其中,元数据为用于定义基础数据和校验码数据的数据内容。元数据服务器和备份元数据服务器的数量均为一台。
多个服务器中除元数据服务器和备份元数据服务器外的其他服务器轮流作为校验服务器或数据服务器。例如:设有s个服务器,分别为A1、A2、A3、A4...As。当A1和A2作为校验服务器时,其他服务器作为数据服务器、元数据服务器和备份元数据服务器。该轮任务执行完成后,由A3和A4作为校验服务器,其他服务器作为数据服务器、元数据服务器和备份元数据服务器,以此类推。
可以理解的是,由于每个服务器均会作为数据服务器或校验服务器,所以数据服务器和校验服务器的结构是相同的。图2为根据本发明实施例的基于GPU的RS-DRAID系统的系统架构图。如图2所示,应用层设备400在需要向存储设备中写入数据时,向设备映射机100发送写IO请求。写IO请求用于请求向存储设备300中写入数据。设备映射机100在接收到上述写IO请求后,将该写IO请求分片以划分为多个逻辑片(chunk),然后将上述多个逻辑片通过RDMA(Read Directly to memory,直接内存读取)技术在多个服务器200的内存单元210中进行直接同步,然后将多个逻辑片发送给对应的服务器200的校验码计算单元220。具体地,设备映射机100根据写入数据的大小和服务器的数量,将多个逻辑片发送给对应的服务器200。在本发明的一个实施中,校验码计算单元220可以为图形处理单元GPU。各个GPU并行计算对应的逻辑片的校验码,并将计算到的校验码写回给当前校验服务器的内存单元210中。在本发明的一个实施中,各个GPU220采用Reed-Solomon算法计算对应的逻辑片的校验码。并且,各个GPU220可以采用nvidia的CUDA开发平台实现并行计算。利用CUDA平台可简单的研发并行计算架构,更好的设计和应用将GPU应用在实际环境中。
在本发明的一个实施例中,内存单元210可以为高速缓冲存储器Cache,GPU220和CPU230可以通过Cache同步数据并进行通信。不同的服务器200的内存单元210之间通过主机通道适配器HCA卡进行适配。其中,每个内存单元210均与一个HCA卡600相连,相邻两个HCA卡之间进行通信。
GPU的内存访问速度超过CPU,通过RDMA在多个服务器之间同步内存比直接使用CPU读写内存后在多个服务器间进行同步的效率更高。
在将计算到的校验码写回给当前校验服务器的同时,对各个服务器200进行同步。
在本发明的一个实施例中,校验码计算单元将220在将计算得到校验码写回至校验服务器的内存单元210后,元数据服务器更新校验服务器中的元数据服务器的位图(bitmap)索引图。其中,位图索引图包括脏数据索引。并且各个服务器200的CPU230向对应的存储设备300中发送写入指令,从而应用层设备400可以向存储设备300中写入相应的数据。CPU230将对应的脏数据索引中的写入的存储设备的标识置为1,表明写入的数据为脏数据。其中,脏数据为缓存到内存单元210中的数据块已经修改了,但是还没写入到磁盘(数据文件)中。
在本发明的一个实施例中,设备映射机100还用于接收来自应用层设备400的读IO请求,并解析该读IO请求并获取该应用层设备400的地址。其中,应用层设备400的地址包括该应用层设备的起始位置和偏移量。设备映射机100将读IO请求和应用层设备的地址发送给CPU230。CPU230根据读IO请求从对应的存储设备300中获取与该读IO请求对应的数据,然后根据应用层设备的地址将数据发送至对应的应用层设备400。
当有一个或多个存储设备失效时,需要由校验码计算单元将220重新构建校验码,进入rebuild状态。首先访问元数据服务器,根据元数据服务器中的位图索引图获得需要重新构建的脏数据索引。然后由各个服务器的GPU220重新计算计算校验码,再通过RDMA技术对各个服务器进行同步,同步后写入校验服务器。此时将校验码写入到失效的存储设备以恢复该存储设备。此时,将rebuild成功的标识置为1。
如果在校验码计算单元将220重新计算校验码的过程中,接收到应用层设备400发送的读IO请求时,首先判断该区域是否重建成功,即重新计算校验码的过程是否完成。如果新计算校验码的过程已经完成,则应用层设备400可以直接读出存储设备中的内容。如果重新计算校验码的过程未完成,则校验码计算单元将220先中止重新计算校验码的过程,由CPU230从存储设备300中获取与读IO请求对应的数据,并将该数据发送至应用层设备300。
如果在校验码计算单元将220重新计算校验码的过程中,接收到应用层设备400发送的写IO请求时,则由设备映射机100对该请求进行处理,处理流程在上述内容已做详细描述。此时,将rebuild成功的标识置为1。
图3为根据本发明实施例的多个服务器中数据服务器和校验服务器的示意图。下面参考图3以两个数据服务器D1和D2、两个校验服务器C1和C2,、一个元数据服务器MDS和一个备份元数据服务器BMDS为例对基于GPU的RS-DRAID系统100的工作过程进行描述。
D1中存储有数据d1,1、d1,2、d1,3...d1,l,D2中存储有数据d2,1、d2,2、d2,3...d2,l,C1中存储有数据c1,1、c1,2、c1,3...c1,l,C2中存储有数据c2,1、c2,2、c2,3...c2,l,其中,
c1,1=F1(d1,1,d2,1);c1,2=F1(d1,2,d2,2);c1,3=F1(d1,3,d2,3).....c1,l=F1(d1,l,d2,l),
c2,1=F2(d1,1,d2,1);c2,2=F2(d1,2,d2,2);c2,3=F2(d1,3,d2,3).....c2,l=F2(d1,l,d2,l),
其中,l为存储设备300的硬盘行数。
首先创建RAIDEC,n=2,m=2,其中,n为数据服务器的个数,m为校验值的个数,进行系统初始化。然后构建RAID超级块信息。其中,RAID超级块信息包括RAID名称、类型,以及包含的成员的信息,例如ip地址等。将上述RAID超级块信息写入到构建阵列的第一块硬盘的前512字节中。
然后按照逻辑片的大小构建block划分区域,其中逻辑片的大小可以为64KB。
设备映射机100在接收到上层的应用层设备的写IO请求时,将该写IO请求划分为多个逻辑片,并通过RDMA技术将多个逻辑片在多个服务器200的内存单元210中直接同步。设备映射机100将多个逻辑片传输到各个GPU,各个GPU并行计算每个逻辑片的m1和m2的校验值。然后将每个逻辑片的m1和m2的校验值写回给内存单元210。由各个服务器的CPU230向硬盘发送写入指令,从而应用层设备400可以向硬盘中写入数据。具体地,应用层设备400不能直接操作硬盘驱动器500,需要通过设备映射机100向硬盘驱动器500发送指令,进而向硬盘中写入数据。同时,各个CPU230更新元数据服务器的位图索引图。
当有一个或多个存储设备失效时,首先访问元数据服务器,根据元数据服务器中的位图索引图获得需要重新构建的脏数据索引。然后由各个服务器的GPU220重新计算计算m1和m2的校验码,再通过RDMA技术对各个服务器进行同步,同步后写入m1和m2的设备。此时写入到失效的存储设备以恢复该存储设备。此时,将rebuild成功的标识置为1。
根据本发明实施例的基于GPU的RS-DRAID系统100具有以下优点:
(1)提升硬盘利用率。例如:对于一个n+m的RS-DRAID系统,其中,n为数据服务器的数量,m为校验服务器的数量。硬盘利用率可以为n/n+m。在m<n时,该硬盘利用率大于RAID10系统,性能超越RAID5系统。
(2)提高硬盘冗余度。可以允许系统中同时有m个硬盘失效。
(3)GPU的并行编码和解码,提升了RS-DRAID系统的性能。利用GPU的多线程并行计算能力,提高RAIDEC的编码和解码的工作效率。
下面参考图4描述根据本发明实施例的基于GPU的存储设备数据控制方法。
如图4所示,本发明实施例提供的基于GPU的存储设备数据控制方法,包括如下步骤:
步骤S401,应用层设备向设备映射机发送写IO请求。
应用层设备需要向存储设备中写入数据时,向设备映射机发送写IO请求。
步骤S402,设备映射机在接收到写IO请求后,将写IO请求划分为多个逻辑片并发送个对应的服务器,以及将多个逻辑片在多个服务器中进行同步传输。
设备映射机在接收到上述写IO请求后,将该写IO请求分片以划分为多个逻辑片,然后将上述多个逻辑片通过RDMA技术在多个服务器的内存单元中进行直接同步。
步骤S403,多个服务器处理写IO请求,并控制应用层设备向存储设备中写入数据以及对失效的存储设备进行恢复。其中,存储设备可以为硬盘。多个服务器包括校验服务器,校验服务器的图像处理单元GPU根据多个逻辑片并行计算校验码,并将校验码写回至校验服务器中以写入IO请求,且当存储设备失效时重新计算校验码并将重新计算的校验码写入校验服务器中以恢复失效的存储设备。
多个服务器中的校验服务器和数据服务器的数量均可以为一个或多个(可以由用户自行设置)。其中,校验服务器用于存储校验码数据;数据服务器用于存储基础数据。多个服务器中的一台服务器可以作为元数据服务器,另一台服务器可以作为备份元数据服务器。多个服务器中的任意数量的服务器可以轮流作为校验服务器,而其他服务器作为数据服务器、元数据服务器或备份元数据服务器。
设备映射机将多个逻辑片发送给各个服务器的GPU。各个GPU并行计算对应的逻辑片的校验码,并将计算到的校验码写回给校验服务器的内存单元中。在本发明的一个实施中,各个GPU采用Reed-Solomon算法计算对应的逻辑片的校验码。并且,各个GPU可以采用NVIDIA的CUDA开发平台实现并行计算。在将计算到的校验码写回给当前校验服务器的同时,对各个服务器进行同步。
各个GPU在将计算得到校验码写回至校验服务器后,更新的元数据服务器的位图(bitmap)索引图。其中,位图索引图包括脏数据索引。并且各个服务器的CPU向对应的存储设备中发送写入指令,从而应用层设备可以向存储设备中写入相应的数据。CPU将对应的脏数据索引中的写入的存储设备的标识置为1,表明写入的数据为脏数据。
在本发明的一个实施例中,设备映射机接收来自应用层设备的读IO请求,并解析该读IO请求并获取该应用层设备的地址。其中,应用层设备的地址包括该应用层设备的起始位置和偏移量。设备映射机将读IO请求和应用层设备的地址发送给各个服务器的CPU。各个CPU根据读IO请求从对应的存储设备中获取与该读IO请求对应的数据,然后根据应用层设备的地址将数据发送至对应的应用层设备。
当有一个或多个存储设备失效时,需要由GPU重新构建校验码,进入rebuild状态。首先访问元数据服务器,根据元数据服务器中的位图索引图获得需要重新构建的脏数据索引。然后由各个GPU重新计算计算校验码,再通过RDMA技术对各个服务器进行同步,同步后写入校验服务器。此时写入到失效的存储设备以恢复该存储设备。此时,将rebuild成功的标识置为1。
如果在GPU重新计算校验码的过程中,接收到应用层设备发送的读IO请求时,首先判断该区域是否重建成功,即重新计算校验码的过程是否完成。如果新计算校验码的过程已经完成,则应用层设备可以直接读出存储设备中的内容。如果重新计算校验码的过程未完成,则GPU先中止重新计算校验码的过程,由CPU从存储设备中获取与读IO请求对应的数据,并将该数据发送至应用层设备。
如果在GPU重新计算校验码的过程中,接收到应用层设备发送的写IO请求时,则由设备映射机对该请求进行处理,处理流程在上述内容已做详细描述。此时,将rebuild成功的标识置为1。
根据本发明实施例的基于GPU的存储设备数据控制方法在服务器集群中实现RS-DRAID算法,由GPU实现并行计算校验码的过程,不仅可以提高计算速度,而且降低CPU的资源利用率,进而提高存储设备的利用率以及提升了RS-DRAID系统的性能。具体地,本发明实施例提供的基于GPU的RS-DRAID系统100具有以下优点:
(1)提升硬盘利用率。例如:对于一个n+m的RS-DRAID系统,其中,n为数据服务器的数量,m为校验服务器的数量。硬盘利用率可以为n/n+m。在m<n时,该硬盘利用率大于RAID10系统,性能超越RAID5系统。
(2)提高硬盘冗余度。可以允许系统中同时有m个硬盘失效。
(3)GPU的并行编码和解码,提升了RS-DRAID系统的性能。利用GPU的多线程并行计算能力,提高RAIDEC的编码和解码的工作效率。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,″计算机可读介质″可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同限定。
Claims (13)
1.一种基于GPU的里德-所罗门码-分布式独立冗余磁盘阵列RS-DRAID系统,其特征在于,包括:多个设备映射机、多个服务器和多个存储设备,其中,所述多个服务器和所述多个存储设备一一对应,
所述多个设备映射机用于接收来自应用层设备的写IO请求,其中,每个所述设备映射机用于将所述写IO请求划分为多个逻辑片并将所述多个逻辑片发送给对应服务器,以及将所述多个逻辑片在多个所述服务器中进行同步传输以向多个所述服务器写入所述写IO请求;
所述多个服务器用于处理所述写IO请求,并控制应用层设备向多个所述存储设备中写入数据以及对失效的存储设备进行恢复,其中,所述多个服务器包括:
数据服务器,用于存储数据;
校验服务器,用于存储校验码;
元数据服务器,用于存储元数据;以及
备份元数据服务器,用于对所述元数据进行备份存储;
每个所述服务器包括:
内存单元,用于存储数据;
校验码计算单元,用于根据来自所述设备映射机的逻辑片并行计算校验码,并将所述校验码写回至所述内存单元中,且当所述存储设备失效时重新计算校验码并将重新计算的校验码写入所述内存单元中以恢复失效的存储设备,其中,所述校验码计算单元为图形处理单元;和
中央处理器,用于根据所述设备映射机写入的所述写IO请求控制向所述存储设备中写入数据。
2.如权利要求1所述的基于GPU的RS-DRAID系统,其特征在于,所述设备映射机还用于接收来自所述应用层设备的读IO请求,解析所述读IO请求并获取对应的所述应用层设备的地址并将所述读IO请求和所述应用层设备的地址发送给所述中央处理器,所述中央处理器根据所述应用层设备的地址和所述读IO请求从所述存储设备中获取与所述读IO请求对应的数据,并将数据发送至所述应用层设备。
3.如权利要求1所述的基于GPU的RS-DRAID系统,其特征在于,在所述校验码计算单元将所述校验码写回至所述校验服务器的内存单元后,所述元数据服务器更新位图索引图,其中,所述位图索引图包括脏数据索引。
4.如权利要求3所述的基于GPU的RS-DRAID系统,其特征在于,当一个或多个所述存储设备失效时,在所述元数据服务器的所述位图索引图中重新构建脏数据索引,所述校验码计算单元根据所述脏数据索引重新计算校验码,并将重新计算的校验码写入到所述校验服务器的内存单元中。
5.如权利要求4所述的基于GPU的RS-DRAID系统,其特征在于,在所述校验码计算单元重新计算校验码的过程中,接收到所述应用层设备发送的读IO请求时,所述校验码计算单元中止重新计算校验码的过程,所述中央处理器从所述存储设备中获取与所述读IO请求对应的数据,并发送至所述应用层设备。
6.如权利要求1所述的基于GPU的RS-DRAID系统,其特征在于,所述校验码计算单元在将所述校验码写回至所述校验服务器的内存单元后,所述应用层设备通过所述中央处理器向所述存储设备中写入数据。
7.如权利要求1所述的基于GPU的RS-DRAID系统,其特征在于,所述设备映射机采用直接内存读取技术将所述多个逻辑片在多个所述服务器的内存单元中进行同步。
8.一种基于GPU的存储设备数据控制方法,其特征在于,包括如下步骤:
应用层设备向多个设备映射机发送写IO请求;
所述多个设备映射机在接收到所述写IO请求后,将所述写IO请求划分为多个逻辑片并将所述多个逻辑片发送给对应的多个服务器,并将所述多个逻辑片在所述多个服务器中进行同步传输;
所述多个服务器处理所述写IO请求,并控制所述应用层设备向存储设备中写入数据以及对失效的存储设备进行恢复,其中,所述多个服务器中的校验服务器的图形处理单元根据所述多个逻辑片并行计算校验码,并将所述校验码写回至校验服务器中以写入所述写IO请求,且当存储设备失效时重新计算校验码并将重新计算的校验码写入所述校验服务器中以恢复失效的存储设备。
9.如权利要求8所述的基于GPU的存储设备数据控制方法,其特征在于,还包括如下步骤:
所述设备映射机接收来自所述应用层设备的读IO请求,解析所述读IO请求并获取对应的所述应用层设备的地址,从存储设备中获取与所述读IO请求对应的数据,并根据所述应用层设备的地址将数据发送至所述应用层设备。
10.如权利要求8所述的基于GPU的存储设备数据控制方法,其特征在于,还包括如下步骤:所述图形处理单元将所述校验码写回至所述校验服务器的内存单元后,所述应用层设备通过所述多个服务器的中央处理器向所述多个服务器中写入数据,并更新所述多个服务器中的元数据服务器的位图索引图,其中,所述位图索引图包括脏数据索引。
11.如权利要求10所述的基于GPU的存储设备数据控制方法,其特征在于,当一个或多个所述存储设备失效时,在所述元数据服务器的所述位图索引图中重新构建脏数据索引,所述图形处理单元根据所述脏数据索引重新计算校验码,并将重新计算的校验码写入到校验服务器的内存单元中。
12.如权利要求11所述的基于GPU的存储设备数据控制方法,其特征在于,在所述图形处理单元重新计算校验码的过程中,接收到所述应用层设备发送的读IO请求时,所述图形处理单元中止重新计算校验码的过程,所述多个服务器的中央处理器获取与所述读IO请求对应的数据并发送至所述应用层设备。
13.如权利要求8所述的基于GPU的存储设备数据控制方法,其特征在于,所述设备映射机采用直接内存读取技术将所述多个逻辑片在多个所述服务器的内存单元中进行同步。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110456533.7A CN102520890B (zh) | 2011-12-30 | 2011-12-30 | 基于gpu的rs-draid系统及存储设备数据控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110456533.7A CN102520890B (zh) | 2011-12-30 | 2011-12-30 | 基于gpu的rs-draid系统及存储设备数据控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102520890A CN102520890A (zh) | 2012-06-27 |
CN102520890B true CN102520890B (zh) | 2014-10-22 |
Family
ID=46291835
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110456533.7A Active CN102520890B (zh) | 2011-12-30 | 2011-12-30 | 基于gpu的rs-draid系统及存储设备数据控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102520890B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102938653B (zh) * | 2012-11-13 | 2016-06-01 | 航天恒星科技有限公司 | 一种利用图形处理器gpu实现的并行rs译码方法 |
CN103838515B (zh) * | 2012-11-23 | 2016-08-03 | 中国科学院声学研究所 | 一种服务器集群访问调度多控制器磁盘阵列的方法及系统 |
CN103051676A (zh) * | 2012-11-26 | 2013-04-17 | 浪潮电子信息产业股份有限公司 | 一种分布式数据存储管理方法 |
CN106062721B (zh) * | 2014-12-31 | 2018-11-16 | 华为技术有限公司 | 一种将数据写入存储系统的方法和存储系统 |
US20170243375A1 (en) * | 2016-02-18 | 2017-08-24 | Qualcomm Incorporated | Multi-step texture processing with feedback in texture unit |
CN109086462A (zh) * | 2018-09-21 | 2018-12-25 | 郑州云海信息技术有限公司 | 一种分布式文件系统中元数据的管理方法 |
CN109302501B (zh) * | 2018-12-10 | 2021-12-17 | 北京八分量信息科技有限公司 | 一种基于区块链技术的工控数据存储方法、装置及系统 |
CN110209670B (zh) * | 2019-05-09 | 2022-03-25 | 北京猫盘技术有限公司 | 基于网络存储设备集群的数据处理方法及装置 |
CN115933986B (zh) * | 2022-12-29 | 2023-06-09 | 量子芯云(北京)微电子科技有限公司 | 一种具有高冗余量的计算存储阵列 |
CN116541135A (zh) * | 2023-07-06 | 2023-08-04 | 无锡沐创集成电路设计有限公司 | 一种加速rdma设备热迁移的方法、装置、设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6237052B1 (en) * | 1996-05-03 | 2001-05-22 | Netcell Corporation | On-the-fly redundancy operation for forming redundant drive data and reconstructing missing data as data transferred between buffer memory and disk drives during write and read operation respectively |
CN101622606A (zh) * | 2006-12-06 | 2010-01-06 | 弗森多系统公司(dba弗森-艾奥) | 用于作为大容量、非易失性存储器的高速缓存的固态存储器的装置、系统和方法 |
CN1862501B (zh) * | 2005-05-09 | 2010-06-16 | 国际商业机器公司 | 存储信息的系统和方法 |
CN101840377A (zh) * | 2010-05-13 | 2010-09-22 | 上海交通大学 | 基于rs纠删码的数据存储方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4012420B2 (ja) * | 2002-03-12 | 2007-11-21 | 株式会社日立製作所 | 磁気ディスク装置及びディスク制御装置 |
-
2011
- 2011-12-30 CN CN201110456533.7A patent/CN102520890B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6237052B1 (en) * | 1996-05-03 | 2001-05-22 | Netcell Corporation | On-the-fly redundancy operation for forming redundant drive data and reconstructing missing data as data transferred between buffer memory and disk drives during write and read operation respectively |
CN1862501B (zh) * | 2005-05-09 | 2010-06-16 | 国际商业机器公司 | 存储信息的系统和方法 |
CN101622606A (zh) * | 2006-12-06 | 2010-01-06 | 弗森多系统公司(dba弗森-艾奥) | 用于作为大容量、非易失性存储器的高速缓存的固态存储器的装置、系统和方法 |
CN101840377A (zh) * | 2010-05-13 | 2010-09-22 | 上海交通大学 | 基于rs纠删码的数据存储方法 |
Non-Patent Citations (1)
Title |
---|
JP特开2003-263703A 2003.09.19 |
Also Published As
Publication number | Publication date |
---|---|
CN102520890A (zh) | 2012-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102520890B (zh) | 基于gpu的rs-draid系统及存储设备数据控制方法 | |
US10191676B2 (en) | Scalable storage protection | |
KR101758544B1 (ko) | 비휘발성 메모리 시스템에서의 동기 미러링 | |
US20160217040A1 (en) | Raid parity stripe reconstruction | |
CN102122235A (zh) | 一种raid4系统及其数据读写方法 | |
US20150199235A1 (en) | Optimizing and Enhancing Performance for Parity Based Storage | |
CN102799533B (zh) | 一种磁盘损坏扇区屏蔽方法及装置 | |
CN106557143B (zh) | 用于数据存储设备的装置和方法 | |
CN104598162A (zh) | 用于跨存储设备写入数据的方法和系统 | |
JP2013156977A (ja) | 冗長キャッシュデータのエラスティックキャッシュ | |
WO2011002438A1 (en) | Organizing and managing a memory blade with super pages and buffers | |
JP4884721B2 (ja) | 記憶装置のフォーマットを不要としたストレージシステム及び記憶制御方法 | |
CN103019893A (zh) | 一种多盘容错的二维混合盘raid4系统架构及其读写方法 | |
CN101770413A (zh) | 冗余磁盘阵列重建的方法及设备 | |
CN103605582A (zh) | 一种基于写重定向的纠删码存储重构优化方法 | |
CN113687978A (zh) | 用于存储阵列控制器的数据处理方法 | |
CN116501553B (zh) | 数据恢复方法、装置、系统、电子设备及存储介质 | |
CN116204137B (zh) | 基于dpu的分布式存储系统、控制方法、装置及设备 | |
CN102147714B (zh) | 一种网络存储系统的管理方法及装置 | |
US11379327B2 (en) | Storage system and rebuilding method for storage system | |
CN111813331A (zh) | 用于操作数据存储系统的方法、系统和非暂时性计算机可读介质 | |
US20200363958A1 (en) | Efficient recovery of resilient spaces | |
US20110296102A1 (en) | Storage apparatus comprising raid groups of raid 1 series and control method of writing to raid group of raid 1 series | |
CN103092727B (zh) | Flash存储介质上的数据纠错方法和装置 | |
CN116401063A (zh) | 一种raid的资源分配方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20160513 Address after: 214135 Jiangsu province Wuxi city Wuxi District Taihu international science and Technology Park Linghu Road No. 200 China Sensor Network International Innovation Park Room D2-622 Patentee after: Wuxi Tianyun Data Center Technology Co. Ltd. Address before: 100176, room six, building 18, building 1, North Street, No. 606, Sheng Bei street, Beijing economic and Technological Development Zone, Beijing Patentee before: Beijing Cloud-frame Technology Co., Ltd. |