
技术摘要:
本发明公开了一种基于SSD的日志数据保存方法,包括:将日志数据中运行态的元数据配置为在SSD的内存物理地址中连续存放;为内存物理地址中元数据连续存放的区域划分预设数量的Buffer缓冲区,使所有的Buffer缓冲区具有预设循环顺序;按照预设循环顺序存入读写过程中产生 全部
背景技术:
随着互联网、云计算、物联网、大数据等技术的发展及广泛应用,在人类生活中,时 时刻刻都会产生海量的数据,这些海量的数据需要进行处理和存储,信息技术的高速发展 对存储系统的性能提出了更高的要求。固态硬盘因为其读写速度快、能耗低,而被广泛的应 用。 当前固态硬盘的使用变得越来越广泛,对固态硬盘的性能、容量的要求都更高,随 着闪存技术的发展、主控芯片的性能提高,固态硬盘的相关技术不断更新,使得能够尽可能 满足应用的需求。 当前固态硬盘使用的场景变得越来越复杂,对固态硬盘的要求也越来越高,无论 从性能还是稳定性上,都是有严格标准的,最重要的一方面就是性能的一致性,即,在固态 硬盘的使用过程中,是不允许读写性能的突变,这将导致应用无法预知固态硬盘的状态,从 而给应用的运行带来不必要的麻烦。如何保证固态硬盘性能的一致性成为了固态硬盘固件 研究的一个重要课题。 当前固态硬盘的设计中,由于FTL(Flash Translation Layer,闪存转换层)的固 有特性,物理容量的增加伴随着对于其他硬件单元的需求的增加,在SSD的固件设计中,存 在着多少元数据,如何管理这些元数据保证SSD(Solid State Drive,固态硬盘)的运行正 常,成为SSD固件设计中的重点问题。 在通常的SSD固件实现中,Journal数据的保存基本是按照更新量加原始量的方式 进行存储,并且采用多备份的方式进行存储,针对不同的元数据类型进行分别保存,这样可 能安全性更好,但是根据NAND的特性来说,SLC(Single Level Cell,单层单元存储技术) block的稳定性会远高于TLC(Trinary Level Cell,三层单元存储技术)block,在这一方面 上已经很好的保证了数据正确性,所以多备份及区分类型的方式不仅造成了资源的浪费还 增加了固件设计的复杂度。
技术实现要素:
有鉴于此,本发明实施例的目的在于提供一种基于SSD的日志数据(Journal Data)的保存方法、装置、设备和介质。 基于上述目的,本发明一方面提供了一种基于SSD的日志数据保存方法,该方法包 括: 将日志数据中运行态的元数据配置为在SSD的内存物理地址中连续存放; 为内存物理地址中元数据连续存放的区域划分预设数量的Buffer缓冲区,使所有 的Buffer缓冲区具有预设循环顺序; 4 CN 111581126 A 说 明 书 2/9 页 按照预设循环顺序存入读写过程中产生的元数据的更新数据; 定义日志数据的内存逻辑地址与物理地址的映射表; 响应于一个Buffer缓冲区存满,对Buffer缓冲区中的数据执行NAND写操作,并对 SSD中未写入NAND的元数据执行预设长度的NAND写操作; 响应于NAND写操作完成,将相应的Buffer缓冲区排在预设循环顺序最后等待存储 元数据的更新数据。 在本发明的基于SSD的日志数据保存方法的一些实施方式中,方法还包括: 响应于收到内存访问请求,判断内存访问请求是否为日志访问请求; 响应于判断内存访问请求为日志访问请求,访问映射表,将访问请求的地址转换 为物理地址,并将根据转换后的物理地址访问到的数据返回给访问者。 在本发明的基于SSD的日志数据保存方法的一些实施方式中,方法还包括: 响应于收到地址映射修改请求,检查是否存在冲突; 响应于存在冲突,查找冲突的映射项并将映射项带回到SSD。 在本发明的基于SSD的日志数据保存方法的一些实施方式中,方法还包括: 在上电过程中,SSD对NAND执行坏块扫描操作; 根据坏块扫描操作,挑选若干NAND中的好块作为RAID组中出现坏块时的备选替换 块。 在本发明的基于SSD的日志数据保存方法的一些实施方式中,响应于一个Buffer 缓冲区存满,对Buffer缓冲区中的数据执行NAND写操作,并对SSD中未写入NAND的元数据执 行预设长度的NAND写操作还包括: 将Buffer缓冲区和预设长度配置为NAND最小写入单元的正整数倍。 本发明实施例的另一方面,还提供了一种基于SSD的日志数据保存装置,该装置包 括: 连续存放模块,连续存放模块配置为将日志数据中运行态的元数据配置为在SSD 的内存物理地址中连续存放; Buffer缓冲区配置模块,Buffer缓冲区配置模块配置为为内存物理地址中元数据 连续存放的区域划分预设数量的Buffer缓冲区,使所有的Buffer缓冲区具有预设循环顺 序; 更新数据存储模块,更新数据存储模块配置为按照预设循环顺序存入读写过程中 产生的元数据的更新数据; 映射模块,映射模块配置为定义日志数据的内存逻辑地址与物理地址的映射表; NAND写操作模块,所述NAND写操作模块配置为响应于一个Buffer缓冲区存满,对 Buffer缓冲区中的数据执行NAND写操作,并对SSD中未写入NAND的元数据执行预设长度的 NAND写操作; 排序模块,所述排序模块配置为响应于NAND写操作完成,将相应的Buffer缓冲区 排在预设循环顺序最后等待存储元数据的更新数据。 在本发明的基于SSD的日志数据保存装置的一些实施方式中,装置还包括请求判 断模块,请求判断模块配置为: 响应于收到内存访问请求,判断内存访问请求是否为日志访问请求; 5 CN 111581126 A 说 明 书 3/9 页 响应于判断内存访问请求为日志访问请求,访问映射表,将访问请求的地址转换 为物理地址,并将根据转换后的物理地址访问到的数据返回给访问者。 在本发明的基于SSD的日志数据保存装置的一些实施方式中,装置还包括冲突检 查模块,冲突检查模块配置为: 响应于收到地址映射修改请求,检查是否存在冲突; 响应于存在冲突,查找冲突的映射项并将映射项带回到SSD。 本发明实施例的另一方面,还提供了一种计算机设备,该计算机设备包括: 至少一个处理器;以及 存储器,存储器存储有可在处理器上运行的计算机程序,处理器执行程序时执行 前述的基于SSD的日志数据保存方法。 本发明实施例的再一方面,还提供了一种计算机可读存储介质,计算机可读存储 介质存储有计算机程序,其特征在于,计算机程序被处理器执行时执行前述的基于SSD的日 志数据保存方法。 本发明至少具有以下有益技术效果:本发明采用统一的元数据存储方式,减少了 元数据保存的复杂性及元数据恢复的复杂性,极大的降低了SSD固件设计的难度,并提高了 模块的高科通用性及可维护性,并减少了NAND资源的消耗,降低了成本。 附图说明 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以 根据这些附图获得其他的实施例。 图1示出了根据本发明的基于SSD的日志数据保存方法的实施例的示意性框图; 图2示出了根据现有技术中的DDR中数据存放方式示意图; 图3示出了根据本发明的基于SSD的日志数据保存方法的实施例的DDR中元数据连 续存放方式示意图; 图4示出了根据本发明的基于SSD的日志数据保存方法的实施例的DDR中元数据连 续存放且不区分元数据类型的存放方式示意图; 图5示出了根据现有技术中的DDR中更新数据存放方式示意图; 图6示出了根据本发明的基于SSD的日志数据保存方法的实施例的Buffer缓冲区 划分方式示意图; 图7示出了根据本发明的基于SSD的日志数据保存方法的实施例的NAND写的方式 示意图; 图8示出了根据本发明的基于SSD的日志数据保存方法的实施例的地址映射状态 示意图; 图9示出了根据本发明的基于SSD的日志数据保存方法的实施例的判断访问请求 的流程图; 图10示出了根据本发明的基于SSD的日志数据保存方法的实施例的修改DDR地址 映射的流程图。 6 CN 111581126 A 说 明 书 4/9 页