CN111581126B - 一种基于ssd的日志数据保存方法、装置、设备和介质 - Google Patents

一种基于ssd的日志数据保存方法、装置、设备和介质 Download PDF

Info

Publication number
CN111581126B
CN111581126B CN202010380420.2A CN202010380420A CN111581126B CN 111581126 B CN111581126 B CN 111581126B CN 202010380420 A CN202010380420 A CN 202010380420A CN 111581126 B CN111581126 B CN 111581126B
Authority
CN
China
Prior art keywords
ssd
metadata
log data
nand
buffer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010380420.2A
Other languages
English (en)
Other versions
CN111581126A (zh
Inventor
赵宝林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202010380420.2A priority Critical patent/CN111581126B/zh
Publication of CN111581126A publication Critical patent/CN111581126A/zh
Priority to PCT/CN2021/073497 priority patent/WO2021223468A1/zh
Priority to US17/923,190 priority patent/US20230185480A1/en
Application granted granted Critical
Publication of CN111581126B publication Critical patent/CN111581126B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • G06F3/0649Lifecycle management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/167Audio in a user interface, e.g. using voice commands for navigating, audio feedback
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明公开了一种基于SSD的日志数据保存方法,包括:将日志数据中运行态的元数据配置为在SSD的内存物理地址中连续存放;为内存物理地址中元数据连续存放的区域划分预设数量的Buffer缓冲区,使所有的Buffer缓冲区具有预设循环顺序;按照预设循环顺序存入读写过程中产生的元数据的更新数据;定义日志数据的内存逻辑地址与物理地址的映射表;响应于一个Buffer缓冲区存满,对Buffer缓冲区中的数据执行NAND写操作,并对SSD中未写入NAND的元数据执行预设长度的NAND写操作;响应于NAND写操作完成,将相应的Buffer缓冲区排在预设循环顺序最后等待存储元数据的更新数据。本发明还公开了一种装置、设备和介质。本发明提出的方案可以减少元数据保存的复杂性。

Description

一种基于SSD的日志数据保存方法、装置、设备和介质
技术领域
本发明涉及计算机存储技术领域,更具体地,特别是指一种基于SSD的日志数据保存方法、装置、设备和介质。
背景技术
随着互联网、云计算、物联网、大数据等技术的发展及广泛应用,在人类生活中,时时刻刻都会产生海量的数据,这些海量的数据需要进行处理和存储,信息技术的高速发展对存储系统的性能提出了更高的要求。固态硬盘因为其读写速度快、能耗低,而被广泛的应用。
当前固态硬盘的使用变得越来越广泛,对固态硬盘的性能、容量的要求都更高,随着闪存技术的发展、主控芯片的性能提高,固态硬盘的相关技术不断更新,使得能够尽可能满足应用的需求。
当前固态硬盘使用的场景变得越来越复杂,对固态硬盘的要求也越来越高,无论从性能还是稳定性上,都是有严格标准的,最重要的一方面就是性能的一致性,即,在固态硬盘的使用过程中,是不允许读写性能的突变,这将导致应用无法预知固态硬盘的状态,从而给应用的运行带来不必要的麻烦。如何保证固态硬盘性能的一致性成为了固态硬盘固件研究的一个重要课题。
当前固态硬盘的设计中,由于FTL(Flash Translation Layer,闪存转换层)的固有特性,物理容量的增加伴随着对于其他硬件单元的需求的增加,在SSD的固件设计中,存在着多少元数据,如何管理这些元数据保证SSD(Solid State Drive,固态硬盘)的运行正常,成为SSD固件设计中的重点问题。
在通常的SSD固件实现中,Journal数据的保存基本是按照更新量加原始量的方式进行存储,并且采用多备份的方式进行存储,针对不同的元数据类型进行分别保存,这样可能安全性更好,但是根据NAND的特性来说,SLC(Single Level Cell,单层单元存储技术)block的稳定性会远高于TLC(Trinary Level Cell,三层单元存储技术)block,在这一方面上已经很好的保证了数据正确性,所以多备份及区分类型的方式不仅造成了资源的浪费还增加了固件设计的复杂度。
发明内容
有鉴于此,本发明实施例的目的在于提供一种基于SSD的日志数据(JournalData)的保存方法、装置、设备和介质。
基于上述目的,本发明一方面提供了一种基于SSD的日志数据保存方法,该方法包括:
将日志数据中运行态的元数据配置为在SSD的内存物理地址中连续存放;
为内存物理地址中元数据连续存放的区域划分预设数量的Buffer缓冲区,使所有的Buffer缓冲区具有预设循环顺序;
按照预设循环顺序存入读写过程中产生的元数据的更新数据;
定义日志数据的内存逻辑地址与物理地址的映射表;
响应于一个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的日志数据保存装置的一些实施方式中,装置还包括请求判断模块,请求判断模块配置为:
响应于收到内存访问请求,判断内存访问请求是否为日志访问请求;
响应于判断内存访问请求为日志访问请求,访问映射表,将访问请求的地址转换为物理地址,并将根据转换后的物理地址访问到的数据返回给访问者。
在本发明的基于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地址映射的流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”和“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
基于上述目的,本发明实施例的第一个方面,提出了一种基于SSD的日志数据保存方法的实施例。图1示出的是根据本发明的基于SSD的日志数据保存方法的实施例的示意图。如图1所示的实施例中,该方法至少包括如下步骤:
S100、将日志数据中运行态的元数据配置为在SSD的内存物理地址中连续存放;
S200、为内存物理地址中元数据连续存放的区域划分预设数量的Buffer缓冲区,使所有的Buffer缓冲区具有预设循环顺序;
S300、按照预设循环顺序存入读写过程中产生的元数据的更新数据;
S400、定义日志数据的内存逻辑地址与物理地址的映射表;
S500、响应于一个Buffer缓冲区存满,对Buffer缓冲区中的数据执行NAND写操作,并对SSD中未写入NAND的元数据执行预设长度的NAND写操作;
S600、响应于NAND写操作完成,将相应的Buffer缓冲区排在预设循环顺序最后等待存储元数据的更新数据。
在现有技术SSD(Solid State Drive,固态硬盘)的设计中,运行态中元数据都是存储在DDR(Double Data Rate,双倍数据速率)内存中的,在本发明的一些实施例中,需要将所有的元数据连续存放到DDR中,方便元数据保存时的连续性与简易性;在实现元数据存储的连续性上,存在以下困难,因为在用户使用SSD盘的时候,都是随机进行访问的,造成元数据的更新也是随机的,在DDR中数据存放方式如图2所示,其中用Meta表示运行态中使用到的元数据,其中用Meta A、Meta B、Meta C、Meta D、Meta E表示不同类型的元数据,Other表示除了Journal的元数据的其他数据。首先在本发明的一些实施例中,需要将所有的Meta在物理内存中放置在一起,即如图3所示。这样就无需区分Meta的类型,如图4所示。其中将几个不连续的物理地址变为连续,可以采用硬件方案或者软件方案,硬件方案可以实现访问加速,软件方案实现自主可控。因为block(块)的使用均是连续的(在一些实施例中,page(页)的使用必须保证从0开始严格连续增加使用),所以仅需要保存起始地址即可,减少了Journal(日志)数据映射表的大小。但是在Journal模块保存过程中,上述Meta只是其中一部分,而在读写过程中产生的元数据的数据更新是随机的,假设只保存Meta区域的话,无法一次性保存,因为数据量过大,会导致企业级SSD的超级电容电量不足,导致下电时间过长而出现盘异常;目前,在一些现有技术中,随机读写过程中产生的数据更新被称之为Delta,在DDR中的存放方式如图5所示。在通常的现有技术中,SSD中会给每种元数据划分若干的Delta区域,如图5中的Delta1、Delta2、Delta3、Delta4,当其中一个Delta区域填满后,连同其对应的Meta区域中的一部分,写入到NAND中(为了能够在上电过程中恢复),这样每一种元数据的更新变化速度不同导致了Delta的产生速度不同,为了能够进一步实现我们的顺序存放并且适应前述步骤,将Meta数据类型归一成一种类型,所有的Delta的数据类型也需要定义成一种类型。为SSD内存物理地址中元数据连续存放的区域划分预设数量的Buffer缓冲区,如图6所示,其中,将Buffer缓冲区简写为Buf,并以序号区分不同的Buffer缓冲区。上述地址均为物理地址,然后我们定义DDR逻辑地址与物理地址的映射表。Buffer缓冲区使用顺序设计来保证其按照预设顺序使用,在本发明的一些实施例中,Buffer缓冲区定义为4个,并且规定按照顺序为1→2→3→4→1的顺序循环使用。在其他实施例中,可以根据实际应用配置Buffer缓冲区的个数。当Buf1凑满后,将发起Buf1开始的长度为L的Meta数据的NAND写,如图7所示,其中Meta1、Meta2、Meta3、Meta4等均是将图6中所示的Meta按照长度为L按顺序划分出的元数据。根据图7所示,其中在一些现有技术中,嵌入式系统都有简单的地址映射功能,不过映射项一旦配置,将不允许在进行修改,在本发明的一些实施例中,需要不断将Buffer地址映射到新的位置上,在持续的保存中地址映射会有如图8所示的状态。即当Buf1凑满后,连同Meta1写入NAND后,Buf1将会被映射到新的地址上,如图8所示映射到了Meta5前,这样当Buf2~4都写NAND后,Buf1将会再次被使用,之后会连同Meta5一同写入NAND,以此往复。在下次上电时,将起始地址信息读取上来,然后依次将NAND中的数据读取到DDR的对应位置,因为元数据的分布在上下电前后是不允许发生变化的,所以NAND的存储地址与DDR的位置是一一对应的,这样也不需要维护NAND地址与DDR地址的映射表。
根据本发明的基于SSD的日志数据保存方法的一些实施方式,方法还包括:
响应于收到内存访问请求,判断内存访问请求是否为日志访问请求;
响应于判断内存访问请求为日志访问请求,访问映射表,将访问请求的地址转换为物理地址,并将根据转换后的物理地址访问到的数据返回给访问者。
在本发明的一些实施例中,如图9所示,当收到DDR访问请求时,判断访问请求是否为Journal访问。如果为Journal访问,则访问自定义的映射表。根据地址映射,将请求地址转换为物理地址,将转换后的地址访问到的数据返回给访问者。如果判断访问请求不是Journal访问,则不做地址映射,将请求地址直接作为访问地址,然后将访问地址访问到的数据返回给访问者。
根据本发明的基于SSD的日志数据保存方法的一些实施方式,方法还包括:
响应于收到地址映射修改请求,检查是否存在冲突;
响应于存在冲突,查找冲突的映射项并将映射项带回到SSD。
在本发明的一些实施例中,如图10所示,当收到修改DDR地址映射的请求时时,检查是否存在冲突,当有冲突时,查找冲突映射项,返回地址映射修改状态并带回映射项。当没有冲突时,则申请新的映射项并增加映射项到映射表中,返回地址映射修改状态并带回映射项。
根据本发明的基于SSD的日志数据保存方法的一些实施方式,方法还包括:
在上电过程中,SSD对NAND执行坏块扫描操作;
根据坏块扫描操作,挑选若干NAND中的好块作为RAID组中出现坏块时的备选替换块。
在本发明的一些实施例中,元数据的保存不在使用多备份的方式,而是采用RAID5方式。一般多备份情况下至少是1+1的方式,即一份元数据将占用两个block,而采用RAID5,可以采用N+1的方式,这样N份元数据仅占用N+1个block,这样block的使用量将降低到原来的(N+1)/N*2,通常情况下N取15,这样block使用变为53.3%;但是在SSD系统中,NAND的状态都是不可预期的,可能我们挑选中了16个block组成了一个RAID组,但是其中包含有1或者更多个的坏块的话,这些坏块不能保存数据,又由于我们使用了连续存放的方式来放置数据,这样坏块会使得某些数据无法正确的保存下去。RAID在一些现有技术中,通过跳过坏块以保证不向坏块中保存数据以避免数据丢失。而在本发明的一些实施例中,为了解决该问题,我们需要引入坏块替换块,通过软件的方式来解决该问题。在上电过程中,SSD的会进行坏块扫描,然后Journal模块根据扫描的结果,识别16个block中的坏块与好块,将一小部分的好块作为备选,在一些实施例中,选择4块好块作为备选组中的备选块,当RAID组中出现坏块时,从备选组中挑选部分块进行替换,实现动态的可替换规则,保证RAID可以正常使用。
根据本发明的基于SSD的日志数据保存方法的一些实施方式,响应于一个Buffer缓冲区存满,对Buffer缓冲区中的数据执行NAND写操作,并对SSD中未写入NAND的元数据执行预设长度的NAND写操作还包括:
将Buffer缓冲区和预设长度配置为NAND最小写入单元的正整数倍。
在本发明的一些实施例中,当Buf1凑满后,将发起Buf1开始的长度为L的NAND写,这个L受限于NAND的操作单元限制,在一些实施例中,我们将会使用RAID5的方式,这样L的长度可以扩大到多个16k的大小,(16k是NAND的最小写入单元);这里就需要固定Buffer缓冲区的大小,和被划分后的Meta大小,这个大小可以根据NAND的写入单元大小L来确定。
由于元数据运行态下存储是连续的,所以Journal模块仅需要获取元数据区域的起始地址及终止地址即可,然后将该区域整份保存,这里一个SLC block的page大小为16k(即当前所有NAND厂商的标准),所以在保存中可能会有多个SLC page的使用,使用RAID5的情况下,一个RAID条带可以存储N*16k大小;
Journal在进行保存时,首先将第一个N*16k大小的元数据地址发送给NAND写模块完成数据的NAND保存(以方便在下次上电的时候进行恢复),并将保存的首地址保存下来,继续发送下一个N*16k大小的元数据给NAND write(写)模块,依次重复写过程,直到将整个元数据区域保存到NAND中。
本发明实施例的另一方面,提出了一种基于SSD的日志数据保存装置的实施例。该装置包括:
连续存放模块,连续存放模块配置为将日志数据中运行态的元数据配置为在SSD的内存物理地址中连续存放;
Buffer缓冲区配置模块,Buffer缓冲区配置模块配置为为内存物理地址中元数据连续存放的区域划分预设数量的Buffer缓冲区,使所有的Buffer缓冲区具有预设循环顺序;
更新数据存储模块,更新数据存储模块配置为按照预设循环顺序存入读写过程中产生的元数据的更新数据;
映射模块,映射模块配置为定义日志数据的内存逻辑地址与物理地址的映射表;
NAND写操作模块,所述NAND写操作模块配置为响应于一个Buffer缓冲区存满,对Buffer缓冲区中的数据执行NAND写操作,并对SSD中未写入NAND的元数据执行预设长度的NAND写操作;
排序模块,所述排序模块配置为响应于NAND写操作完成,将相应的Buffer缓冲区排在预设循环顺序最后等待存储元数据的更新数据。
根据本发明的基于SSD的日志数据保存装置的一些实施方式,装置还包括请求判断模块,请求判断模块配置为:
响应于收到内存访问请求,判断内存访问请求是否为日志访问请求;
响应于判断内存访问请求为日志访问请求,访问映射表,将访问请求的地址转换为物理地址,并将根据转换后的物理地址访问到的数据返回给访问者。
根据本发明的基于SSD的日志数据保存装置的一些实施方式,装置还包括冲突检查模块,冲突检查模块配置为:
响应于收到地址映射修改请求,检查是否存在冲突;
响应于存在冲突,查找冲突的映射项并将映射项带回到SSD。
基于上述目的,本发明实施例的另一方面,还提出了一种计算机设备,该计算机设备包括:至少一个处理器;以及存储器,存储器存储有可在处理器上运行的计算机程序,处理器执行程序时执行前述的基于SSD的日志数据保存方法。
本发明实施例的再一方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,其特征在于,计算机程序被处理器执行时执行前述的基于SSD的日志数据保存方法。
同样地,本领域技术人员应当理解,以上针对根据本发明的基于SSD的日志数据保存方法阐述的所有实施方式、特征和优势同样地适用于根据本发明的装置、计算机设备和介质。为了本公开的简洁起见,在此不再重复阐述。
需要特别指出的是,上述基于SSD的日志数据保存方法、装置、设备和介质的各个实施例中的各个步骤均可以相互交叉、替换、增加、删减,因此,这些合理的排列组合变换之于基于SSD的日志数据保存方法、装置、设备和介质也应当属于本发明的保护范围,并且不应将本发明的保护范围局限在实施例之上。
最后需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,基于SSD的日志数据保存方法的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,程序的存储介质可为磁碟、光盘、只读存储记忆体(ROM)或随机存储记忆体(RAM)等。上述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。
此外,根据本发明实施例公开的方法还可以被实现为由处理器执行的计算机程序,该计算机程序可以存储在计算机可读存储介质中。在该计算机程序被处理器执行时,执行本发明实施例公开的方法中限定的上述功能。
此外,上述方法步骤以及系统单元也可以利用控制器以及用于存储使得控制器实现上述步骤或单元功能的计算机程序的计算机可读存储介质实现。
此外,应该明白的是,本文的计算机可读存储介质(例如,存储器)可以是易失性存储器或非易失性存储器,或者可以包括易失性存储器和非易失性存储器两者。作为例子而非限制性的,非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦写可编程ROM(EEPROM)或快闪存储器。易失性存储器可以包括随机存取存储器(RAM),该RAM可以充当外部高速缓存存储器。作为例子而非限制性的,RAM可以以多种形式获得,比如同步RAM(DRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据速率SDRAM(DDRSDRAM)、增强SDRAM(ESDRAM)、同步链路DRAM(SLDRAM)、以及直接Rambus RAM(DRRAM)。所公开的方面的存储设备意在包括但不限于这些和其它合适类型的存储器。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。
结合这里的公开所描述的各种示例性逻辑块、模块和电路可以利用被设计成用于执行这里功能的下列部件来实现或执行:通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立门或晶体管逻辑、分立的硬件组件或者这些部件的任何组合。通用处理器可以是微处理器,但是可替换地,处理器可以是任何传统处理器、控制器、微控制器或状态机。处理器也可以被实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器结合DSP和/或任何其它这种配置。
结合这里的公开所描述的方法或算法的步骤可以直接包含在硬件中、由处理器执行的软件模块中或这两者的组合中。软件模块可以驻留在RAM存储器、快闪存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动盘、CD-ROM、或本领域已知的任何其它形式的存储介质中。示例性的存储介质被耦合到处理器,使得处理器能够从该存储介质中读取信息或向该存储介质写入信息。在一个替换方案中,存储介质可以与处理器集成在一起。处理器和存储介质可以驻留在ASIC中。ASIC可以驻留在用户终端中。在一个替换方案中,处理器和存储介质可以作为分立组件驻留在用户终端中。
在一个或多个示例性设计中,功能可以在硬件、软件、固件或其任意组合中实现。如果在软件中实现,则可以将功能作为一个或多个指令或代码存储在计算机可读介质上或通过计算机可读介质来传送。计算机可读介质包括计算机存储介质和通信介质,该通信介质包括有助于将计算机程序从一个位置传送到另一个位置的任何介质。存储介质可以是能够被通用或专用计算机访问的任何可用介质。作为例子而非限制性的,该计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储设备、磁盘存储设备或其它磁性存储设备,或者是可以用于携带或存储形式为指令或数据结构的所需程序代码并且能够被通用或专用计算机或者通用或专用处理器访问的任何其它介质。此外,任何连接都可以适当地称为计算机可读介质。例如,如果使用同轴线缆、光纤线缆、双绞线、数字用户线路(DSL)或诸如红外线、无线电和微波的无线技术来从网站、服务器或其它远程源发送软件,则上述同轴线缆、光纤线缆、双绞线、DSL或诸如红外线、无线电和微波的无线技术均包括在介质的定义。如这里所使用的,磁盘和光盘包括压缩盘(CD)、激光盘、光盘、数字多功能盘(DVD)、软盘、蓝光盘,其中磁盘通常磁性地再现数据,而光盘利用激光光学地再现数据。上述内容的组合也应当包括在计算机可读介质的范围内。
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。

Claims (10)

1.一种基于SSD的日志数据保存方法,其特征在于,所述方法包括:
将日志数据中运行态的元数据配置为在SSD的内存物理地址中连续存放;
为所述内存物理地址中所述元数据连续存放的区域划分预设数量的Buffer缓冲区,使所有的所述Buffer缓冲区具有预设循环顺序;
按照所述预设循环顺序存入读写过程中产生的所述元数据的更新数据;
定义日志数据的内存逻辑地址与所述物理地址的映射表;
响应于一个所述Buffer缓冲区存满,对所述Buffer缓冲区中的数据执行NAND写操作,并对所述SSD中未写入所述NAND的所述元数据执行预设长度的所述NAND写操作;
响应于所述NAND写操作完成,将相应的所述Buffer缓冲区排在所述预设循环顺序最后等待存储所述元数据的更新数据。
2.根据权利要求1所述的基于SSD的日志数据保存方法,其特征在于,所述方法还包括:
响应于收到内存访问请求,判断所述内存访问请求是否为日志访问请求;
响应于判断所述内存访问请求为日志访问请求,访问所述映射表,将所述访问请求的地址转换为所述物理地址,并将根据转换后的物理地址访问到的数据返回给访问者。
3.根据权利要求1所述的基于SSD的日志数据保存方法,其特征在于,所述方法还包括:
响应于收到地址映射修改请求,检查是否存在冲突;
响应于存在冲突,查找冲突的映射项并将所述映射项带回到所述SSD。
4.根据权利要求1所述的基于SSD的日志数据保存方法,其特征在于,所述方法还包括:
在上电过程中,所述SSD对所述NAND执行坏块扫描操作;
根据所述坏块扫描操作,挑选若干所述NAND中的好块作为RAID组中出现坏块时的备选替换块。
5.根据权利要求1所述的基于SSD的日志数据保存方法,其特征在于,所述响应于一个所述Buffer缓冲区存满,对所述Buffer缓冲区中的数据执行NAND写操作,并对所述SSD中未写入所述NAND的所述元数据执行预设长度的所述NAND写操作还包括:
将所述Buffer缓冲区和所述预设长度配置为所述NAND最小写入单元的正整数倍。
6.一种基于SSD的日志数据保存装置,其特征在于,所述装置包括:
连续存放模块,所述连续存放模块配置为将日志数据中运行态的元数据配置为在SSD的内存物理地址中连续存放;
Buffer缓冲区配置模块,所述Buffer缓冲区配置模块配置为为所述内存物理地址中所述元数据连续存放的区域划分预设数量的Buffer缓冲区,使所有的所述Buffer缓冲区具有预设循环顺序;
更新数据存储模块,所述更新数据存储模块配置为按照所述预设循环顺序存入读写过程中产生的所述元数据的更新数据;
映射模块,所述映射模块配置为定义日志数据的内存逻辑地址与所述物理地址的映射表;
NAND写操作模块,所述NAND写操作模块配置为响应于一个所述Buffer缓冲区存满,对所述Buffer缓冲区中的数据执行NAND写操作,并对所述SSD中未写入所述NAND的所述元数据执行预设长度的所述NAND写操作;
排序模块,所述排序模块配置为响应于所述NAND写操作完成,将相应的所述Buffer缓冲区排在所述预设循环顺序最后等待存储所述元数据的更新数据。
7.根据权利要求6所述的基于SSD的日志数据保存装置,其特征在于,所述装置还包括请求判断模块,所述请求判断模块配置为:
响应于收到内存访问请求,判断所述内存访问请求是否为日志访问请求;
响应于判断所述内存访问请求为日志访问请求,访问所述映射表,将所述访问请求的地址转换为所述物理地址,并将根据转换后的物理地址访问到的数据返回给访问者。
8.根据权利要求6所述的基于SSD的日志数据保存装置,其特征在于,所述装置还包括冲突检查模块,所述冲突检查模块配置为:
响应于收到地址映射修改请求,检查是否存在冲突;
响应于存在冲突,查找冲突的映射项并将所述映射项带回到所述SSD。
9.一种计算机设备,其特征在于,包括:
至少一个处理器;以及
存储器,所述存储器存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时执行如权利要求1-5任意一项所述的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时执行权利要求1-5任意一项所述的方法。
CN202010380420.2A 2020-05-08 2020-05-08 一种基于ssd的日志数据保存方法、装置、设备和介质 Active CN111581126B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202010380420.2A CN111581126B (zh) 2020-05-08 2020-05-08 一种基于ssd的日志数据保存方法、装置、设备和介质
PCT/CN2021/073497 WO2021223468A1 (zh) 2020-05-08 2021-01-25 一种基于ssd的日志数据保存方法、装置、设备和介质
US17/923,190 US20230185480A1 (en) 2020-05-08 2021-01-25 Ssd-based log data storage method and apparatus, device and medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010380420.2A CN111581126B (zh) 2020-05-08 2020-05-08 一种基于ssd的日志数据保存方法、装置、设备和介质

Publications (2)

Publication Number Publication Date
CN111581126A CN111581126A (zh) 2020-08-25
CN111581126B true CN111581126B (zh) 2023-08-01

Family

ID=72113387

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010380420.2A Active CN111581126B (zh) 2020-05-08 2020-05-08 一种基于ssd的日志数据保存方法、装置、设备和介质

Country Status (3)

Country Link
US (1) US20230185480A1 (zh)
CN (1) CN111581126B (zh)
WO (1) WO2021223468A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111581126B (zh) * 2020-05-08 2023-08-01 苏州浪潮智能科技有限公司 一种基于ssd的日志数据保存方法、装置、设备和介质
CN112463037B (zh) * 2020-11-13 2022-08-12 苏州浪潮智能科技有限公司 一种元数据保存方法、装置、设备、产品
CN112631950B (zh) * 2020-12-11 2022-07-19 苏州浪潮智能科技有限公司 一种l2p表的保存方法、系统、设备以及介质
CN115129680B (zh) * 2022-06-29 2024-01-16 苏州浪潮智能科技有限公司 一种提高数据库性能的方法、装置、设备及可读介质
CN117420965B (zh) * 2023-12-18 2024-03-22 合肥康芯威存储技术有限公司 一种存储器及其控制方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104765574A (zh) * 2015-04-23 2015-07-08 成都博元时代软件有限公司 数据云端存储方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110191522A1 (en) * 2010-02-02 2011-08-04 Condict Michael N Managing Metadata and Page Replacement in a Persistent Cache in Flash Memory
US9454474B2 (en) * 2013-03-05 2016-09-27 Western Digital Technologies, Inc. Methods, devices and systems for two stage power-on map rebuild with free space accounting in a solid state drive
KR101567134B1 (ko) * 2013-03-29 2015-11-09 이화여자대학교 산학협력단 비휘발성 메모리에 기반하여 저널링 기능을 통합한 버퍼 캐시 장치, 저널링 파일 시스템 및 저널링 방법
US10037285B2 (en) * 2014-01-14 2018-07-31 Georgia Tech Research Corporation Multi-tiered storage systems and methods for adaptive content streaming
US20150347310A1 (en) * 2014-05-30 2015-12-03 Lsi Corporation Storage Controller and Method for Managing Metadata in a Cache Store
US9971523B2 (en) * 2016-03-10 2018-05-15 Toshiba Memory Corporation Memory controller with data compression and padding features, method of controlling nonvolatile memory and memory system
US10067683B2 (en) * 2016-07-19 2018-09-04 Western Digital Technologies, Inc. Systems and methods for classifying data in solid state drives
CN106873908B (zh) * 2017-01-17 2019-11-12 深圳忆联信息系统有限公司 数据存储方法及装置
CN107402724B (zh) * 2017-07-31 2020-07-24 苏州浪潮智能科技有限公司 一种SSD中Journal元数据的保存方法及系统
CN107422992A (zh) * 2017-07-31 2017-12-01 郑州云海信息技术有限公司 一种SSD运行时Journal保存方法及系统
CN109918234B (zh) * 2019-03-06 2020-07-07 苏州浪潮智能科技有限公司 一种基于ssd的元数据恢复方法、装置、设备及介质
US11372723B2 (en) * 2019-10-29 2022-06-28 International Business Machines Corporation Dynamically adjusting a journal snapshot window
US11061827B2 (en) * 2019-10-30 2021-07-13 EMC IP Holding Company LLC Metadata representation for enabling partial page duplication
CN111581126B (zh) * 2020-05-08 2023-08-01 苏州浪潮智能科技有限公司 一种基于ssd的日志数据保存方法、装置、设备和介质
US11520510B1 (en) * 2021-07-21 2022-12-06 International Business Machines Corporation Extending the lifespan of a flash-based storage device

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104765574A (zh) * 2015-04-23 2015-07-08 成都博元时代软件有限公司 数据云端存储方法

Also Published As

Publication number Publication date
CN111581126A (zh) 2020-08-25
WO2021223468A1 (zh) 2021-11-11
US20230185480A1 (en) 2023-06-15

Similar Documents

Publication Publication Date Title
CN111581126B (zh) 一种基于ssd的日志数据保存方法、装置、设备和介质
US20180357013A1 (en) Method and apparatus for accessing flash memory device
US20200117368A1 (en) Method for achieving data copying in ftl of solid state drive, system and solid state drive
KR101067018B1 (ko) 가비지 컬렉션 수행 방법 및 상기 방법을 이용한 플래시 메모리 장치
US20110055464A1 (en) Device driver including a flash memory file system and method thereof and a flash memory device and method thereof
CN107908571B (zh) 一种数据写入方法、闪存装置及存储设备
CN109117383B (zh) 管理闪存模块的方法和闪存控制器
US20200225882A1 (en) System and method for compaction-less key-value store for improving storage capacity, write amplification, and i/o performance
US20190303019A1 (en) Memory device and computer system for improving read performance and reliability
EP4012547B1 (en) Storage method and apparatus for key value (kv) and storage device
CN113282249B (zh) 一种数据处理方法、系统、设备以及介质
TWI707232B (zh) 快閃記憶體控制器及相關的存取方法及電子裝置
CN113419975B (zh) 存储器的控制系统及地址映射方法和地址映射装置
US10459641B2 (en) Efficient serialization of journal data
CN109558456A (zh) 一种文件迁移方法、装置、设备及可读存储介质
JP2017204037A (ja) 情報処理装置、重複除去プログラム、及び重複除去方法
CN111352589B (zh) 一种分布式存储的方法、装置、设备及可读介质
CN111026325A (zh) 闪存控制器、闪存控制器的控制方法及相关的电子装置
CN115203079A (zh) 一种将数据写入固态硬盘的方法
KR20230012412A (ko) 저장 방법, 저장 장치 및 저장 시스템
CN113407111B (zh) 闪存控制器、闪存控制器的方法及记忆装置
CN111026678B (zh) 基于固态硬盘的缓存设计方法、装置及计算机设备
CN104424124A (zh) 内存装置、电子设备和用于控制内存装置的方法
KR101618999B1 (ko) 네트워크 부트 시스템
CN113760195B (zh) 一种基于嵌入式的fatfs文件系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant