CN111597152B - 固态硬盘文件系统管理方法、装置及电子设备 - Google Patents

固态硬盘文件系统管理方法、装置及电子设备 Download PDF

Info

Publication number
CN111597152B
CN111597152B CN202010428925.1A CN202010428925A CN111597152B CN 111597152 B CN111597152 B CN 111597152B CN 202010428925 A CN202010428925 A CN 202010428925A CN 111597152 B CN111597152 B CN 111597152B
Authority
CN
China
Prior art keywords
block
log
bitmap
file system
ssd
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
CN202010428925.1A
Other languages
English (en)
Other versions
CN111597152A (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.)
Hangzhou Hikvision System Technology Co Ltd
Original Assignee
Hangzhou Hikvision System 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 Hangzhou Hikvision System Technology Co Ltd filed Critical Hangzhou Hikvision System Technology Co Ltd
Priority to CN202010428925.1A priority Critical patent/CN111597152B/zh
Publication of CN111597152A publication Critical patent/CN111597152A/zh
Application granted granted Critical
Publication of CN111597152B publication Critical patent/CN111597152B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1727Details of free space management performed by the file system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1734Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1847File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD
    • 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数据块的操作请求;根据所述操作请求,在位图缓存中所述SSD数据块对应位处设置使用或空闲标志;在日志缓存中增加一条块操作记录,该记录的内容包括:所述SSD数据块的块标识、本次执行的操作类型,所述日志缓存的长度和结构与一个日志分片的长度和结构相同;判断是否达到SSD文件系统的位图块更新条件,若达到,将日志缓存中的所述块操作记录写入SSD文件系统的块操作日志块的下一日志分片中,并将位图缓存中的所述使用或空闲标志同步到SSD文件系统的位图块中。本发明实施例提高了SSD文件系统管理效率。

Description

固态硬盘文件系统管理方法、装置及电子设备
技术领域
本发明涉及技术领域,尤其涉及SSD(Solid State Drive,固态硬盘)文件系统管理方法、装置及电子设备。
背景技术
文件系统需要管理存储设备的物理存储空间,确定用户已使用的存储空间和用户未使用的存储空间。现有的文件系统管理物理存储空间的方法有以下两种:
一、依赖第三方组件记录存储设备中已使用的物理存储空间和未使用的物理存储空间,比如DB(DataBase,数据库)等。
二、扫描存储设备的物理存储空间中所有数据块的索引信息,以确定数据块是否已使用。
这两种方式的缺陷如下:
一、采用依赖第三方组件记录存储设备中已使用的物理存储空间和未使用的物理存储空间的方式,则存储设备与第三方组件存在绑定关系,这样当存储设备插到其它存储节点时,需要将第三方组件及其存储的信息也迁移到存储节点。
二、采用扫描存储设备的物理存储空间中所有数据块的索引信息的方式,则存在速度较慢的缺陷。
发明内容
本发明实施例提出SSD文件系统管理方法、装置及电子设备,以提高 SSD文件系统管理效率。
本发明实施例的技术方案是这样实现的:
一种固态硬盘SSD文件系统管理方法,该方法包括:
SSD文件系统接收到针对一SSD数据块的操作请求;
根据所述操作请求,在位图缓存中所述SSD数据块对应位处设置使用或空闲标志;且,在日志缓存中增加一条块操作记录,该记录的内容包括:所述SSD数据块的块标识、本次执行的操作类型,所述日志缓存的长度和结构与一个日志分片的长度和结构相同;
判断是否达到SSD文件系统的位图块更新条件,若达到,则将所述日志缓存中的所述块操作记录写入SSD文件系统的块操作日志块的下一日志分片中,并将所述位图缓存中的所述使用或空闲标志同步到SSD文件系统的位图块中,其中,所述SSD文件系统的块操作日志块由多个所述日志分片组成。
所述操作请求为存储请求,且,所述接收到针对一SSD数据块的操作请求之后、在位图缓存中所述SSD数据块对应位处设置所述使用或空闲标志之前进一步包括:从位图缓存中读取各SSD数据块的使用或空闲标志,为所述存储请求分配一个空闲数据块;
或者,所述操作请求为释放请求,且,所述将所述位图缓存中的所述使用或空闲标志同步到SSD文件系统的位图块中之后进一步包括:对SSD中所述释放请求针对的数据块所在的区域执行trim操作。
所述判断是否达到SSD文件系统的位图块更新条件之后,进一步包括:
若未达到,则只将所述日志缓存中的所述块操作记录写入SSD文件系统的块操作日志块的下一日志分片中。
所述判断是否达到SSD文件系统的位图块更新条件包括:
判断是否SSD文件系统的块操作日志块的所有日志分片都已写满,且该所有日志分片中的块操作记录都未被更新到SSD文件系统的位图块中;或者,
判断是否SSD文件系统的块操作日志块的当前日志分片已写满,且当前日志分片中的所有块操作记录都未被更新到SSD文件系统的位图块中;或者,
判断位图块延迟更新定时器是否超时,其中,当每一次位图块更新完成时,重置位图块延迟更新定时器。
所述SSD文件系统接收到针对一SSD数据块的操作请求之前进一步包括:
读取该SSD文件系统的位图块,将位图块的公共信息和位图加载到预留的位图缓存中;
读取SSD文件系统的块操作日志块,从块操作日志块中获取最新的日志分片,将该日志分片中的所有信息加载到预留的日志缓存中,判断日志缓存中的块操作记录是否未被更新到SSD文件系统的位图块中,若是,则将日志缓存中的所有块操作记录更新到位图缓存中的位图中,然后将位图缓存中的所有信息同步到SSD文件系统的位图块中。
当判定达到SSD文件系统的位图块更新条件时,所述将所述日志缓存中的所述块操作记录写入SSD文件系统的块操作日志块的下一日志分片中之后进一步包括:
将位图缓存中的位图块版本号加1;
且,所述将所述位图缓存中的所述使用或空闲标志同步到SSD文件系统的位图块中之后进一步包括:
将日志缓存中的日志分片版本号加1;
所述SSD文件系统接收到针对一SSD数据块的操作请求之前进一步包括:
读取该SSD文件系统的位图块,将位图块的公共信息和位图加载到预留的位图缓存中;读取SSD文件系统的块操作日志块,获取日志分片版本号最大的且最新的一个日志分片,将该日志分片中的所有信息加载到日志缓存中,判断位图块版本号是否与最大日志分片版本号相等,若不相等,则将日志缓存中的所有块操作记录更新到位图缓存中的位图中,然后将位图缓存中的位图块版本号加1,将位图缓存中的所有信息同步到SSD文件系统的位图块中,再将日志缓存中的日志分片版本号加1。
一种固态硬盘SSD文件系统管理装置,该装置包括:
操作请求处理模块,用于接收到针对一SSD数据块的操作请求;根据所述操作请求,在位图缓存中所述SSD数据块对应位处设置使用或空闲标志;且,在日志缓存中增加一条块操作记录,该记录的内容包括:所述SSD数据块的块标识、本次执行的操作类型,所述日志缓存的长度和结构与一个日志分片的长度和结构相同;
位图块更新判断及处理模块,用于判断是否达到SSD文件系统的位图块更新条件,若达到,则将所述日志缓存中的所述块操作记录写入SSD文件系统的块操作日志块的下一日志分片中,并将所述位图缓存中的所述使用或空闲标志同步到SSD文件系统的位图块中,其中,所述SSD文件系统的块操作日志块由多个所述日志分片组成。
所述位图块更新判断及处理模块判断是否达到SSD文件系统的位图块更新条件之后,进一步用于:
若未达到,则只将所述日志缓存中的所述块操作记录写入SSD文件系统的块操作日志块的下一日志分片中。
所述位图块更新判断及处理模块判断是否达到SSD文件系统的位图块更新条件包括:
判断是否SSD文件系统的块操作日志块的所有日志分片都已写满,且该所有日志分片中的块操作记录都未被更新到SSD文件系统的位图块中;或者,
判断是否SSD文件系统的块操作日志块的当前日志分片已写满,且当前日志分片中的所有块操作记录都未被更新到SSD文件系统的位图块中;或者,
判断位图块延迟更新定时器是否超时,其中,当每一次位图块更新完成时,重置位图块延迟更新定时器。
所述装置进一步包括:SSD文件系统加载模块,用于读取该SSD文件系统的位图块,将位图块的公共信息和位图加载到预留的位图缓存中;读取SSD 文件系统的块操作日志块,从块操作日志块中获取最新的日志分片,将该日志分片中的所有信息加载到预留的日志缓存中,判断日志缓存中的块操作记录是否未被更新到SSD文件系统的位图块中,若是,则将日志缓存中的所有块操作记录更新到位图缓存中的位图中,然后将位图缓存中的所有信息同步到SSD文件系统的位图块中。
一种电子设备,包括如上任一所述的装置。
本发明实施例中,通过在日志缓存中实时维护SSD数据块的块操作记录,在位图缓存中实时维护SSD数据块的使用或空闲标志,并在达到SSD文件系统的位图块更新条件时,将位图缓存中的位图更新到SSD文件系统的位图块中,实现了SSD文件系统对自身的SSD存储空间状态的自动管理,不需要依赖第三方组件,且,无需扫描SSD数据块的索引信息,提高了SSD文件系统管理效率。
附图说明
图1为本发明一实施例提供的SSD文件系统管理方法流程图;
图2为本发明另一实施例提供的SSD文件系统管理方法流程图;
图3为本发明又一实施例提供的SSD文件系统管理方法流程图;
图4为本发明又一实施例提供的SSD文件系统管理方法流程图;
图5为本发明又一实施例提供的SSD文件系统管理方法流程图;
图6为本发明实施例定义的SSD文件系统的结构示意图;
图7为本发明实施例提供的SSD文件系统格式化方法流程图;
图8为本发明实施例提供的SSD文件系统的数据块的使用方法流程图;
图9为本发明实施例提供的SSD文件系统的数据块的释放方法流程图;
图10为本发明实施例提供的SSD文件系统加载方法流程图;
图11为本发明实施例提供的SSD文件系统管理装置的结构示意图。
具体实施方式
下面结合附图及具体实施例对本发明再作进一步详细的说明。
为方便理解,首先给出如下解释:
文件系统:是一套实现了数据的存储、分级组织、存取和获取等操作的抽象数据类型。
存储节点:云存储中的每一个存储服务器称为一个存储节点。
存储设备:用于存储数据的载体,如磁盘、SSD(Solid State Drive,固态硬盘)、FC(Fibre Channel,光纤通道)设备等。
PAGE(页):SSD中最小IO(Input Output,输入输出)粒度的单位,通常为4KB的整数倍。
BLOCK(块):SSD中最小的擦除单位,是PAGE的整数倍。
图1为本发明一实施例提供的SSD文件系统管理方法流程图,其具体步骤如下:
步骤101:SSD文件系统接收到针对一SSD数据块的操作请求。
步骤102:根据该操作请求,在位图缓存中该SSD数据块对应位处设置使用或空闲标志。
步骤103:在日志缓存中增加一条块操作记录,该记录的内容包括:该 SSD数据块的块标识、本次执行的操作类型,日志缓存的长度和结构与一个日志分片的长度和结构相同。
步骤104:判断是否达到SSD文件系统的位图块更新条件,若达到,则将日志缓存中的块操作记录写入SSD文件系统的块操作日志块的下一日志分片中,并将位图缓存中的使用或空闲标志同步到SSD文件系统的位图块中,其中,SSD文件系统的块操作日志块由多个日志分片组成。
通过上述实施例,通过在日志缓存中实时维护SSD数据块的块操作记录,在位图缓存中实时维护SSD数据块的使用或空闲标志,并在达到SSD文件系统的位图块更新条件时,将位图缓存中的位图更新到SSD文件系统的位图块中,实现了SSD文件系统对自身的SSD存储空间状态的自动管理,不需要依赖第三方组件,且,无需扫描SSD数据块的索引信息,提高了SSD文件系统管理效率。
一可选实施例中,步骤101中的操作请求为存储请求,步骤102中,在位图缓存中该SSD数据块对应位设处置该SSD数据块的使用或空闲标志之前进一步包括:从位图缓存中读取各SSD数据块的使用或空闲标志,为该存储请求分配一个空闲数据块。
另一可选实施例中,步骤101中的操作请求为释放请求,且,步骤104 之后进一步包括:对SSD中该释放请求针对的数据块所在的区域执行trim操作。
图2为本发明另一实施例提供的SSD文件系统管理方法流程图,其具体步骤如下:
步骤201:SSD文件系统接收到针对一SSD数据块的操作请求。
步骤202:根据该操作请求,在位图缓存中该SSD数据块对应位处设置使用或空闲标志。
步骤203:在日志缓存中增加一条块操作记录,该记录的内容包括:该SSD数据块的块标识、本次执行的操作类型,日志缓存的长度和结构与一个日志分片的长度和结构相同。
步骤204:判断是否达到SSD文件系统的位图块更新条件,若达到,则将日志缓存中的块操作记录写入SSD文件系统的块操作日志块的下一日志分片中,并将位图缓存中的使用或空闲标志同步到SSD文件系统的位图块中;否则,只将日志缓存中的块操作记录写入SSD文件系统的块操作日志块的下一日志分片中;其中,SSD文件系统的块操作日志块由多个日志分片组成。
通过上述实施例,在达到SSD文件系统的位图块更新条件时,将日志缓存中的块操作记录写入SSD文件系统的块操作日志块的下一日志分片中,并将位图缓存中的使用或空闲标志更新到SSD文件系统的位图块中;在未达到 SSD文件系统的位图块更新条件时,只将日志缓存中的块操作记录写入SSD 文件系统的块操作日志块的下一日志分片中,从而在产生新的块操作记录时,能够及时更新到SSD文件系统的块操作日志块中,并在达到SSD文件系统的位图块更新条件时,将位图缓存中的位图同步到SSD文件系统的位图块中,既避免了频繁向SSD文件系统的位图块写入位图信息,又保证了SSD文件系统的位图块的及时、可靠更新。
图3为本发明又一实施例提供的SSD文件系统管理方法流程图,其具体步骤如下:
步骤301:SSD文件系统接收到针对一SSD数据块的操作请求。
步骤302:根据该操作请求,在位图缓存中该SSD数据块对应位处设置使用或空闲标志。
步骤303:在日志缓存中增加一条块操作记录,该记录的内容包括:该 SSD数据块的块标识、本次执行的操作类型,日志缓存的长度和结构与一个日志分片的长度和结构相同。
步骤304:判断是否SSD文件系统的块操作日志块的所有日志分片都已写满,且该所有日志分片中的块操作记录都未被更新到SSD文件系统的位图块中;或者,判断是否SSD文件系统的块操作日志块的当前日志分片已写满,且当前日志分片中的所有块操作记录都未被更新到SSD文件系统的位图块中;或者,判断位图块延迟更新定时器是否超时,其中,当每一次位图块更新完成时,重置位图块延迟更新定时器,若是,则将日志缓存中的块操作记录写入SSD文件系统的块操作日志块的下一日志分片中,并将位图缓存中的使用或空闲标志同步到SSD文件系统的位图块中。
通过上述实施例,在SSD文件系统的块操作日志块的所有日志分片都已写满,且该所有日志分片中的块操作记录都未被更新到SSD文件系统的位图块中时;或者,在SSD文件系统的块操作日志块的当前日志分片已写满,且当前日志分片中的所有块操作记录都未被更新到SSD文件系统的位图块中时;或者,在位图块延迟更新定时器超时时,确定达到SSD文件系统的位图块更新条件,保证了每个SSD数据块的状态变化情况都能被更新到SSD文件系统的位图块中。
图4为本发明又一实施例提供的SSD文件系统管理方法流程图,其具体步骤如下:
步骤401:读取该SSD文件系统的位图块,将位图块的公共信息和位图加载到预留的位图缓存中。
步骤402:读取SSD文件系统的块操作日志块,获取最新的日志分片,将该日志分片中的所有信息加载到预留的日志缓存中,判断日志缓存中的块操作记录是否未被更新到SSD文件系统的位图块中,若是,则将日志缓存中的所有块操作记录更新到位图缓存中的位图中,然后将位图缓存中的所有信息同步到SSD文件系统的位图块中。
步骤403:SSD文件系统接收到针对一SSD数据块的操作请求。
步骤404:根据该操作请求,在位图缓存中该SSD数据块对应位处设置使用或空闲标志。
步骤405:在日志缓存中增加一条块操作记录,该记录的内容包括:该 SSD数据块的块标识、本次执行的操作类型,日志缓存的长度和结构与一个日志分片的长度和结构相同。
步骤406:判断是否达到SSD文件系统的位图块更新条件,若达到,则将日志缓存中的块操作记录写入SSD文件系统的块操作日志块的下一日志分片中,并将位图缓存中的使用或空闲标志同步到SSD文件系统的位图块中。
通过上述实施例,在加载SSD文件系统时,若发现有块操作记录未被更新到SSD文件系统的位图块中,则进行更新,从而保证了位图块中存储的位图的准确性。
图5为本发明又一实施例提供的SSD文件系统管理方法流程图,其具体步骤如下:
步骤501:SSD文件系统读取SSD文件系统的位图块,将位图块的公共信息和位图加载到预留的位图缓存中。
步骤502:读取SSD文件系统的块操作日志块,获取日志分片版本号最大的最后一个日志分片,将该日志分片中的所有信息加载到日志缓存中,判断位图块版本号是否与最大日志分片版本号相等,若不相等,则将日志缓存中的所有块操作记录更新到位图缓存中的位图中,然后将位图缓存中的位图块版本号加1,将位图缓存中的所有信息同步到SSD文件系统的位图块中,再将日志缓存中的日志分片版本号加1。
步骤503:SSD文件系统接收到针对一SSD数据块的操作请求。
步骤504:根据该操作请求,在位图缓存中该SSD数据块对应位处设置使用或空闲标志。
步骤505:在日志缓存中增加一条块操作记录,该记录的内容包括:该 SSD数据块的块标识、本次执行的操作类型,日志缓存的长度和结构与一个日志分片的长度和结构相同。
步骤506:判断是否达到SSD文件系统的位图块更新条件,若达到,则将日志缓存中的块操作记录写入SSD文件系统的块操作日志块的下一日志分片中,将位图缓存中的位图块版本号加1,并将位图缓存中的使用或空闲标志同步到SSD文件系统的位图块中,将日志缓存中的日志分片版本号加1。
通过上述实施例,使得产生新的块操作记录时,日志分片版本号比位图块版本号大1,以此标识该日志分片存在未更新到位图的操作记录,从而在加载SSD文件系统时,可仅根据位图块和日志分片版本号最大的最后一个日志分片,将未更新的块操作记录同步到位图块中,实现了不依赖第三方组件快速加载SSD文件系统。
图6为本发明实施例定义的SSD文件系统的结构示意图,该SSD文件系统主要包括如下部分:
一)启动块
用于记录文件系统的关键信息,包括:
1)文件系统唯一标识;
2)位图块、块操作日志块、数据区的位置和长度等。
为可靠起见,启动块可设置两副本。
二)位图块
用于记录数据块使用信息的位图,包括:
1)公共信息
用于记录位图块版本号、数据块的总块数、未使用的数据块数以及位图信息长度等。
2)位图
用于记录各个数据块的使用状态:使用或空闲,每个数据块的使用状态占用1bit。
3)保留区域
为可靠起见,位图块可设置两副本。
三)块操作日志块
由多个独立的日志分片组成,按照时间顺序记录数据块的操作日志。日志分片可以循环使用。
四)数据区
由多个数据块组成,为提供给用户的存储空间。
需要说明的是,图6所示的SSD文件系统中的位图块、块操作日志块、数据区三个部分的位置仅为了展示方便画成连续的,各部分的真实位置记录在启动块中,可以通过启动块对各个部分进行定位。
图7为本发明实施例提供的SSD文件系统格式化方法流程图,其具体步骤如下:
步骤701:SSD文件系统接收到SSD格式化请求,该请求中携带单个数据块的大小。
步骤702:SSD文件系统对整个SSD执行trim操作。
对整个SSD执行trim操作可以释放整个SSD的空间,提高写数据时page (页)的分配效率。
步骤703:SSD文件系统根据单个数据块的大小以及整个SSD的存储空间大小,确定位图块、块操作日志块以及数据区在SSD中的位置和长度。
启动块的位置和大小是固定的。
PAGE是SSD中最小的IO粒度,因此所有类型的块(如:位图块、块操作日志块、数据块等)的大小都必须是PAGE的整数倍。
步骤704:SSD文件系统向启动块、位图块、块操作日志块写入初始化信息。
其中,对于位图块,只需要初始化其公共信息,位图块的公共信息主要包括以下字段:
1)位图块版本号:初始版本号为0,每更新一次位图块,位图块的版本号加1;
2)数据块总块数;
3)空闲数据块的块数;
4)位图长度。
对于块操作日志块,需要初始化其所有日志分片的公共信息。其中,每个日志分片的大小固定,默认是一个PAGE。日志分片的公共信息主要包括以下字段:
1)日志分片版本号:和位图块版本号对应。产生新的数据块操作记录时,要保证日志分片版本号比位图块的版本号大1,用于标识该日志分片存在未更新到位图块的数据块操作记录;
2)日志分片号:指的是同一个版本号下的日志分片号,每个版本号下的日志分片独立排序号。通常,每个版本号下的第一个日志分片的分片号都为 0,后续日志分片的分片号依次加1;
3)有效日志记录数:当前日志分片中包含的有效日志记录数。
对启动块、位图块、块操作日志块写入初始化信息完成时,对SSD文件系统的格式化完成。
图8为本发明实施例提供的SSD文件系统的数据块的使用方法流程图,其具体步骤如下:
步骤801:SSD文件系统接收到SSD存储请求。
步骤802:SSD文件系统从位图缓存读取位图,根据读取的位图,为用户分配一个空闲数据块,在位图缓存的位图中将该数据块置为使用。
SSD刚挂载到设备上时,SSD文件系统会为SSD分配位图缓存和日志缓存,用于缓存位图块(包括:公共信息和位图信息)和日志分片。
日志缓存的长度就是一个日志分片的长度,日志缓存的结构与日志分片的结构相同。
日志缓存为一个FIFO(First In First Out,先进先出)队列,队列长度为一个日志分片所能包含的块操作记录数。
步骤803:SSD文件系统在日志缓存中增加一条块操作记录,将日志缓存中的日志分片号加1,该块操作记录包括:该数据块的块号、操作类型:存储等。
需要说明的是,本步骤中,SSD文件系统在日志缓存中增加一条块操作记录之后、将日志缓存中的日志分片号加1之前,要先判断一下:该新增的块操作记录是否为当前日志分片版本号下的第一条块操作记录,若是,则将日志缓存中的日志分片号置为0,否则,将日志缓存中的日志分片号加1。
每一数据块的块操作记录占用固定的空间,比如16个字节,每条记录的内容包括:数据块的块号、操作类型(如:存储、释放等)以及其他关键信息,每个日志分片可记录多条块操作记录。
步骤804:SSD文件系统判断当前是否达到SSD文件系统的位图块更新条件,若是,执行步骤805;否则,执行步骤806。
SSD文件系统的位图块更新条件满足如下之一即可:
一)SSD文件系统的块操作日志块中的日志分片已写满一轮,即日志缓存中的日志分片的分片号等于块操作日志块所能包含的日志分片总数-1,其中,块操作日志块中的第一个日志分片的分片号为0;
二)SSD文件系统的块操作日志块中的当前日志分片已写满,且该日志分片中包含的所有块操作记录都未被更新到位图块中。该当前日志分片即块操作日志块中写入了块操作记录的最新的一个日志分片;
三)位图块延迟更新定时器超时,一般地,位图块延迟更新定时器的定时时长默认配置是5分钟。当每一次位图块更新完成时,重置位图块延迟更新定时器。
日志缓存为FIFO队列,初始时该队列为空,当该队列第一次被写满时,即包含的块操作记录数等于一个日志分片所能包含的块操作记录数时,满足 SSD文件系统的位图块更新条件,执行步骤805,此时,日志缓存中的所有块操作记录更新到SSD文件系统的块操作日志块的下一日志分片中,之后当又产生了新的块操作记录时,日志缓存中最老的一条块操作记录被删除,然后其它块操作记录都向删除的块操作记录的方向顺序前移一步,再将新产生的块操作记录写入。
日志缓存是FIFO队列,并在每次产生新的块操作记录时,都将日志缓存中的所有信息同步到SSD文件系统的块操作日志块的下一日志分片中,从而会使得SSD文件系统的块操作日志块中的日志分片是增量备份的关系,即后一个日志分片总是比前一个日志分片多一条最新的块操作记录,而少一条最老的块操作记录。这样的设计可以保证当出现异常时,比如最新的日志分片丢失,仅会丢失一条块操作记录,从而使得异常块(数据)最少,产生的影响最小。
步骤805:SSD文件系统将日志缓存中的所有信息(包括:公共信息和块操作记录)更新到SSD文件系统的块操作日志块的下一日志分片中,然后将位图缓存的位图块版本号加1,将位图缓存中的所有信息(包括:公共信息和位图)同步到SSD文件系统的位图块中,最后将日志缓存中的日志分片版本号加1,本流程结束。
步骤806:SSD文件系统将日志缓存中的所有信息(包括:公共信息和块操作记录)更新到SSD文件系统的块操作日志块的下一日志分片中。
图9为本发明实施例提供的SSD文件系统的数据块的释放方法流程图,其具体步骤如下:
步骤901:SSD文件系统接收SSD数据块释放请求。
步骤902:SSD文件系统在位图缓存的位图中将该数据块置为空闲。
步骤903:SSD文件系统在日志缓存中添加一条块释放记录,将日志缓存中的日志分片号加1,该块释放记录包括:该数据块的块号、操作类型:释放等。
步骤904:SSD文件系统判断当前是否达到SSD文件系统的位图块更新条件,若是,执行步骤905;否则,执行步骤906。
SSD文件系统的位图块更新条件满足如下之一即可:
一)SSD文件系统的块操作日志块中的日志分片已写满一轮,即日志缓存中的日志分片的分片号等于块操作日志块所能包含的日志分片总数-1,其中,块操作日志块中的第一个日志分片的分片号为0;
二)SSD文件系统的块操作日志块中的当前日志分片已写满,且该日志分片中包含的所有块操作记录都未被更新到位图块中。该当前日志分片即块操作日志块中写入了块操作记录的最新的一个日志分片;
三)位图块延迟更新定时器超时,一般地,位图块延迟更新定时器的定时时长默认配置是5分钟。当每一次位图块更新完成时,重置位图块延迟更新定时器。
步骤905:SSD文件系统将日志缓存中的所有信息(包括:公共信息和块操作记录)更新到SSD文件系统的块操作日志块的下一日志分片中,然后将位图缓存的位图块版本号加1,将位图缓存中的所有信息(包括:公共信息和位图)同步到SSD文件系统的位图块中,最后将日志缓存中的日志分片版本号加1,转至步骤907。
步骤906:SSD文件系统将日志缓存中的所有信息(包括:公共信息和块操作记录)更新到SSD文件系统的块操作日志块的下一日志分片中。
步骤907:SSD文件系统对SSD中待释放的数据块的区域执行trim操作。
图10为本发明实施例提供的SSD文件系统加载方法流程图,其具体步骤如下:
步骤1001:SSD文件系统读取本SSD文件系统的启动块。
步骤1002:SSD文件系统判断启动块是否合法,若是,执行步骤1004;否则,执行步骤1003。
步骤1003:SSD文件系统不加载本SSD文件系统,本流程结束。
步骤1004:SSD文件系统读取SSD文件系统的位图块,将位图块的公共信息和位图加载到预留的位图缓存中。
步骤1005:SSD文件系统读取SSD文件系统的块操作日志块,获取日志分片版本号最大,且该版本内日志分片号最大的日志分片,将获取的日志分片加载到预留的日志缓存中。
步骤1006:SSD文件系统判断位图块版本号与获取的最大的日志分片版本号是否相等,若是,执行步骤1007;否则,执行步骤1008。
步骤1007:SSD文件系统将日志缓存中的日志分片版本号加1,本流程结束。
位图块版本号与获取的最大的日志分片版本号相等,说明不存在未更新到位图块的块操作记录。
步骤1008:SSD文件系统根据日志缓存中的所有块操作记录更新位图缓存的位图,将位图缓存中的位图块版本号加1,将位图缓存中的所有信息(包括:公共信息和位图)同步到SSD文件系统的位图块中,最后将日志缓存中的日志分片版本号加1。
图11为本发明实施例提供的SSD文件系统管理装置的结构示意图,该装置主要包括:请求处理模块111和位图块更新判断及处理模块112,其中:
请求处理模块111,用于接收到SSD存储请求,从位图缓存中读取各SSD 数据块的使用或空闲标志,为SSD存储请求分配一个空闲数据块,在位图缓存中该数据块对应位处设置使用标志,在日志缓存中增加一条块操作记录,该记录的内容包括:为SSD存储请求分配的数据块的块标识、操作类型:存储,日志缓存的长度和结构与一个日志分片的长度和结构相同,向位图块更新判断及处理模块112发送存储更新判断指示。
位图块更新判断及处理模块112,用于接收请求处理模块111发来的存储更新判断指示,判断是否达到SSD文件系统的位图块更新条件,若达到,则将日志缓存中的所有信息写入SSD文件系统的块操作日志块的下一日志分片中,并将位图缓存中的所有信息同步到SSD文件系统的位图块中。
一可选实施例中,位图块更新判断及处理模块112判断是否达到SSD文件系统的位图块更新条件之后,进一步用于:若未达到,则只将日志缓存中的所有信息写入SSD文件系统的块操作日志块的下一日志分片中。
一可选实施例中,位图块更新判断及处理模块112判断是否达到SSD文件系统的位图块更新条件包括:判断是否SSD文件系统的块操作日志块的所有日志分片都已写满,且该所有日志分片中的块操作记录都未被更新到SSD 文件系统的位图块中;或者,判断是否SSD文件系统的块操作日志块的当前日志分片已写满,且当前日志分片中的所有块操作记录都未被更新到SSD文件系统的位图块中;或者,判断位图块延迟更新定时器是否超时,其中,当每一次位图块更新完成时,重置位图块延迟更新定时器。
一可选实施例中,请求处理模块111进一步用于:接收到针对一SSD数据块的释放请求,在位图缓存中该释放请求针对的数据块对应位处设置空闲标志,在日志缓存中添加一条块操作记录,该记录的内容包括:释放请求针对的数据块的块标识、操作类型:释放,向位图块更新判断及处理模块112 发送释放更新判断指示,且在接收到位图块更新判断及处理模块112发来的更新完成通知后,对SSD中释放请求针对的数据块所在的区域执行trim操作
且,位图块更新判断及处理模块112将位图缓存中的所有信息同步到 SSD文件系统的位图块中之后,向请求处理模块111发送更新完成通知。
一可选实施例中,上述装置进一步包括:SSD文件系统加载模块,用于读取该SSD文件系统的位图块,将位图块的公共信息和位图加载到预留的位图缓存中;读取SSD文件系统的块操作日志块,获取最新的日志分片,将该日志分片中的所有信息加载到预留的日志缓存中,判断日志缓存中的块操作记录是否未被更新到SSD文件系统的位图块中,若是,则将日志缓存中的所有块操作记录更新到位图缓存中的位图中,然后将位图缓存中的所有信息同步到SSD文件系统的位图块中。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (11)

1.一种固态硬盘SSD文件系统管理方法,其特征在于,该方法包括:
SSD文件系统接收到针对一SSD数据块的操作请求;
根据所述操作请求,在位图缓存中所述SSD数据块对应位处设置使用或空闲标志;且,在日志缓存中增加一条块操作记录,该记录的内容包括:所述SSD数据块的块标识、本次执行的操作类型,所述日志缓存的长度和结构与一个日志分片的长度和结构相同;
判断是否达到SSD文件系统的位图块更新条件,若达到,则将所述日志缓存中的所述块操作记录写入SSD文件系统的块操作日志块的下一日志分片中,并将所述位图缓存中的所述使用或空闲标志同步到SSD文件系统的位图块中,其中,所述SSD文件系统的块操作日志块由多个所述日志分片组成。
2.根据权利要求1所述的方法,其特征在于,所述操作请求为存储请求,且,所述接收到针对一SSD数据块的操作请求之后、在位图缓存中所述SSD数据块对应位处设置使用或空闲标志之前进一步包括:从位图缓存中读取各SSD数据块的使用或空闲标志,为所述存储请求分配一个空闲数据块;
或者,所述操作请求为释放请求,且,所述将所述位图缓存中的所述使用或空闲标志同步到SSD文件系统的位图块中之后进一步包括:对SSD中所述释放请求针对的数据块所在的区域执行trim操作。
3.根据权利要求1所述的方法,其特征在于,所述判断是否达到SSD文件系统的位图块更新条件之后,进一步包括:
若未达到,则只将所述日志缓存中的所述块操作记录写入SSD文件系统的块操作日志块的下一日志分片中。
4.根据权利要求1所述的方法,其特征在于,所述判断是否达到SSD文件系统的位图块更新条件包括:
判断是否SSD文件系统的块操作日志块的所有日志分片都已写满,且该所有日志分片中的块操作记录都未被更新到SSD文件系统的位图块中;或者,
判断是否SSD文件系统的块操作日志块的当前日志分片已写满,且当前日志分片中的所有块操作记录都未被更新到SSD文件系统的位图块中;或者,
判断位图块延迟更新定时器是否超时,其中,当每一次位图块更新完成时,重置位图块延迟更新定时器。
5.根据权利要求1所述的方法,其特征在于,所述SSD文件系统接收到针对一SSD数据块的操作请求之前进一步包括:
读取该SSD文件系统的位图块,将位图块的公共信息和位图加载到预留的位图缓存中;
读取SSD文件系统的块操作日志块,从块操作日志块中获取最新的日志分片,将该日志分片中的所有信息加载到预留的日志缓存中,判断日志缓存中的块操作记录是否未被更新到SSD文件系统的位图块中,若是,则将日志缓存中的所有块操作记录更新到位图缓存中的位图中,然后将位图缓存中的所有信息同步到SSD文件系统的位图块中。
6.根据权利要求1所述的方法,其特征在于,当判定达到SSD文件系统的位图块更新条件时,所述将所述日志缓存中的所述块操作记录写入SSD文件系统的块操作日志块的下一日志分片中之后进一步包括:
将位图缓存中的位图块版本号加1;
且,所述将所述位图缓存中的所述使用或空闲标志同步到SSD文件系统的位图块中之后进一步包括:
将日志缓存中的日志分片版本号加1;
所述SSD文件系统接收到针对一SSD数据块的操作请求之前进一步包括:
读取该SSD文件系统的位图块,将位图块的公共信息和位图加载到预留的位图缓存中;读取SSD文件系统的块操作日志块,获取日志分片版本号最大的且最新的一个日志分片,将该日志分片中的所有信息加载到日志缓存中,判断位图块版本号是否与最大日志分片版本号相等,若不相等,则将日志缓存中的所有块操作记录更新到位图缓存中的位图中,然后将位图缓存中的位图块版本号加1,将位图缓存中的所有信息同步到SSD文件系统的位图块中,再将日志缓存中的日志分片版本号加1。
7.一种固态硬盘SSD文件系统管理装置,其特征在于,该装置包括:
操作请求处理模块,用于接收到针对一SSD数据块的操作请求;根据所述操作请求,在位图缓存中所述SSD数据块对应位处设置使用或空闲标志;且,在日志缓存中增加一条块操作记录,该记录的内容包括:所述SSD数据块的块标识、本次执行的操作类型,所述日志缓存的长度和结构与一个日志分片的长度和结构相同;
位图块更新判断及处理模块,用于判断是否达到SSD文件系统的位图块更新条件,若达到,则将所述日志缓存中的所述块操作记录写入SSD文件系统的块操作日志块的下一日志分片中,并将所述位图缓存中的所述使用或空闲标志同步到SSD文件系统的位图块中,其中,所述SSD文件系统的块操作日志块由多个所述日志分片组成。
8.根据权利要求7所述的装置,其特征在于,所述位图块更新判断及处理模块判断是否达到SSD文件系统的位图块更新条件之后,进一步用于:
若未达到,则只将所述日志缓存中的所述块操作记录写入SSD文件系统的块操作日志块的下一日志分片中。
9.根据权利要求7所述的装置,其特征在于,所述位图块更新判断及处理模块判断是否达到SSD文件系统的位图块更新条件包括:
判断是否SSD文件系统的块操作日志块的所有日志分片都已写满,且该所有日志分片中的块操作记录都未被更新到SSD文件系统的位图块中;或者,
判断是否SSD文件系统的块操作日志块的当前日志分片已写满,且当前日志分片中的所有块操作记录都未被更新到SSD文件系统的位图块中;或者,
判断位图块延迟更新定时器是否超时,其中,当每一次位图块更新完成时,重置位图块延迟更新定时器。
10.根据权利要求7所述的装置,其特征在于,所述装置进一步包括:SSD文件系统加载模块,用于读取该SSD文件系统的位图块,将位图块的公共信息和位图加载到预留的位图缓存中;读取SSD文件系统的块操作日志块,从块操作日志块中获取最新的日志分片,将该日志分片中的所有信息加载到预留的日志缓存中,判断日志缓存中的块操作记录是否未被更新到SSD文件系统的位图块中,若是,则将日志缓存中的所有块操作记录更新到位图缓存中的位图中,然后将位图缓存中的所有信息同步到SSD文件系统的位图块中。
11.一种电子设备,其特征在于,包括如权利要求7至10任一所述的装置。
CN202010428925.1A 2020-05-20 2020-05-20 固态硬盘文件系统管理方法、装置及电子设备 Active CN111597152B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010428925.1A CN111597152B (zh) 2020-05-20 2020-05-20 固态硬盘文件系统管理方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010428925.1A CN111597152B (zh) 2020-05-20 2020-05-20 固态硬盘文件系统管理方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN111597152A CN111597152A (zh) 2020-08-28
CN111597152B true CN111597152B (zh) 2023-04-21

Family

ID=72190357

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010428925.1A Active CN111597152B (zh) 2020-05-20 2020-05-20 固态硬盘文件系统管理方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN111597152B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112486777A (zh) * 2020-12-11 2021-03-12 深圳前瞻资讯股份有限公司 一种大数据服务程序日志处理方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6732124B1 (en) * 1999-03-30 2004-05-04 Fujitsu Limited Data processing system with mechanism for restoring file systems based on transaction logs
CN101620517A (zh) * 2009-08-04 2010-01-06 成都市华为赛门铁克科技有限公司 数据写入方法和装置
CN104615504A (zh) * 2015-02-06 2015-05-13 浪潮(北京)电子信息产业有限公司 一种实现数据保护的方法及装置
US9697219B1 (en) * 2014-12-29 2017-07-04 EMC IP Holding Company LLC Managing log transactions in storage systems
CN111124258A (zh) * 2018-10-31 2020-05-08 深信服科技股份有限公司 全闪存阵列的数据存储方法、装置、设备及可读存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080077590A1 (en) * 2006-09-22 2008-03-27 Honeywell International Inc. Efficient journaling and recovery mechanism for embedded flash file systems

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6732124B1 (en) * 1999-03-30 2004-05-04 Fujitsu Limited Data processing system with mechanism for restoring file systems based on transaction logs
CN101620517A (zh) * 2009-08-04 2010-01-06 成都市华为赛门铁克科技有限公司 数据写入方法和装置
US9697219B1 (en) * 2014-12-29 2017-07-04 EMC IP Holding Company LLC Managing log transactions in storage systems
CN104615504A (zh) * 2015-02-06 2015-05-13 浪潮(北京)电子信息产业有限公司 一种实现数据保护的方法及装置
CN111124258A (zh) * 2018-10-31 2020-05-08 深信服科技股份有限公司 全闪存阵列的数据存储方法、装置、设备及可读存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张也 ; 刘晓洁 ; 邓健 ; .一种远程备份数据虚拟重构方法.四川大学学报(自然科学版).2015,(05),全文. *

Also Published As

Publication number Publication date
CN111597152A (zh) 2020-08-28

Similar Documents

Publication Publication Date Title
US8909887B1 (en) Selective defragmentation based on IO hot spots
US7587427B2 (en) Hierarchical storage system, and control method and program therefor
CN110321301B (zh) 一种数据处理的方法及装置
US10725878B2 (en) Storage apparatus, storage system, and control method of storage system for dynamically securing free space when a storage apparatus is disused
KR101824295B1 (ko) 솔리드 스테이트 장치 가상화를 포함하는 캐시 관리
CN104272272B (zh) 混合储存集合去除重复
US7694103B1 (en) Efficient use of memory and accessing of stored records
US20070208921A1 (en) Storage system and control method for the same
US20090070541A1 (en) Automated information life-cycle management with thin provisioning
US9910798B2 (en) Storage controller cache memory operations that forego region locking
CN103514249B (zh) 一种数据自精简方法和系统及存储装置
CN103761190A (zh) 数据处理方法及装置
JP2009181148A (ja) ストレージサブシステム
US7251716B2 (en) Method and system for data processing with recovery capability
US10048866B2 (en) Storage control apparatus and storage control method
CN100403279C (zh) 信息记录介质的数据区域管理方法、使用数据区域管理方法的信息处理装置
US11436102B2 (en) Log-structured formats for managing archived storage of objects
CN112527186A (zh) 一种存储系统、存储节点和数据存储方法
CN111597152B (zh) 固态硬盘文件系统管理方法、装置及电子设备
CN111399765B (zh) 数据处理方法、装置、电子设备及可读存储介质
CN111190537B (zh) 一种追加写场景下顺序存储磁盘管理的方法及系统
CN104917788A (zh) 一种数据存储方法及装置
KR20170102772A (ko) 로그 구조 파일 시스템의 메타 데이터 저장 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체
WO2012008731A2 (ko) 블록 단위 매핑 기법을 이용한 플래시 메모리 관리 장치 및 방법
CN109446115A (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