本申请涉及数据存储
技术领域:
,更具体地说,涉及一种元数据存储方法及系统。
背景技术:
:随着固态硬盘(solidstatedisk,ssd)技术的发展,固态硬盘在性能、寿命、可靠性及容量上已经达到了企业级别使用的程度,所以在近几年基于全闪存存储介质(例如固态硬盘)的全闪存阵列的研究如火如荼。固态硬盘相较于传统的机械磁盘主要有以下几个优点:1、固态硬盘的性能大大优于传统磁盘,企业级的固态硬盘的io时延以及可以达到50μs以下,而企业级的磁盘的时延都在毫秒级别;2、固态硬盘由于不需要机械马达,所以其在运行时噪音小且耗电少;3、固态硬盘由于不存在机械设备,所以整盘损坏概率小;4、固态硬盘的可定制性高,可以在高密设备上应用。固态硬盘在应用过程中,数据块是不能直接修改写的,在进行数据块的修改写时,需要将修改写的数据块重新映射到新的存储区域进行存储,然后将之前存储的修改前的数据库无效掉,并等待垃圾回收进行处理。但是固态硬盘不耐擦写,频繁的擦写操作不仅会消耗掉固态硬盘的寿命,而且大量的小块随机写操作会加剧垃圾回收处理的频度,且垃圾回收存在数据搬迁,会影响固态硬盘对外能够提供的io性能。如何减少对固态硬盘的小块随机写,以提升固态硬盘的性能,并提升固态硬盘的使用寿命,成为相关技术人员研究的重点。技术实现要素:为解决上述技术问题,本发明提供了一种元数据存储方法及系统,以实现降低对固态硬盘的小块随机写的频度,提升固态硬盘的性能,并提升固态硬盘的使用寿命的目的。为实现上述技术目的,本发明实施例提供了如下技术方案:一种元数据存储方法,应用于全闪存阵列,所述元数据存储方法包括:接收待修改元数据;根据所述待修改元数据的存储参数生成元数据块;将所述元数据块写入所述全闪存阵列的非易失性内存中,并判断所述非易失性内存中存储的元数据块总长度是否大于或等于预设长度,如果是,则对所述非易失性内存中存储的元数据块进行下盘。可选的,所述待修改元数据的存储参数包括:修改模式、存储位置及修改值。可选的,还包括:每隔预设时间对所述全闪存阵列的下层存储介质中存储的元数据及元数据块进行全量备份。可选的,还包括:在对元数据及元数据块进行全量备份,且接收到待修改元数据时,根据所述待修改元数据的存储参数确定与所述待修改元数据关联的源元数据,并根据所述待修改元数据的存储参数对所述源元数据进行重定向写。可选的,所述每隔预设时间对所述全闪存阵列的下层存储介质中存储的元数据及元数据块进行全量备份包括:设置全量备份标签;从所述全闪存阵列中存储的元数据及元数据块的开始位置以固定长度的数据段将元数据写入所述全闪存阵列下层存储介质中,直至所述全闪存阵列中存储的所有元数据及元数据块全部下盘完成;取消所述全量备份标签。可选的,还包括:当所述全闪存阵列的节点出现故障时,读取历史最近一次全量备份的元数据及元数据块;对读取的元数据及元数据块进行完整性校验;当读取的元数据及元数据块完整时,以历史最近一次全量备份的起始时间点对元数据及元数据块进行重放,直至读取的所有的元数据及元数据块重放完成。一种元数据存储系统,应用于全闪存阵列,所述元数据存储系统包括:接收模块,用于接收待修改元数据;数据块生成模块,用于根据所述待修改元数据的存储参数生成元数据块;下盘模块,用于将所述元数据块写入所述全闪存阵列的非易失性内存中,并判断所述非易失性内存中存储的元数据块总长度是否大于或等于预设长度,如果是,则对所述非易失性内存中存储的元数据块进行下盘。可选的,所述待修改元数据的存储参数包括:修改模式、存储位置及修改值。可选的,还包括:全量备份模块,用于每隔预设时间对所述全闪存阵列的下层存储介质中存储的元数据及元数据块进行全量备份。可选的,还包括:重定向写模块,用于在对元数据及元数据块进行全量备份,且接收到待修改元数据时,根据所述待修改元数据的存储参数确定与所述待修改元数据关联的源元数据,并根据所述待修改元数据的存储参数对所述源元数据进行重定向写。可选的,所述全量备份模块包括:标签设置单元,用于设置全量备份标签;写入单元,用于从所述全闪存阵列中存储的元数据及元数据块的开始位置以固定长度的数据段将元数据写入所述全闪存阵列下层存储介质中,直至所述全闪存阵列中存储的所有元数据及元数据块全部下盘完成;标签取消单元,用于取消所述全量备份标签。可选的,还包括:数据恢复模块,用于当所述全闪存阵列的节点出现故障时,读取历史最近一次全量备份的元数据及元数据块;对读取的元数据及元数据块进行完整性校验;当读取的元数据及元数据块完整时,以历史最近一次全量备份的起始时间点对元数据及元数据块进行重放,直至读取的所有的元数据及元数据块重放完成。从上述技术方案可以看出,本发明实施例提供了一种元数据存储方法及系统,其中,所述元数据存储方法针对元数据的修改单元一般较小的特性,根据接收的待修改元数据的存储参数生成元数据块,并存储于非易失性内存中;然后当非易失性内存中存储的元数据块总长度大于或等于预设长度时,将非易失性内存中存储的元数据块进行合并下盘的方式减少小块数据的随机写操作对下层存储介质(固态硬盘)的性能影响,从而实现提升固态硬盘的性能,并提升固态硬盘的使用寿命的目的。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为本申请的一个实施例提供的一种元数据存储方法的流程示意图;图2为本申请的另一个实施例提供的一种元数据存储方法的流程示意图;图3为本申请的又一个实施例提供的一种元数据存储方法的流程示意图;图4为本申请的一个优选实施例提供的一种元数据存储方法的流程示意图;图5为本申请的另一个优选实施例提供的一种元数据存储方法的流程示意图;图6为本申请的一个实施例提供的一种元数据存储系统的结构示意图;图7为本申请的另一个实施例提供的一种元数据存储系统的结构示意图;图8为本申请的又一个实施例提供的一种元数据存储系统的结构示意图;图9为本申请的一个优选实施例提供的一种元数据存储系统的结构示意图;图10为本申请的另一个优选实施例提供的一种元数据存储系统的结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本申请实施例提供了一种元数据存储方法,如图1所示,应用于全闪存阵列,所述元数据存储方法包括:s101:接收待修改元数据;s102:根据所述待修改元数据的存储参数生成元数据块;s103:将所述元数据块写入所述全闪存阵列的非易失性内存中,并判断所述非易失性内存中存储的元数据块总长度是否大于或等于预设长度,如果是,则对所述非易失性内存中存储的元数据块进行下盘。需要说明的是,在存储系统中,所有描述存储数据属性、位置以及在io栈各层需要的映射关系的数据都称为元数据。在全闪存阵列中,上层存储介质的地址是逻辑连续的,但是在上层存储介质中的写入操作一般是随机的。也就是说,假设上层存储介质的地址为0-10000,第一次写入数据的位置为0位置,第二次写入数据的位置就可能是100位置;所以一次性分配10000长度的存储单元存在存储介质的浪费,所以在数据存储的过程中就存在一次地址空间之间的映射。假如每次写入的数据长度均为8字节,写入的上层地址位置依次是0、64,、128、136,而在全闪存阵列的下层存储介质(例如固态硬盘或其他可长期保存数据的介质)处理这些数据时,其在下层存储介质中存储的位置则为0、1、2、3,时依照写入顺序排列的地址,那么这个过程组成的映射关系就为(0,0)(64,1)(128,2)和(136,3),这些映射关系就称为元数据。在本申请实施例中,所述待修改元数据的存储参数一般包括:修改模式、存储位置及修改值;其中,修改模式包括事务处理模式参数和基本模式参数,所述基本模式参数包括增加(add)、删除(del)和修改(mod),这三项中的任意一项或多项构成基本模式;所述事务处理模式参数还包括:传输起始(trans_begin)和传输完成(trans_end)。参考表1,为本申请的一个实施例提供的一种可行的元数据块的结构:表1元数据块结构modeposcontentadd0x1a85aadel0x859nulltrans_beginnullnullmod0x67caddaddox982ccdel0x176nulltrans_endnullnullmod0x7ac1al在表1中,mode表示修改模式,content表示修改值,pos表示存储位置。还需要说明的是,所述预设长度的取值可以为128kb(kilobyte,千字节),也可以为256kb,还可以为512kb,本申请对所述预设长度的具体取值并不做限定,具体视实际情况而定。在上述实施例的基础上,在本申请的一个实施例中,如图2所示,所述元数据存储方法还包括:s201:每隔预设时间对所述全闪存阵列的下层存储介质中存储的元数据及元数据块进行全量备份。为了降低系统出现故障导致元数据丢失时进行数据恢复的难度,每隔预设时间就对所述全闪存阵列的下层存储介质中存储的元数据及元数据块进行全量备份。所述下层存储介质可以为固态硬盘等长期存储介质。具体地,参考图3,所述每隔预设时间对所述全闪存阵列的下层存储介质中存储的元数据及元数据块进行全量备份包括:s2011:设置全量备份标签;s2022:从所述全闪存阵列中存储的元数据及元数据块的开始位置以固定长度的数据段将元数据写入所述全闪存阵列下层存储介质中,直至所述全闪存阵列中存储的所有元数据及元数据块全部下盘完成;s2023:取消所述全量备份标签。需要说明的是,所述固定长度可以为8字节,也可以为12字节,还可以为16字节,本申请对所述固定长度的具体取值并不做限定,具体视实际情况而定。还需要说明的是,当系统正在进行全量备份的过程中,需要对元数据进行修改时,需要对需要进行修改的元数据进行重定向写的操作。具体地,参考图4,所述元数据存储方法还包括:s301:在对元数据及元数据块进行全量备份,且接收到待修改元数据时,根据所述待修改元数据的存储参数确定与所述待修改元数据关联的源元数据,并根据所述待修改元数据的存储参数对所述源元数据进行重定向写。重定向写(redirectonwrite,row)是指将原来的数据段拷贝到新的内存位置,将拷贝的位置数据进行修改,并修改对应的该数据段类型,在内存中重新建立关系的操作。在重定向写的过程中,在下盘时需要将之前未修改的数据段下盘,下盘完成后未修改的数据段内存释放,并将数据段类型修改到未修改写的状态。优选的,在进行全量备份的过程中,从所述全闪存阵列中存储的元数据及元数据块的开始位置以固定长度的数据段将元数据写入所述全闪存阵列下层存储介质的固定位置中,以便全量备份数据的查找。在上述实施例的基础上,在本申请的又一个实施例中,如图5所示,所述元数据存储方法还包括:s401:当所述全闪存阵列的节点出现故障时,读取历史最近一次全量备份的元数据及元数据块;s402:对读取的元数据及元数据块进行完整性校验;s403:当读取的元数据及元数据块完整时,以历史最近一次全量备份的起始时间点对元数据及元数据块进行重放,直至读取的所有的元数据及元数据块重放完成。需要说明的是,对元数据及元数据块进行完整性校验主要通过元数据和元数据块中的校验码(例如md5值等)进行计算验证,具体校验过程已为本领域技术过程所熟知,本申请在此不做赘述。下面对本申请实施例提供的元数据存储系统进行描述,下文描述的元数据存储系统与上文描述的元数据存储方法可相互对应参照。一种元数据存储系统,应用于全闪存阵列,如图6所示,所述元数据存储系统包括:接收模块100,用于接收待修改元数据;数据块生成模块200,用于根据所述待修改元数据的存储参数生成元数据块;下盘模块300,用于将所述元数据块写入所述全闪存阵列的非易失性内存中,并判断所述非易失性内存中存储的元数据块总长度是否大于或等于预设长度,如果是,则对所述非易失性内存中存储的元数据块进行下盘。在上述实施例的基础上,在本申请的一个实施例中,所述待修改元数据的存储参数包括:修改模式、存储位置及修改值。在上述实施例的基础上,在本申请的一个实施例中,如图7所示,还包括:全量备份模块400,用于每隔预设时间对所述全闪存阵列的下层存储介质中存储的元数据及元数据块进行全量备份。在上述实施例的基础上,在本申请的另一个实施例中,如图8所示,还包括:重定向写模块500,用于在对元数据及元数据块进行全量备份,且接收到待修改元数据时,根据所述待修改元数据的存储参数确定与所述待修改元数据关联的源元数据,并根据所述待修改元数据的存储参数对所述源元数据进行重定向写。在上述实施例的基础上,在本申请的又一个实施例中,如图9所示,还包括:所述全量备份模块400包括:标签设置单元410,用于设置全量备份标签;写入单元420,用于从所述全闪存阵列中存储的元数据及元数据块的开始位置以固定长度的数据段将元数据写入所述全闪存阵列下层存储介质中,直至所述全闪存阵列中存储的所有元数据及元数据块全部下盘完成;标签取消单元430,用于取消所述全量备份标签。在上述实施例的基础上,在本申请的再一个实施例中,如图10所示,还包括:数据恢复模块600,用于当所述全闪存阵列的节点出现故障时,读取历史最近一次全量备份的元数据及元数据块;对读取的元数据及元数据块进行完整性校验;当读取的元数据及元数据块完整时,以历史最近一次全量备份的起始时间点对元数据及元数据块进行重放,直至读取的所有的元数据及元数据块重放完成。综上所述,本申请实施例提供了一种元数据存储方法及系统,其中,所述元数据存储方法针对元数据的修改单元一般较小的特性,根据接收的待修改元数据的存储参数生成元数据块,并存储于非易失性内存中;然后当非易失性内存中存储的元数据块总长度大于或等于预设长度时,将非易失性内存中存储的元数据块进行合并下盘的方式减少小块数据的随机写操作对下层存储介质(固态硬盘)的性能影响,从而实现提升固态硬盘的性能,并提升固态硬盘的使用寿命的目的。本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。当前第1页12