Raid1和raid4混合结构网络存储系统及方法

文档序号:6536707阅读:221来源:国知局
Raid1和raid4混合结构网络存储系统及方法
【专利摘要】本发明公开了一种RAID1和RAID4混合结构网络存储系统及方法,其中系统包括多个逻辑上相互独立的冗余组:冗余组的结构为RAID1和RAID4的混合结构,包括多个数据节点和一个校验节点:数据节点,用于将写操作的数据块缓存;使用RAID1方式,将写操作的数据块发送到校验节点,形成RAID1镜像;校验节点,用于将写操作的数据块缓存,并与冗余组的其他数据节点的相同逻辑地址的数据块一起,组成RAID4冗余条带,进行异步冗余计算,在校验信息存储后,发送数据迁移命令;数据节点,还用于接收数据迁移命令,将写操作的数据块迁移至RAID4数据集。其有效解决了集中式冗余管理方式中控制节点成为性能瓶颈的问题。
【专利说明】RAID1和RAID4混合结构网络存储系统及方法
【技术领域】
[0001]本发明涉及计算机存储领域,特别是涉及一种RAIDl和RAID4混合结构网络存储系统及方法。
【背景技术】
[0002]独立冗余磁盘阵列(RedundantArrays Of Independent Disks, RAID)技术是一种提供增强冗余、容量和存储性能的存储方法,有着较强的可管理性、可靠性和可用性。通过冗余计算,RAID技术能够在满足可靠性要求的前提下,降低系统的容量开销。将RAID技术应用于网络存储系统的研究经历了从集中式控制到分布式控制,从单一 RAID模式到混合RAID模式的发展过程。在大规模网络存储系统中,由于需要考虑复杂网络环境对性能的影响,所以一些存储系统采用混合RAID模式。
[0003]其中,AutoRAID通过将最近使用的数据放在以RAIDl存储的高性能的硬盘中,将不太常用的数据放在以RAID5存储的经济高效的硬盘中,由于RAIDl与RAID5数据是分离存储的,因此,在网络环境下将大批数据从RAIDl迁移到RAID5上,会带来巨大的网络带宽和磁盘带宽消耗,不适合在分布环境下使用;DPGADR采用与AutoRAID相似的结构,通过复制和延迟校验块生成的方法提高网络存储系统性能,但是,在DPGADR中,由于RAID5部分为降级方式存储,因此,冷数据的读写性能较差;而采用网络存储系统的后端冗余集中管理方式,由于冗余管理节点本身不存储数据,数据和校验信息都存储在存储节点上,因此数据和校验信息的读写会带来巨大的网络带宽消耗,同时增加了存储节点对数据和校验信息的管理难度,并且在应用服务器与节点间网络故障的情况下,数据的读写操作不能正常进行。

【发明内容】

[0004]基于此,有必要针对集中式冗余管理方法性能瓶颈问题,以及在节点故障情况下数据不能正常访问的问题,提供一种RAIDl和RAID4混合结构网络存储系统及方法。
[0005]一种RAIDl和RAID4混合结构网络存储系统,用于与应用服务器连接进行数据的写操作或读操作,包括多个逻辑上相互独立的冗余组:
[0006]所述冗余组的结构为RAIDl和RAID4的混合结构;
[0007]所述冗余组包括多个数据节点和一个校验节点:
[0008]所述数据节点,用于在所述冗余组接到所述应用服务器的写操作请求时,将写操作的数据块缓存;并使用RAIDl方式,将所述写操作的数据块发送到所述校验节点中,形成RAIDl镜像;
[0009]所述校验节点,用于将所述写操作的数据块缓存,并与对应所述冗余组的其他数据节点的相同逻辑地址的数据块一起,组成RAID4冗余条带,进行异步冗余计算,计算完成后将校验信息存储,并在所述异步冗余计算及所述校验信息更新存储后,向所述数据节点发送数据迁移命令;
[0010]所述数据节点,还用于在接到所述校验节点发送的所述数据迁移命令后,将相应的所述写操作的数据块迁移至RAID4数据集。
[0011]作为一种可实施方式,在所述冗余组接到所述应用服务器的读操作请求时,从所述数据节点读取读操作的数据块,发送给所述应用服务器。
[0012]较佳地,所述冗余组为分层存储的多缓存的RAIDl和RAID4混合结构;
[0013]所述数据节点包括第一数据收发模块、第一缓存单元和第一逻辑卷,其中:
[0014]所述第一数据收发模块,用于接收所述应用服务器的所述写操作请求或者所述读操作请求;在接收到所述写操作请求后,将所述写操作的数据块写入到所述第一缓存单元,并使用RAIDl方式,将所述写操作的数据块写入到所述校验节点;在接收到所述读操作请求后,将所述读操作的数据块发送给所述应用服务器;
[0015]所述第一缓存单元,用于缓存所述写操作的数据块或所述读操作的数据块,并在所述校验节点进行所述异步冗余计算之前,将缓存的所述写操作的数据块根据缓存策略,独立下刷至所述第一逻辑卷中;
[0016]所述第一逻辑卷,用于存储所述第一缓存单元独立下刷的所述写操作的数据块,并在接收到所述校验节点发送的所述数据迁移命令后,将相应的所述写操作的数据块迁移至所述RAID4数据集;
[0017]所述校验节点包括第二缓存单元、第二冗余计算单元和第二校验卷,其中:
[0018]所述第二缓存单元,用于缓存所述数据节点发送的所述写操作的数据块;
[0019]所述第二冗余计算单元,用于将所述第二缓存单元发送的所述写操作的数据块与对应的所述冗余组的其他数据节点的相同逻辑地址的数据块一起,组成RAID4冗余条带,进行所述异步冗余计算,计算完成后将所述校验信息写到所述第二校验卷中,并发送所述数据迁移命令给所述第一逻辑卷;
[0020]所述第二校验卷,用于存储所述校验信息。
[0021]更优的,还包括降级处理模块和路径转换模块,其中:
[0022]所述降级处理模块,用于在所述冗余组中某个所述数据节点,或者所述校验节点出现故障时,控制所述冗余组进入降级状态,进行降级写操作或读操作;
[0023]所述路径转换模块,用于在所述数据节点故障情况下,将所述应用服务器和所述冗余组之间的数据访问路径从所述数据节点切换到所述校验节点,控制将所述写操作请求或所述读操作请求下发到所述校验节点;并在所述数据节点重新接入,进行数据重构完成后,将所述数据访问路径从所述校验节点切换回所述数据节点。
[0024]作为一种可实施方式,所述降级处理模块包括第一降级处理单元;其中:
[0025]所述第一降级处理单元,用于在所述数据节点故障或者数据重构未完成状态下,所述数据访问路径从所述数据节点切换到所述校验节点后,控制所述校验节点执行所述降级写操作或读操作;
[0026]所述校验节点还包括第二数据收发模块,其中:
[0027]所述第二数据收发模块,用于在所述数据节点故障或者数据重构未完成状态下,接收所述应用服务器的所述写操作请求或者所述读操作请求;在接收到所述写操作请求后,使用降级的RAIDl方式,将所述写操作的数据块写入到所述第二缓存单元;在接收到所述读操作请求后,将所述读操作的数据块发送给所述应用服务器;
[0028]所述第二冗余计算单元,还用于在所述数据节点故障或者数据重构未完成状态下,按照RAID4降级处理方式,将所述第二缓存单元的所述写操作的数据块与对应所述冗余组的其他数据节点的相同逻辑地址的数据块一起,组成RAID4冗余条带,进行所述异步冗余计算,计算完成后将所述校验信息写入所述校验节点的所述第二校验卷中;
[0029]所述降级处理模块还包括第二降级处理单元和第二降级冗余处理单元,其中:
[0030]所述第二降级处理单元,用于在所述校验节点故障或者校验信息重构未完成状态下,控制所述数据节点执行RAIDl降级写操作或读操作;
[0031]所述第二降级冗余处理单元,用于在所述校验节点故障或者校验信息重构未完成状态下,将所述应用服务器发送的所述写操作的数据块写入所述第一缓存单元,然后返回写操作请求完成信息。
[0032]相应的,基于上述RAIDl和RAID4混合结构网络存储系统原理,本发明还提供了一种RAIDl和RAID4混合结构网络存储方法,包括如下步骤:
[0033]在与应用服务器连接进行数据的写操作或读操作过程中,所述冗余组的数据节点接到所述应用服务器的写操作请求时,将写操作的数据块缓存;并使用RAIDl方式,将所述写操作的数据块的备份数据发送到对应所述冗余组的校验节点中,形成RAIDl镜像;
[0034]所述校验节点将所述写操作的数据块缓存,并与对应所述冗余组的其他数据节点中的相同逻辑地址的数据块一起,组成RAID4冗余条带,进行异步冗余计算,计算完成后将校验信息存储,并在所述异步冗余计算及所述校验信息更新存储后,向所述数据节点发送数据迁移命令;
[0035]所述数据节点在接到所述校验节点发送的所述数据迁移命令后,将相应的所述写操作的数据块迁移至RAID4数据集;
[0036]其中,所述冗余组为多个逻辑上相互独立的具有多个所述数据节点和一个所述校验节点的RAIDl和RAID4混合结构的冗余组。
[0037]作为一种可实施方式,还包括如下步骤:
[0038]在所述冗余组接到所述应用服务器的读操作请求时,从所述数据节点读取读操作的数据块,并将所述读操作的数据块发送给所述应用服务器。
[0039]作为一种可实施方式,还包括RAID正常状态下的写操作和所述RAID正常状态下的读操作,其中:
[0040]所述RAID正常状态下的写操作包括如下步骤:
[0041]所述数据节点接收所述应用服务器的所述写操作请求;
[0042]将所述写操作的数据块存储至所述第一缓存单元中,同时将所述写操作的数据块转发至所述校验节点;
[0043]所述数据节点向所述应用服务器发送完成确认信息;
[0044]所述RAID正常状态下的读操作包括如下步骤:
[0045]所述数据节点接收所述应用服务器的读操作请求;
[0046]根据所述读操作请求,检测所述第一缓存单元中是否存在所述读操作的数据块;
[0047]当所述第一缓存单元中存在所述读操作的数据块时,将所述读操作的数据块发送给所述应用服务器;当所述第一缓存单元中不存在所述读操作的数据块时,从所述数据节点的第一逻辑卷读取所述读操作的数据块,然后返回给所述应用服务器;
[0048]所述将所述写操作的数据块转发至所述校验节点,包括如下步骤:[0049]控制所述写操作的数据块存储至第二缓存单元中;
[0050]所述第二缓存单元对所述写操作的数据块从空间维度进行合并;
[0051]根据缓存策略,对所述写操作的数据块中符合异步冗余计算条件的数据块进行缓存回写。
[0052]较佳地,还包括RAID降级状态下的写操作和所述RAID降级状态下的读操作,其中:
[0053]所述RAID降级状态下的写操作包括如下步骤:
[0054]当所述冗余组的所述数据节点故障或数据重构未完成时,所述校验节点接收所述应用服务器下发的所述写操作请求;所述校验节点将所述写操作的数据块写入所述校验节点的所述第二缓存单元后,向所述应用服务器返回完成确认信息;
[0055]当所述校验节点故障或校验信息重构未完成时,所述数据节点接收所述应用服务器下发的所述写操作请求;所述数据节点将所述写操作的数据块写入所述数据节点的所述第一缓存单元后,向所述应用服务器返回写操作请求完成信息;
[0056]所述RAID降级状态下的读操作包括如下步骤:
[0057]当所述数据节点故障或数据重构未完成时,所述校验节点接收所述应用服务器下发的所述读操作请求;所述校验节点检测所述第二缓存单元;当所述第二缓存单元中存在所述读操作的数据块时,所述校验节点将所述读操作的数据块返回给所述应用服务器;
[0058]当所述校验节点故障或校验信息重构未完成时,所述数据节点接收所述应用服务器下发的所述读操作请求,并将所述读操作的数据块返回给所述应用服务器;
[0059]当所述第二缓存单元中不存在所述读操作的数据块时,所述校验节点向所述冗余组的其他数据节点发送读所述相同逻辑地址的数据块的请求;
[0060]所述校验节点读取第二校验卷中与所述读操作的数据块相应的校验信息后,返回读校验完成信息;
[0061]所述数据节点读取所述第一逻辑卷中的所述读操作的数据块,并返回给所述校验节点;
[0062]当所述冗余组的其他数据节点的所有所述读操作的数据块返回给所述校验节点后,所述校验节点根据RAID4恢复算法重构出所述数据节点上的所述读操作的数据块。
[0063]更优的,还包括所述数据节点的数据重构步骤;
[0064]所述数据节点的数据重构步骤包括RAIDl数据恢复步骤和RAID4同步恢复的第一步骤,其中:
[0065]所述RAIDl数据恢复步骤包括:
[0066]所述校验节点收集所有与故障数据相关的数据集合,并根据所述数据集合,设置所述校验节点中RAIDl第一数据位图;
[0067]控制所述RAIDl第一数据位图中的所有数据进行恢复;
[0068]所述数据节点将所述校验节点的所述写操作的数据块存储至所述第一缓存单元中,并返回写操作请求完成信息;
[0069]所述RAID4同步恢复的第一步骤包括:
[0070]阻塞所述校验节点的用户访问,并获取所述校验节点上与所述故障数据相应的未进行所述异步冗余计算的第二数据位图;[0071]所述数据节点将所述第二数据位图的数据迁移至所述RAID4数据集;
[0072]恢复所述校验节点的用户访问,所述校验节点重新构建所述RAID4 ;
[0073]将所述第二数据位图设置到所述RAID4中;
[0074]所述RAID4根据所述第二数据位图设置同步校验信息,直至所述RAID4的所述校验信息同步完成;
[0075]以及,
[0076]还包括所述校验节点的校验信息重构步骤;
[0077]所述校验节点的校验信息重构步骤包括所述冗余组的所有数据节点的数据迁移步骤和所述RAID4同步恢复的第二步骤,其中:
[0078]所述冗余组的所有数据节点的数据迁移步骤包括:
[0079]控制所述冗余组的所有数据节点中所述RAIDl第一数据位图为clean ;
[0080]所述冗余组的所有数据节点将所述校验节点导出到所述数据节点的设备以re-add方式加入到所述RAIDl中;
[0081]阻塞所述冗余组的所有数据节点的用户访问;
[0082]所述冗余组的所有数据节点将未进行所述异步冗余计算的数据迁移至所述RAID4数据集后,恢复所述冗余组的所有数据节点的用户访问;
[0083]所述RAID4同步恢复的第二步骤包括:
[0084]收集所述冗余组的所有数据节点中已进行所述异步冗余计算的数据信息,并将所述数据信息进行合并,形成并集;
[0085]根据所述并集,设置所述校验节点中所述RAID4重构位图;
[0086]所述校验节点向所述冗余组的所有数据节点发送读取所述已进行所述异步冗余计算的数据块的请求;
[0087]所述冗余组的所有数据节点接收到所述请求之后,将所述已进行所述异步冗余计算的数据块返回给所述校验节点;
[0088]所述校验节点根据所述已进行所述异步冗余计算的数据块,进行所述RAID4冗余计算,并将计算得到的所述校验信息存储至所述第二校验卷中;
[0089]控制所述RAID4重构位图中的校验数据全部进行重构。
[0090]本发明提供的一种RAIDl和RAID4混合结构网络存储系统及方法,其系统包括多个基于RAIDl和RAID4的混合结构的逻辑上相互独立的冗余组,通过冗余组的多个数据节点和一个校验节点进行与应用服务器的数据的写操作或读操作;当冗余组接收到应用服务器的写操作请求时,数据节点将写操作的数据块进行缓存时,使用RAIDl方式,将写操作的数据块发送到校验节点中,形成RAIDl镜像;校验节点将数据节点发送过来的写操作的数据块缓存后,对该写操作的数据块及冗余组的其他数据节点的相同逻辑地址的数据块,进行RAID4异步冗余计算,并将计算得到的校验信息存储,当数据节点发生故障或数据重构未完成时,根据该校验信息重构出写操作的数据块,从而有效地解决了在节点故障情况下数据不能正常访问的问题。
【专利附图】

【附图说明】
[0091]图1为RAIDl和RAID4混合结构网络存储系统一具体实施例结构示意图;[0092]图2为RAIDl和RAID4混合结构网络存储系统一具体实施例中冗余组结构示意图;
[0093]图3为RAIDl和RAID4混合结构网络存储系统另一具体实施例示意图;
[0094]图4为RAIDl和RAID4混合结构网络存储方法一具体实施例流程图;
[0095]图5为RAIDl和RAID4混合结构网络存储方法RAID正常状态下的写操作一具体实施例示意图;
[0096]图6为RAIDl和RAID4混合结构网络存储方法RAID正常状态下的读操作一具体实施例示意图;
[0097]图7为RAIDl和RAID4混合结构网络存储方法RAID降级状态下的写操作一具体实施例示意图;
[0098]图8为RAIDl和RAID4混合结构网络存储方法RAID降级状态下的写操作另一具体实施例示意图;
[0099]图9为RAIDl和RAID4混合结构网络存储方法RAID降级状态下的读操作一具体实施例示意图;
[0100]图10为RAIDl和RAID4混合结构网络存储方法RAID降级状态下的读操作另一具体实施例示意图;
[0101]图11为RAIDl和RAID4混合结构网络存储方法数据节点的数据重构一具体实施例示意图;
[0102]图12为RAIDl和RAID4混合结构网络存储方法校验节点的校验信息重构一具体实施例示意图。
【具体实施方式】
[0103]为使本发明技术方案更加清楚,以下结合附图及具体实施例对本发明做进一步详细说明。
[0104]参见图1至图3,一种RAIDl和RAID4混合结构网络存储系统100,用于与应用服务器200连接进行数据的写操作或读操作,包括多个逻辑上相互独立的冗余组110:
[0105]冗余组110的结构为RAIDl和RAID4的混合结构;
[0106]冗余组110包括多个数据节点111和一个校验节点112:
[0107]数据节点111,用于在冗余组110接到应用服务器200的写操作请求时,将写操作的数据块缓存;并使用RAIDl方式,将写操作的数据块发送到校验节点112中,形成RAIDl镜像;
[0108]校验节点112,用于将写操作的数据块缓存,并与对应冗余组110的其他数据节点111的相同逻辑地址的数据块一起,组成RAID4冗余条带,进行异步冗余计算,计算完成后将校验信息存储,并在异步冗余计算及校验信息更新存储后,向数据节点111发送数据迁移命令;
[0109]数据节点111,还用于在接到校验节点112发送的数据迁移命令后,将相应的写操作请求的数据块迁移至RAID4数据集。
[0110]本发明提供的RAIDl和RAID4混合结构网络存储系统100,通过设置多个逻辑上相互独立的冗余组110,每个冗余组110的结构均为RAIDl和RAID4的混合结构,并包括多个数据节点和一个校验节点;当RAIDl和RAID4混合结构网络存储系统100中任意一个冗余组110接收到应用服务器200发送的写操作请求时,该冗余组110中与该写操作对应的数据节点111使用RAIDl方式将写操作的数据块进行缓存,并将该写操作的数据块发送到该冗余组110的校验节点112中,形成RAIDl镜像;校验节点112根据形成RAIDl镜像的写操作的数据块与该冗余组110的其他数据节点中的相同逻辑地址的数据块组成RAID4冗余条带,进行异步冗余计算,并将计算得到的校验信息存储,这就使得当需要进行数据的读操作时,如果数据节点111出现故障时,可根据计算得到的校验信息重构出读操作的数据块,有效地解决了在节点故障情况下数据不能正常访问的问题。
[0111]其中,RAIDl称为磁盘镜像,其原理是将一个磁盘的数据镜像到另一个磁盘上,即在数据写入一个磁盘的过程中,会在另一个闲置的磁盘上生成镜像文件,在不影响磁盘性能的情况下最大限度的保证了数据的可靠性及可修复性,通过采用RAIDl镜像使得RAIDl和RAID4混合结构网络存储系统100执行写操作时能够有两份写操作的数据块,即使其中一个节点故障,副本也能保证有一份正确的数据块;RAID4则是将数据条块化,并分布于不同的磁盘上,实现占用较少的冗余空间存储校验信息,通过采用RAID4冗余技术,能够在任意单节点故障时,仍可以通过其他节点的数据块和校验信息对丢失的数据块进行恢复,保证了 RAIDl和RAID4混合结构网络存储系统100的可靠性。
[0112]在此,需要说明的是,RAID4异步冗余计算具体是指:将冗余组110内所有数据节点111的镜像数据(即所有数据节点111中缓存的写操作的数据块),进行异或计算,该计算过程异步于数据访问流程。
[0113]作为一种可实施方式,在冗余组110接到应用服务器200的读操作请求时,从数据节点111读取读操作的数据块,发送给应用服务器200 ;实现了 RAIDl和RAID4混合结构网络存储系统100与应用服务器200间的数据的读操作。
[0114]较佳地,作为本发明RAIDl和RAID4混合结构网络存储系统100的一具体实施例,冗余组Iio为分层存储的多缓存的RAIDl和RAID4混合结构;
[0115]数据节点111包括第一数据收发模块1110、第一缓存单元1111和第一逻辑卷1112 ;其中:
[0116]第一数据收发模块1110,用于接收应用服务器200的写操作请求或者读操作请求;在接收到写操作请求后,将写操作的数据块写入到第一缓存单元1111,并使用RAIDl方式,将写操作的数据块写入到校验节点112 ;在接收到读操作请求后,将读操作的数据块发送给应用服务器200 ;
[0117]第一缓存单元1111,用于缓存写操作的数据块或者读操作的数据块,并在校验节点112进行异步冗余计算之前,将缓存的写操作的数据块根据缓存策略,独立下刷至第一逻辑卷1112中;
[0118]第一逻辑卷1112,用于存储第一缓存单元1111独立下刷的写操作的数据块,并在接收到校验节点112发送的数据迁移命令后,将相应的写操作的数据块迁移至RAID4数据集;
[0119]校验节点112包括第二缓存单元1120、第二冗余计算单元1121和第二校验卷1122,其中:
[0120]第二缓存单元1120,用于缓存数据节点111发送的写操作的数据块;[0121]第二冗余计算单元1121,用于将第二缓存单元1120发送来的写操作的数据块与对应冗余组Iio的其他数据节点111的相同逻辑地址的数据块一起,组成RAID4冗余条带,进行异步冗余计算,计算完成后将校验信息写到第二校验卷1122中,并发送数据迁移命令给第一逻辑卷1112;
[0122]所述第二校验卷1122,用于存储校验信息。
[0123]需要说明的是,第一缓存单元1111及第二缓存单元1120均为内存缓存和磁盘缓存组成的多层缓存结构,这样的多层缓存结构能够减少半条带写操作带来的磁盘带宽消耗;同时,通过设置冗余组Iio为多层存储的多缓存的RAIDl和RAID4混合结构,对数据进行分层存储,通过RAIDl和RAID4协作对不同存储层的数据提供了可靠性保证。
[0124]更优的,还包括降级处理模块120和路径转换模块130,其中:
[0125]降级处理模块120,用于在冗余组110中某个数据节点111,或者校验节点112出现故障时,控制冗余组110进入降级状态,进行降级写操作或读操作;
[0126]路径转换模块130,用于在数据节点111故障情况下,将应用服务器200和冗余组110之间的数据访问路径从数据节点111切换到校验节点112,控制将写操作请求或读操作请求下发到校验节点112 ;并在数据节点111重新接入,进行数据重构完成后,将数据访问路径从校验节点112切换回数据节点111。即通过多路径访问方式,保证了在RAIDl和RAID4混合结构网络存储系统中任一数据节点111或校验节点112出现故障或者网络故障时,仍能够实现数据的正常访问,保证了数据访问的连续性。
[0127]作为一种可实施方式,降级处理模块120包括第一降级处理单元121,其中:
[0128]第一降级处理单元121,用于在数据节点111故障或者数据重构未完成状态下,路径转换模块130将访问路径切换到校验节点112后,控制校验节点112执行降级写操作或读操作;
[0129]校验节点112还包括第二数据收发模块1123,其中:
[0130]第二数据收发模块1123,用于在数据节点111故障或者数据重构未完成状态下,接收应用服务器200的写操作请求或者读操作请求;在接收到写操作的数据后,使用降级的RAIDl方式,将写操作的数据块写入到第二缓存单元1120 ;在接收到读操作请求后,将读操作的数据块发送给应用服务器200 ;
[0131]第二冗余计算单元1121,还用于在数据节点111故障或者数据重构未完成状态下,按照RAID4降级处理方式,将第二缓存单元1120的写操作的数据块与对应冗余组110的其他数据节点111的相同逻辑地址的数据块一起,组成RAID4冗余条带,进行异步冗余计算,计算完成后校验信息写入校验节点112的第二校验卷1122中。
[0132]值得说明的是,降级处理模块120还包括第二降级处理单元122和第二降级冗余处理单元123,其中:
[0133]第二降级处理单元122,用于在校验节点112故障或者校验信息重构未完成状态时,控制数据节点111执行RAIDl降级写操作或读操作;
[0134]第二降级冗余处理单元123,用于在校验节点112故障或者校验信息重构未完成状态下,将应用服务器200发送的写操作的数据块写入第一缓存单元1111,然后返回写操作请求完成信息。
[0135]相应的,基于上述RAIDl和RAID4混合结构网络存储系统100的原理,本发明还提供了一种RAIDl和RAID4混合结构网络存储方法,由于该RAIDl和RAID4混合结构网络存储方法的构思原理与RAIDl和RAID4混合结构网络存储系统100的原理基本相同,因此重复之处不再赘述。
[0136]参见图4,一种RAIDl和RAID4混合结构网络存储方法,包括如下步骤:
[0137]S100,在与应用服务器连接进行数据的写操作或读操作过程中,冗余组的数据节点接到应用服务器的写操作请求时,将写操作的数据块缓存;并使用RAIDl方式,将写操作的数据块发送到对应冗余组的校验节点中,形成RAIDl镜像;
[0138]S200,校验节点将写操作的数据块缓存,并与对应冗余组的其他数据节点中的相同逻辑地址的数据块一起,组成RAID4冗余条带,进行异步冗余计算,计算完成后将校验信息存储,并在异步冗余计算及校验信息更新存储后,向数据节点发送数据迁移命令;
[0139]S300,数据节点在接到校验节点发送的数据迁移命令后,将相应的写操作请求的数据块迁移至RAID4数据集;
[0140]其中,冗余组为多个逻辑上相互独立的具有多个数据节点和一个校验节点的RAIDl和RAID4混合结构的冗余组。
[0141]值得说明的是,还包括如下步骤:
[0142]S400,在冗余组接到应用服务器的读操作请求时,从数据节点读取读操作的数据块,并将读操作的数据块发送给应用服务器。即在保证冗余组与应用服务器之间能够进行数据的写操作的同时,还实现了数据的读操作。
[0143]参见图5至图6,作为本发明RAIDl和RAID4混合结构网络存储方法的一具体实施例,还包括RAID正常状态下的写操作和RAID正常状态下的读操作,其中:
[0144]参见图5,RAID正常状态下的写操作包括如下步骤:
[0145]S210,数据节点接收应用服务器的写操作请求;
[0146]S230,将写操作的数据块存储至第一缓存单元中,同时将写操作的数据块转发至校验节点;
[0147]S250,数据节点向应用服务器发送完成确认信息;
[0148]值得说明的是,数据节点将写操作的数据块存储至第一缓存单元中,同时将写操作的数据块转发至校验节点具体包括:S231,控制写操作的数据存储至校验节点的第二缓存单元中;S232,第二缓存单元对写操作的数据块从空间维度进行合并;S233,并根据缓存策略,对写操作的数据块中符合异步冗余计算条件的数据块进行缓存回写;在缓存回写中执行RAID4冗余计算,冗余计算与应用写操作请求异步执行。需要说明的是,缓存回写包括全条带写和半条带写,其中,全条带写指的是执行一次RAID4冗余计算所需的数据块;S2330,当缓存回写的数据块满足全条带时,直接用全条带的数据块进行RAID4冗余计算新的校验信息,当缓存回写的数据块为半条带写时,则读取相关的旧数据块,将读取的旧数据块和新数据块一起进行RAID4冗余计算得到新的校验信息;S2331,将计算得到的新的校验信息存储至校验节点的第二校验卷中,返回写请求完成;之后,S2332,校验节点向数据节点发送数据迁移命令,S2333,数据节点接收到该数据迁移命令后,将写操作的数据迁移至RAID4数据集中,并向校验节点发送确认信息;校验节点接收到确认信息后,从而完成冗余计算及校验信息的更新。
[0149]参见图6,RAID正常状态下的读操作包括如下步骤:[0150]S220,数据节点接收应用服务器的读操作请求;
[0151]S240,根据读操作请求,检测第一缓存单元中是否存在读操作的数据块;
[0152]S260,当第一缓存单元中存在读操作的数据块时,将读操作的数据块发送给应用服务器;当第一缓存单元中不存在读操作的数据块时,从数据节点的第一逻辑卷中读取读操作的数据块,然后返回给应用服务器。
[0153]参见图7至图10,作为本发明RAIDl和RAID4混合结构网络存储方法的一具体实施例,还包括RAID降级状态下的写操作和RAID降级状态下的读操作,其中:
[0154]参见图7至图8,RAID降级状态下的写操作包括如下步骤:
[0155]参见图7,当冗余组的数据节点故障或数据重构未完成时,S310,校验节点接收应用服务器下发的写操作请求;S330,校验节点将写操作的数据块写入校验节点的第二缓存单元后;S350,向应用服务器返回完成确认信息;
[0156]也就是当冗余组内任意数据节点故障或数据重构未完成时,应用服务器与冗余组之间的数据访问路径由数据节点切换到校验节点,校验节点接收到应用服务器的写操作请求后,将写操作的数据块存储至第二缓存单元;需要说明的是,在RAID降级状态下的写操作过程中的缓存回写的步骤与RAID正常状态下的写操作过程中的缓存回写步骤一致,不同点在于:将计算得到的新的校验信息存储至校验节点的第二校验卷后,由于数据节点故障或数据重构未完成,数据节点不能接收数据迁移命令,因此校验节点将不再向数据节点发送数据迁移命令;其通过在数据节点故障或数据重构未完成时,将数据访问路径切换到校验节点,通过校验节点执行RAID降级写操作,完成用户层的写请求,有效地解决了在数据节点故障时,数据不能正常访问的问题。
[0157]同理,参见图8,当校验节点故障或校验信息重构未完成时,S320,数据节点接收应用服务器下发的写操作请求;S340,数据节点将写操作的数据块写入数据节点的第一缓存单元后,S360,向应用服务器返回写操作请求完成信息;即当校验节点故障或校验信息重构未完成时,数据节点接收应用服务器的写操作请求,并将写操作的数据块存储至其第一缓存单元中,从而完成数据的写操作;由于校验节点故障,因此不再进行异步冗余计算。
[0158]参见图9至图10,RAID降级状态下的读操作包括如下步骤:
[0159]参见图9,当数据节点故障或数据重构未完成时,S410,校验节点接收应用服务器下发的读操作请求;S430,校验节点检测第二缓存单元;S450,当第二缓存单元中存在读操作的数据块时,校验节点将读操作的数据块返回给应用服务器;
[0160]同理,当数据节点故障或数据重构未完成时,应用服务器的数据访问路径切换到校验节点,同样有效地解决了在节点故障时数据不能正常访问的问题。
[0161]值得说明的是,当校验节点检测到第二缓存单元中不存在读操作的数据块时,通过校验节点根据RAID4恢复算法重构出数据节点上的所有数据块,并将读操作的数据块返回给应用服务器,完成用户层的读操作请求。校验节点重构出数据节点上的数据块的具体步骤为:S451,当第二缓存单元中不存在读请求的数据块时,校验节点向冗余组的其他数据节点发送读相同逻辑地址的数据块的请求;S452,校验节点读取第二校验卷中与读操作的数据块相应的校验信息后,返回读校验完成信息;S453,数据节点读取第一逻辑卷中的读操作的数据块,并返回给校验节点;S454,当冗余组的其他数据节点的所有读操作的数据块返回后,校验节点根据RAID4恢复算法重构出数据节点上的读操作的数据块。其通过校验节点对数据节点上的数据块进行重构,从而实现在数据节点故障时,应用服务器仍然能够执行数据的正常访问。
[0162]参见图10,当校验节点故障或校验信息重构未完成时,S420,数据节点接收应用服务器下发的读操作请求;S440,数据节点读取第一缓存单元中读操作的数据块;S460,数据节点将读操作的数据块返回给应用服务器。
[0163]较佳地,参见图11,作为本发明RAIDl和RAID4混合结构网络存储方法的一具体实施例,还包括数据节点的数据重构步骤,数据节点的数据重构步骤包括RAIDl数据恢复步骤和RAID4同步恢复的第一步骤,其中:
[0164]RAIDl数据恢复步骤包括:
[0165]S500,校验节点收集所有与故障数据相关的数据集合,并根据数据集合,设置校验节点中RAIDl第一数据位图,校验节点控制RAIDl第一数据位图中的所有数据块进行恢复;
[0166]S510,校验节点发送写操作的数据块至数据节点;
[0167]S520,数据节点将校验节点的写操作的数据块存储至第一缓存单元中,并返回写请求完成信息;
[0168]按照上述步骤,当RAIDl的所有数据块恢复完成后,进行RAID4同步恢复的第一步骤,其过程具体包括:
[0169]S530,阻塞校验节点的用户访问,S540,并获取校验节点上与故障数据相应的未进行异步冗余计算的第二数据位图;
[0170]S550,数据节点将第二数据位图的数据迁移至RAID4数据集;
[0171]S560,恢复校验节点的用户访问,S570,校验节点重新构建RAID4 ;
[0172]S580,将第二数据位图设置到RAID4中,RAID4根据第二数据位图设置同步校验信息,直至RAID4的校验信息同步完成。
[0173]参见图12,作为本发明RAIDl和RAID4混合结构网络存储方法的一种可实施方式,还包括校验节点的校验信息重构步骤,校验节点的校验信息重构步骤包括冗余组的所有数据节点的数据迁移步骤和RAID4同步恢复的第二步骤,其中:
[0174]冗余组的所有数据节点的数据迁移步骤包括:
[0175]S600,控制冗余组的所有数据节点中RAIDl第一数据位图为clean ;
[0176]S610,冗余组的所有数据节点将校验节点导出到数据节点的设备以re-add方式加入到RAIDl中;
[0177]S620,阻塞冗余组的所有数据节点的用户访问;
[0178]S630,冗余组的所有数据节点将未进行异步冗余计算的数据迁移至RAID4数据集后,S640,恢复冗余组的所有数据节点的用户访问;
[0179]待冗余组的所有数据节点的数据迁移完成后,执行RAID4同步恢复的第二步骤,其具体包括:
[0180]S650,收集冗余组的所有数据节点中已进行异步冗余计算的数据信息,并将数据信息进行合并,形成并集;
[0181]S650’,根据并集,设置校验节点中RAID4重构位图;
[0182]S660,校验节点向冗余组的所有数据节点发送读取已进行异步冗余计算的数据块的请求;
[0183]S670,冗余组的所有数据节点接收到请求之后,将已进行异步冗余计算的数据块返回给校验节点;
[0184]S680,校验节点根据已进行异步冗余计算的数据块,进行RAID4冗余计算;
[0185]S690,将计算得到的校验信息存储至校验节点中的第二校验卷中;
[0186]按照上述步骤,控制RAID4重构位图中的校验数据全部进行重构。
[0187]以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
【权利要求】
1.一种RAIDl和RAID4混合结构网络存储系统,用于与应用服务器连接进行数据的写操作或读操作,其特征在于,包括多个逻辑上相互独立的冗余组: 所述冗余组的结构为RAIDl和RAID4的混合结构; 所述冗余组包括多个数据节点和一个校验节点: 所述数据节点,用于在所述冗余组接到所述应用服务器的写操作请求时,将写操作的数据块缓存;并使用RAIDl方式,将所述写操作的数据块发送到所述校验节点中,形成RAIDl镜像; 所述校验节点,用于将所述写操作的数据块缓存,并与对应所述冗余组的其他数据节点的相同逻辑地址的数据块一起,组成RAID4冗余条带,进行异步冗余计算,计算完成后将校验信息存储,并在所述异步冗余计算及所述校验信息更新存储后,向所述数据节点发送数据迁移命令; 所述数据节点,还用于在接到所述校验节点发送的所述数据迁移命令后,将相应的所述写操作的数据块迁移至RAID4数据集。
2.根据权利要求1所述的RAIDl和RAID4混合结构网络存储系统,其特征在于,在所述冗余组接到所述应用服务器的读操作请求时,从所述数据节点读取读操作的数据块,发送给所述应用服务器。
3.根据权利要求2所述的RAIDl和RAID4混合结构网络存储系统,其特征在于,所述冗余组为分层存储的多缓存的R AIDl和RAID4混合结构; 所述数据节点包括第一数据收发模块、第一缓存单元和第一逻辑卷,其中: 所述第一数据收发模块,用于接收所述应用服务器的所述写操作请求或者所述读操作请求;在接收到所述写操作请求后,将所述写操作的数据块写入到所述第一缓存单元,并使用RAIDl方式,将所述写操作的数据块写入到所述校验节点;在接收到所述读操作请求后,将所述读操作的数据块发送给所述应用服务器; 所述第一缓存单元,用于缓存所述写操作的数据块或所述读操作的数据块,并在所述校验节点进行所述异步冗余计算之前,将缓存的所述写操作的数据块根据缓存策略,独立下刷至所述第一逻辑卷中; 所述第一逻辑卷,用于存储所述第一缓存单元独立下刷的所述写操作的数据块,并在接收到所述校验节点发送的所述数据迁移命令后,将相应的所述写操作的数据块迁移至所述RAID4数据集; 所述校验节点包括第二缓存单元、第二冗余计算单元和第二校验卷,其中: 所述第二缓存单元,用于缓存所述数据节点发送的所述写操作的数据块; 所述第二冗余计算单元,用于将所述第二缓存单元发送的所述写操作的数据块与对应的所述冗余组的其他数据节点的相同逻辑地址的数据块一起,组成RAID4冗余条带,进行所述异步冗余计算,计算完成后将所述校验信息写到所述第二校验卷中,并发送所述数据迁移命令给所述第一逻辑卷; 所述第二校验卷,用于存储所述校验信息。
4.根据权利要求3所述的RAIDl和RAID4混合结构网络存储系统,其特征在于,还包括降级处理模块和路径转换模块,其中: 所述降级处理模块,用于在所述冗余组中某个所述数据节点,或者所述校验节点出现故障时,控制所述冗余组进入降级状态,进行降级写操作或读操作; 所述路径转换模块,用于在所述数据节点故障情况下,将所述应用服务器和所述冗余组之间的数据访问路径从所述数据节点切换到所述校验节点,控制将所述写操作请求或所述读操作请求下发到所述校验节点;并在所述数据节点重新接入,进行数据重构完成后,将所述数据访问路径从所述校验节点切换回所述数据节点。
5.根据权利要求4所述的RAIDl和RAID4混合结构网络存储系统,其特征在于,所述降级处理模块包括第一降级处理单元;其中: 所述第一降级处理单元,用于在所述数据节点故障或者数据重构未完成状态下,所述数据访问路径从所述数据节点切换到所述校验节点后,控制所述校验节点执行所述降级写操作或读操作; 所述校验节点还包括第二数据收发模块,其中: 所述第二数据收发模块,用于在所述数据节点故障或者数据重构未完成状态下,接收所述应用服务器的所述写操作请求或者所述读操作请求;在接收到所述写操作请求后,使用降级的RAIDl方式,将所述写操作的数据块写入到所述第二缓存单元;在接收到所述读操作请求后,将所述读操作的数据块发送给所述应用服务器; 所述第二冗余计算单元,还用于在所述数据节点故障或者数据重构未完成状态下,按照RAID4降级处理方式,将所述第二缓存单元的所述写操作的数据块与对应所述冗余组的其他数据节点的相同逻辑地址的数据块一起,组成RAID4冗余条带,进行所述异步冗余计算,计算完成后将所述校验信息写入所述校验节点的所述第二校验卷中; 所述降级处理模块还包括第二降级处理单元和第二降级冗余处理单元,其中: 所述第二降级处理单元,用于在所述校验节点故障或者校验信息重构未完成状态下,控制所述数据节点执行RAIDl降级写操作或读操作; 所述第二降级冗余处理单元,用于在所述校验节点故障或者校验信息重构未完成状态下,将所述应用服务器发送的所述写操作的数据块写入所述第一缓存单元,然后返回写操作请求完成信息。
6.一种RAIDl和RAID4混合结构网络存储方法,其特征在于,包括如下步骤: 在与应用服务器连接进行数据的写操作或读操作过程中,所述冗余组的数据节点接到所述应用服务器的写操作请求时,将写操作的数据块缓存;并使用RAIDl方式,将所述写操作的数据块发送到对应所述冗余组的校验节点中,形成RAIDl镜像; 所述校验节点将所述写操作的数据块缓存,并与对应所述冗余组的其他数据节点中的相同逻辑地址的数据块一起,组成RAID4冗余条带,进行异步冗余计算,计算完成后将校验信息存储,并在所述异步冗余计算及所述校验信息更新存储后,向所述数据节点发送数据迁移命令; 所述数据节点在接到所述校验节点发送的所述数据迁移命令后,将相应的所述写操作的数据块迁移至RAID4数据集; 其中,所述冗余组为多个逻辑上相互独立的具有多个所述数据节点和一个所述校验节点的RAIDl和RAID4混合结构的冗余组。
7.根据权利要求6所述的RAIDl和RAID4混合结构网络存储方法,其特征在于,还包括如下步骤:在所述冗余组接到所述应用服务器的读操作请求时,从所述数据节点读取读操作的数据块,并将所述读操作的数据块发送给所述应用服务器。
8.根据权利要求7所述的RAIDl和RAID4混合结构网络存储方法,其特征在于,还包括RAID正常状态下的写操作和所述RAID正常状态下的读操作,其中: 所述RAID正常状态下的写操作包括如下步骤: 所述数据节点接收所述应用服务器的所述写操作请求; 将所述写操作的数据块存储至所述第一缓存单元中,同时将所述写操作的数据块转发至所述校验节点; 所述数据节点向所述应用服务器发送完成确认信息; 所述RAID正常状态下的读操作包括如下步骤: 所述数据节点接收所述应用服务器的读操作请求; 根据所述读操作请求,检测所述第一缓存单元中是否存在所述读操作的数据块; 当所述第一缓存单元中存在所述读操作的数据块时,将所述读操作的数据块发送给所述应用服务器;当所述第一缓存单元中不存在所述读操作的数据块时,从所述数据节点的第一逻辑卷读取所述读操作的数据块,然后返回给所述应用服务器; 所述将所述写操作的数据块转发至所述校验节点,包括如下步骤: 控制所述写操作的数据块存储至第二缓存单元中; 所述第二缓存单元对所述写操作的数据块从空间维度进行合并; 根据缓存策略,对所述写操作的数据块中符合异步冗余计算条件的数据块进行缓存回与O
9.根据权利要求8所述的RAIDl和RAID4混合结构网络存储方法,其特征在于,还包括RAID降级状态下的写操作和所述RAID降级状态下的读操作,其中: 所述RAID降级状态下的写操作包括如下步骤: 当所述冗余组的所述数据节点故障或数据重构未完成时,所述校验节点接收所述应用服务器下发的所述写操作请求;所述校验节点将所述写操作的数据块写入所述校验节点的所述第二缓存单元后,向所述应用服务器返回完成确认信息; 当所述校验节点故障或校验信息重构未完成时,所述数据节点接收所述应用服务器下发的所述写操作请求;所述数据节点将所述写操作的数据块写入所述数据节点的所述第一缓存单元后,向所述应用服务器返回写操作请求完成信息; 所述RAID降级状态下的读操作包括如下步骤: 当所述数据节点故障或数据重构未完成时,所述校验节点接收所述应用服务器下发的所述读操作请求;所述校验节点检测所述第二缓存单元;当所述第二缓存单元中存在所述读操作的数据块时,所述校验节点将所述读操作的数据块返回给所述应用服务器; 当所述校验节点故障或校验信息重构未完成时,所述数据节点接收所述应用服务器下发的所述读操作请求,并将所述读操作的数据块返回给所述应用服务器; 当所述第二缓存单元中不存在所述读操作的数据块时,所述校验节点向所述冗余组的其他数据节点发送读所述相同逻 辑地址的数据块的请求; 所述校验节点读取第二校验卷中与所述读操作的数据块相应的校验信息后,返回读校验完成信息;所述数据节点读取所述第一逻辑卷中的所述读操作的数据块,并返回给所述校验节占.当所述冗余组的其他数据节点的所有所述读操作的数据块返回给所述校验节点后,所述校验节点根据RAID4恢复算法重构出所述数据节点上的所述读操作的数据块。
10.根据权利要求9所述的RAIDl和RAID4混合结构网络存储方法,其特征在于,还包括所述数据节点的数据重构步骤; 所述数据节点的数据重构步骤包括RAIDl数据恢复步骤和RAID4同步恢复的第一步骤,其中: 所述RAIDl数据恢复步骤包括: 所述校验节点收集所有与故障数据相关的数据集合,并根据所述数据集合,设置所述校验节点中RAIDl第一数据位图; 控制所述RAIDl第一数据位图中的所有数据块进行恢复; 所述数据节点将所述校验节点的所述写操作的数据块存储至所述第一缓存单元中,并返回写操作请求完成信息; 所述RAID4同步恢复的第一步骤包括: 阻塞所述校验节点的用户访问,并获取所述校验节点上与所述故障数据相应的未进行所述异步冗余计算的 第二数据位图; 所述数据节点将所述第二数据位图的数据迁移至所述RAID4数据集; 恢复所述校验节点的用户访问,所述校验节点重新构建所述RAID4 ; 将所述第二数据位图设置到所述RAID4中; 所述RAID4根据所述第二数据位图设置同步校验信息,直至所述RAID4的所述校验信息冋步完成; 以及, 还包括所述校验节点的校验信息重构步骤; 所述校验节点的校验信息重构步骤包括所述冗余组的所有数据节点的数据迁移步骤和所述RAID4同步恢复的第二步骤,其中: 所述冗余组的所有数据节点的数据迁移步骤包括: 控制所述冗余组的所有数据节点中所述RAIDl第一数据位图为clean ; 所述冗余组的所有数据节点将所述校验节点导出到所述数据节点的设备以re-add方式加入到所述RAIDl中; 阻塞所述冗余组的所有数据节点的用户访问; 所述冗余组的所有数据节点将未进行所述异步冗余计算的数据迁移至所述RAID4数据集后,恢复所述冗余组的所有数据节点的用户访问; 所述RAID4同步恢复的第二步骤包括: 收集所述冗余组的所有数据节点中已进行所述异步冗余计算的数据信息,并将所述数据信息进行合并,形成并集; 根据所述并集,设置所述校验节点中所述RAID4重构位图; 所述校验节点向所述冗余组的所有数据节点发送读取所述已进行所述异步冗余计算的数据块的请求;所述冗余组的所有数据节点接收到所述请求之后,将所述已进行所述异步冗余计算的数据块返回给所述校验节点; 所述校验节点根据所述已进行所述异步冗余计算的数据块,进行所述RAID4冗余计算,并将计算得到的所述校验信息存储至所述第二校验卷中; 控制所述RAID4重构位图中的校验数 据全部进行重构。
【文档编号】G06F3/06GK103761058SQ201410033455
【公开日】2014年4月30日 申请日期:2014年1月23日 优先权日:2014年1月23日
【发明者】许鲁, 郭明阳, 杨琳 申请人:天津中科蓝鲸信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1