高性能廉价磁盘冗余阵列raid机制的处理方法及装置的制造方法

文档序号:10665657阅读:310来源:国知局
高性能廉价磁盘冗余阵列raid机制的处理方法及装置的制造方法
【专利摘要】本发明提供了一种高性能廉价磁盘冗余阵列RAID机制的处理方法及装置,其中该方法包括:获取需要写输入/输出的一个或多个数据的模型;将一个或多个数据的模型与指定分条进行比较,将小于分条的数据写入第一硬盘中,其中,第一硬盘用于缓存并合并小于分条的数据至满分条;对第一硬盘中的满足满分条的数据执行写操作。通过本发明,解决了相关技术中基于RAID执行写数据的方式步骤冗余导致性能低的问题,进而达到了提高RAID执行写数据的效率的效果。
【专利说明】
高性能廉价磁盘冗余阵列RAID机制的处理方法及装置
技术领域
[0001]本发明涉及存储领域,具体而言,涉及一种高性能廉价磁盘冗余阵列RAID机制的处理方法及装置。
【背景技术】
[0002]廉价磁盘冗余阵列(RedundantArray of Inexpensive Disks简称为RAID),RAID技术将一个个单独的磁盘以不同的组合方式形成一个逻辑硬盘,从而提高了磁盘读取的性能和数据的安全性,不同的组合方式用RAID级别来标识。
[0003]相关技术中应用最广的RAID5和RAID6在随机写输出/输出I/O模型下存在很大的性能瓶颈,而随机写I/O模型又是目前最常见的业务模型,以RAID5为例来描述一下RAID处理写I/O的流程。
[0004]图1是相关技术中基于RAID的硬盘分条示意图,如图1所示,RAID按照固定的大小将每个硬盘切分成不同大小的分条单元(如:64K、128K等),然后按顺序将硬盘的分条单元组成一个个分条,比如用户写入512Κ的数据,RAID将512K的数据按64K依次存储下图的Dl?D8,但是RAID写入到硬盘中的数据不仅仅只是用户数据,同时写入硬盘的还有按分条计算出的校验数据Pl和P2,校验数据由用户数据通过异或算法计算得出,如Pl = Dl异或D2异或D3异或D4。
[0005]可见,依据以上的RAID原理来看,用户如果只是随机的写入一小块数据,如4K,那RAID的流程就复杂了,图2是相关技术中随机写入数据的示意图,随机写入64K数据,如图2所示,其中,该随机写入的方法步骤包括:
[0006]步骤S202:用户随机写入4K数据Dl ’ ;
[0007]步骤S204:分别读出硬盘中DI和PI的4K旧数据;
[0008]步骤S206:计算出新的校验数据P1’ ;
[0009]其中,由于Pl = Dl异或D2异或D3异或D4,所以Dl异或Pl = D2异或D3异或D4 ;ΡΓ = D1’异或D2异或D3异或D4 = D1’异或Dl异或Pl ;
[0010]步骤S208:写入用户新数据D1’和新校验数据Ρ1’。
[0011]从上面的流程可以看出,相关技术中为了写入一小块数据,需要额外多读出两块数据。
[0012]针对相关技术中基于RAID执行写数据的方式步骤冗余导致性能低的问题,目前尚未提出有效的解决方案。

【发明内容】

[0013]本发明的主要目的在于提供一种高性能廉价磁盘冗余阵列RAID机制的处理方法及装置,以至少解决相关技术中基于RAID执行写数据的方式步骤冗余导致性能低的问题。
[0014]根据本发明的一个方面,提供了一种廉价磁盘冗余阵列RAID机制的处理方法,包括:获取需要写输入/输出的一个或多个数据的模型;将所述一个或多个数据的模型与指定分条进行比较,将小于所述指定分条的数据写入第一硬盘中,其中,所述第一硬盘用于缓存并合并所述小于所述指定分条的数据至满分条;对所述第一硬盘中的满足满分条的数据执行写操作。
[0015]进一步地,所述第一硬盘用于缓存并合并所述数据至满分条包括:缓存所述一个或多个数据中模型小于所述指定分条的数据并合并所述小于所述指定分条的数据至大于等于所述指定分条。
[0016]进一步地,对所述第一硬盘中的满足满分条的数据执行写操作包括:将合并后的数据写入第二硬盘中,其中,所述第二硬盘用于执行输入/输出数据的满分条写操作。
[0017]进一步地,所述方法还包括:将所述一个或多个数据中模型大于等于所述指定分条的数据写入所述第二硬盘中。
[0018]进一步地,所述第一硬盘为固态硬盘SSD,所述第二硬盘为串行连接的小型计算机系统接口 SAS盘或串行高级技术附件SATA盘。
[0019]根据本发明的另一个方面,提供了一种高性能廉价磁盘冗余阵列RAID机制的处理装置,包括:获取模块,用于获取需要写输入/输出的一个或多个数据的模型;第一写入模块,用于将所述一个或多个数据的模型与指定分条进行比较,将小于所述指定分条的数据写入第一硬盘中,其中,所述第一硬盘用于缓存并合并所述小于所述指定分条的数据至满分条;执行模块,用于对所述第一硬盘中的满足满分条的数据执行写操作。
[0020]进一步地,所述第一写入模块,还用于缓存所述一个或多个数据中模型小于所述指定分条的数据并合并所述小于所述指定分条的数据至大于等于所述指定分条。
[0021]根据权利要求7所述的装置,其特征在于,
[0022]所述执行模块,还用于将合并后的数据写入第二硬盘中,其中,所述第二硬盘用于执行输入/输出数据的满分条写操作。
[0023]根据权利要求8所述的装置,其特征在于,所述装置还包括:
[0024]第二写入模块,用于将所述一个或多个数据中模型大于等于所述指定分条的数据写入所述第二硬盘中。
[0025]进一步地,所述第一硬盘为固态硬盘SSD,所述第二硬盘为串行连接的小型计算机系统接口 SAS盘或串行高级技术附件SATA盘。
[0026]通过本发明,采用在获取到需要执行写输入/输出(I/O)数据的模型之后,将一个或多个数据的模型与指定分条进行比较,将小于分条的数据写入第一硬盘中,其中,第一硬盘用于缓存并合并小于分条的数据至满分条,从而可以通过第一硬盘缓存和合并将小于指定分条的数据合并至满分条,进而可以对数据执行满分条写操作,这样就可以直接计算校验值,然后把数据写入硬盘。通过本发明,解决了相关技术中基于RAID执行写数据的方式步骤冗余导致性能低的问题,进而达到了提高RAID执行写数据的效率的效果。
【附图说明】
[0027]此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0028]图1是相关技术中基于RAID的硬盘分条示意图;
[0029]图2是相关技术中随机写入数据的示意图;
[0030]图3是根据本发明实施例的高性能廉价磁盘冗余阵列RAID机制的处理方法流程图;
[0031]图4是根据本发明实施例的高性能廉价磁盘冗余阵列RAID机制的处理装置结构框图;
[0032]图5是根据本发明实施例的高性能廉价磁盘冗余阵列RAID机制的处理装置可选结构框图;
[0033]图6是根据本发明可选实施例的实现尚性能RAID机制的不意图;
[0034]图7是根据本发明可选实施例的系统读请求处理方法的流程图;
[0035]图8是根据本发明可选实施例的系统写请求处理方法的流程图;
[0036]图9是根据本发明可选实施例的I/O分流模块处理I/O请求方法流程图。
【具体实施方式】
[0037]需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
[0038]本实施例提供了一种高性能廉价磁盘冗余阵列RAID机制的处理方法,图3是根据本发明实施例的高性能廉价磁盘冗余阵列RAID机制的处理方法流程图,如图3所示,该方法的步骤包括:
[0039]步骤S302:获取需要写输入/输出(I/O)的一个或多个数据的模型;
[0040]步骤S304:将一个或多个数据的模型与指定分条进行比较,将小于指定分条的数据写入第一硬盘中;
[0041]其中,第一硬盘用于缓存并合并小于指定分条的数据至满分条;
[0042]步骤S306:对所述第一硬盘中的满足满分条的数据执行写操作。
[0043]通过本实施例,采用在获取到需要执行写输入/输出I/O数据的模型之后,将一个或多个数据的模型与指定分条进行比较,将小于分条的数据写入第一硬盘中,其中,第一硬盘用于缓存并合并小于分条的数据至满分条,从而可以通过第一硬盘缓存和合并将小于指定分条的数据合并至满分条,进而可以对数据执行满分条写操作,这样就可以直接计算校验值,然后把数据写入硬盘。通过本实施例,解决了相关技术中基于RAID执行写数据的方式步骤冗余导致性能低的问题,进而达到了提高RAID执行写数据的效率的效果。
[0044]对于本实施例中涉及到的第一硬盘用于缓存并合并数据至满分条的方式,在本实施例的一个可选实施方式中可以通过如下方式来实现:缓存一个或多个数据中模型小于指定分条的数据并合并该小于指定分条的I/o数据至大于等于指定分条。
[0045]而基于上述缓存并合并小I/O的操作,在本实施例的另一个可选实施方式中,在小于该指定分条的数据在该第一硬盘中缓存并合并至满分条之后,再对合并后的数据在第二硬盘中进行满分条写操作。
[0046]而对于本实施例中涉及到的大于指定分条的数据将直接写入第二硬盘中,在该第二硬盘中进行满分条写操作。
[0047]也就是说,本实施例采用了判断该I/O的大小是否大于等于分条大小,即是否可以按照满分条写的方式下盘,如果I/O小于分条大小,将小于分条的I/O缓存并合并,在合并后的I/O大于等于分条时,再对合并后的数据进行满分条写入,保证了每次执行写入的数据都是能够执行满分条的写入。需要说明的是,上述方式仅仅是本发明的可选实施方式,并不够成对本发明的限定。
[0048]对于本实施例涉及到的第一硬盘和第二硬盘,在不同的应用场景中可以采用相应的硬盘,可选地,在本实施例中第一硬盘为固态硬盘(Solid State Drives简称为SSD),第二硬盘为串行连接的小型计算机系统接口(Serial Attached SCSI简称为SAS)盘或串行高级技术附件(Serial Advanced Technology Attachment简称为SATA)盘。需要说明的是,上述仅仅是对第一硬盘和第二硬盘进行举例说明,并不够成对第一硬盘和第二硬盘选择的限定。
[0049]也就是说,在本实施例的一个可选应用场景中,对于小于分条的I/O数据将数据写入RAIDlO固态硬盘SSD中,而不写入该数据本应该写入的串行连接SCSI (SAS)盘或串行高级技术附件SATA盘中,待SSD中缓存合并为满分条后,再由后台线程写入SAS盘或SATA盘。
[0050]在本实施例中还提供了一种高性能廉价磁盘冗余阵列RAID机制的处理装置,该装置用于实现上述实施例及可选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
[0051]图4是根据本发明实施例的高性能廉价磁盘冗余阵列RAID机制的处理装置结构框图,如图4所示,该装置包括:获取模块42,用于获取需要写输入/输出的一个或多个数据的模型;第一写入模块44,与获取模块42耦合连接,用于将一个或多个数据的模型与指定分条进行比较,将小于指定分条的数据写入第一硬盘中,其中,第一硬盘用于缓存并合并小于指定分条的数据至满分条;执行模块46,与第一写入模块44耦合连接,用于对第一硬盘中的满足满分条的数据执行写操。。
[0052]可选地,第一写入模块44,还用于缓存一个或多个数据中模型小于指定分条的数据并合并小于该指定分条的数据至大于等于指定分条。
[0053]可选地,执行模块46,还用于将合并后的数据写入第二硬盘中,其中,第二硬盘用于执行输入/输出数据的满分条写操作。
[0054]图5是根据本发明实施例的高性能廉价磁盘冗余阵列RAID机制的处理装置可选结构框图,如图5所示,该装置还包括:第二写入模块52,与获取模块42耦合连接,用于将一个或多个数据中模型大于等于指定分条的数据写入第二硬盘中。
[0055]可选地,对于本实施例装置中涉及到的第一硬盘可以为固态硬盘SSD,第二硬盘可以为串行连接的小型计算机系统接口 SAS盘或串行高级技术附件SATA盘。
[0056]下面结合本发明可选实施例,对本发明进行举例说明;
[0057]相对于相关技术中的RAID实现方法,本可选实施例通过识别写I/O的模型,并利用高性能的固态硬盘来缓存合并写数据,将随机写1的模型转换为满分条的大1模型,将随机写1的性能提升几十倍,甚至达到顺序写带宽的性能,解决了相关技术中RAID算法的性能瓶颈的问题。
[0058]图6是根据本发明可选实施例的实现高性能RAID机制的示意图,如图6所示,在本可选实施例中,I/O分流模块,用于识别写I/O的模型,按照分条大小为粒度,判断该I/O的大小是否大于等于分条大小,是否可以按照满分条写的方式下盘,如果I/O小于分条大小,那么则将数据写入RAIDlO固态硬盘SSD中,而不写入该数据本应该写入的串行连接SCSI盘SAS或的串行高级技术附件SATA盘中,待SSD中缓存合并为满分条后,再由后台线程写入SAS盘或SATA盘。
[0059]RAIDlO SSD,用于缓存那些非满分条的小1的存储空间,由于SSD盘比SAS或SATA盘的随机读写性能高出几十倍?几百倍,并且RAIDlO的随机写性能比RAID5和RAID6高出几倍,所以通过RAIDlO SSD的缓存作用能解决现有RAID的性能问题。该方法的步骤包括:
[0060]步骤S602:识别写I/O的模型;
[0061]步骤S604:判断该I/O的大小是否大于等于分条大小;在I/O大于等于分条时执行步骤S608 ;在I/O小于分条时,执行步骤S606 ;
[0062]步骤S606:在RAIDlO SSD中缓存并合并小于分条的I/O ;在合并后的I/O大于等于分条后,执行步骤S610;
[0063]步骤S608:将大于分条的I/O数据,通过后台线程写入SAS盘或SATA盘。
[0064]下面通过本实施例的可选实施方式进行详细说明;
[0065]可选实施方式一:用户配置使用高性能RAID机制;
[0066]步骤S21:用户选择需要配置的VD或POOL ;
[0067]步骤S22:系统检测该VD或POOL是否能配置该功能;
[0068]其中,要求VD或POOL对应的RAID级别为非RAID1/10/0的其他RAID级别;
[0069]步骤S23:用户选择已存在的RAIDlO SSD缓存区,如果希望新建,则用户选择需要添加的SSD盘,并创建出RAIDlO SSD缓存区;
[0070]步骤S24:点击确定,建立其VD或POOL和RAID10 SSD缓存区的对应关系。
[0071]可选实施方式二:
[0072]图7是根据本发明可选实施例的系统读请求处理方法的流程图,如图7所示,该方法的步骤包括:
[0073]步骤S702:1/0分流模块根据数据查找渡请求对应的分条信息;在查找到分条信息时执行步骤S704 ;在未找到分条信息时执行步骤S706 ;
[0074]步骤S704:RAID SAS根据读请求的地址信息,将读请求下发到硬盘;之后执行步骤 S712 ;
[0075]步骤S706:根据分条信息中记录的数据记录位图来确定该请求饿哪些数据存放在RAIDlO SSD中,拆分出RAIDlO SSD存放数据读请求;
[0076]步骤S708 =RAIDlO SSD根据读请求的地址信息,将读请求下发到硬盘,拆分出RAID5SAS存放数据的读请求;
[0077]步骤S710:RAID SAS根据读请求的地址信息,将读请求下发到硬盘;
[0078]步骤S712:返回读1/0成功结果及数据;
[0079]步骤S714:1/0分流模块合并SSD和SAS上读出的数据。
[0080]可选实施方式三:
[0081]图8是根据本发明可选实施例的系统写请求处理方法的流程图,如图8所示,该方法的步骤包括:
[0082]步骤S802:1/0分流模块根据1/0请求的RAID地址和长度,判断该写请求是否为满分条写;在判断结果为是时执行步骤S804 ;在判断结果为否时,执行步骤S806 ;
[0083]步骤S804:RAID SAS计算校验,然后将数据写入对应的硬盘;之后执行步骤S812 ;
[0084]步骤S806:1/0分流模块根据元素查找该写请求对应的分条信息;
[0085]步骤S808:如果没有查找到分条信息,则分配一个新的分条及其对应的RAIDlOSSD硬盘空间根据分条信息记录的RAID地址,将请求下发给配置的RAIDlO SSD处理;
[0086]步骤S810 =RAIDlO SSD根据镜像关系,将数据写入对应的硬盘;
[0087]步骤S812:返回写请求成功。
[0088]可选实施方式四:
[0089]图9是根据本发明可选实施例的I/O分流模块处理I/O请求方法流程图,如图9所示,该方法的步骤包括:
[0090]前台处理:
[0091]步骤S902:1/0分流模块根据写I/O请求的RAID地址和长度,判断出该写请求为非满分条写;
[0092]步骤S904:查找该请求对应的分条信息;
[0093]其中,依据RAID ID、地址和请求长度计算出唯一的分案索引;
[0094]步骤S906:如果查找到分条信息,分配新的分条信息结果;如果找到分条信息,则按已有的分条信息处理;
[0095]步骤S908:1/0分流模块向RAIDlO SSD下发写请求;
[0096]步骤S910 =RAIDlO SSD向I/O分流模块返回写成功;
[0097]步骤S912:修改分条信息中记录脏数据的位图;
[0098]其中,按扇区标记,I表示有脏数据,O表示无脏数据。
[0099]后台线程:包括场景一和场景二 ;
[0100]场景一:
[0101]步骤S914:后台线程扫描分条信息,找出已凑齐分满分条的分条;
[0102]步骤S916:1/0分流模块向RAIDlO SSD下发读请求;
[0103]步骤S918 =RAIDlO SSD向I/O分流模块返回读出的数据;
[0104]步骤S920:1/0分流模块向RAIDlO SAS下发写请求;
[0105]步骤S922 =RAIDlO SAS向I/O分流模块返回写成功。
[0106]场景二:
[0107]步骤S924:1/0分流模块确定如果脏数据站SSD空间的比例已超过高水位,则启动强制将SSD中的数据写入SAS ;
[0108]步骤S926:1/0分流模块根据分条终端饿数据从躲到少的排序方式,一次将SSD中的数据写入SAS ;
[0109]步骤S928:1/0分流模块向RAIDlO SSD下发读请求;
[0110]步骤S930:1/0分流模块度该分条中,SSD上没有的数据;
[0111]步骤S932 =RAIDlO SSD向I/O分流模块返回读出的数据;
[0112]步骤S934 =RAIDlO SAS向I/O分流模块返回读出的数据;
[0113]步骤S936:1/0分流模块合并从SSD和SAS上读出的数据;
[0114]步骤S938:1/0分流模块向RAIDlO SAS下发写请求;
[0115]步骤S940 =RAIDlO SAS向I/O分流模块返回写成功。
[0116]通过本本可选实施例,在RAIDlO系统中,用户写入一块数据不需要计算校验,直接采用写两份数据的方式来保证可靠性,相较于RAID5,随机小块写的性能高出很多倍。
[0117]在另外一个实施例中,还提供了一种软件,该软件用于执行上述实施例及优选实施方式中描述的技术方案。
[0118]在另外一个实施例中,还提供了一种存储介质,该存储介质中存储有上述软件,该存储介质包括但不限于:光盘、软盘、硬盘、可擦写存储器等。
[0119]显然,本领域的技术人员应该明白,上述本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
[0120]上述仅为本发明的可选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种高性能廉价磁盘冗余阵列RAID机制的处理方法,其特征在于,包括: 获取需要写输入/输出的一个或多个数据的模型; 将所述一个或多个数据的模型与指定分条进行比较,将小于所述指定分条的数据写入第一硬盘中,其中,所述第一硬盘用于缓存并合并所述小于所述指定分条的数据至满分条; 对所述第一硬盘中的满足满分条的数据执行写操作。2.根据权利要求1所述的方法,其特征在于,所述第一硬盘用于缓存并合并所述数据至满分条包括: 缓存所述一个或多个数据中模型小于所述指定分条的数据并合并所述小于所述指定分条的数据至大于等于所述指定分条。3.根据权利要求2所述的方法,其特征在于,对所述第一硬盘中的满足满分条的数据执行写操作包括: 将合并后的数据写入第二硬盘中,其中,所述第二硬盘用于执行输入/输出数据的满分条写操作。4.根据权利要求3所述的方法,其特征在于,所述方法还包括: 将所述一个或多个数据中模型大于等于所述指定分条的数据写入所述第二硬盘中。5.根据权利要求4所述的方法,其特征在于,所述第一硬盘为固态硬盘SSD,所述第二硬盘为串行连接的小型计算机系统接口 SAS盘或串行高级技术附件SATA盘。6.一种高性能廉价磁盘冗余阵列RAID机制的处理装置,其特征在于,包括: 获取模块,用于获取需要写输入/输出的一个或多个数据的模型; 第一写入模块,用于将所述一个或多个数据的模型与指定分条进行比较,将小于所述指定分条的数据写入第一硬盘中,其中,所述第一硬盘用于缓存并合并所述小于所述指定分条的数据至满分条; 执行模块,用于对所述第一硬盘中的满足满分条的数据执行写操作。7.根据权利要求6所述的装置,其特征在于, 所述第一写入模块,还用于缓存所述一个或多个数据中模型小于所述指定分条的数据并合并所述小于所述指定分条的数据至大于等于所述指定分条。8.根据权利要求7所述的装置,其特征在于, 所述执行模块,还用于将合并后的数据写入第二硬盘中,其中,所述第二硬盘用于执行输入/输出数据的满分条写操作。9.根据权利要求8所述的装置,其特征在于,所述装置还包括: 第二写入模块,用于将所述一个或多个数据中模型大于等于所述指定分条的数据写入所述第二硬盘中。10.根据权利要求9所述的装置,其特征在于,所述第一硬盘为固态硬盘SSD,所述第二硬盘为串行连接的小型计算机系统接口 SAS盘或串行高级技术附件SATA盘。
【文档编号】G06F3/06GK106033320SQ201510106848
【公开日】2016年10月19日
【申请日】2015年3月11日
【发明人】舒坦
【申请人】中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1