一种SSD中Journal元数据的保存方法及系统技术方案

技术编号:16662432 阅读:23 留言:0更新日期:2017-11-30 11:44
本发明专利技术实施例公开了一种SSD中Journal元数据的保存方法及系统,包括将新增的元数据存储至预先建立的与元数据对应的缓冲区中;判断缓冲区中存储的第一增量元数据是否达到4k,若是,获取第一增量元数据及3个4k大小的第一base元数据,将获取的这些数据刷写至flash中;当接收到下电指令后判断缓冲区中的第二增量元数据是否达到4k,若是,获取第二增量元数据及3个4k大小的第二base元数据,将第二增量元数据及3个4k大小的第二base元数据刷写至flash中;若否,采用无效数据填充缓冲区中的剩余地址,将缓冲区中的总数据信息作为第二增量元数据。本发明专利技术实施例降低了下电保存过程中所需保存的元数据数量,提高了系统的可靠性。

【技术实现步骤摘要】
一种SSD中Journal元数据的保存方法及系统
本专利技术实施例涉及数据存储
,特别是涉及一种SSD中Journal元数据的保存方法及系统。
技术介绍
目前,SSD盘的下电过程分为两种,一种是正常下电,另一种是异常下电,无论哪种下电过程,对于元数据的保存过程而言JM(JournalManager)模块是不进行区分的,唯一的区别是在正常下电时SSD盘是收到了host端的下电信号后执行下电时的保存等相关处理的操作,但此时是可以使用SSD的外接电源来完成下电时的处理过程的,而异常下电大部分情况下是由于外接电源突然断开导致的,所以此时的下电保存的工作所使用的电源要依赖于SSD自身的大电容进行放电。现有技术中,在下电时刻到来时,JM模块将所有的元数据进行保存,即当SSD下电时将整个元数据刷写至flash中,对于异常下电的情况而言,由于下电保存工作所使用的电源依赖于SSD自身的大电容的放电,并且SSD中的电容的放电时间有限,所以可能会导致数据保存不完整,从而使数据的安全性降低。因此,如何提供一种解决上述技术问题的SSD中Journal元数据的保存方法及系统成为本领域的技术人员需要解决的问题。
技术实现思路
本专利技术实施例的目的是提供一种SSD中Journal元数据的保存方法及系统,在确保了元数据的完整性的基础上,降低了下电保存过程中所需保存的元数据数量,进一步降低了系统下电时导致元数据不能完全保存的风险,提高了系统的可靠性。为解决上述技术问题,本专利技术实施例提供了一种SSD中Journal元数据的保存方法,包括:S11:将新增的元数据存储至预先建立的、与所述元数据对应的缓冲区中;S12:判断所述缓冲区中所述存储的第一增量元数据是否达到4k,如果是,则进入S13;S13:获取所述第一增量元数据及3个4k大小的第一base元数据,并将所述第一增量元数据及3个所述4k大小的第一base元数据刷写至flash中;S14:当接收到下电指令后,判断所述缓冲区中的第二增量元数据是否达到4k,如果是,进入S15,否则,进入S16;S15:获取所述第二增量元数据及3个4k大小的第二base元数据,并将所述第二增量元数据及3个所述4k大小的第二base元数据刷写至flash中;S16:采用无效数据填充所述缓冲区中的剩余地址,使所述缓冲区中所存储的总数据信息达到4k,将所述总数据信息作为所述第二增量元数据,并返回S15。可选的,所述将所述第一增量元数据及3个所述4k大小的第一base元数据刷写至flash中的过程具体为:获取4个LBA,并依据各个所述LBA分别计算出与所述第一增量元数据及与各个所述第一base元数据分别对应的pba;将所述第一增量元数据及3个所述4k大小的第一base元数据分别依据与其一一对应的pba刷写至flash中;所述方法还包括依据各个所述pba更新L2p列表。可选的,在S15之后所述方法还包括:从所述L2p列表中获取与各个所述pba对应的一级元数据;将所述一级元数据以4k为单位刷写至所述flash中。可选的,所述方法还包括:分别依据各个4k大小的一级元数据生成与各个所述4k大小的一级元数据分别相应的各个二级元数据;将各个所述二级元数据刷写至flash中的superblock区域中。为解决上述技术问题,本专利技术实施例提供了一种SSD中Journal元数据的保存系统,包括:存储模块,用于将新增的元数据存储至预先建立的、与所述元数据对应的缓冲区中;判断模块,用于判断所述缓冲区中所述存储的第一增量元数据是否达到4k,如果是,则触发刷写模块;用于判断所述缓冲区中的第二增量元数据是否达到4k,如果是,则触发所述刷写模块,否则,触发填充模块;所述刷写模块,用于获取所述第一增量元数据及3个4k大小的第一base元数据,并将所述第一增量元数据及3个所述4k大小的第一base元数据刷写至flash中;还用于获取所述第二增量元数据及3个4k大小的第二base元数据,并将所述第二增量元数据及3个所述4k大小的第二base元数据刷写至flash中;接收模块,用于当接收到下电指令后触发所述判断模块;所述填充模块,用于采用无效数据填充所述缓冲区中的剩余地址,使所述缓冲区中所存储的总数据信息达到4k,将所述总数据信息作为所述第二增量元数据,并触发所述刷写模块。可选的,所述刷写模块包括:获取单元,用于获取4个LBA,并依据各个所述LBA分别计算出与所述第一增量元数据及与各个所述第一base元数据分别对应的pba;刷写单元,用于将所述第一增量元数据及3个所述4k大小的第一base元数据分别依据与其一一对应的pba刷写至flash中;则,所述系统还包括更新模块,用于依据各个所述pba更新L2p列表。本专利技术实施例提供了一种SSD中Journal元数据的保存方法及系统,包括:将新增的元数据存储至预先建立的、与元数据对应的缓冲区中;判断缓冲区中存储的第一增量元数据是否达到4k,如果第一增量元数据达到4k,则获取第一增量元数据及3个4k大小的第一base元数据,并将第一增量元数据及3个4k大小的第一base元数据刷写至flash中;当接收到下电指令后,判断缓冲区中的第二增量元数据是否达到4k,如果第二增量元数据达到4k,则获取第二增量元数据及3个4k大小的第二base元数据,并将第二增量元数据及3个4k大小的第二base元数据刷写至flash中;若第二增量元数据没有达到4k,采用无效数据填充缓冲区中的剩余地址,使缓冲区中所存储的总数据信息达到4k,将总数据信息作为第二增量元数据。本专利技术实施例中,预先建立与每种元数据分别对应的缓冲区,并且在系统运行过程中当缓冲区中的第一增量元数据达到4k时,则将该第一增量元数据和4k大小的第一base元数据按照1:3的对应关系刷写至flash中,在系统运行过程中即可将相应的元数据刷写至flash中,使当SSD下电时,仅需要将此时的缓冲区中所存储的第二增量元数据及3个相应的第二base元数据刷写至flash中即可,在确保了元数据的完整性的基础上,降低了下电保存过程中所需保存的元数据数量,进一步降低了系统下电时导致元数据不能完全保存的风险,提高了系统的可靠性。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供的一种SSD中Journal元数据的保存方法的流程示意图;图2为本专利技术实施例提供的一种SSD中Journal元数据的保存系统的结构示意图。具体实施方式本专利技术实施例提供了一种SSD中Journal元数据的保存方法及系统,在确保了元数据的完整性的基础上,降低了下电保存过程中所需保存的元数据数量,进一步降低了系统下电时导致元数据不能完全保存的风险,提高了系统的可靠性。为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创本文档来自技高网...
一种SSD中Journal元数据的保存方法及系统

【技术保护点】
一种SSD中Journal元数据的保存方法,其特征在于,包括:S11:将新增的元数据存储至预先建立的、与所述元数据对应的缓冲区中;S12:判断所述缓冲区中所述存储的第一增量元数据是否达到4k,如果是,则进入S13;S13:获取所述第一增量元数据及3个4k大小的第一base元数据,并将所述第一增量元数据及3个所述4k大小的第一base元数据刷写至flash中;S14:当接收到下电指令后,判断所述缓冲区中的第二增量元数据是否达到4k,如果是,进入S15,否则,进入S16;S15:获取所述第二增量元数据及3个4k大小的第二base元数据,并将所述第二增量元数据及3个所述4k大小的第二base元数据刷写至flash中;S16:采用无效数据填充所述缓冲区中的剩余地址,使所述缓冲区中所存储的总数据信息达到4k,将所述总数据信息作为所述第二增量元数据,并返回S15。

【技术特征摘要】
1.一种SSD中Journal元数据的保存方法,其特征在于,包括:S11:将新增的元数据存储至预先建立的、与所述元数据对应的缓冲区中;S12:判断所述缓冲区中所述存储的第一增量元数据是否达到4k,如果是,则进入S13;S13:获取所述第一增量元数据及3个4k大小的第一base元数据,并将所述第一增量元数据及3个所述4k大小的第一base元数据刷写至flash中;S14:当接收到下电指令后,判断所述缓冲区中的第二增量元数据是否达到4k,如果是,进入S15,否则,进入S16;S15:获取所述第二增量元数据及3个4k大小的第二base元数据,并将所述第二增量元数据及3个所述4k大小的第二base元数据刷写至flash中;S16:采用无效数据填充所述缓冲区中的剩余地址,使所述缓冲区中所存储的总数据信息达到4k,将所述总数据信息作为所述第二增量元数据,并返回S15。2.根据权利要求1所述的SSD中Journal元数据的保存方法,其特征在于,所述将所述第一增量元数据及3个所述4k大小的第一base元数据刷写至flash中的过程具体为:获取4个LBA,并依据各个所述LBA分别计算出与所述第一增量元数据及与各个所述第一base元数据分别对应的pba;将所述第一增量元数据及3个所述4k大小的第一base元数据分别依据与其一一对应的pba刷写至flash中;所述方法还包括依据各个所述pba更新L2p列表。3.根据权利要求2所述的SSD中Journal元数据的保存方法,其特征在于,在S15之后所述方法还包括:从所述L2p列表中获取与各个所述pba对应的一级元数据;将所述一级元数据以4k为单位刷写至所述flash中。4.根据权利要求3所述的SSD中Journ...

【专利技术属性】
技术研发人员:苗森
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:河南,41

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

1