CN110554999B - 基于日志式文件系统和闪存设备的冷热属性识别和分离方法、装置以及相关产品 - Google Patents
基于日志式文件系统和闪存设备的冷热属性识别和分离方法、装置以及相关产品 Download PDFInfo
- Publication number
- CN110554999B CN110554999B CN201810554877.3A CN201810554877A CN110554999B CN 110554999 B CN110554999 B CN 110554999B CN 201810554877 A CN201810554877 A CN 201810554877A CN 110554999 B CN110554999 B CN 110554999B
- Authority
- CN
- China
- Prior art keywords
- cold
- hot
- data
- file system
- data segment
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0623—Securing storage systems in relation to content
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种基于日志式文件系统和闪存设备的冷热属性识别和分离方法、装置以及相关产品,包括:日志式文件系统根据预设方式确定文件块的冷热属性,并根据所述文件块的冷热属性为所述文件块添加冷热标签,其中,所述文件块至少包括一个数据;设备驱动通过扩展协议将所述文件块以及所述冷热标签从所述日志式文件系统发送给闪存设备;所述闪存设备根据所述冷热标签确定将所述文件块发送给冷物理数据段或者热物理数据段,其中,所述冷物理数据段是专门用于放置冷数据的物理数据段,所述热物理数据段是专门用于放置热数据的物理数据段。上述方案能够在采用日志式文件系统和闪存设备的场景下,识别数据的冷热属性,实现冷热分离,减少写放大的问题。
Description
技术领域
本发明涉及存储领域,尤其涉及一种基于日志式文件系统和闪存设备的冷热属性识别和分离方法、装置以及相关产品。
背景技术
在现有的移动终端中,文件系统通常会采用日志式文件系统,存储设备通常会采用闪存设备。但是,本领域的技术人员在长期研究中发现,在采用日志式文件系统和闪存设备的场景下,闪存设备无法识别数据的冷热属性,从而导致无法在闪存设备实现冷热分离,因此,会出现写放大的问题。
发明内容
本申请实施例提供了一种基于日志式文件系统和闪存设备的冷热属性识别和分离方法、装置以及相关产品,能够在采用日志式文件系统和闪存设备的场景下,识别数据的冷热属性,实现冷热分离,从而减少写放大的问题。
第一方面,在闪存设备支持冷热分离的功能的情况下提出了一种基于日志式文件系统和闪存设备的冷热属性识别和分离方法,包括:
日志式文件系统根据预设方式确定文件块的冷热属性,并根据所述文件块的冷热属性为所述文件块添加冷热标签,其中,所述文件块至少包括一个数据;
设备驱动通过扩展协议将所述文件块以及所述冷热标签从所述日志式文件系统发送给闪存设备;
所述闪存设备根据所述冷热标签确定将所述文件块发送给冷物理数据段或者热物理数据段,其中,所述冷物理数据段是专门用于放置冷数据的物理数据段,所述热物理数据段是专门用于放置热数据的物理数据段,所述闪存设备支持冷热分离的功能。
结合第一方面,所述日志式文件系统根据预设方式确定文件块的冷热属性包括:
所述日志式文件系统至少根据所述文件块在上一个时间窗的冷热属性预测所述文件块在当前时间窗的冷热属性。
所述日志式文件系统至少根据所述文件块在上一个时间窗的冷热属性预测所述文件块在当前时间窗的冷热属性,至少包括以下三种方式:
在第一种方式中,所述日志式文件系统为所述文件块确定工作集W(t,k),其中,工作集W(t,k)为在时刻t之前的k时间段内写入该文件块的数据的集合,t和k用于表征所述上一时间窗,t为所述上一个时间窗的最后一个时刻,k为时间窗的持续长度;
所述日志式文件系统确定所述工作集W(t,k)中数据更新的比例u(t,k),其中,u(t,k)为上一个时间窗中工作集W(t,k)中数据更新的比例,t和k用于表征所述上一时间窗,t为所述上一个时间窗的最后一个时刻,k为时间窗的持续长度,0≤u(t,k)≤1,u(t,0)=0,u(t,+∞)=1;
所述日志式文件系统根据所述工作集W(t,k)中数据更新的比例u(t,k)确定所述文件块的冷热属性,其中,所述数据更新的比例u(t,k)越大,所述文件块的热度越高,冷度越低,所述数据更新的比例u(t,k)越小,所述文件块的热度越低,冷度越高。
具体地,所述日志式文件系统根据所述工作集W(t,k)中数据更新的比例u(t,k)确定所述文件块的冷热属性,至少包括以下两种:
(1)如果所述工作集W(t,k)中数据更新的比例u(t,k)大于第一阈值,则所述文件块的冷热属性为热属性;如果所述工作集W(t,k)中数据更新的比例u(t,k)小于或者等于第一阈值,则所述文件块的冷热属性为冷属性。其中,所述时间窗的持续长度k以及所述第一阈值的具体数值是采用机器学习算法进行训练得到的,特别地,所述时间窗的持续长度k以及所述第一阈值的具体数值是通过离线训练得到的,或者,通过在线训练得到的。
(2)如果所述工作集W(t,k)中数据更新的比例u(t,k)大于或者等于第二阈值,则所述文件块的冷热属性为大热属性;如果所述工作集W(t,k)中数据更新的比例u(t,k)小于所述第二阈值并且大于第一阈值,则所述文件块的冷热属性为小热属性;如果所述工作集W(t,k)中数据更新的比例u(t,k)小于或者等于所述第一阈值并且大于第三阈值,则所述文件块的冷热属性为小冷属性;如果所述工作集W(t,k)中数据更新的比例u(t,k)小于或者等于所述第三阈值,则所述文件块的冷热属性为大冷属性;其中,所述第二阈值>所述第一阈值>所述第三阈值。其中,所述时间窗的持续长度k、所述第一阈值、所述第二阈值以及所述第三阈值的具体数值是采用机器学习算法进行训练得到的,特别地,所述时间窗的持续长度k、所述第一阈值、所述第二阈值以及所述第三阈值的具体数值是通过离线训练得到的,或者,通过在线训练得到的。
第二种方式中,所述日志式文件系统根据所述文件块所属的文件的类型以及第一映射关系确定所述文件块的冷热属性,其中,所述第一映射关系为文件的类型与冷热属性之间的映射关系。其中,所述第一映射关系是预先设置的;或者,所述第一映射关系是通过机器学习算法进行训练得到的,其中,训练为离线训练或者在线训练。
第三种方式中,所述日志式文件系统根据所述文件块所在的目录以及第二映射关系确定所述文件块的冷热属性,其中,所述第二映射关系为目录与冷热属性的映射关系。其中,所述第二映射关系是预先设置的;或者,所述第二映射关系是通过机器学习算法进行训练得到的,其中,训练为离线训练或者在线训练。
结合第一方面,在日志式文件系统根据预设方式确定文件块的冷热属性,并根据所述文件块的冷热属性为所述文件块添加冷热标签之后,所述方法还包括:所述日志式文件系统在日志式文件系统中进行冷热分离。所述日志式文件系统在日志式文件系统中进行冷热分离,至少包括以下两种方式:
第一种方式中,所述日志式文件系统按照准备写入所述日志式文件系统的热数据和冷数据的比例将所述日志式文件系统划分地址连续的第一热空间和地址连续的第一冷空间。
第二种方式中,所述日志式文件系统按照准备写入所述日志式文件系统的热数据和冷数据的比例将所述日志式文件系统划分地址不连续的第一热空间和地址不连续的第一冷空间。
可选地,所述日志式文件系统动态调整所述第一热空间的大小和所述第一冷空间的大小。具体地,当所述第一热空间不够用时,所述日志式文件系统将所述第一冷空间中与所述第一热空间相邻的部分空间划入所述第一热空间;当所述第一冷空间不够用时,所述日志式文件系统将所述第一热空间中与所述第一冷空间相邻的部分空间划入所述第一冷空间。
结合第一方面,所述闪存设备根据所述冷热标签确定将所述文件块发送给冷物理数据段或者热物理数据段之前,所述方法还包括:所述闪存设备在所述闪存设备中进行冷热分离。所述闪存设备在所述闪存设备中进行冷热分离,至少包括以下两种方式:
第一种方式中,所述所述闪存设备按照准备写入所述闪存设备的热数据和冷数据的比例将所述闪存设备划分地址连续的第二热空间和地址连续的第二冷空间。
第二种方式中,所述闪存设备按照准备写入所述闪存设备的热数据和冷数据的比例将所述闪存设备划分地址不连续的第二热空间和地址不连续的第二冷空间。
可选地,所述闪存设备动态调整所述第二热空间的大小和所述第二冷空间的大小。具体地,当所述第二热空间不够用时,所述闪存设备将所述第二冷空间中与所述第二热空间相邻的部分空间划入所述第二热空间;当所述第二冷空间不够用时,所述闪存设备将所述第二热空间中与所述第二冷空间相邻的部分空间划入所述第二冷空间。
结合第一方面,所述日志式文件系统通过扩展协议将所述文件块以及所述冷热标签发送给闪存设备之前,所述方法还包括:块设备根据所述文件块的冷热标签进行调度。在调度时,热数据的调度优先级别大于冷数据的调度优先级别,并且,将多个热数据一起进行输入输出IO下发,或者,将多个冷数据一起进行IO下发。
结合第一方面,设备驱动通过扩展协议将所述文件块以及所述冷热标签从所述日志式文件系统发送给闪存设备,包括:
当所述扩展协议为嵌入式多媒体存储卡eMMC协议或者通用闪存存储UFS协议时,所述冷热标签承载于内容标识Context ID字段或者保留字段;
当所述扩展协议为非易失存储器标准NVMe协议时,所述冷热标签承载于流标识Stream Identifier字段或者保留字段。
结合第一方面,所述闪存设备在接收到冷热标签之后,所述方法还包括:闪存设备通过通道Open Block进行冷热标签的映射。其中,当冷热标签的数量小于Open Block的数量时,各个Open Block固定映射特定的冷热标签;当冷热标签的数量大于Open Block的数量时,各个Open Block通过时分复用的方式进行冷热标签的映射。
结合第一方面,所述日志式文件系统根据冷热标签从冷逻辑数据段中选择剩余有效数据最少的逻辑数据段进行垃圾回收,其中,所述冷逻辑数据段是日志式文件系统中专门用于放置冷数据的逻辑数据段,所述热逻辑数据段是日志式文件系统中专门用于放置热数据的逻辑数据段。所述日志式文件系统根据目标逻辑数据段的生命期对所述冷热标签进行监控并修改,至少包括以下两种方式:
第一种方式中,在所述目标逻辑数据段的冷热标签为热标签的情况下,所述日志式文件系统确定所述目标逻辑数据段的生命期是否大于时间窗的持续长度k;
在确定所述目标逻辑数据段的生命期大于时间窗的持续长度k的情况下,所述日志式文件系统将所述目标逻辑数据段的冷热标签修改为冷标签;
在确定所述目标逻辑数据段的生命期没有大于时间窗的持续长度k的情况下,所述日志式文件系统保持所述目标逻辑数据段的冷热标签为热标签。
第二种方式中,日志式文件系统根据所述目标逻辑数据段的生命期age、所述目标逻辑数据段的当前的更新比例us(t,age)及所述目标逻辑数据段的冷热阈值us(t,k)对所述目标逻辑数据段的冷热标签进行监控并修改。
如果age≥k,或者,age<k且所述目标逻辑数据段的冷热属性为冷属性,或者,age<k且所述目标逻辑数据段的当前更新比例us(t,age)≥us(t,k)所在阈值范围的上限,则所述目标逻辑数据段的冷热标签都被置为冷标签;其中,所述目标逻辑数据段的当前更新比例us(t,age)为所述目标逻辑数据段从诞生至现在更新的数据比例;
如果age<k且所述目标逻辑数据段的当前更新比例us(t,age)<us(t,k)所在阈值范围的下限,则所述目标逻辑数据段的冷热标签保持其原有的标签不变;
如果age<k且所述目标逻辑数据段的更新比例介于us(t,k)所在阈值范围的上限和下限之间,则所述目标逻辑数据段的冷热标签被修改为比其原有冷热标签低一级的标签。
结合第一方面,所述闪存设备根据冷热标签从所述冷物理数据段中选择剩余有效数据最少的物理数据段进行垃圾回收。为了提高垃圾回收的准确性,所述闪存设备根据目标物理数据段的生命期对所述冷热标签进行监控并修改,其中,所述目标物理数据段为所述冷物理数据段或者所述热物理数据段。所述闪存设备根据目标物理数据段的生命期对所述冷热标签进行监控并修改,至少包括以下两种方式:
第一种方式中,在所述目标物理数据段的冷热标签为热标签的情况下,所述闪存设备确定所述目标物理数据段的生命期是否大于时间窗的持续长度k;
在确定所述目标物理数据段的生命期大于时间窗的持续长度k的情况下,所述闪存设备将所述目标物理数据段的冷热标签修改为冷标签;
在确定所述目标物理数据段的生命期没有大于时间窗的持续长度k的情况下,所述闪存设备保持所述目标物理数据段的冷热标签为热标签。
第二种方式中,闪存设备根据所述目标物理数据段的生命期age、所述目标物理数据段的当前的更新比例us(t,age)及所述目标物理数据段的冷热阈值us(t,k)对所述目标物理数据段的冷热标签进行监控并修改。
如果age≥k,或者,age<k且所述目标物理数据段的冷热属性为冷属性,或者,age<k且所述目标物理数据段的当前更新比例us(t,age)≥us(t,k)所在阈值范围的上限,则所述目标物理数据段的冷热标签都被置为冷标签;其中,所述目标物理数据段的当前更新比例us(t,age)为所述目标物理数据段从诞生至现在更新的数据比例;
如果age<k且所述目标物理数据段的当前更新比例us(t,age)<us(t,k)所在阈值范围的下限,则所述目标物理数据段的冷热标签保持其原有的标签不变;
如果age<k且所述目标物理数据段的更新比例介于us(t,k)所在阈值范围的上限和下限之间,则所述目标物理数据段的冷热标签被修改为比其原有冷热标签低一级的标签。
第二方面,在闪存设备不支持冷热分离的功能的情况下提出了一种基于日志式文件系统和闪存设备的冷热属性识别和分离方法,包括:
日志式文件系统根据预设方式确定多个文件块中的每个文件块的冷热属性,并根据所述多个文件块中的每个文件块的冷热属性为所述多个文件块中的每个文件块添加冷热标签,其中,所述多个文件块中的每个文件块至少包括一个数据;
所述日志式文件系统将所述日志式文件系统划分为热空间和冷空间,其中,所述热空间包括多个连续的热逻辑数据段,所述热逻辑数据段是专门用于放置热数据的逻辑数据段,所述冷空间包括多个连续的冷逻辑数据段,所述冷逻辑数据段是专门用于放置冷数据的逻辑数据段;
所述日志式文件系统将冷热标签为热标签的文件块写入所述热空间,将冷热标签为冷标签的文件块写入所述冷空间;
所述日志式文件系统将所述热空间中的数据单独向闪存设备进行IO下发,或者,将所述冷空间中的数据单独向闪存设备进行IO下发,其中,所述闪存设备不支持冷热分离的功能。
所述日志式文件系统至少根据所述文件块在上一个时间窗的冷热属性预测所述文件块在当前时间窗的冷热属性,至少包括以下三种方式:
在第一种方式中,所述日志式文件系统为所述文件块确定工作集W(t,k),其中,工作集W(t,k)为在时刻t之前的k时间段内写入该文件块的数据的集合,t和k用于表征所述上一时间窗,t为所述上一个时间窗的最后一个时刻,k为时间窗的持续长度;
所述日志式文件系统确定所述工作集W(t,k)中数据更新的比例u(t,k),其中,u(t,k)为上一个时间窗中工作集W(t,k)中数据更新的比例,t和k用于表征所述上一时间窗,t为所述上一个时间窗的最后一个时刻,k为时间窗的持续长度,0≤u(t,k)≤1,u(t,0)=0,u(t,+∞)=1;
所述日志式文件系统根据所述工作集W(t,k)中数据更新的比例u(t,k)确定所述文件块的冷热属性,其中,所述数据更新的比例u(t,k)越大,所述文件块的热度越高,冷度越低,所述数据更新的比例u(t,k)越小,所述文件块的热度越低,冷度越高。
具体地,所述日志式文件系统根据所述工作集W(t,k)中数据更新的比例u(t,k)确定所述文件块的冷热属性,至少包括以下两种:
(1)如果所述工作集W(t,k)中数据更新的比例u(t,k)大于第一阈值,则所述文件块的冷热属性为热属性;如果所述工作集W(t,k)中数据更新的比例u(t,k)小于或者等于第一阈值,则所述文件块的冷热属性为冷属性。其中,所述时间窗的持续长度k以及所述第一阈值的具体数值是采用机器学习算法进行训练得到的,特别地,所述时间窗的持续长度k以及所述第一阈值的具体数值是通过离线训练得到的,或者,通过在线训练得到的。
(2)如果所述工作集W(t,k)中数据更新的比例u(t,k)大于或者等于第二阈值,则所述文件块的冷热属性为大热属性;如果所述工作集W(t,k)中数据更新的比例u(t,k)小于所述第二阈值并且大于第一阈值,则所述文件块的冷热属性为小热属性;如果所述工作集W(t,k)中数据更新的比例u(t,k)小于或者等于所述第一阈值并且大于第三阈值,则所述文件块的冷热属性为小冷属性;如果所述工作集W(t,k)中数据更新的比例u(t,k)小于或者等于所述第三阈值,则所述文件块的冷热属性为大冷属性;其中,所述第二阈值>所述第一阈值>所述第三阈值。其中,所述时间窗的持续长度k、所述第一阈值、所述第二阈值以及所述第三阈值的具体数值是采用机器学习算法进行训练得到的,特别地,所述时间窗的持续长度k、所述第一阈值、所述第二阈值以及所述第三阈值的具体数值是通过离线训练得到的,或者,通过在线训练得到的。
第二种方式中,所述日志式文件系统根据所述文件块所属的文件的类型以及第一映射关系确定所述文件块的冷热属性,其中,所述第一映射关系为文件的类型与冷热属性之间的映射关系。其中,所述第一映射关系是预先设置的;或者,所述第一映射关系是通过机器学习算法进行训练得到的,其中,训练为离线训练或者在线训练。
第三种方式中,所述日志式文件系统根据所述文件块所在的目录以及第二映射关系确定所述文件块的冷热属性,其中,所述第二映射关系为目录与冷热属性的映射关系。其中,所述第二映射关系是预先设置的;或者,所述第二映射关系是通过机器学习算法进行训练得到的,其中,训练为离线训练或者在线训练。
结合第二方面,所述日志式文件系统将所述日志式文件系统划分为热空间和冷空间,至少包括以下两种方式:
第一种方式中,所述日志式文件系统按照准备写入所述日志式文件系统的热数据和冷数据的比例将所述日志式文件系统划分地址连续的第一热空间和地址连续的第一冷空间。
第二种方式中,所述日志式文件系统按照准备写入所述日志式文件系统的热数据和冷数据的比例将所述日志式文件系统划分地址不连续的第一热空间和地址不连续的第一冷空间。
所述日志式文件系统动态调整所述第一热空间的大小和所述第一冷空间的大小。具体地,当所述第一热空间不够用时,所述日志式文件系统将所述第一冷空间中与所述第一热空间相邻的部分空间划入所述第一热空间;当所述第一冷空间不够用时,所述日志式文件系统将所述第一热空间中与所述第一冷空间相邻的部分空间划入所述第一冷空间。
结合第二方面,所述日志式文件系统将所述热空间中的数据单独向闪存设备进行IO下发,或者,将所述冷空间中的数据单独向闪存设备进行IO下发之前,所述方法还包括:块设备根据所述文件块的冷热标签进行调度。在调度时,热数据的调度优先级别大于冷数据的调度优先级别,并且,将多个热数据一起进行输入输出IO下发,或者,将多个冷数据一起进行IO下发。
结合第二方面,所述日志式文件系统根据冷热标签从冷逻辑数据段中选择剩余有效数据最少的逻辑数据段进行垃圾回收,其中,所述冷逻辑数据段是日志式文件系统中专门用于放置冷数据的逻辑数据段,所述热逻辑数据段是日志式文件系统中专门用于放置热数据的逻辑数据段。所述日志式文件系统根据目标逻辑数据段的生命期对所述冷热标签进行监控并修改,至少包括以下两种方式:
第一种方式中,在所述目标逻辑数据段的冷热标签为热标签的情况下,所述日志式文件系统确定所述目标逻辑数据段的生命期是否大于时间窗的持续长度k;
在确定所述目标逻辑数据段的生命期大于时间窗的持续长度k的情况下,所述日志式文件系统将所述目标逻辑数据段的冷热标签修改为冷标签;
在确定所述目标逻辑数据段的生命期没有大于时间窗的持续长度k的情况下,所述日志式文件系统保持所述目标逻辑数据段的冷热标签为热标签。
第二种方式中,日志式文件系统根据所述目标逻辑数据段的生命期age、所述目标逻辑数据段的当前的更新比例us(t,age)及所述目标逻辑数据段的冷热阈值us(t,k)对所述目标逻辑数据段的冷热标签进行监控并修改。
如果age≥k,或者,age<k且所述目标逻辑数据段的冷热属性为冷属性,或者,age<k且所述目标逻辑数据段的当前更新比例us(t,age)≥us(t,k)所在阈值范围的上限,则所述目标逻辑数据段的冷热标签都被置为冷标签;其中,所述目标逻辑数据段的当前更新比例us(t,age)为所述目标逻辑数据段从诞生至现在更新的数据比例;
如果age<k且所述目标逻辑数据段的当前更新比例us(t,age)<us(t,k)所在阈值范围的下限,则所述目标逻辑数据段的冷热标签保持其原有的标签不变;
如果age<k且所述目标逻辑数据段的更新比例介于us(t,k)所在阈值范围的上限和下限之间,则所述目标逻辑数据段的冷热标签被修改为比其原有冷热标签低一级的标签。
第三方面,提供了一种基于日志式文件系统和闪存设备的冷热属性识别和分离装置,包括用于实现如第一方面任一项所述的方法的单元。
第四方面,提供了一种基于日志式文件系统和闪存设备的冷热属性识别和分离装置,其特征在于,包括用于实现第二方面任一项所述的方法的单元。
第五方面,提供了一种移动终端,其特征在于,包括:存储器以及与所述存储器耦合的处理器、通信模块,其中:所述存储器用于存储程序代码,所述处理器用于调用所述存储器存储的程序代码以执行如第一方面任一项描述的方法。
第六方面,提供了一种移动终端,其特征在于,包括:存储器以及与所述存储器耦合的处理器、通信模块,其中:所述存储器用于存储程序代码,所述处理器用于调用所述存储器存储的程序代码以执行如第二方面任一项描述的方法。
第七方面,提供了一种可读存储介质,包括指令,当所述指令在移动终端上运行时,使得所述移动终端执行如第一方面任一项所述的方法。
第八方面,提供一种可读存储介质,包括指令,当所述指令在移动终端上运行时,使得所述移动终端执行如第二方面任一项所述的方法。
第九方面,提供了一种程序产品,该程序产品包括程序指令,当该程序产品被移动终端执行时,该移动终端执行如第一方面任意一项所述的方法。
第十方面,提供了一种程序产品,该程序产品包括程序指令,当该程序产品被移动终端执行时,该移动终端执行如第二方面任意一项所述的方法。
上述方案能够在日志式文件系统中识别文件块的冷热属性,并根据日志式文件系统的识别结果在闪存设备中进行数据的冷热分离,从而能够在采用日志式文件系统和闪存设备的场景下,识别数据的冷热属性,实现冷热分离,从而减少写放大的问题。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请中现有的计算机的输入输出中层次化的示意图;
图2是本申请在闪存设备支持冷热分离功能的情况下提出的一种基于日志式文件系统和闪存设备的冷热属性识别以及分离方法的流程示意图;
图3是本申请提出的一种日志式文件系统确定文件块在上一个时间窗的冷热属性的方法的示意图;
图4是本申请中日志式文件系统通过两种不同的方式在日志式文件系统中进行冷热分离的示意图;
图5是本申请中动态调整热空间的大小前和动态调整热空间的大小后的对比图;
图6是本申请中在时间窗内数据更新比例的变化示意图;
图7是本申请中闪存设备对物理数据段的冷热标签进行监控和修改的流程示意图;
图8是本申请在闪存设备不支持冷热分离功能的情况下提出的一种基于日志式文件系统和闪存设备的冷热属性识别和分离方法的流程示意图;
图9是本申请提出的一种基于日志式文件系统和闪存设备的冷热属性识别和分离装置的结构示意图;
图10是本申请提出的另一种基于日志式文件系统和闪存设备的冷热属性识别和分离装置的结构示意图;
图11是本申请提出的一种移动终端的结构示意图;
图12是本申请提出的另一种移动终端的结构示意图。
具体实施方式
如图1所示,在对现有的移动终端的输入输出(Input and Output,IO)进行层次化划分之后,移动终端的IO至少包括文件系统101以及存储设备104,可选地,还可以包括块设备102和设备驱动103。其中,文件系统101,块设备102,设备驱动103以及存储设备104按照自上而下的顺序依次设置。下面将重点介绍文件系统101以及存储设备104。
文件系统101是操作系统中负责管理和存储文件信息的软件机构,用于明确在存储设备上组织文件的方法和对存储设备进行寻址。文件系统可以包括多个逻辑数据段(segment),每个逻辑数据段包括多个逻辑数据单元。文件系统至少可以分两类,日志式文件系统以及非日志式文件系统。其中,日志式文件系统需要对数据进行更新时,日志式文件系统不能将更新的数据写入原来的逻辑数据单元,只能将更新的数据写入到另一个逻辑数据单元。非日志式文件系统需要对数据进行更新时,非日志式文件系统可以将更新的数据重新写入同一个逻辑数据单元。
存储设备104是用于储存信息的设备,通常是将信息数字化后再以利用电、磁或光学等方式的媒体加以存储。存储设备包括多个物理数据段(segment),每个物理数据段包括多个物理数据单元。存储设备至少可以分成两类,一类是闪存(Flash Memory)类型的存储设备,例如,NOR Flash以及NAND Flash,另一类是非闪存设备,例如,随机存取器(RandomAccess Memory,RAM)以及机械磁盘。其中,闪存设备在初始化时,每个物理数据单元都被置为“1”。当需要向某个物理数据单元写入“1”时,闪存设备不需要进行任何操作,当需要向某个物理数据单元写入“0”时,闪存设备需要将该物理数据单元从“1”修改为“0”,而且,当该物理数据单元从“1”修改为“0”之后,不能再将该物理数据单元从“0”修改为“1”。由于闪存设备的这个特性,每个物理数据单元在被擦除之前只能被写一次。非闪存设备在需要向某个物理数据单元写入“1”时,将该物理数据单元置为“1”即可,当需要向某个物理数据单元写入“0”时,将该物理数据单元置为“0”即可。而且,即使该物理数据单元上次被置为“1”,本次也可以被置为“0”,上次被置为“0”,本次也可以被置为“1”。由于非闪存设备的这个特性,每个物理数据单元不需要被擦除也可以被多次重复写入。
文件系统的逻辑地址(即逻辑数据单元)和存储设备的物理地址(即物理数据单元)之间存在以下的映射关系:
对于闪存设备来说,由于物理数据单元在被擦除之前只能被写一次,所以,不但写入文件系统的不同逻辑数据单元的各个数据将被映射到闪存设备中的不同物理数据单元,连写入文件系统的同一逻辑数据单元的各个数据也将被映射到闪存设备中的不同物理数据单元。
对于非闪存设备来说,由于物理数据单元不需要被擦除也可以被多次重复写入,所以,尽管写入文件系统的不同逻辑数据单元的各个数据将被映射到非闪存设备中的不同物理数据单元,但是,写入文件系统的同一逻辑地址的各个数据将被映射到非闪存设备中的同一物理数据单元。
根据上述文件系统的逻辑地址和存储设备的物理地址之间的映射关系,可以得知在不同文件系统和不同存储设备下,文件系统在进行数据更新时对存储设备的不同寻址方式:
在文件系统为日志式文件系统,存储设备为闪存设备的情况下,日志式文件系统在进行数据更新时对闪存设备的寻址方式具体为:日志式文件系统需要对数据进行更新时,更新的数据将被写到日志式文件系统的另一个逻辑数据单元中,进而被映射到闪存设备的另一个物理数据单元中。
在文件系统为日志式文件系统,存储设备为非闪存设备的情况下,日志式文件系统在进行数据更新时对非闪存设备的寻址方式具体为:日志式文件系统需要对数据进行更新时,更新的数据将被写到日志式文件系统的另一个逻辑数据单元中,进而被映射到非闪存设备的另一个物理数据单元中。
在文件系统为非日志式文件系统,存储设备为闪存设备的情况下,非日志式文件系统在进行数据更新时对闪存设备的寻址方式具体为:非日志式文件系统需要对数据进行更新时,更新的数据将被写到非日志式文件系统的同一个逻辑数据单元中,进而被映射到闪存设备的另一个物理数据单元中。
在文件系统为非日志式文件系统,存储设备为非闪存设备的情况下,非日志式文件系统在进行数据更新时对非闪存设备的寻址方式具体为:非日志式文件系统需要对数据进行更新时,更新的数据将被写到非日志式文件系统的同一个逻辑数据单元中,进而被映射到非闪存设备的同一个物理数据单元中。
从上述闪存设备的介绍中可以明确知道,闪存设备中的物理数据单元在被擦除前只能被写一次,因此,当需要重新写这个物理数据单元时,需要对这个物理数据单元进行回收。但是,由于闪存设备的物理限制(例如,为了提高回收效率等等),在进行回收时,只能以物理数据段为单位进行回收,不能针对单个物理数据单元进行回收,所以,在需要对物理数据段进行回收时,闪存设备会将该物理数据段中的有效数据搬迁到其他的物理数据段,然后,再将整个物理数据段进行擦除,擦除后,整个物理数据段中每个物理数据单元均置为“1”。闪存设备的这种特性可以被称之为闪存设备的垃圾回收特性。其中,闪存设备的垃圾回收频率与闪存设备的碎片化程度相关。在闪存设备比较新的时候,闪存设备的碎片化程度很低,闪存设备的垃圾回收频率可以设置得比较低,例如,每100小时进行一次垃圾回收,随着时间的推移,闪存设备的碎片化程度越来越严高,闪存设备的垃圾回收频率需要设置得越来越高,例如,每1小时进行一次垃圾回收。需要说明的是,上述例子中垃圾回收时的单位是以物理数据段为例进行说明,但是,在其他可能的实施例中,垃圾回收时的单位也可以是页面或者其他单位,此处不作具体限定。
由于闪存设备的垃圾回收特性的存在,在对闪存设备进行写操作时,实际写入数据量等于本来要写入数据量加上数据搬迁导致的写入数据量,也就是说,实际写入数据量大于本来要写入数据量,即,出现写放大问题。相反,非闪存设备不存在上述的垃圾回收特性,所以,非闪存设备不存在写放大问题。
为了能够更好地说明写放大问题,本文中对热数据和冷数据的语义进行了重定义。在现有技术中,热数据和冷数据是根据数据的访问频率进行区分的,如果某个数据频繁被访问,则该数据被称之为热数据,如果某个数据甚少被访问,则该数据被称之为冷数据。但是,在本文中,热数据和冷数据是根据数据的生命周期进行区分的,如果某个数据的生命周期很短,则该数据被称之为热数据,如果某个数据的生命周期长,则该数据被称之为冷数据。在一具体的实施方式中,热数据和冷数据是根据数据的生命周期以及垃圾回收频率进行区分的,如果数据被垃圾回收前变成了无效数据,即,数据的生命周期小于垃圾回收周期(垃圾回收周期=1/垃圾回收频率),数据在垃圾回收时不需要进行数据搬迁,则该数据的冷热属性可以被认定为是热数据;在数据被垃圾回收前没有变成无效数据,即数据的生命周期大于或者等于垃圾回收周期,数据在垃圾回收时需要进行数据搬迁,则该数据的冷热属性可以被认定为是冷数据。其中,生命周期是指从数据产生至数据变成无效数据的时间段。
基于上述重定义的热数据和冷数据,下面将分别从闪存设备在没有进行冷热分离的情况下的写放大问题和在有进行冷热分离的情况下的写放大问题进行阐述。其中,冷热分离是指将冷数据放入同一数据段,热数据放入同一数据段。
在没有进行冷热分离的情况下,闪存设备在进行数据回收时,写放大的情况如下所述。假设第一数据段中包括2个热数据以及1个冷数据,第二数据段中包括2个热数据以及1个冷数据,第三个数据段中包括2个热数据以及1个冷数据。在一段时间后,第一数据段至第三数据段中的热数据的生命周期都结束,即,第一数据段至第三数据段中的热数据都变成了无效数据,第一数据段至第三数据段中的冷数据的生命周期依然没有结束,即,第一数据段至第三数据段中的冷数据都依然是有效数据,所以,第一数据段至第三数据段中都只剩下了1个冷数据。为了回收第一数据段至第三数据段,需要将第一数据段至第三数据段中的冷数据搬迁到其他的数据段,然后,再对第一数据段至第三数据段进行擦除。如果用户需要分别向第一数据段至第三数据段写入一个数据,本应只需要进行三次写入操作,但是,由于需要将第一数据段至第三数据段的有效数据进行搬迁,实际上需要进行六次(三次写入新数据+三次写入搬迁数据)写入操作。也就是说,在没有进行冷热分离的情况下,闪存设备存在严重的写放大问题。
在进行冷热分离的情况下,闪存设备在进行数据回收时,写放大的情况如下所述。假设第一数据段中包括3个热数据,第二数据段中包括3个热数据,第三个数据段中包括3个冷数据。在一段时间后,第一数据段和第二数据段中的热数据的生命周期都结束,即,第一数据段和第二数据段中的热数据都变成了无效数据,第三数据段中3个冷数据的生命周期都还没结束,即,第三数据段中3个冷数据依然是有效数据。明显地,第一数据段和第二数据段都没有有效数据,因此,只需要对第一数据段和第二数据段进行擦写即可回收第一数据段和第二数据段,第三数据段本来就是满的,没有回收的必要。所以,如果用户需要向第一数据段和第二数据段总共写入三个数据,本应只需要进行三次写入操作,实际上也只进行了三次写入操作。也就是说,在进行冷热分离时,闪存设备的写放大问题被减轻。
因此,确定数据是热数据还是冷数据对于闪存设备来说具有重大的意义。如果闪存设备能够识别数据是热数据还是冷数据,就可以实现冷热分离,从而减少写放大的问题。
在文件系统采用非日志式文件系统,存储设备采用闪存设备的情况下,由于非日志式文件系统需要对数据进行更新时,更新的数据将被写到非日志式文件系统的同一个逻辑数据单元中,进而被映射到闪存设备的另一个物理数据单元中,因此,闪存设备可以根据统计同一逻辑数据单元被重复写的次数来确定写入该逻辑数据单元的数据是热数据还是冷数据。
在文件系统采用日志式文件系统,存储设备采用闪存设备的情况下,由于日志式文件系统需要对数据进行更新时,更新的数据将被写到日志式文件系统的另一个逻辑数据单元中,进而被映射到闪存设备的另一个物理数据单元中,因此,闪存设备无法根据统计同一逻辑数据单元被重复写的次数来确定写入该逻辑数据单元的数据是热数据还是冷数据。
在现有技术条件下,在文件系统采用日志式文件系统的情况下,存储设备采用闪存设备的情况下,无法识别数据是热数据还是冷数据。
为了解决上述问题,本申请提出了一种基于日志式文件系统和闪存设备的冷热属性识别和分离方法、装置以及相关产品,能够使得在文件系统采用日志式文件系统,存储设备采用闪存设备的情况下,依然能够获知数据的冷热属性,实现冷热分离,从而减少写放大的问题。
下面将根据闪存设备是否支持冷热分离的功能,分别提出两种不同的基于日志式文件系统和闪存设备的冷热属性识别方法。其中,图2所示的实施例是针对闪存设备支持冷热分离的情况下提出的基于日志式文件系统和闪存设备的冷热属性识别以及分离方法。图8所示的实施例是针对闪存设备不支持冷热分离的情况下提出的基于日志式文件系统和闪存设备的冷热属性识别以及分离方法。
如图2所示,图2是本申请在闪存设备支持冷热分离的情况下提出的一种针对闪存设备支持冷热分离的情况下提出的基于日志式文件系统和闪存设备的冷热属性识别以及分离方法的流程示意图。如图2所示,针对闪存设备支持冷热分离的情况下提出的基于日志式文件系统和闪存设备的冷热属性识别以及分离方法包括如下步骤:
S101:日志式文件系统根据预设方式确定文件块的冷热属性,并根据所述文件块的冷热属性为所述文件块添加冷热标签,其中,所述文件块至少包括一个数据;
S102:所述日志式文件系统通过扩展协议将所述文件块以及所述冷热标签发送给闪存设备;
S103:所述闪存设备根据所述冷热标签确定将所述文件块发送给冷物理数据段或者热物理数据段,其中,所述冷物理数据段是专门用于放置冷数据的物理数据段,所述热物理数据段是专门用于放置热数据的物理数据段。
通过上述方法,移动终端可以在日志式文件系统中确定文件块的冷热属性,并将文件块的冷热属性通过扩展协议发送给闪存设备,闪存设备根据接收到冷热标签确定将文件块发送给冷物理数据段或者热物理数据段,从而在闪存设备中实现冷热分离,进而减少写放大问题。
在本申请具体的实施方式中,确定文件块的冷热属性的预设的方式至少包括以下几种:
在第一种方式中,日志式文件系统至少根据所述文件块在上一个时间窗的冷热属性预测所述文件块在当前时间窗的冷热属性。不难理解,由于用户在相邻的时间窗对文件块的操作是具有连续性的等等原因,文件块的冷热属性的变化是缓慢的,所以,文件块在上一个时间窗的冷热属性和本时间窗的冷热属性是趋向于相同的。所以,日志式文件系统可以根据文件块在上一个时间窗或者上几个时间窗中实际观察到的冷热属性预测文件块在本时间窗的冷热属性。例如,如果文件块在上一个时间窗实际观察到的冷热属性为热属性,则可以预测文件块在本时间窗的冷热属性为热属性,如果文件块在上一个时间窗实际观察到的冷热属性为冷属性,则可以预测文件块在本时间窗的冷热属性为冷属性。
在一具体的实施方式中,日志式文件系统可以根据如下的方式确定文件块在上一个时间窗的冷热属性。如图3所示,
S201:日志式文件系统为所述文件块定义一个工作集W(t,k)。其中,W(t,k)为在时刻t之前的k时间段内写入该文件块的数据的集合,t和k用于表征所述上一时间窗,t为所述上一个时间窗的最后一个时刻,k为时间窗的持续长度。可以理解,时间窗的持续长度k的取值和垃圾回收周期是正相关的,即,闪存设备的垃圾回收周期越长,则时间窗的持续长度k的取值得越大,垃圾回收周期越短,则时间窗的持续长度的取值越小。并且,时间窗的持续长度k的取值必须小于垃圾回收周期。
S202:日志式文件系统统计所述工作集W(t,k)中数据更新的比例u(t,k),其中,u(t,k)为上一个时间窗中工作集W(t,k)中数据更新的比例,t和k用于表征所述上一时间窗,t为所述上一个时间窗的最后一个时刻,k为时间窗的持续长度,0≤u(t,k)≤1,u(t,0)=0,u(t,+∞)=1。
S203:日志式文件系统根据所述工作集W(t,k)中数据更新的比例u(t,k)确定所述文件块的冷热属性。其中,u(t,k)越大,表明文件块的热度越高,冷度越低,u(t,k)越小,表明文件块的热度越低,冷度越高。文件系统根据所述工作集W(t,k)中数据更新的比例u(t,k)确定所述文件块的冷热属性至少包括以下两种方式:
(1)如果所述工作集W(t,k)中数据更新的比例u(t,k)大于第一阈值,则文件块的冷热属性为热属性,如果所述工作集W(t,k)中数据更新的比例u(t,k)小于或者等于第一阈值,则文件块的冷热属性为冷属性。
(2)如果所述工作集W(t,k)中数据更新的比例u(t,k)大于或者等于第二阈值,则所述文件块的冷热属性为大热属性;如果所述工作集W(t,k)中数据更新的比例u(t,k)小于所述第二阈值并且大于所述第一阈值,则所述文件块的冷热属性为小热属性;如果所述工作集W(t,k)中数据更新的比例u(t,k)小于或者等于所述第一阈值并且大于第三阈值,则所述文件块的冷热属性为小冷属性;如果所述工作集W(t,k)中数据更新的比例u(t,k)小于或者等于所述第三阈值,则所述文件块的冷热属性为大冷属性;其中,所述第二阈值>所述第一阈值>所述第三阈值。
在实际的应用中,文件块的冷热属性还可以区分为更少或者更多种,例如,大热属性、小热属性和冷属性等等。因此,上述确定文件块在上一个时间窗的冷热属性的方式仅仅是作为举例,不应构成具体限定。
在一具体的实施方式中,上述使用到的参数k、第一阈值、第二阈值以及第三阈值的具体数值可以采用机器学习算法进行训练得到。训练时,使用大量的已知工作集,已知工作集的数据更新比例,以及,已知工作集和已知工作集的数据更新比例对应的实际文件块的冷热属性作为机器学习算法的输入,从而得到参数k、第一阈值、第二阈值以及第三阈值的具体数值。
为了保证k、第一阈值、第二阈值以及第三阈值的训练结果的准确性,需要保证用来训练的已知工作集,已知工作集的数据更新比例以及已知工作集和已知工作集的数据更新比例对应的实际文件块的冷热属性是在同一垃圾回收频率下的。因为对于同一个文件块,在不同的垃圾回收频率下,文件块的冷热属性可能完全不同,所以,如果使用不同垃圾回收频率下的数据进行训练,会导致训练得到的结果出现较大偏差。下面将举例说明为何同一个文件块,在不同的垃圾回收频率下,文件块的冷热属性完全不同。
假设文件块的工作集以每小时更新10%的速度进行更新,如果工作集被更新的比例超过70%,则该文件块的冷热属性可以被认为是热属性,否则,则会被认为是冷属性。当垃圾回收频率为每9小时回收一次时,时间窗的持续长度k可以选取8小时,此时,工作集被更新的比例为80%,因此,根据上述文件块的冷热属性更新方法可以判断,文件块的冷热属性是热属性。当垃圾回收频率为每4小时回收一次时,时间窗的持续长度k可以选取3小时,此时,工作集被更新的比例为30%,因此,根据上述文件块的冷热属性更新方法可以判断,该文件块的冷热属性是冷属性。
在一具体的实施方式中,参数k、第一阈值、第二阈值以及第三阈值的具体数值可以是通过离线训练得到的,也可以是通过在线训练得到的。当采用离线训练方式时,训练时使用的已知工作集,已知工作集的数据更新比例,以及,已知工作集和已知工作集的数据更新比例对应的实际文件块的冷热属性是对多个样本用户采样得到的。当采用在线训练方式时,训练时使用的已知工作集,已知工作集的数据更新比例,以及,已知工作集和已知工作集的数据更新比例对应的实际文件块的冷热属性是对用户自身采样得到的。当然,参数k、第一阈值、第二阈值以及第三阈值的具体数值也可以是先通过离线训练得到的,然后,再在使用的过程中,使用在线训练的方式进行纠正,此处不作具体限定。
在第二种方式中,日志式文件系统根据所述文件块所属的文件的类型以及第一映射关系确定所述文件块的冷热属性,其中,所述第一映射关系为文件的类型与冷热属性之间的映射关系。不难理解,文件的类型和冷热属性之间具有一定的对应关系,因此,可以根据文件块所属文件的类型确定所述文件块的冷热属性。举例来说,第一映射关系可以如下文所述:如果文件的类型为相片类型(例如,jpg、bmp),则文件的属性为冷属性;如果文件的类型为数据库类型(例如,db),则文件的属性为热属性。移动终端对相片拍摄完成之后,会将相片保存在移动终端的闪存设备中。因为用户通常不会对相片进行反复修改,所以,相片会一直按照原样保存在闪存设备中。因此,相片对于闪存设备来说是冷属性。相反,移动终端在建立了数据库之后,会经常对数据库进行修改,因此,数据库对于闪存设备来说是热属性。需要说明的是,上述第一映射关系仅仅是作为一个举例,不应构成具体限定。
在一具体的实施方式中,第一映射关系可以是预先设置的,也可以通过训练得到的。第一映射关系可以是预先设置的,因为,研发人员可以明确地知道文件类型和冷热属性的关系。因此,研发人员可以直接设置第一映射关系。第一映射关系可以采用机器学习算法进行训练得到。训练时,使用大量的已知文件类型,以及,已知文件类型对应的实际文件块的冷热属性作为机器学习算法的输入,从而得到第一映射关系。其中,已知文件类型对应的实际文件块的冷热属性可以通过第一种方式记载的方法求得。
在一具体的实施方式中,第一映射关系可以是通过离线训练得到的,也可以是通过在线训练得到的。当采用离线训练方式时,训练时使用的已知文件类型,以及,已知文件类型对应的实际文件块的冷热属性是对多个样本用户采样得到的。当采用在线训练方式时,训练时使用的已知文件类型,以及,已知文件类型对应的实际文件块的冷热属性是对用户自身采样得到的。第一映射关系也可以是先通过离线训练得到的,然后,再在使用的过程中,使用在线训练的方式进行纠正,此处不作具体限定。不难理解,通过离线训练得到的第一映射关系可以通过其他用户的数据获得,适合在用户自身没有初始数据的情况下使用,但是,通过离线训练得到的第一映射关系只能反映大多数用户的普遍情况,不能反映用户自身的特殊情况,例如,对于大多数用户来说,相片通常不需要反复修改,是冷属性,但是,对于身为摄影师的用户来说,可能经常对相片进行改编,从而导致相片需要反复修改,是热属性。因此,日志式文件系统还可以在初始时刻先使用离线训练得到的第一映射关系进行计算,然后,在使用的过程中,再使用在线训练得到的第一映射关系进行纠正,从而提高第一映射关系的准确性。
在第三种方式中,日志式文件系统根据所述文件块所在的目录以及第二映射关系确定所述文件块的冷热属性,其中,所述第二映射关系为目录与冷热属性的映射关系。不难理解,开发人员在设计时,通常倾向将相同冷热属性的数据放在同一目录之下,因此,目录和冷热属性之间具有一定的对应关系,可以根据文件块所属目录确定所述文件块的冷热属性。举例来说,第二映射关系可以如下文所述:如果文件所属的目录为照片目录(例如:/photo),则文件的属性为冷属性;如果文件所属的目录为数据库目录(例如:/database),则文件的属性为热属性。需要说明的是,上述第二映射关系仅仅是作为一个举例,不应构成具体限定。
在一具体的实施方式中,第二映射关系可以是预先设置的,也可以通过训练得到的。第二映射关系可以是预先设置的,因为,研发人员可以明确地知道目录和冷热属性的关系。因此,研发人员可以直接设置第二映射关系。第二映射关系可以采用机器学习算法进行训练得到。训练时,使用大量的已知目录,以及,已知目录对应的实际文件块的冷热属性作为机器学习算法的输入,从而得到第二映射关系。其中,已知目录对应的实际文件块的冷热属性可以通过第一种方式记载的方法求得。
在一具体的实施方式中,第二映射关系可以是通过离线训练得到的,也可以是通过在线训练得到的。当采用离线训练方式时,训练时使用的已知目录,以及,已知目录对应的实际文件块的冷热属性是对多个样本用户采样得到的。当采用在线训练方式时,训练时使用的已知目录,以及,已知目录对应的实际文件块的冷热属性是对用户自身采样得到的。第二映射关系也可以是先通过离线训练得到的,然后,再在使用的过程中,使用在线训练的方式进行纠正,此处不作具体限定。不难理解,通过离线训练得到的第二映射关系可以通过其他用户的数据获得,适合在用户自身没有初始数据的情况下使用,但是,通过离线训练得到的第二映射关系只能反映大多数用户的普遍情况,不能反映用户自身的特殊情况。因此,日志式文件系统还可以在初始时刻先使用离线训练得到的第二映射关系进行计算,然后,在使用的过程中,再使用在线训练得到的第二映射关系进行纠正,从而提高第二映射关系的准确性。
在本申请具体的实施方式中,在闪存设备根据所述冷热标签确定将所述文件块发送给冷数据段还是热数据段之前,日志式文件系统还可以在日志式文件系统中进行冷热分离。日志式文件系统至少包括以下需要进行冷热分离的原因:
为了和闪存设备匹配,日志式文件系统同样需要进行垃圾回收。在进行垃圾回收时,只能以逻辑数据段为单位进行回收,不能针对单个逻辑数据单元进行回收,所以,在需要对逻辑数据段进行回收时,日志式文件系统会将该逻辑数据段中的有效数据搬迁到其他的逻辑数据段,然后,再将整个逻辑数据段进行回收。日志式文件系统的这种特性可以被称之为日志式文件系统的垃圾回收特性。由于日志式文件系统的垃圾回收特性的存在,在对日志式文件系统进行写操作时,实际写入数据量等于本来要写入数据量加上数据搬迁导致的写入数据量,也就是说,实际写入数据量大于本来要写入数据量,即,出现写放大问题。因此,在日志式文件系统的逻辑数据单元中对数据进行冷热分离,同样能够有效减少写放大问题。
在本申请的实施方式中,如图4所示,日志式文件系统可以通过如下的方法在日志式文件系统中进行冷热分离:(1)日志式文件系统可以按照准备写入所述日志式文件系统的热数据和冷数据的比例将所述日志式文件系统划分地址连续的热空间和地址连续的冷空间。举个例子说明,假设逻辑地址空间包括8个逻辑数据段,热数据和冷数据的比例为1:1,则日志式文件系统可以将逻辑数据段1-4划分为热空间,逻辑数据段5-8划分为冷空间。(2)日志式文件系统可以按照准备写入所述日志式文件系统的热数据和冷数据的比例将所述日志式文件系统划分地址不连续的热空间和地址不连续的冷空间。举个例子说明,假设逻辑地址空间包括8个逻辑数据段,热数据和冷数据的比例为1:1,则日志式文件系统可以将单数的物理数据段划分为热空间,双数的物理数据段划分为冷空间。
在本申请的实施例中,在日志式文件系统中进行冷热分离分离之后,日志式文件系统将热空间中地址连续的物理数据单元的数据一起进行一次IO下发,将冷空间中地址连续的物理数据单元的数据一起进行一次IO下发。其中,将热空间中地址连续的物理数据单元的数据进行IO下发时,需要使用热数据对应的Open Block进行传输,将冷空间中地址连续的物理数据单元的数据进行IO下发时,需要使用冷数据对应的Open Block进行传输。因此,当从对热空间中地址连续的物理数据单元的数据进行IO下发切换至对冷空间中地址连续的物理数据单元的数据进行IO下发,或者,当从对冷空间中地址连续的物理数据单元的数据进行IO下发切换至对热空间中地址连续的物理数据单元的数据进行IO下发时,都需要进行Open Block进行切换,从而产生切换开销,因此避免冷热数据交替下发,实现将冷数据一起下发或者将热数据一起进行下发可以减少Open Block的切换开销。
下面将分别对有和没有将逻辑地址空间划分为地址连续的热空间和地址连续的冷空间时的Open Block的切换开销进行说明。继续以图4为例进行说明,
如图4下半部分所示,在没有将逻辑地址空间划分为地址连续的热空间和地址连续的冷空间时,由于日志式文件系统只能将热空间中地址连续的物理数据单元的数据一起进行一次IO下发,将冷空间中地址连续的物理数据单元的数据一起进行一次IO下发,日志式文件系统需要将逻辑数据段1-8的数据传输给闪存设备时,需要将逻辑数据段1-8中的每个逻辑数据段分别进行一次IO下发,即,共进行8次IO下发,因此,将会产生7次切换开销。
如图4上半部分所示,在有将逻辑地址空间划分为地址连续的热空间和地址连续的冷空间时,由于日志式文件系统只能将热空间中地址连续的物理数据单元的数据一起进行一次IO下发,将冷空间中地址连续的物理数据单元的数据一起进行一次IO下发,日志式文件系统需要将数据段1-8的数据传输给闪存设备时,可以将数据段1-4中的数据作为一次IO下发,将数据段5-8中的数据作为一次IO下发,即,共进行2次IO下发,因此,将会产生1次切换开销。
通过对比可知,在没有将逻辑地址空间划分为地址连续的热空间和地址连续的冷空间的情况下,IO下发次数较多因而IO性能较差,Open Block的切换开销是比较高的;在将逻辑地址空间划分为地址连续的热空间和地址连续的冷空间的情况下,IO下发次数较少因而IO性能较好,Open Block的切换开销是比较低的。
另外,将逻辑地址空间划分为地址连续的热空间和地址连续的冷空间还具有这样的作用:过了一段时间,热空间中的热数据都变成了无效数据之后,回收并从新写入数据之后,热空间依然还是连续的,从而继续减少IO下发次数从而提升IO性能及减少Open Block的切换开销。
在一具体的实施方式中,所述日志式文件系统可以动态调整所述热空间的大小和所述冷空间的大小。具体地,当所述热空间不够用时,所述日志式文件系统可以将所述冷空间中与所述热空间相邻的部分空间划入所述热空间,相应地,当所述冷空间不够用时,所述日志式文件系统可以将所述热空间中与所述冷空间相邻的部分空间划入所述冷空间。继续以上述图4上半部分的例子进行说明,如图5所示,假设热数据和冷数据的比例变成了3:1,则日志式文件系统可以将冷空间的逻辑数据段5和6调剂给热空间使用。不难理解,通过上述的方式,能够保证在动态调整热空间和冷空间的过程中,依然保持热空间和冷空间的地址是连续的,从而继续减少IO下发次数从而提升IO性能及减少Open Block的切换开销。
可以理解,闪存设备同样需要进行冷热分离,并且,闪存设备的冷热分离与日志式文件系统的冷热分离相类似,此处不再展开描述。
在本申请具体的实施方式中,在日志式文件系统进行冷热分离之后,在闪存设备根据所述冷热标签确定将所述文件块发送给冷物理数据段还是热物理数据段之前,块设备可以根据所述文件块的冷热标签进行调度。其中,块设备在调度时,至少根据以下两个原则进行调度。
(1)、热数据的调度优先级别大于冷数据的调度优先级别。不难理解,用户使用热数据的急切性比较高,使用冷数据的急切性比较低,因此,将热数据优先进行调度,用户能够尽快使用到热数据,提高用户的使用体验。另外,热数据的生命周期比较短,冷数据的生命周期比较长,因此,将热数据优先进行调度,可以使得热数据优先被写入闪存设备,并且,热数据被写入之后很快变成了无效数据,于是,写入热数据的物理数据单元又可以被重新回收使用,从而提高了闪存设备的利用率。
(2)、将多个热数据一起进行IO下发,或者,将多个冷数据一起进行IO下发。将冷热数据分开进行下发的意义已经在上述日志式文件系统的冷热分离中进行了陈述,此处不再重复。块设备可以根据冷热标签分别建立冷队列和热队列,文件块会根据其冷热标签被发送到相应的队列进行聚合。块设备会根据冷热分离的状态调整各队列的优先级,会优先选择数据较多的队列、冷热等级更高的队列及当前已经获得闪存设备的Open Block映射的队列进行IO的下发。
可以理解,上述的两条原则仅仅是用于举例,在实际应用中,还可根据更多的原则进行调度,此处不作具体限定。
在本申请具体的实施方式中,设备驱动通过扩展协议将冷热标签发送给存储设备的方式至少包括以下几种:
(1)当所述扩展协议为嵌入式多媒体存储卡(Embedded Multi Media Card,eMMC)协议或者通用闪存存储(Universal Flash Storage,UFS)协议时,所述冷热标签承载于内容标识(Context ID)字段或者保留字段。
(2)当所述扩展协议为非易失存储器标准(Non-Volatile Memory express,NVMe)协议时,所述冷热标签承载于流标识(Stream Identifier)字段或者保留字段。
当用户态程序想要获取一个Context ID或者Stream Identifier的时候,最终会向闪存设备发送一个获取命令,日志式文件系统在这个获取Context ID或者StreamIdentifier命令中带上冷热标签,闪存设备将Context ID或者Stream Identifier按照冷热属性的个数进行分组,在收到获取命令后,返还相应冷热属性组里的Context ID或者Stream Identifier给用户态程序,在后续写入数据时,Context ID或者StreamIdentifier实际上就与冷热标签一一对应了,实现与冷热分离的兼容。对于用户态程序当前未使用的Context ID或者Stream Identifier,日志式文件系统自己也可以直接获取和使用这部分资源,以达到通过Context ID或者Stream Identifier来传递冷热标签的效果。另外,闪存设备的Context ID或者Stream Identifier的资源可能非常有限或者已经全部被用户态程序使用,针对于此种情况,本发明利用eMMC、UFS及NVMe的保留位实现了冷热标签的定义。对于eMMC,可以利用WRITE CMD23的[23:16]位进行冷热标签的设置;对于UFS,可以利用WRITE(6)的Byte 1的[7:5]位、WRITE(10)的Byte6的[7:5]位及WRITE(16)的Byte 14的[7:5]位进行冷热标签的设置;对于eMMC和UFS,当System Data Tag位设为1时,ContextID就会被看做保留位,此时同样可以占用Context ID的位置进行冷热标签的设置;对于NVMe,在Directive Type中新添加一个冷热标签的类别02h(HotCold),该类别的命令格式与01h(Streams)的命令格式相同。冷热标签以{0,1,2,3…}进行表示,0代表冷热属性暂未识别的数据或者代表冷热分离功能关闭。
在本申请具体的实施方式中,闪存设备在接收到冷热标签之后,可以通过通道Open Block进行冷热标签的映射,从而实现冷热分离。闪存设备进行冷热分离的方式至少包括以下两种:
第一种方式,当冷热标签的数量小于Open Block的数量时,每个Open Block可以固定映射特定的冷热标签。例如,当冷热标签包括热标签和冷标签两个标签,Open Block包括第一Open Block和第二Open Block时,第一Open Block可以专门用于映射热标签,第二Open Block可以专门用于映射冷标签。
第二种方式,当冷热标签的数量大于Open Block的数量时,每个Open Block不再固定表示一个特定的冷热标签,每个Open Block都可以映射到任何一个冷热标签,但是同一时间只能映射到一个冷热标签。具体地,Open Block可以通过时分复用的方式进行冷热标签的映射。例如,当冷热标签包括大热标签、小热标签、小冷标签和大冷标签,Open Block包括第一Open Block和第二Open Block时,第一Open Block的第一时间段用于映射大热标签,第一Open Block的第二时间段用于映射小热标签,第二Open Block的第一时间段用于映射小冷标签,第二Open Block的第二时间段用于映射大冷标签。
闪存设备在提取出冷热标签后,首先判断该冷热标签是否存在已经打开的OpenBlock映射,如果存在则将数据直接写入到对应的Open Block中,同时将冷热标签写入对应的OOB区域中用来优化器件内部的垃圾回收、磨损均衡等算法;如果不存在则需要查找OpenBlock资源池中是否有可用的Open Block,如果存在则将冷热标签与该Open Block进行映射,后续数据都写入到该Open Block中;如果不存在则停止写入,并返回给存储驱动(如SCSI)一个错误码,并最终通知块设备,使块设备降低该冷热标签对应的优先级,延后发送。当闪存设备中Open Block中的数据刷写到持久化介质中后则解除该Open Block与冷热标签的映射关系,将该Open Block放到未映射资源池中,等待新的冷热标签进行映射。另外,对于高并发的数据写入,可以将同一个冷热标签与多个Open Block同时映射,这样可以提高数据的并发写入速率,提高整机IO性能。
在本申请具体的实施方式中,日志式文件系统根据所述文件块的冷热属性为所述文件块添加冷热标签之后,所述文件块的后续的所有的数据都会被标记上该冷热标签。该冷热标签将被临时保存在日志式文件系统的高速缓冲中,并最终随着所述文件块一并写入到闪存式存储设备中。在下次系统启动时,日志式文件系统直接从闪存设备中读取该冷热标签,就可以知道所述文件块的冷热属性,而不需要再次进行冷热识别工作。当用户态程序已知文件冷热属性时,可以通过本发明提供的冷热API(如ioctl)在用户态程序中直接对该文件打冷热标签,该冷热标签将和所述文件块一起保存,用户态程序可以在任何时候更改或者删除所述文件块的冷热标签,这可以避免日志式文件系统进行不必要的冷热识别工作
在本申请具体的实施方式中,日志式文件系统根据预设方式确定文件块的冷热属性,并根据所述文件块的冷热属性为所述文件块添加冷热标签之后,所述闪存设备还可以根据冷热标签从冷物理数据段中选择剩余有效数据比较少的物理数据段进行垃圾回收。可以理解,
下面将分别对闪存设备在没有根据冷热标签进行垃圾回收时的回收效率和在根据冷热标签进行垃圾回收时的效率进行阐述。
(1)在没有根据冷热标签进行垃圾回收时,闪存设备会选择剩余有效数据(不区分冷热)比较少的物理数据段进行回收。假设闪存设备包括物理数据段1、物理数据段2和物理数据段3,其中,物理数据段1剩余2个热数据,物理数据段2剩余3个冷数据,物理数据段3剩余4个冷数据。此时,闪存设备会先选择物理数据段1进行垃圾回收。过了一段时间之后,闪存设备会再选择物理数据段2进行垃圾回收。
(2)在根据冷热标签进行垃圾回收时,闪存设备会根据冷热标签从冷物理数据段中选择剩余有效数据比较少(特别是最少)的物理数据段进行垃圾回收。假设闪存设备包括物理数据段1、物理数据段2和物理数据段3,其中,物理数据段1剩余2个热数据,物理数据段2剩余3个冷数据,物理数据段3剩余4个冷数据。此时,闪存设备会先选择物理数据段2进行垃圾回收。过了一段时间之后,物理数据段1中2个热数据被更新掉,剩余有效数据为0个,闪存设备会再选择物理数据段1进行垃圾回收。
通过对比可知,在方式(1)中,闪存设备进行两次垃圾回收总共需要搬迁5个数据。但是,在方式(2)中,闪存设备进行两次垃圾回收只需要搬迁3个数据。不难理解,在方式(2)中,闪存设备在对物理数据段2进行回收时,需要搬迁3个数据,过了一段时间之后,物理数据段1中的2个数据都变成了无效数据,不要搬迁任何数据就可以直接进行垃圾回收,所以,在方式(2)中只需要搬迁3个数据即可。
在本申请具体的实施方式中,方式(2)中的冷物理数据段的冷热标签可以是没有被修改过的,也可以是被修改过的,此处不作具体限定。
为了提高闪存设备根据物理数据段的冷热标签进行垃圾回收的准确性,闪存设备还需要对物理数据段的冷热标签进行监控并修改,以避免物理数据段的冷热标签不准确而影响垃圾回收的准确性。
在本申请具体的实施方式中,闪存设备可以根据物理数据段的生命期对所述冷热标签进行监控并修改。其中,生命期是指从数据诞生至现在的持续时间段。不难理解,物理数据段的冷热标签可能是不正确的,因此,需要对物理数据段的冷热标签进行修改。具体地,在所述物理数据段的冷热标签为热标签的情况下,所述闪存设备确定所述物理数据段的生命期是否大于时间窗的持续长度k;在确定所述物理数据段的生命期大于时间窗的持续长度k的情况下,则所述物理数据段的热标签很可能是错误的,所述闪存设备将所述物理数据段的冷热标签修改为冷标签;在确定所述物理数据段的生命期没有大于时间窗的持续长度k的情况下,则所述文件块的热标签很可能是正确的,所述闪存设备保持所述文件块的冷热标签为热标签。在修改所述物理数据段的冷热标签后,所述闪存设备再根据修改后的物理数据段的冷热标签进行垃圾回收,以保证垃圾回收的准确性。
在本申请具体的实施方式中,闪存设备还可以根据物理数据段的生命期age、物理数据段的当前的更新比例us(t,age)及物理数据段的冷热阈值us(t,k)对物理数据段的冷热标签进行监控并修改。不难理解,物理数据段的冷热属性并非一成不变的,而是,很可能随着时间的流逝而发生变化,因此,需要对物理数据段的冷热标签进行调整。
物理数据段的数据更新比例与该物理数据段内的各文件块的数据更新比例是相同的。具体地,对于一个文件块,发生写操作时,会根据其计算出的数据更新比例u(t,k)选择相应冷热属性的物理数据段进行数据的写入,按照冷热属性的定义可知,Un+1≤u(t,k)<Un的数据会写入到同一个冷热属性的物理数据段中,其中,Un+1为数据更新比例的下限,Un为数据更新比例的上限。换句话来说,写入该物理数据段的所有文件块,其u(t,k)都满足,Un+1≤u(t,k)<Un。假设该物理数据段共写入了m个文件块,每个文件块的大小依次为{S1,S2,…,Sm},则写入该物理数据段的各个文件块的所有数据中被再次更新的部分为u1(t,k)S1+u2(t,k)S2+…+um(t,k)Sm,可得到该物理数据段中数据更新的比例为us(t,k)=(u1(t,k)S1+u2(t,k)S2+…+um(t,k)Sm)/(S1+S2+…+Sm),由于每个文件块的u(t,k)都满足Un+1≤u(t,k)<Un,经过推导可得uS(t,k)同样满足Un+1≤us(t,k)<Un,即一个物理数据段整体的数据更新比例与各个文件块的数据更新的比例相同,都是其冷热属性所对应的阈值范围[Un+1,Un)。例如,如图6的上半部分所示,假设物理数据段中写入了第一文件块的数据以及第二文件块的数据,则第一文件块在前两个小时被更新了80%的数据,第二文件块在前两个小时被更新了80%的数据,因此,该物理数据段在前两个小时被更新了80%的数据。
假设预计物理数据段在时间窗的持续长度k(例如,8小时)的数据更新比例大于等于80%时,可以认为该物理数据段为热物理数据段。也就是说,该物理数据段中有80%的数据在8小时内会变成无效数据,有20%的数据在8小时内不会变成无效数据。在一具体的实施例中,如图6的下半部分所示,假设该物理数据段以每小时更新10%的速度进行更新,则经过8小时之后,该物理数据段中80%的数据会变成无效数据,剩下的20%的数据不会变成无效数据。当然上述例子只是作为一种举例,在其他的实施中,数据更新的速度也可以是不均衡的,例如,该物理数据段中的80%的数据在第1个小时内变成了无效数据等等。由于根据之前的经验可知,该物理数据段只有80%的数据在8小时内变成无效数据,因此,如果在第1个小时内,该物理数据段已经有80%的数据变成了无效数据,则可以预计剩下的20%的数据在剩下的7小时不会变成无效数据,于是,可以在第1个小时结束的时候就将该物理数据段从热物理数据段更改为冷物理数据段,而不需要等8个小时的窗口期结束后才能将该物理数据段从热物理数据段更改为冷物理数据段。
继续以图6的上半部分为例,假设预计物理数据段在时间窗的持续长度k(例如,8小时)的数据更新比例大于等于60%并且小于80%时,可以认为该物理数据段为小热物理数据段。由于根据之前的经验可知,该物理数据段只有60%至80%的数据在8小时内变成无效数据,也就是说,如果该物理数据段在第1个小时内已经有60%的数据变成了无效数据,则可能还有20%的数据可以在剩下的7小时内变成无效数据。如果该物理数据段在第1个小时内已经有80%的数据变成了无效数据,则在剩下的7小时内基本上没有数据可以变成无效数据。因此,如果该物理数据段在第1个小时内有60%的数据变成无效数据,则可以在第1个小时结束时,将该物理数据段从小热物理数据段更改为小冷物理数据段,而无需等到8小时的窗口期结束后才将该物理数据段从小热物理数据段更改为小冷物理数据段。如果该物理数据段在前两个小时内有80%的数据变成无效数据,则可以在第2个小时结束时,将该物理数据段从小热物理数据段更改为大冷物理数据段,而无需等到8小时的窗口期结束后才将该物理数据段从小热物理数据段更改为大冷物理数据段。基于物理数据段的这种特性,可以将数据更新的比例60%设置为us(t,k)所在阈值范围的下限,数据更新的比例80%设置为us(t,k)所在阈值范围的上限,可以理解,上述us(t,k)所在阈值范围的下限和上限只是作为一种具体的举例,在实际应用中,us(t,k)所在阈值范围的下限和上限还可以根据实际需要进行设置,此处不作具体限定。
在本申请具体的实施方式中,闪存设备可以根据如下方式对物理数据段的冷热标签进行监控以及修改。具体地,如图7所示,
如果age≥k,或者,age<k且该物理数据段的冷热属性为冷属性,或者,age<k且该物理数据段的当前更新比例us(t,age)≥us(t,k)所在阈值范围的上限,则该物理数据段的冷热标签都被置为冷标签;其中,所述物理数据段的当前更新比例us(t,age)为所述物理数据段从诞生至现在更新的数据比例;
如果age<k且该物理数据段的当前更新比例us(t,age)<us(t,k)所在阈值范围的下限,则该物理数据段的冷热标签保持其原有的标签不变;
如果age<k且该物理数据段的更新比例介于us(t,k)所在阈值范围的上限和下限之间,则该物理数据段的冷热标签被修改为比其原有冷热标签低一级的标签。
在修改所述冷热标签后,所述闪存设备再根据修改后的冷热标签进行垃圾回收,以保证垃圾回收的准确性。
可以理解,所述日志式文件系统同样需要进行垃圾回收,并且,日志式文件系统的垃圾回收与闪存设备的垃圾回收是相似的,此处不在展开赘述。
如图8所示,图8是本申请在闪存设备不支持冷热分离的功能的情况下提出的一种基于日志式文件系统和闪存设备的冷热属性识别方法的流程示意图。如图8所示,本申请的基于日志式文件系统和闪存设备的冷热属性识别方法包括如下步骤:
S301:日志式文件系统根据预设方式确定多个文件块中的每个文件块的冷热属性,并根据所述多个文件块中的每个文件块的冷热属性为所述多个文件块中的每个文件块添加冷热标签,其中,所述多个文件块中的每个文件块至少包括一个数据;
S302:日志式文件系统按照准备写入所述日志式文件系统的热数据和冷数据的比例将所述日志式文件系统划分地址连续的热空间和地址连续的冷空间,其中,所述热空间包括多个连续的热逻辑数据段,所述热逻辑数据段是专门用于放置热数据的逻辑数据段,所述冷空间包括多个连续的冷逻辑数据段,所述冷逻辑数据段是专门用于放置冷数据的逻辑数据段;
S303:日志式文件系统将冷热标签为热标签的文件块写入所述热空间,将冷热标签为冷标签的文件块写入所述冷空间;
S304:日志式文件系统将所述热空间中的数据单独向闪存设备进行IO下发,或者,将所述冷空间中的数据单独向闪存设备进行IO下发。
在本申请的具体实施方式中,日志式文件系统至少包括以下需要进行冷热分离的原因:
(1)为了和闪存设备匹配,日志式文件系统同样需要进行垃圾回收。在进行垃圾回收时,只能以逻辑数据段为单位进行回收,不能针对单个逻辑数据单元进行回收,所以,在需要对逻辑数据段进行回收时,日志式文件系统会将该逻辑数据段中的有效数据搬迁到其他的逻辑数据段,然后,再将整个逻辑数据段进行回收。日志式文件系统的这种特性可以被称之为日志式文件系统的垃圾回收特性。由于日志式文件系统的垃圾回收特性的存在,在对日志式文件系统进行写操作时,实际写入数据量等于本来要写入数据量加上数据搬迁导致的写入数据量,也就是说,实际写入数据量大于本来要写入数据量,即,出现写放大问题。因此,在日志式文件系统的逻辑数据单元中对数据进行冷热分离,同样能够有效减少写放大问题。
(2)由于闪存设备不支持冷热分离的功能,日志式文件系统需要在日志式文件系统中进行冷热分离,即,将热数据都存储在热空间中,将冷数据都存储在冷空间中。其中,所述热空间包括多个连续的热逻辑数据段,所述热逻辑数据段是专门用于放置热数据的逻辑数据段,所述冷空间包括多个连续的冷逻辑数据段,所述冷逻辑数据段是专门用于放置冷数据的逻辑数据段。在日志式文件系统中进行冷热分离分离之后,日志式文件系统将热空间中地址连续的物理数据单元的数据一起进行一次IO下发,将冷空间中地址连续的物理数据单元的数据一起进行一次IO下发,从而实现在闪存设备中对数据进行冷热分离,进而减少写放大的问题。
在本申请的实施例中,日志式文件系统可以通过如下的方法在日志式文件系统中进行冷热分离:(1)日志式文件系统可以按照准备写入所述日志式文件系统的热数据和冷数据的比例将所述日志式文件系统划分地址连续的热空间和地址连续的冷空间。举个例子说明,假设逻辑地址空间包括8个逻辑数据段,热数据和冷数据的比例为1:1,则日志式文件系统可以将逻辑数据段1-4划分为热空间,逻辑数据段5-8划分为冷空间。(2)日志式文件系统可以按照准备写入所述日志式文件系统的热数据和冷数据的比例将所述日志式文件系统划分地址不连续的热空间和地址不连续的冷空间。举个例子说明,假设逻辑地址空间包括8个逻辑数据段,热数据和冷数据的比例为1:1,则日志式文件系统可以将单数的物理数据段划分为热空间,双数的物理数据段划分为冷空间。
在本申请的实施例中,将日志式文件系统划分为地址连续的热空间和地址连续的冷空间,能够有效地提高日志式文件系统的IO传输效率。下面将分别对有和没有将逻辑地址空间划分为地址连续的热空间和地址连续的冷空间时的IO传输效率进行说明。
如图4下半部分,在没有将逻辑地址空间划分为地址连续的热空间和地址连续的冷空间时,由于日志式文件系统只能将热空间中地址连续的物理数据单元的数据一起进行一次IO下发,将冷空间中地址连续的物理数据单元的数据一起进行一次IO下发,日志式文件系统需要将逻辑数据段1-8的数据传输给闪存设备时,需要将逻辑数据段1-8中的每个逻辑数据段分别进行一次IO下发,即,共进行8次IO下发。
如图4上半部分,在有将逻辑地址空间划分为地址连续的热空间和地址连续的冷空间时,由于日志式文件系统只能将热空间中地址连续的物理数据单元的数据一起进行一次IO下发,将冷空间中地址连续的物理数据单元的数据一起进行一次IO下发,日志式文件系统需要将数据段1-8的数据传输给闪存设备时,可以将数据段1-4中的数据作为一次IO下发,将数据段5-8中的数据作为一次IO下发,即,共进行2次IO下发。
通过对比可知,在没有将逻辑地址空间划分为地址连续的热空间和地址连续的冷空间的情况下,日志式文件系统的IO传输效率是比较低的,在将日志式文件系统划分为地址连续的热空间和地址连续的冷空间的情况下,日志式文件系统的IO传输效率是比较高的。
另外,将逻辑地址空间划分为地址连续的热空间和地址连续的冷空间还具有这样的作用:过了一段时间,热空间中的热数据都变成了无效数据之后,回收并重新写入数据之后,热空间依然还是连续的,这样能够继续保证IO传输效率。
在一具体的实施方式中,所述日志式文件系统可以动态调整所述热空间的大小和所述冷空间的大小。具体地,当所述热空间不够用时,所述日志式文件系统可以将所述冷空间中与所述热空间相邻的部分空间划入所述热空间,相应地,当所述冷空间不够用时,所述日志式文件系统可以将所述热空间中与所述冷空间相邻的部分空间划入所述冷空间。继续以上述的例子进行说明,假设热数据和冷数据的比例变成了3:1,则日志式文件系统可以将冷空间的数据段5和6调剂给热空间使用。不难理解,通过上述的方式,能够保证在动态调整热空间和冷空间的过程中,依然保持热空间和冷空间的地址是连续的,从而保证IO传输效率。
通过上述的方案,即使闪存设备不支持冷热分离的功能,日志式文件系统在进行IO下发时,会将热空间中的热数据一起进行IO下发,将冷空间中的冷数据一起进行IO下发,从而实现在闪存设备对数据进行冷热分离,进而减少写放大的问题。
为了让说明书更为简洁,确定文件块的冷热属性的预设的方式、块设备可以根据所述文件块的冷热标签进行调度以及日志式文件系统进行垃圾回收的内容将不再展开赘述,具体请参见图2以及相关的实施例。
参阅图9,图9是本申请提出的一种基于日志式文件系统和闪存设备的冷热属性识别和分离装置的结构示意图。如图9所示,本申请的基于日志式文件系统和闪存设备的冷热属性识别和分离装置是针对闪存设备支持冷热分离功能的,包括:日志式文件系统201,块设备202,设备驱动203以及闪存设备204。
日志式文件系统201用于根据预设方式确定文件块的冷热属性,并根据所述文件块的冷热属性为所述文件块添加冷热标签,其中,所述文件块至少包括一个数据;
设备驱动203用于通过扩展协议将所述文件块以及所述冷热标签从所述日志式文件系统发送给闪存设备;
所述闪存设备204用于根据所述冷热标签确定将所述文件块发送给冷物理数据段或者热物理数据段,其中,所述冷物理数据段是专门用于放置冷数据的物理数据段,所述热物理数据段是专门用于放置热数据的物理数据段,所述闪存设备支持冷热分离的功能。
所述日志式文件系统201用于根据预设方式确定文件块的冷热属性,具体包括:
所述日志式文件系统201用于至少根据所述文件块在上一个时间窗的冷热属性预测所述文件块在当前时间窗的冷热属性。
所述日志式文件系统201用于至少根据所述文件块在上一个时间窗的冷热属性预测所述文件块在当前时间窗的冷热属性,至少包括以下三种方式:
在第一种方式中,所述日志式文件系统201用于为所述文件块确定工作集W(t,k),其中,工作集W(t,k)为在时刻t之前的k时间段内写入该文件块的数据的集合,t和k用于表征所述上一时间窗,t为所述上一个时间窗的最后一个时刻,k为时间窗的持续长度;
所述日志式文件系统201用于确定所述工作集W(t,k)中数据更新的比例u(t,k),其中,u(t,k)为上一个时间窗中工作集W(t,k)中数据更新的比例,t和k用于表征所述上一时间窗,t为所述上一个时间窗的最后一个时刻,k为时间窗的持续长度,0≤u(t,k)≤1,u(t,0)=0,u(t,+∞)=1;
所述日志式文件系统201用于根据所述工作集W(t,k)中数据更新的比例u(t,k)确定所述文件块的冷热属性,其中,所述数据更新的比例u(t,k)越大,所述文件块的热度越高,冷度越低,所述数据更新的比例u(t,k)越小,所述文件块的热度越低,冷度越高。
具体地,所述日志式文件系统201用于根据所述工作集W(t,k)中数据更新的比例u(t,k)确定所述文件块的冷热属性,至少包括以下两种:
(1)如果所述工作集W(t,k)中数据更新的比例u(t,k)大于第一阈值,则所述文件块的冷热属性为热属性;如果所述工作集W(t,k)中数据更新的比例u(t,k)小于或者等于第一阈值,则所述文件块的冷热属性为冷属性。其中,所述时间窗的持续长度k以及所述第一阈值的具体数值是采用机器学习算法进行训练得到的,特别地,所述时间窗的持续长度k以及所述第一阈值的具体数值是通过离线训练得到的,或者,通过在线训练得到的。
(2)如果所述工作集W(t,k)中数据更新的比例u(t,k)大于或者等于第二阈值,则所述文件块的冷热属性为大热属性;如果所述工作集W(t,k)中数据更新的比例u(t,k)小于所述第二阈值并且大于第一阈值,则所述文件块的冷热属性为小热属性;如果所述工作集W(t,k)中数据更新的比例u(t,k)小于或者等于所述第一阈值并且大于第三阈值,则所述文件块的冷热属性为小冷属性;如果所述工作集W(t,k)中数据更新的比例u(t,k)小于或者等于所述第三阈值,则所述文件块的冷热属性为大冷属性;其中,所述第二阈值>所述第一阈值>所述第三阈值。其中,所述时间窗的持续长度k、所述第一阈值、所述第二阈值以及所述第三阈值的具体数值是采用机器学习算法进行训练得到的,特别地,所述时间窗的持续长度k、所述第一阈值、所述第二阈值以及所述第三阈值的具体数值是通过离线训练得到的,或者,通过在线训练得到的。
第二种方式中,所述日志式文件系统201用于根据所述文件块所属的文件的类型以及第一映射关系确定所述文件块的冷热属性,其中,所述第一映射关系为文件的类型与冷热属性之间的映射关系。其中,所述第一映射关系是预先设置的;或者,所述第一映射关系是通过机器学习算法进行训练得到的,其中,训练为离线训练或者在线训练。
第三种方式中,所述日志式文件系统201用于根据所述文件块所在的目录以及第二映射关系确定所述文件块的冷热属性,其中,所述第二映射关系为目录与冷热属性的映射关系。其中,所述第二映射关系是预先设置的;或者,所述第二映射关系是通过机器学习算法进行训练得到的,其中,训练为离线训练或者在线训练。
所述日志式文件系统201还用于在日志式文件系统中进行冷热分离。至少包括以下两种方式:
第一种方式中,所述日志式文件系统201用于按照准备写入所述日志式文件系统的热数据和冷数据的比例将所述日志式文件系统划分地址连续的第一热空间和地址连续的第一冷空间。
第二种方式中,所述日志式文件系统201用于按照准备写入所述日志式文件系统的热数据和冷数据的比例将所述日志式文件系统划分地址不连续的第一热空间和地址不连续的第一冷空间。
可选地,所述日志式文件系统201还用于动态调整所述第一热空间的大小和所述第一冷空间的大小。具体地,当所述第一热空间不够用时,所述日志式文件系统201用于将所述第一冷空间中与所述第一热空间相邻的部分空间划入所述第一热空间;当所述第一冷空间不够用时,所述日志式文件系统201用于将所述第一热空间中与所述第一冷空间相邻的部分空间划入所述第一冷空间。
所述闪存设备204用于在所述闪存设备中进行冷热分离。所述闪存设备在所述闪存设备中进行冷热分离,至少包括以下两种方式:
第一种方式中,所述所述闪存设备204用于按照准备写入所述闪存设备的热数据和冷数据的比例将所述闪存设备划分地址连续的第二热空间和地址连续的第二冷空间。
第二种方式中,所述闪存设备204用于按照准备写入所述闪存设备的热数据和冷数据的比例将所述闪存设备划分地址不连续的第二热空间和地址不连续的第二冷空间。
可选地,所述闪存设备204用于动态调整所述第二热空间的大小和所述第二冷空间的大小。具体地,当所述第二热空间不够用时,所述闪存设备204用于将所述第二冷空间中与所述第二热空间相邻的部分空间划入所述第二热空间;当所述第二冷空间不够用时,所述闪存设备204用于将所述第二热空间中与所述第二冷空间相邻的部分空间划入所述第二冷空间。
块设备202用于根据所述文件块的冷热标签进行调度。在调度时,热数据的调度优先级别大于冷数据的调度优先级别,并且,将多个热数据一起进行输入输出IO下发,或者,将多个冷数据一起进行IO下发。
设备驱动203用于通过扩展协议将所述文件块以及所述冷热标签从所述日志式文件系统发送给闪存设备,包括:
当所述扩展协议为嵌入式多媒体存储卡(Embedded Multi Media Card,eMMC)协议或者通用闪存存储(Universal Flash Storage,UFS)协议时,所述冷热标签承载于内容标识(Context ID)字段或者保留字段;
当所述扩展协议为非易失存储器标准(Non-Volatile Memory express,NVMe)协议时,所述冷热标签承载于流标识(Stream Identifier)字段或者保留字段。
闪存设备204用于通过通道Open Block进行冷热标签的映射。其中,当冷热标签的数量小于Open Block的数量时,各个Open Block固定映射特定的冷热标签;当冷热标签的数量大于Open Block的数量时,各个Open Block通过时分复用的方式进行冷热标签的映射。
所述闪存设备204用于根据冷热标签从所述冷物理数据段中选择剩余有效数据最少的物理数据段进行垃圾回收。为了提高垃圾回收的准确性,所述闪存设备根据目标物理数据段的生命期对所述冷热标签进行监控并修改,其中,所述目标物理数据段为所述冷物理数据段或者所述热物理数据段。所述闪存设备根据目标物理数据段的生命期对所述冷热标签进行监控并修改,至少包括以下两种方式:
第一种方式中,在所述目标物理数据段的冷热标签为热标签的情况下,所述闪存设备确定所述目标物理数据段的生命期是否大于时间窗的持续长度k;
在确定所述目标物理数据段的生命期大于时间窗的持续长度k的情况下,所述闪存设备将所述目标物理数据段的冷热标签修改为冷标签;
在确定所述目标物理数据段的生命期没有大于时间窗的持续长度k的情况下,所述闪存设备保持所述目标物理数据段的冷热标签为热标签。
第二种方式中,闪存设备根据所述目标物理数据段的生命期age、所述目标物理数据段的当前的更新比例us(t,age)及所述目标物理数据段的冷热阈值us(t,k)对所述目标物理数据段的冷热标签进行监控并修改。
如果age≥k,或者,age<k且所述目标物理数据段的冷热属性为冷属性,或者,age<k且所述目标物理数据段的当前更新比例us(t,age)≥us(t,k)所在阈值范围的上限,则所述目标物理数据段的冷热标签都被置为冷标签;其中,所述目标物理数据段的当前更新比例us(t,age)为所述目标物理数据段从诞生至现在更新的数据比例;
如果age<k且所述目标物理数据段的当前更新比例us(t,age)<us(t,k)所在阈值范围的下限,则所述目标物理数据段的冷热标签保持其原有的标签不变;
如果age<k且所述目标物理数据段的更新比例介于us(t,k)所在阈值范围的上限和下限之间,则所述目标物理数据段的冷热标签被修改为比其原有冷热标签低一级的标签。
所述日志式文件系统201用于根据冷热标签从冷逻辑数据段中选择剩余有效数据最少的逻辑数据段进行垃圾回收,其中,所述冷逻辑数据段是日志式文件系统中专门用于放置冷数据的逻辑数据段,所述热逻辑数据段是日志式文件系统中专门用于放置热数据的逻辑数据段。所述日志式文件系统根据目标逻辑数据段的生命期对所述冷热标签进行监控并修改,至少包括以下两种方式:
第一种方式中,在所述目标逻辑数据段的冷热标签为热标签的情况下,所述日志式文件系统确定所述目标逻辑数据段的生命期是否大于时间窗的持续长度k;
在确定所述目标逻辑数据段的生命期大于时间窗的持续长度k的情况下,所述日志式文件系统将所述目标逻辑数据段的冷热标签修改为冷标签;
在确定所述目标逻辑数据段的生命期没有大于时间窗的持续长度k的情况下,所述日志式文件系统保持所述目标逻辑数据段的冷热标签为热标签。
第二种方式中,日志式文件系统根据所述目标逻辑数据段的生命期age、所述目标逻辑数据段的当前的更新比例us(t,age)及所述目标逻辑数据段的冷热阈值us(t,k)对所述目标逻辑数据段的冷热标签进行监控并修改。
如果age≥k,或者,age<k且所述目标逻辑数据段的冷热属性为冷属性,或者,age<k且所述目标逻辑数据段的当前更新比例us(t,age)≥us(t,k)所在阈值范围的上限,则所述目标逻辑数据段的冷热标签都被置为冷标签;其中,所述目标逻辑数据段的当前更新比例us(t,age)为所述目标逻辑数据段从诞生至现在更新的数据比例;
如果age<k且所述目标逻辑数据段的当前更新比例us(t,age)<us(t,k)所在阈值范围的下限,则所述目标逻辑数据段的冷热标签保持其原有的标签不变;
如果age<k且所述目标逻辑数据段的更新比例介于us(t,k)所在阈值范围的上限和下限之间,则所述目标逻辑数据段的冷热标签被修改为比其原有冷热标签低一级的标签。
为了简便起见,此处并没有对基于日志式文件系统和闪存设备的冷热属性识别和分离装置展开描述,具体请参见图2以及相关描述。
参阅图10,图10是本申请提出的一种基于日志式文件系统和闪存设备的冷热属性识别和分离装置的结构示意图。如图10所示,本申请的基于日志式文件系统和闪存设备的冷热属性识别和分离装置是针对闪存设备不支持冷热分离功能的,包括:日志式文件系统301,块设备302,设备驱动303以及闪存设备304。
日志式文件系统301用于根据预设方式确定多个文件块中的每个文件块的冷热属性,并根据所述多个文件块中的每个文件块的冷热属性为所述多个文件块中的每个文件块添加冷热标签,其中,所述多个文件块中的每个文件块至少包括一个数据;
所述日志式文件系统301用于将所述日志式文件系统划分为热空间和冷空间,其中,所述热空间包括多个连续的热逻辑数据段,所述热逻辑数据段是专门用于放置热数据的逻辑数据段,所述冷空间包括多个连续的冷逻辑数据段,所述冷逻辑数据段是专门用于放置冷数据的逻辑数据段;
所述日志式文件系统301用于将冷热标签为热标签的文件块写入所述热空间,将冷热标签为冷标签的文件块写入所述冷空间;
所述日志式文件系统301用于将所述热空间中的数据单独向闪存设备进行IO下发,或者,将所述冷空间中的数据单独向闪存设备进行IO下发。
所述日志式文件系统301用于至少根据所述文件块在上一个时间窗的冷热属性预测所述文件块在当前时间窗的冷热属性,至少包括以下三种方式:
在第一种方式中,所述日志式文件系统为所述文件块确定工作集W(t,k),其中,工作集W(t,k)为在时刻t之前的k时间段内写入该文件块的数据的集合,t和k用于表征所述上一时间窗,t为所述上一个时间窗的最后一个时刻,k为时间窗的持续长度;
所述日志式文件系统301用于确定所述工作集W(t,k)中数据更新的比例u(t,k),其中,u(t,k)为上一个时间窗中工作集W(t,k)中数据更新的比例,t和k用于表征所述上一时间窗,t为所述上一个时间窗的最后一个时刻,k为时间窗的持续长度,0≤u(t,k)≤1,u(t,0)=0,u(t,+∞)=1;
所述日志式文件系统301用于根据所述工作集W(t,k)中数据更新的比例u(t,k)确定所述文件块的冷热属性,其中,所述数据更新的比例u(t,k)越大,所述文件块的热度越高,冷度越低,所述数据更新的比例u(t,k)越小,所述文件块的热度越低,冷度越高。
具体地,所述日志式文件系统301用于根据所述工作集W(t,k)中数据更新的比例u(t,k)确定所述文件块的冷热属性。至少包括以下两种:
(1)如果所述工作集W(t,k)中数据更新的比例u(t,k)大于第一阈值,则所述文件块的冷热属性为热属性;如果所述工作集W(t,k)中数据更新的比例u(t,k)小于或者等于第一阈值,则所述文件块的冷热属性为冷属性。其中,所述时间窗的持续长度k以及所述第一阈值的具体数值是采用机器学习算法进行训练得到的,特别地,所述时间窗的持续长度k以及所述第一阈值的具体数值是通过离线训练得到的,或者,通过在线训练得到的。
(2)如果所述工作集W(t,k)中数据更新的比例u(t,k)大于或者等于第二阈值,则所述文件块的冷热属性为大热属性;如果所述工作集W(t,k)中数据更新的比例u(t,k)小于所述第二阈值并且大于第一阈值,则所述文件块的冷热属性为小热属性;如果所述工作集W(t,k)中数据更新的比例u(t,k)小于或者等于所述第一阈值并且大于第三阈值,则所述文件块的冷热属性为小冷属性;如果所述工作集W(t,k)中数据更新的比例u(t,k)小于或者等于所述第三阈值,则所述文件块的冷热属性为大冷属性;其中,所述第二阈值>所述第一阈值>所述第三阈值。其中,所述时间窗的持续长度k、所述第一阈值、所述第二阈值以及所述第三阈值的具体数值是采用机器学习算法进行训练得到的,特别地,所述时间窗的持续长度k、所述第一阈值、所述第二阈值以及所述第三阈值的具体数值是通过离线训练得到的,或者,通过在线训练得到的。
第二种方式中,所述日志式文件系统301用于根据所述文件块所属的文件的类型以及第一映射关系确定所述文件块的冷热属性,其中,所述第一映射关系为文件的类型与冷热属性之间的映射关系。其中,所述第一映射关系是预先设置的;或者,所述第一映射关系是通过机器学习算法进行训练得到的,其中,训练为离线训练或者在线训练。
第三种方式中,所述日志式文件系统301用于根据所述文件块所在的目录以及第二映射关系确定所述文件块的冷热属性,其中,所述第二映射关系为目录与冷热属性的映射关系。其中,所述第二映射关系是预先设置的;或者,所述第二映射关系是通过机器学习算法进行训练得到的,其中,训练为离线训练或者在线训练。
所述日志式文件系统301用于将所述日志式文件系统划分为热空间和冷空间,至少包括以下两种方式:
第一种方式中,所述日志式文件系统301用于按照准备写入所述日志式文件系统的热数据和冷数据的比例将所述日志式文件系统划分地址连续的第一热空间和地址连续的第一冷空间。
第二种方式中,所述日志式文件系统301用于按照准备写入所述日志式文件系统的热数据和冷数据的比例将所述日志式文件系统划分地址不连续的第一热空间和地址不连续的第一冷空间。
所述日志式文件系统301用于动态调整所述第一热空间的大小和所述第一冷空间的大小。具体地,当所述第一热空间不够用时,所述日志式文件系统301用于将所述第一冷空间中与所述第一热空间相邻的部分空间划入所述第一热空间;当所述第一冷空间不够用时,所述日志式文件系统301用于将所述第一热空间中与所述第一冷空间相邻的部分空间划入所述第一冷空间。
块设备302用于根据所述文件块的冷热标签进行调度。在调度时,热数据的调度优先级别大于冷数据的调度优先级别,并且,将多个热数据一起进行输入输出IO下发,或者,将多个冷数据一起进行IO下发。
所述日志式文件系统301用于根据冷热标签从冷逻辑数据段中选择剩余有效数据最少的逻辑数据段进行垃圾回收,其中,所述冷逻辑数据段是日志式文件系统中专门用于放置冷数据的逻辑数据段,所述热逻辑数据段是日志式文件系统中专门用于放置热数据的逻辑数据段。所述日志式文件系统根据目标逻辑数据段的生命期对所述冷热标签进行监控并修改,至少包括以下两种方式:
第一种方式中,在所述目标逻辑数据段的冷热标签为热标签的情况下,所述日志式文件系统确定所述目标逻辑数据段的生命期是否大于时间窗的持续长度k;
在确定所述目标逻辑数据段的生命期大于时间窗的持续长度k的情况下,所述日志式文件系统将所述目标逻辑数据段的冷热标签修改为冷标签;
在确定所述目标逻辑数据段的生命期没有大于时间窗的持续长度k的情况下,所述日志式文件系统保持所述目标逻辑数据段的冷热标签为热标签。
第二种方式中,日志式文件系统根据所述目标逻辑数据段的生命期age、所述目标逻辑数据段的当前的更新比例us(t,age)及所述目标逻辑数据段的冷热阈值us(t,k)对所述目标逻辑数据段的冷热标签进行监控并修改。
如果age≥k,或者,age<k且所述目标逻辑数据段的冷热属性为冷属性,或者,age<k且所述目标逻辑数据段的当前更新比例us(t,age)≥us(t,k)所在阈值范围的上限,则所述目标逻辑数据段的冷热标签都被置为冷标签;其中,所述目标逻辑数据段的当前更新比例us(t,age)为所述目标逻辑数据段从诞生至现在更新的数据比例;
如果age<k且所述目标逻辑数据段的当前更新比例us(t,age)<us(t,k)所在阈值范围的下限,则所述目标逻辑数据段的冷热标签保持其原有的标签不变;
如果age<k且所述目标逻辑数据段的更新比例介于us(t,k)所在阈值范围的上限和下限之间,则所述目标逻辑数据段的冷热标签被修改为比其原有冷热标签低一级的标签。
为了简便起见,此处并没有对基于日志式文件系统和闪存设备的冷热属性识别和分离装置展开描述,具体请参见图8以及相关描述。
如图11所示,移动终端包括射频(Radio Frequency,RF)电路410、输入设备420、传感器430、显示屏440、处理器450、电源460、IO子系统470以及闪存设备480等部件。本领域技术人员可以理解,图11中示出的移动终端结构并不构成对移动终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。
下面结合图11对移动终端的各个构成部件进行具体的介绍:
RF电路410可用于收发数据。通常,RF电路包括但不限于天线、至少一个放大器、收发信机、耦合器、LNA(Low Noise Amplifier,低噪声放大器)、双工器等。此外,RF电路410还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于GSM(Global System of Mobile communication,全球移动通讯系统)、GPRS(General Packet Radio Service,通用分组无线服务)、CDMA(Code Division MultipleAccess,码分多址)、WCDMA(Wideband Code Division Multiple Access,宽带码分多址)、LTE(Long Term Evolution,长期演进)、电子邮件、SMS(Short Messaging Service,短消息服务)等。
输入设备420可用于接收输入的数字或字符信息,以及产生与移动终端的用户设置以及功能控制有关的键信号输入。具体地,输入设备420可包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆、光鼠(光鼠是不显示可视输出的触摸敏感表面,或者是由触摸屏形成的触摸敏感表面的延伸)等中的一种或多种。
传感器430比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板441的亮度,接近传感器可在移动终端移动到耳边时,关闭显示面板441和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于移动终端还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
显示屏440可包括显示面板441,以及触控面板442。其中显示面板441可以采用LCD(Liquid Crystal Display,液晶显示器)、OLED(Organic Light-Emitting Diode,有机发光二极管)等形式来配置显示面板441。触控面板442,也称为触摸屏、触敏屏等,可收集用户在其上或附近的接触或者非接触操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板442上或在触控面板442附近的操作,也可以包括体感操作;该操作包括单点控制操作、多点控制操作等操作类型。),并根据预先设定的程式驱动相应的连接装置。
处理器450是移动终端的控制中心,利用各种接口和线路连接整个移动终端的各个部分,通过运行或执行存储在闪存设备480内的软件程序和/或模块,以及调用存储在闪存设备480内的数据,执行移动终端的各种功能和处理数据,从而对移动终端进行整体监控。可选的,处理器450可包括一个或多个处理单元;优选的,处理器450可集成调制解调处理器,其中,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器450中。
移动终端还包括给各个部件供电的电源460(比如电池),优选的,电源可以通过电源管理系统与处理器450逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗等功能。
IO子系统470包括至少包括日志式文件系统,可选地,还可以包括块设备和设备驱动。其中,日志式文件系统,块设备以及设备驱按照自上而下的顺序依次设置。其中,日志式文件系统可以确定文件块的冷热属性,在日志式文件系统中进行冷热分离,对逻辑数据段进行垃圾回收。块设备可以根据所述文件块的冷热标签进行调度。设备驱动可以通过扩展协议将将冷热标签和文件块发送给闪存设备480。
闪存设备480用于存储软件程序以及模块,处理器450通过运行存储在闪存设备480的软件程序以及模块,从而执行各种功能应用以及数据处理。闪存设备480可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据移动终端的使用所创建的数据(比如音频数据、电话本等)等。此外,闪存设备可以在闪存设备中进行冷热分离,对开放通道进行复用,并对物理数据段进行垃圾回收。
上述移动终端设备可用于执行图2所示的基于日志式文件系统和闪存设备的冷热属性识别以及分离方法,具体请参见图2以及相关描述,此处不再展开描述。
如图12所示,移动终端包括射频(Radio Frequency,RF)电路510、输入设备520、传感器530、显示屏540、处理器550、电源560、IO子系统570以及闪存设备580等部件。本领域技术人员可以理解,图12中示出的移动终端结构并不构成对移动终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。
下面结合图12对移动终端的各个构成部件进行具体的介绍:
RF电路510可用于收发数据。通常,RF电路包括但不限于天线、至少一个放大器、收发信机、耦合器、LNA(Low Noise Amplifier,低噪声放大器)、双工器等。此外,RF电路510还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于GSM(Global System of Mobile communication,全球移动通讯系统)、GPRS(General Packet Radio Service,通用分组无线服务)、CDMA(Code Division MultipleAccess,码分多址)、WCDMA(Wideband Code Division Multiple Access,宽带码分多址)、LTE(Long Term Evolution,长期演进)、电子邮件、SMS(Short Messaging Service,短消息服务)等。
输入设备520可用于接收输入的数字或字符信息,以及产生与移动终端的用户设置以及功能控制有关的键信号输入。具体地,输入设备520可包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆、光鼠(光鼠是不显示可视输出的触摸敏感表面,或者是由触摸屏形成的触摸敏感表面的延伸)等中的一种或多种。
传感器530比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板541的亮度,接近传感器可在移动终端移动到耳边时,关闭显示面板541和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于移动终端还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
显示屏540可包括显示面板541,以及触控面板542。其中显示面板541可以采用LCD(Liquid Crystal Display,液晶显示器)、OLED(Organic Light-Emitting Diode,有机发光二极管)等形式来配置显示面板541。触控面板542,也称为触摸屏、触敏屏等,可收集用户在其上或附近的接触或者非接触操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板542上或在触控面板542附近的操作,也可以包括体感操作;该操作包括单点控制操作、多点控制操作等操作类型。),并根据预先设定的程式驱动相应的连接装置。
处理器550是移动终端的控制中心,利用各种接口和线路连接整个移动终端的各个部分,通过运行或执行存储在闪存设备580内的软件程序和/或模块,以及调用存储在闪存设备580内的数据,执行移动终端的各种功能和处理数据,从而对移动终端进行整体监控。可选的,处理器550可包括一个或多个处理单元;优选的,处理器550可集成调制解调处理器,其中,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器550中。
移动终端还包括给各个部件供电的电源560(比如电池),优选的,电源可以通过电源管理系统与处理器550逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗等功能。
IO子系统570包括至少包括日志式文件系统,可选地,还可以包括块设备和设备驱动。其中,文件系统,块设备以及设备驱按照自上而下的顺序依次设置。其中,日志式文件系统可以确定文件块的冷热属性,在日志式文件系统中进行冷热分离,对逻辑数据段进行垃圾回收。块设备可以根据所述文件块的冷热标签进行调度。
闪存设备580用于存储软件程序以及模块,处理器550通过运行存储在闪存设备580的软件程序以及模块,从而执行各种功能应用以及数据处理。闪存设备580可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据移动终端的使用所创建的数据(比如音频数据、电话本等)等。
上述移动终端设备可用于执行图8所示的基于日志式文件系统和闪存设备的冷热属性识别以及分离方法,具体请参见图8以及相关描述,此处不再展开描述。
上述方案能够在日志式文件系统中识别文件块的冷热属性,并根据日志式文件系统的识别结果在闪存设备中进行数据的冷热分离,从而能够在采用日志式文件系统和闪存设备的场景下,识别数据的冷热属性,实现冷热分离,从而减少写放大的问题。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、终端和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (63)
1.一种基于日志式文件系统和闪存设备的冷热属性识别和分离方法,其特征在于,包括:
日志式文件系统根据预设方式确定文件块的冷热属性,并根据所述文件块的冷热属性为所述文件块添加冷热标签,其中,所述文件块至少包括一个数据,所述预设方式包括所述文件块在上一个时间窗的冷热属性,所述日志式文件系统至少根据所述文件块在上一个时间窗的冷热属性预测所述文件块在当前时间窗的冷热属性;;
设备驱动通过扩展协议将所述文件块以及所述冷热标签从所述日志式文件系统发送给闪存设备;
所述闪存设备根据所述冷热标签确定将所述文件块发送给冷物理数据段或者热物理数据段,其中,所述冷物理数据段是专门用于放置冷数据的物理数据段,所述热物理数据段是专门用于放置热数据的物理数据段,所述闪存设备支持冷热分离的功能,所述热数据和所述冷数据是根据数据的生命周期进行区分的,所述热数据的生命周期短于所述冷数据的生命周期。
2.根据权利要求1所述的方法,其特征在于,所述日志式文件系统至少根据所述文件块在上一个时间窗的冷热属性预测所述文件块在当前时间窗的冷热属性,包括:
所述日志式文件系统为所述文件块确定工作集W(t,k),其中,工作集W(t,k)为在时刻t之前的k时间段内写入该文件块的数据的集合,t和k用于表征所述上一个时间窗,t为所述上一个时间窗的最后一个时刻,k为时间窗的持续长度;
所述日志式文件系统确定所述工作集W(t,k)中数据更新的比例u(t,k),其中,u(t,k)为上一个时间窗中工作集W(t,k)中数据更新的比例,t和k用于表征所述上一时间窗,t为所述上一个时间窗的最后一个时刻,k为时间窗的持续长度,0≤u(t,k)≤1,u(t,0)=0,u(t,+∞)=1;
所述日志式文件系统根据所述工作集W(t,k)中数据更新的比例u(t,k)确定所述文件块的冷热属性,其中,所述数据更新的比例u(t,k)越大,所述文件块的热度越高,冷度越低,所述数据更新的比例u(t,k)越小,所述文件块的热度越低,冷度越高。
3.根据权利要求2所述的方法,其特征在于,所述日志式文件系统根据所述工作集W(t,k)中数据更新的比例u(t,k)确定所述文件块的冷热属性,包括:
如果所述工作集W(t,k)中数据更新的比例u(t,k)大于第一阈值,则所述文件块的冷热属性为热属性;
如果所述工作集W(t,k)中数据更新的比例u(t,k)小于或者等于第一阈值,则所述文件块的冷热属性为冷属性。
4.根据权利要求3所述的方法,其特征在于,所述时间窗的持续长度k以及所述第一阈值的具体数值是采用机器学习算法进行训练得到的。
5.根据权利要求4所述的方法,其特征在于,所述时间窗的持续长度k以及所述第一阈值的具体数值是通过离线训练得到的,或者,通过在线训练得到的。
6.根据权利要求2所述的方法,其特征在于,所述日志式文件系统根据所述工作集W(t,k)中数据更新的比例u(t,k)确定所述文件块在所述上一个时间窗的冷热属性,包括:
如果所述工作集W(t,k)中数据更新的比例u(t,k)大于或者等于第二阈值,则所述文件块的冷热属性为大热属性;
如果所述工作集W(t,k)中数据更新的比例u(t,k)小于所述第二阈值并且大于第一阈值,则所述文件块的冷热属性为小热属性;
如果所述工作集W(t,k)中数据更新的比例u(t,k)小于或者等于所述第一阈值并且大于第三阈值,则所述文件块的冷热属性为小冷属性;
如果所述工作集W(t,k)中数据更新的比例u(t,k)小于或者等于所述第三阈值,则所述文件块的冷热属性为大冷属性;
其中,所述第二阈值>所述第一阈值>所述第三阈值。
7.根据权利要求6所述的方法,其特征在于,所述时间窗的持续长度k、所述第一阈值、所述第二阈值以及所述第三阈值的具体数值是采用机器学习算法进行训练得到的。
8.根据权利要求7所述的方法,其特征在于,所述时间窗的持续长度k、所述第一阈值、所述第二阈值以及所述第三阈值的具体数值是通过离线训练得到的,或者,通过在线训练得到的。
9.根据权利要求1所述的方法,其特征在于,所述日志式文件系统根据预设方式确定文件块的冷热属性还包括:
所述日志式文件系统根据所述文件块所属的文件的类型以及第一映射关系确定所述文件块的冷热属性,其中,所述第一映射关系为文件的类型与冷热属性之间的映射关系。
10.根据权利要求9所述的方法,其特征在于,
所述第一映射关系是预先设置的;或者,
所述第一映射关系是通过机器学习算法进行训练得到的,其中,训练为离线训练或者在线训练。
11.根据权利要求1所述的方法,其特征在于,所述日志式文件系统根据预设方式确定文件块的冷热属性包括:
所述日志式文件系统根据所述文件块所在的目录以及第二映射关系确定所述文件块的冷热属性,其中,所述第二映射关系为目录与冷热属性的映射关系。
12.根据权利要求11所述的方法,其特征在于,
所述第二映射关系是预先设置的;或者,
所述第二映射关系是通过机器学习算法进行训练得到的,其中,训练为离线训练或者在线训练。
13.根据权利要求1-12任一权利要求所述的方法,其特征在于,在日志式文件系统根据预设方式确定文件块的冷热属性,并根据所述文件块的冷热属性为所述文件块添加冷热标签之后,所述方法还包括:
所述日志式文件系统在日志式文件系统中进行冷热分离。
14.根据权利要求13所述的方法,其特征在于,所述日志式文件系统在日志式文件系统中进行冷热分离,包括:
所述日志式文件系统按照准备写入所述日志式文件系统的热数据和冷数据的比例将所述日志式文件系统划分地址连续的第一热空间和地址连续的第一冷空间;或者,
所述日志式文件系统按照准备写入所述日志式文件系统的热数据和冷数据的比例将所述日志式文件系统划分地址不连续的第一热空间和地址不连续的第一冷空间。
15.根据权利要求13所述的方法,其特征在于,所述日志式文件系统动态调整第一热空间的大小和第一冷空间的大小。
16.根据权利要求15所述的方法,其特征在于,所述日志式文件系统动态调整所述第一热空间的大小和所述第一冷空间的大小,包括:
当所述第一热空间不够用时,所述日志式文件系统将所述第一冷空间中与所述第一热空间相邻的部分空间划入所述第一热空间;
当所述第一冷空间不够用时,所述日志式文件系统将所述第一热空间中与所述第一冷空间相邻的部分空间划入所述第一冷空间。
17.根据权利要求1-12任一权利要求所述的方法,其特征在于,所述闪存设备根据所述冷热标签确定将所述文件块发送给冷物理数据段或者热物理数据段之前,所述方法还包括:
所述闪存设备在所述闪存设备中进行冷热分离。
18.根据权利要求17所述的方法,其特征在于,所述闪存设备在所述闪存设备中进行冷热分离,包括:
所述闪存设备按照准备写入所述闪存设备的热数据和冷数据的比例将所述闪存设备划分地址连续的第二热空间和地址连续的第二冷空间;或者,
所述闪存设备按照准备写入所述闪存设备的热数据和冷数据的比例将所述闪存设备划分地址不连续的第二热空间和地址不连续的第二冷空间。
19.根据权利要求18所述的方法,其特征在于,所述闪存设备动态调整所述第二热空间的大小和所述第二冷空间的大小。
20.根据权利要求19所述的方法,其特征在于,所述闪存设备动态调整所述第二热空间的大小和所述第二冷空间的大小,包括:
当所述第二热空间不够用时,所述闪存设备将所述第二冷空间中与所述第二热空间相邻的部分空间划入所述第二热空间;
当所述第二冷空间不够用时,所述闪存设备将所述第二热空间中与所述第二冷空间相邻的部分空间划入所述第二冷空间。
21.根据权利要求1-12任一权利要求所述的方法,其特征在于,所述日志式文件系统通过扩展协议将所述文件块以及所述冷热标签发送给闪存设备之前,所述方法还包括:
块设备根据所述文件块的冷热标签进行调度。
22.根据权利要求21所述的方法,其特征在于,在调度时,热数据的调度优先级别大于冷数据的调度优先级别,并且,将多个热数据一起进行输入输出IO下发,或者,将多个冷数据一起进行IO下发。
23.根据权利要求1-12任一权利要求所述的方法,其特征在于,设备驱动通过扩展协议将所述文件块以及所述冷热标签从所述日志式文件系统发送给闪存设备,包括:
当所述扩展协议为嵌入式多媒体存储卡eMMC协议或者通用闪存存储UFS协议时,所述冷热标签承载于内容标识Context ID字段或者保留字段;
当所述扩展协议为非易失存储器标准NVMe协议时,所述冷热标签承载于流标识StreamIdentifier字段或者保留字段。
24.根据权利要求1-12任一权利要求所述的方法,其特征在于,所述闪存设备在接收到冷热标签之后,所述方法还包括:
闪存设备通过通道Open Block进行冷热标签的映射。
25.根据权利要求24所述的方法,其特征在于,
当冷热标签的数量小于Open Block的数量时,各个Open Block固定映射特定的冷热标签;
当冷热标签的数量大于Open Block的数量时,各个Open Block通过时分复用的方式进行冷热标签的映射。
26.根据权利要求1-12任一权利要求所述的方法,其特征在于,所述方法还包括:
所述日志式文件系统根据冷热标签从冷逻辑数据段中选择剩余有效数据最少的逻辑数据段进行垃圾回收,其中,所述冷逻辑数据段是日志式文件系统中专门用于放置冷数据的逻辑数据段。
27.根据权利要求26所述的方法,其特征在于,所述方法还包括:
所述日志式文件系统根据目标逻辑数据段的生命期对所述冷热标签进行监控并修改,其中,所述目标逻辑数据段为所述冷逻辑数据段或者热逻辑数据段。
28.根据权利要求27所述的方法,其特征在于,所述日志式文件系统根据目标逻辑数据段的生命期对所述冷热标签进行监控并修改,包括:
在所述目标逻辑数据段的冷热标签为热标签的情况下,所述日志式文件系统确定所述目标逻辑数据段的生命期是否大于时间窗的持续长度k;
在确定所述目标逻辑数据段的生命期大于时间窗的持续长度k的情况下,所述日志式文件系统将所述目标逻辑数据段的冷热标签修改为冷标签;
在确定所述目标逻辑数据段的生命期没有大于时间窗的持续长度k的情况下,所述日志式文件系统保持所述目标逻辑数据段的冷热标签为热标签。
29.根据权利要求27所述的方法,其特征在于,所述日志式文件系统根据目标逻辑数据段的生命期对所述冷热标签进行监控并修改,包括:
日志式文件系统根据所述目标逻辑数据段的生命期age、所述目标逻辑数据段的当前的更新比例us(t,age)及所述目标逻辑数据段的冷热阈值us(t,k)对所述目标逻辑数据段的冷热标签进行监控并修改。
30.根据权利要求29所述的方法,其特征在于,日志式文件系统根据所述目标逻辑数据段的生命期age、所述目标逻辑数据段的当前的更新比例us(t,age)及所述目标逻辑数据段的冷热阈值us(t,k)对所述目标逻辑数据段的冷热标签进行监控并修改,包括:
如果age≥k,或者,age<k且所述目标逻辑数据段的冷热属性为冷属性,或者,age<k且所述目标逻辑数据段的当前更新比例us(t,age)≥us(t,k)所在阈值范围的上限,则所述目标逻辑数据段的冷热标签都被置为冷标签;其中,所述目标逻辑数据段的当前更新比例us(t,age)为所述目标逻辑数据段从诞生至现在更新的数据比例;
如果age<k且所述目标逻辑数据段的当前更新比例us(t,age)<us(t,k)所在阈值范围的下限,则所述目标逻辑数据段的冷热标签保持其原有的标签不变;
如果age<k且所述目标逻辑数据段的更新比例介于us(t,k)所在阈值范围的上限和下限之间,则所述目标逻辑数据段的冷热标签被修改为比其原有冷热标签低一级的标签。
31.根据权利要求1-12任一权利要求所述的方法,其特征在于,所述方法还包括:
所述闪存设备根据冷热标签从所述冷物理数据段中选择剩余有效数据最少的物理数据段进行垃圾回收。
32.根据权利要求31所述的方法,其特征在于,所述方法还包括:
所述闪存设备根据目标物理数据段的生命期对所述冷热标签进行监控并修改,其中,所述目标物理数据段为所述冷物理数据段或者所述热物理数据段。
33.根据权利要求32所述的方法,其特征在于,所述闪存设备根据目标物理数据段的生命期对所述冷热标签进行监控并修改,包括:
在所述目标物理数据段的冷热标签为热标签的情况下,所述闪存设备确定所述目标物理数据段的生命期是否大于时间窗的持续长度k;
在确定所述目标物理数据段的生命期大于时间窗的持续长度k的情况下,所述闪存设备将所述目标物理数据段的冷热标签修改为冷标签;
在确定所述目标物理数据段的生命期没有大于时间窗的持续长度k的情况下,所述闪存设备保持所述目标物理数据段的冷热标签为热标签。
34.根据权利要求32所述的方法,其特征在于,所述闪存设备根据目标物理数据段的生命期对所述冷热标签进行监控并修改,包括:
闪存设备根据所述目标物理数据段的生命期age、所述目标物理数据段的当前的更新比例us(t,age)及所述目标物理数据段的冷热阈值us(t,k)对所述目标物理数据段的冷热标签进行监控并修改。
35.根据权利要求34所述的方法,其特征在于,闪存设备根据所述目标物理数据段的生命期age、所述目标物理数据段的当前的更新比例us(t,age)及所述目标物理数据段的冷热阈值us(t,k)对所述目标物理数据段的冷热标签进行监控并修改,包括:
如果age≥k,或者,age<k且所述目标物理数据段的冷热属性为冷属性,或者,age<k且所述目标物理数据段的当前更新比例us(t,age)≥us(t,k)所在阈值范围的上限,则所述目标物理数据段的冷热标签都被置为冷标签;其中,所述目标物理数据段的当前更新比例us(t,age)为所述目标物理数据段从诞生至现在更新的数据比例;
如果age<k且所述目标物理数据段的当前更新比例us(t,age)<us(t,k)所在阈值范围的下限,则所述目标物理数据段的冷热标签保持其原有的标签不变;
如果age<k且所述目标物理数据段的更新比例介于us(t,k)所在阈值范围的上限和下限之间,则所述目标物理数据段的冷热标签被修改为比其原有冷热标签低一级的标签。
36.一种基于日志式文件系统和闪存设备的冷热属性识别和分离方法,其特征在于,包括:
日志式文件系统根据预设方式确定多个文件块中的每个文件块的冷热属性,并根据所述多个文件块中的每个文件块的冷热属性为所述多个文件块中的每个文件块添加冷热标签,其中,所述多个文件块中的每个文件块至少包括一个数据,所述预设方式包括所述文件块在上一个时间窗的冷热属性,所述日志式文件系统至少根据所述文件块在上一个时间窗的冷热属性预测所述文件块在当前时间窗的冷热属性;
所述日志式文件系统将所述日志式文件系统划分为热空间和冷空间,其中,所述热空间包括多个连续的热逻辑数据段,所述热逻辑数据段是专门用于放置热数据的逻辑数据段,所述冷空间包括多个连续的冷逻辑数据段,所述冷逻辑数据段是专门用于放置冷数据的逻辑数据段;
所述日志式文件系统将冷热标签为热标签的文件块写入所述热空间,将冷热标签为冷标签的文件块写入所述冷空间;
所述日志式文件系统将所述热空间中的数据单独向闪存设备进行IO下发,或者,将所述冷空间中的数据单独向闪存设备进行IO下发,其中,所述闪存设备不支持冷热分离的功能,所述热数据和所述冷数据是根据数据的生命周期进行区分的,所述热数据的生命周期短于所述冷数据的生命周期。
37.根据权利要求36所述的方法,其特征在于,所述日志式文件系统至少根据所述文件块在上一个时间窗的冷热属性预测所述文件块在当前时间窗的冷热属性,包括:
所述日志式文件系统为所述文件块确定工作集W(t,k),其中,工作集W(t,k)为在时刻t之前的k时间段内写入该文件块的数据的集合,t和k用于表征所述上一个时间窗,t为所述上一个时间窗的最后一个时刻,k为时间窗的持续长度;
所述日志式文件系统确定所述工作集W(t,k)中数据更新的比例u(t,k),其中,u(t,k)为上一个时间窗中工作集W(t,k)中数据更新的比例,t和k用于表征所述上一时间窗,t为所述上一个时间窗的最后一个时刻,k为时间窗的持续长度,0≤u(t,k)≤1,u(t,0)=0,u(t,+∞)=1;
所述日志式文件系统根据所述工作集W(t,k)中数据更新的比例u(t,k)确定所述文件块的冷热属性,其中,所述数据更新的比例u(t,k)越大,所述文件块的热度越高,冷度越低,所述数据更新的比例u(t,k)越小,所述文件块的热度越低,冷度越高。
38.根据权利要求37所述的方法,其特征在于,所述日志式文件系统根据所述工作集W(t,k)中数据更新的比例u(t,k)确定所述文件块的冷热属性,包括:
如果所述工作集W(t,k)中数据更新的比例u(t,k)大于第一阈值,则所述文件块的冷热属性为热属性;
如果所述工作集W(t,k)中数据更新的比例u(t,k)小于或者等于第一阈值,则所述文件块的冷热属性为冷属性。
39.根据权利要求38所述的方法,其特征在于,所述时间窗的持续长度k以及所述第一阈值的具体数值是采用机器学习算法进行训练得到的。
40.根据权利要求39所述的方法,其特征在于,所述时间窗的持续长度k以及所述第一阈值的具体数值是通过离线训练得到的,或者,通过在线训练得到的。
41.根据权利要求37所述的方法,其特征在于,所述日志式文件系统根据所述工作集W(t,k)中数据更新的比例u(t,k)确定所述文件块的冷热属性,包括:
如果所述工作集W(t,k)中数据更新的比例u(t,k)大于或者等于第二阈值,则所述文件块的冷热属性为大热属性;
如果所述工作集W(t,k)中数据更新的比例u(t,k)小于所述第二阈值并且大于第一阈值,则所述文件块的冷热属性为小热属性;
如果所述工作集W(t,k)中数据更新的比例u(t,k)小于或者等于所述第一阈值并且大于第三阈值,则所述文件块的冷热属性为小冷属性;
如果所述工作集W(t,k)中数据更新的比例u(t,k)小于或者等于所述第三阈值,则所述文件块的冷热属性为大冷属性;
其中,所述第二阈值>所述第一阈值>所述第三阈值。
42.根据权利要求41所述的方法,其特征在于,所述时间窗的持续长度k、所述第一阈值、所述第二阈值以及所述第三阈值的具体数值是采用机器学习算法进行训练得到的。
43.根据权利要求42所述的方法,其特征在于,所述时间窗的持续长度k、所述第一阈值、所述第二阈值以及所述第三阈值的具体数值是通过离线训练得到的,或者,通过在线训练得到的。
44.根据权利要求36所述的方法,其特征在于,所述日志式文件系统根据预设方式确定文件块的冷热属性还包括:
所述日志式文件系统根据所述文件块所属的文件的类型以及第一映射关系确定所述文件块的冷热属性,其中,所述第一映射关系为文件的类型与冷热属性之间的映射关系。
45.根据权利要求44所述的方法,其特征在于,
所述第一映射关系是预先设置的;或者,
所述第一映射关系是通过机器学习算法进行训练得到的,其中,训练为离线训练或者在线训练。
46.根据权利要求36所述的方法,其特征在于,所述日志式文件系统根据预设方式确定文件块的冷热属性包括:
所述日志式文件系统根据所述文件块所在的目录以及第二映射关系确定所述文件块的冷热属性,其中,所述第二映射关系为目录与冷热属性的映射关系。
47.根据权利要求46所述的方法,其特征在于,
所述第二映射关系是预先设置的;或者,
所述第二映射关系是通过机器学习算法进行训练得到的,其中,训练为离线训练或者在线训练。
48.根据权利要求36-47任一权利要求所述的方法,其特征在于,所述日志式文件系统将所述日志式文件系统划分为热空间和冷空间,包括:
所述日志式文件系统按照准备写入所述日志式文件系统的热数据和冷数据的比例将所述日志式文件系统划分地址连续的第一热空间和地址连续的第一冷空间;或者,
所述日志式文件系统按照准备写入所述日志式文件系统的热数据和冷数据的比例将所述日志式文件系统划分地址不连续的第一热空间和地址不连续的第一冷空间。
49.根据权利要求48所述的方法,其特征在于,所述日志式文件系统动态调整所述第一热空间的大小和所述第一冷空间的大小。
50.根据权利要求49所述的方法,其特征在于,所述日志式文件系统动态调整所述第一热空间的大小和所述第一冷空间的大小,包括:
当所述第一热空间不够用时,所述日志式文件系统将所述第一冷空间中与所述第一热空间相邻的部分空间划入所述第一热空间;
当所述第一冷空间不够用时,所述日志式文件系统将所述第一热空间中与所述第一冷空间相邻的部分空间划入所述第一冷空间。
51.根据权利要求36-47任一权利要求所述的方法,其特征在于,所述日志式文件系统将所述热空间中的数据单独向闪存设备进行IO下发,或者,将所述冷空间中的数据单独向闪存设备进行IO下发之前,所述方法还包括:
块设备根据所述文件块的冷热标签进行调度。
52.根据权利要求51所述的方法,其特征在于,在调度时,热数据的调度优先级别大于冷数据的调度优先级别,并且,将多个热数据一起进行输入输出IO下发,或者,将多个冷数据一起进行IO下发。
53.根据权利要求36-47任一权利要求所述的方法,其特征在于,所述方法还包括:
所述日志式文件系统根据冷热标签从冷逻辑数据段中选择剩余有效数据最少的逻辑数据段进行垃圾回收,其中,所述冷逻辑数据段是日志式文件系统中专门用于放置冷数据的逻辑数据段。
54.根据权利要求53所述的方法,其特征在于,所述方法还包括:
所述日志式文件系统根据目标逻辑数据段的生命期对所述冷热标签进行监控并修改,其中,所述目标逻辑数据段为所述冷逻辑数据段或者热逻辑数据段。
55.根据权利要求54所述的方法,其特征在于,所述日志式文件系统根据目标逻辑数据段的生命期对所述冷热标签进行监控并修改,包括:
在所述目标逻辑数据段的冷热标签为热标签的情况下,所述日志式文件系统确定所述目标逻辑数据段的生命期是否大于时间窗的持续长度k;
在确定所述目标逻辑数据段的生命期大于时间窗的持续长度k的情况下,所述日志式文件系统将所述目标逻辑数据段的冷热标签修改为冷标签;
在确定所述目标逻辑数据段的生命期没有大于时间窗的持续长度k的情况下,所述日志式文件系统保持所述目标逻辑数据段的冷热标签为热标签。
56.根据权利要求55所述的方法,其特征在于,所述日志式文件系统根据目标逻辑数据段的生命期对所述冷热标签进行监控并修改,包括:
日志式文件系统根据所述目标逻辑数据段的生命期age、所述目标逻辑数据段的当前的更新比例us(t,age)及所述目标逻辑数据段的冷热阈值us(t,k)对所述目标逻辑数据段的冷热标签进行监控并修改。
57.根据权利要求56所述的方法,其特征在于,日志式文件系统根据所述目标逻辑数据段的生命期age、所述目标逻辑数据段的当前的更新比例us(t,age)及所述目标逻辑数据段的冷热阈值us(t,k)对所述目标逻辑数据段的冷热标签进行监控并修改,包括:
如果age≥k,或者,age<k且所述目标逻辑数据段的冷热属性为冷属性,或者,age<k且所述目标逻辑数据段的当前更新比例us(t,age)≥us(t,k)所在阈值范围的上限,则所述目标逻辑数据段的冷热标签都被置为冷标签;其中,所述目标逻辑数据段的当前更新比例us(t,age)为所述目标逻辑数据段从诞生至现在更新的数据比例;
如果age<k且所述目标逻辑数据段的当前更新比例us(t,age)<us(t,k)所在阈值范围的下限,则所述目标逻辑数据段的冷热标签保持其原有的标签不变;
如果age<k且所述目标逻辑数据段的更新比例介于us(t,k)所在阈值范围的上限和下限之间,则所述目标逻辑数据段的冷热标签被修改为比其原有冷热标签低一级的标签。
58.一种基于日志式文件系统和闪存设备的冷热属性识别和分离装置,其特征在于,包括用于实现如权利要求1-35任一权利要求所述的方法的单元。
59.一种基于日志式文件系统和闪存设备的冷热属性识别和分离装置,其特征在于,包括用于实现如权利要求36-57任一权利要求所述的方法的单元。
60.一种移动终端,其特征在于,包括:存储器以及与所述存储器耦合的处理器、通信模块,其中:所述存储器用于存储程序代码,所述处理器用于调用所述存储器存储的程序代码以执行如权利要求1-35任一权利要求描述的方法。
61.一种移动终端,其特征在于,包括:存储器以及与所述存储器耦合的处理器、通信模块,其中:所述存储器用于存储程序代码,所述处理器用于调用所述存储器存储的程序代码以执行如权利要求36-57任一权利要求描述的方法。
62.一种可读存储介质,其特征在于,包括指令,当所述指令在移动终端上运行时,使得所述移动终端执行如权利要求1-35任意一项所述的方法。
63.一种可读存储介质,其特征在于,包括指令,当所述指令在移动终端上运行时,使得所述移动终端执行如权利要求35-57任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810554877.3A CN110554999B (zh) | 2018-05-31 | 2018-05-31 | 基于日志式文件系统和闪存设备的冷热属性识别和分离方法、装置以及相关产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810554877.3A CN110554999B (zh) | 2018-05-31 | 2018-05-31 | 基于日志式文件系统和闪存设备的冷热属性识别和分离方法、装置以及相关产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110554999A CN110554999A (zh) | 2019-12-10 |
CN110554999B true CN110554999B (zh) | 2023-06-20 |
Family
ID=68735311
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810554877.3A Active CN110554999B (zh) | 2018-05-31 | 2018-05-31 | 基于日志式文件系统和闪存设备的冷热属性识别和分离方法、装置以及相关产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110554999B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113010091B (zh) * | 2019-12-20 | 2023-06-16 | 华为技术有限公司 | 数据写入固态硬盘的方法、垃圾回收的方法、装置 |
CN113032288B (zh) * | 2019-12-25 | 2023-02-28 | 杭州海康存储科技有限公司 | 冷热数据阈值的确定方法、装置及设备 |
CN111913924B (zh) * | 2020-07-21 | 2024-03-19 | 华中科技大学 | 一种基于热度的日志结构文件系统数据管理方法 |
CN111984604B (zh) * | 2020-08-13 | 2024-03-19 | 华中科技大学 | 一种减少日志结构文件系统碎片的方法及闪存存储系统 |
CN114528326A (zh) * | 2020-10-30 | 2022-05-24 | 华为技术有限公司 | 一种数据管理方法及装置 |
KR20220060397A (ko) * | 2020-11-04 | 2022-05-11 | 삼성전자주식회사 | 전자 장치 및 이를 이용한 스토리지 관리 방법 |
WO2022110196A1 (zh) * | 2020-11-30 | 2022-06-02 | 华为技术有限公司 | 一种数据处理方法、装置及系统 |
CN112527194B (zh) * | 2020-12-04 | 2024-02-13 | 北京浪潮数据技术有限公司 | 固态硬盘写放大设定方法、系统、装置及可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102902628A (zh) * | 2012-09-18 | 2013-01-30 | 记忆科技(深圳)有限公司 | 一种基于闪存实现的冷热数据自动分离方法、系统及闪存 |
CN103597444A (zh) * | 2011-06-09 | 2014-02-19 | 微软公司 | 按照使用来管理基于闪存的存储上的数据放置 |
US9747202B1 (en) * | 2013-03-14 | 2017-08-29 | Sandisk Technologies Llc | Storage module and method for identifying hot and cold data |
CN107169056A (zh) * | 2017-04-27 | 2017-09-15 | 四川长虹电器股份有限公司 | 分布式文件系统及节省分布式文件系统存储空间的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170139825A1 (en) * | 2015-11-17 | 2017-05-18 | HGST Netherlands B.V. | Method of improving garbage collection efficiency of flash-oriented file systems using a journaling approach |
-
2018
- 2018-05-31 CN CN201810554877.3A patent/CN110554999B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103597444A (zh) * | 2011-06-09 | 2014-02-19 | 微软公司 | 按照使用来管理基于闪存的存储上的数据放置 |
CN102902628A (zh) * | 2012-09-18 | 2013-01-30 | 记忆科技(深圳)有限公司 | 一种基于闪存实现的冷热数据自动分离方法、系统及闪存 |
US9747202B1 (en) * | 2013-03-14 | 2017-08-29 | Sandisk Technologies Llc | Storage module and method for identifying hot and cold data |
CN107169056A (zh) * | 2017-04-27 | 2017-09-15 | 四川长虹电器股份有限公司 | 分布式文件系统及节省分布式文件系统存储空间的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110554999A (zh) | 2019-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110554999B (zh) | 基于日志式文件系统和闪存设备的冷热属性识别和分离方法、装置以及相关产品 | |
KR100823171B1 (ko) | 파티션된 플래시 변환 계층을 갖는 컴퓨터 시스템 및플래시 변환 계층의 파티션 방법 | |
EP3506106B1 (en) | Method for processing application, electronic device, and computer-readable storage medium | |
EP2989536B1 (en) | Management of access to a hybrid drive in power saving mode | |
JP5347019B2 (ja) | キャッシュメモリ装置、キャッシュメモリ制御方法、プログラムおよび集積回路 | |
US8615624B2 (en) | Methods, apparatuses, and computer program products for enhancing memory erase functionality | |
CN110008141B (zh) | 一种碎片整理方法和电子设备 | |
US20190205250A1 (en) | Method and device for processing a memory and storage medium | |
US11704240B2 (en) | Garbage data scrubbing method, and device | |
CN114840450B (zh) | 一种存储空间整理方法及电子设备 | |
CN113590501A (zh) | 一种数据存储方法及相关设备 | |
CN112445766A (zh) | 一种终端碎片整理方法、装置以及终端 | |
WO2019128542A1 (zh) | 应用处理方法、电子设备、计算机可读存储介质 | |
CN115934002B (zh) | 固态硬盘的访问方法、固态硬盘、存储系统及云服务器 | |
CN115840736A (zh) | 文件整理方法、智能终端及计算机可读存储介质 | |
US20160335198A1 (en) | Methods and system for maintaining an indirection system for a mass storage device | |
CN113485642A (zh) | 数据缓存方法及装置 | |
WO2019091322A1 (zh) | 虚拟机快照处理方法、装置及系统 | |
CN112162704A (zh) | 存储空间释放方法及其装置 | |
WO2024087724A1 (zh) | 垃圾回收的方法、页面存储的方法和电子设备 | |
WO2022021337A1 (zh) | 闪存控制方法和装置 | |
CN116701298B (zh) | 一种文件系统管理方法及电子设备 | |
CN114676092A (zh) | 一种文件管理方法及相关设备 | |
CN116974491A (zh) | 固态硬盘的存储优化方法、装置、计算机设备及存储介质 | |
CN116701298A (zh) | 一种文件系统管理方法及电子设备 |
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 |