CN111352590A - 文件存储方法及设备 - Google Patents
文件存储方法及设备 Download PDFInfo
- Publication number
- CN111352590A CN111352590A CN202010118965.6A CN202010118965A CN111352590A CN 111352590 A CN111352590 A CN 111352590A CN 202010118965 A CN202010118965 A CN 202010118965A CN 111352590 A CN111352590 A CN 111352590A
- Authority
- CN
- China
- Prior art keywords
- file
- disk
- ssd
- hdd
- information
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000012163 sequencing technique Methods 0.000 claims description 4
- 238000012544 monitoring process Methods 0.000 abstract description 4
- 230000015654 memory Effects 0.000 description 17
- 230000005012 migration Effects 0.000 description 12
- 238000013508 migration Methods 0.000 description 12
- 230000005291 magnetic effect Effects 0.000 description 10
- 238000013500 data storage Methods 0.000 description 8
- 238000007726 management method Methods 0.000 description 8
- 239000007787 solid Substances 0.000 description 6
- 238000004590 computer program Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- 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/0614—Improving the reliability of storage systems
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- 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
本发明的目的是提供一种文件存储方法及设备,本发明能够对分布式存储系统中的各个目录设定缓存策略,缓存策略包括“禁止缓存”、“允许缓存”;客户端向存储节点写入文件时,请求消息中可以带有该缓存策略信息;本发明的存储节点是基于文件级别而不是数据块级别,来实施SSD缓存,从而实现需要统计监控的数量大幅减少,效率提高,SSD缓存容量可以大幅提高。本发明将文件写入到SSD盘中的同时在HDD盘中建立链接,该链接指向SSD中的文件。建立号链接后,如果文件位于SSD中,则通过HDD盘中的链接可以读取到SSD盘中的文件的内容,可以减少一次文件查找操作。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种文件存储方法及设备。
背景技术
分布式存储系统通过将数据分散保存在多个存储服务器的多个硬盘上,来实现海量数据存储和快速访问,在云计算、大数据等各个领域得到广泛应用。
如图1所示,分布式存储系统一般由客户端、管理节点、存储节点组成。其中客户端对上层提供透明的文件/对象/或块访问接口,屏蔽分布式存储系统内部的实现细节;管理节点实现存储系统的配置管理、监控、名字空间的管理等;存储节点实现数据存储功能。
大容量、高性能、低成本既是分布式存储系统追求的目标,也是存储技术长期以来所面临的挑战。存储系统使用的存储器件主要有磁盘、固态盘、非易逝性内存等。其中固态盘(SDD,Solid state disk)性能高,但容量小、成本高;磁盘(HDD,Hard Disk Drive)容量大成本低,但读写性能低。因此数据存储系统中普遍使用固态盘作为缓存,将频繁访问的热数据保存在固态盘中,将访问频度低的数据保存在磁盘中,从而兼顾性能和容量需求。
分布式文件存储系统中,一个文件由多个数据块组成。缓存实现都需要监控每个数据块的访问频度。如果一个数据块访问频度高,但位于HDD中,就将其从HDD迁移或复制到SDD;对于访问频度低的数据块,将其从SSD迁移到HDD中。这种方法面临的挑战在于,需要监控统计对象数量和SSD缓存容量、访问的文件数据成正比,消耗大量内存和CPU资源,同时限制了SSD缓存容量,使其难以大规模扩展。
发明内容
本发明的一个目的是提供一种文件存储方法及设备。
根据本发明的一个方面,提供了一种文件存储方法,该方法包括:
判断文件的写请求中是否包含禁止缓存的信息或允许缓存的信息,
若包含禁止缓存的信息,则将所述文件写入HDD盘;
若包含允许缓存的信息,则判断所述文件的大小是否大于预设文件阈值,
若大于所述预设文件阈值,则将所述文件写入HDD盘;
若小于等于所述预设文件阈值,则将所述文件写入SSD盘,同时在所述HDD盘中建立链接,所述链接指向SSD盘中写入的所述文件。
进一步的,上述方法中,判断文件的写请求中是否包含禁止缓存的信息或允许缓存的信息,包括:
获取文件的写请求;
判断所述SSD盘的存储空间是否用尽,
若是,则将所述写入HDD盘;
若否,则判断所述写请求中是否包含禁止缓存的信息或允许缓存的信息。
进一步的,上述方法中,判断文件的写请求中是否包含禁止缓存的信息或允许缓存的信息之后,还包括:
若未包含禁止缓存的信息和允许缓存的信息,则判断所述文件的大小是否大于预设文件阈值,
若大于所述预设文件阈值,则将所述文件写入HDD盘;
若小于等于所述预设文件阈值,则将所述文件写入SSD盘,同时在所述HDD盘中建立链接,所述链接指向SSD盘中写入的所述文件。
进一步的,上述方法中,将所述文件写入SSD盘,同时在所述HDD盘中建立链接,所述链接指向SSD盘中写入的所述文件之后,还包括:
获取文件读取请求;
基于所述文件读取请求从HDD盘读取对应的文件;
或基于所述文件读取请求从HDD盘获取指向对应的文件的链接,基于所述链接从所述SSD盘中读取对应的文件。
进一步的,上述方法中,将所述文件写入SSD盘之后,还包括:
判断所述SSD盘的当前存储空间量是否高于预设存储空间量最高阈值,
若是,获取所述SSD盘中文件的未访问时间,并将所述SSD盘中文件按未访问时间由长到短进行排序得到队列;
将指向所述队列中当前排在最前的未访问时间对应的文件的链接从所述HDD盘中删除后,再将所述队列中当前排在最前的未访问时间对应的文件存储到所述HDD盘后,然后将该文件从所述SSD盘中删除,并将当前排在最前的未访问时间从所述队列中删除,判断所述SSD盘的当前存储空间量是否低于预设存储空间量最低阈值,若否,重复本步骤。
进一步的,上述方法中,将所述文件写入SSD盘之后,之后,还包括:
判断所述SSD盘的当前存储空间量是否高于预设存储空间量最高阈值,
若是,转如下步骤:
依次遍历所述SSD盘中的文件,获取当前时间及所述SSD盘中存储的当前遍历到的文件的访问时间,计算当前时间减去当前遍历到的文件的访问时间得到的差值;若当前遍历到的文件对应的差值小于等于预设时间阈值,则重复本步骤;若当前遍历到的文件对应的差值大于预设时间阈值,将指向遍历到的文件的链接从所述HDD盘中删除后,将该当前遍历到的文件存储到所述HDD盘,并将该文件从所述SSD盘中删除,判断所述SSD盘的当前存储空间量是否低于预设存储空间量最低阈值,若否,重复本步骤。
进一步的,上述方法中,判断所述SSD盘的当前存储空间量是否高于预设存储空间量最高阈值,包括:
判断所述SSD盘的当前存储空间量是否高于预设存储空间量最高阈值且当前时间是否为所述SSD盘的空闲时间。
进一步的,上述方法中,判断文件的写请求中是否包含禁止缓存的信息或允许缓存的信息,包括:
获取文件的写请求;
判断所述文件是否已经在所述HDD盘或SSD盘中存在,
若在所述HDD盘中存在,则将所述文件更新写入所述HDD盘;
若在所述SSD盘中存在,则将所述文件更新写入所述SSD盘;
若不在所述HDD盘和SSD盘中存在,则判断文件的写请求中是否包含禁止缓存的信息或允许缓存的信息。
根据本发明的另一方面,还提供一种文件存储设备,其中,该设备包括:
第一装置,用于判断文件的写请求中是否包含禁止缓存的信息或允许缓存的信息,
第二装置,用于若包含禁止缓存的信息,则将所述文件写入HDD盘;
第三装置,用于若包含允许缓存的信息,则判断所述文件的大小是否大于预设文件阈值,
第四装置,用于若大于所述预设文件阈值,则将所述文件写入HDD盘;
第五装置,用于若小于等于所述预设文件阈值,则将所述文件写入SSD盘,同时在所述HDD盘中建立链接,所述链接指向SSD盘中写入的所述文件。
进一步的,上述设备中,所述第一装置,用于获取文件的写请求;判断所述SSD盘的存储空间是否用尽,若是,则将所述写入HDD盘;若否,则判断所述写请求中是否包含禁止缓存的信息或允许缓存的信息。
进一步的,上述设备中,还包括第一装置,还用于在判断文件的写请求中是否包含禁止缓存的信息或允许缓存的信息之后,若未包含禁止缓存的信息和允许缓存的信息,则判断所述文件的大小是否大于预设文件阈值,若大于所述预设文件阈值,则将所述文件写入HDD盘;若小于等于所述预设文件阈值,则将所述文件写入SSD盘,同时在所述HDD盘中建立链接,所述链接指向SSD盘中写入的所述文件。
进一步的,上述设备中,所述第五装置,还用于获取文件读取请求;基于所述文件读取请求从HDD盘读取对应的文件;或基于所述文件读取请求从HDD盘获取指向对应的文件的链接,基于所述链接从所述SSD盘中读取对应的文件。
进一步的,上述设备中,还包括:
第六装置,用于判断所述SSD盘的当前存储空间量是否高于预设存储空间量最高阈值,若是,获取所述SSD盘中文件的未访问时间,并将所述SSD盘中文件按未访问时间由长到短进行排序得到队列;
第七装置,用于将指向所述队列中当前排在最前的未访问时间对应的文件的链接从所述HDD盘中删除后,再将所述队列中当前排在最前的未访问时间对应的文件存储到所述HDD盘后,然后将该文件从所述SSD盘中删除,并将当前排在最前的未访问时间从所述队列中删除,判断所述SSD盘的当前存储空间量是否低于预设存储空间量最低阈值,若否,重复执行本装置。
进一步的,上述设备中,还包括:
第八装置,用于判断所述SSD盘的当前存储空间量是否高于预设存储空间量最高阈值,
若是,执行第九装置;
第九装置,用于依次遍历所述SSD盘中的文件,获取当前时间及所述SSD盘中存储的当前遍历到的文件的访问时间,计算当前时间减去当前遍历到的文件的访问时间得到的差值;若当前遍历到的文件对应的差值小于等于预设时间阈值,重复执行本第九装置;若当前遍历到的文件对应的差值大于预设时间阈值,将指向遍历到的文件的链接从所述HDD盘中删除后,将该当前遍历到的文件存储到所述HDD盘,并将该文件从所述SSD盘中删除,判断所述SSD盘的当前存储空间量是否低于预设存储空间量最低阈值,若否,重复执行本第九装置。
进一步的,上述设备中,所述第七装置或第九装置,用于判断所述SSD盘的当前存储空间量是否高于预设存储空间量最高阈值且当前时间是否为所述SSD盘的空闲时间。
进一步的,上述设备中,所述第一装置,还用于获取文件的写请求;判断所述文件是否已经在所述HDD盘或SSD盘中存在,若在所述HDD盘中存在,则将所述文件更新写入所述HDD盘;若在所述SSD盘中存在,则将所述文件更新写入所述SSD盘;若不在所述HDD盘和SSD盘中存在,则判断文件的写请求中是否包含禁止缓存的信息或允许缓存的信息。
根据本发明的另一方面,还提供一种计算机可读存储介质,其上存储有计算机可执行指令,其中,该计算机可执行指令被处理器执行时使得该处理器:
判断文件的写请求中是否包含禁止缓存的信息或允许缓存的信息,
若包含禁止缓存的信息,则将所述文件写入HDD盘;
若包含允许缓存的信息,则判断所述文件的大小是否大于预设文件阈值,
若大于所述预设文件阈值,则将所述文件写入HDD盘;
若小于等于所述预设文件阈值,则将所述文件写入SSD盘,同时在所述HDD盘中建立链接,所述链接指向SSD盘中写入的所述文件。
与现有技术相比,本发明可以提升分布式数据存储系统的读写性能,具体来说:
1)本发明能够对分布式存储系统中的各个目录设定缓存策略,缓存策略包括“禁止缓存”、“允许缓存”;客户端向存储节点写入文件时,请求消息中可以带有该缓存策略信息;
2)本发明的存储节点是基于文件级别而不是数据块级别,来实施SSD缓存,从而实现需要统计监控的数量大幅减少,效率提高,SSD缓存容量可以大幅提高。
3)本发明将文件写入到SSD盘中的同时在HDD盘中建立链接,该链接指向SSD中的文件。建立号链接后,存储节点在收到客户端的文件的读取请求时,如果文件位于HDD盘中,每次都可以从HDD盘中读取文件;如果文件位于SSD中,则通过HDD盘中的链接可以读取到SSD盘中的文件的内容,可以减少一次文件查找操作;另外,当列举目录时,不需要合并HDD盘和SSD盘,实现方案简化。
4)本发明的存储节点不需要监控每个文件或数据块的访问频度,而是根据客户端的缓存策略的提示信息、文件大小、SSD盘的存储空间利用率,来高效、可靠的确定将文件写入SSD盘还是HDD盘。
5)本发明中文件只能从SSD迁移到HDD,而不能从HDD盘迁移到SSD盘,能够使得SSD缓存实现大幅简化,因为如果要支持将文件从HDD迁移到SSD,就需要监控每个文件的访问频度,本发明无需监控每个文件的访问频度。存储节点不需要监控每个文件或数据块的访问频度,而是根据保存在SSD文件系统中的访问时间来选择文件进行迁移。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1示出现有的分布式数据存储系统的示意图;
图2示出本发明一实施例的文件写入流程图;
图3示出本发明一实施例的SSD盘的文件迁移的流程图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本发明作进一步详细描述。
在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
如图2所示,本发明提供一种文件存储方法,所述方法包括:
步骤S1,判断文件的写请求中是否包含禁止缓存的信息或允许缓存的信息,
在此,分布式数据存储系统中的每个存储节点都配置有一定数量的固态盘(SSD)和磁盘(HDD)。固态盘的接口可以有SATA/SAS/NVMe/PCIe等多种形式。固态盘的数量不受限制。多个固态盘既可以以独立方式工作,也可以将多个固态盘组织为RAID5/6方式。固态盘和磁盘具有各自独立的文件系统。
分布式存储系统可以通过管理接口,如命令行管理工具、API编程接口等为每个目录指定缓存策略,如允许缓存、禁止缓存等。这些信息保存在管理节点中。
当客户端写入新文件时,可以从管理节点获取该文件所在目录的缓存策略如禁止缓存的信息或允许缓存的信息,然后将缓存策略发送给存储节点。
步骤S2,若包含禁止缓存的信息,则将所述文件写入HDD盘;
在此,如果客户端发送的写请求带有缓存策略信息,且缓存策略为“禁止缓存”,则将文件写入到HDD中,否则,可以继续判断所述文件的大小是否大于预设文件阈值;
步骤S3,若包含允许缓存的信息,则判断所述文件的大小是否大于预设文件阈值,
步骤S4,若大于所述预设文件阈值,则将所述文件写入HDD盘;
在此,如果文件大小大于阈值S,则将文件写入到HDD中,否则将所述文件写入SSD盘;
步骤S5,若小于等于所述预设文件阈值,则将所述文件写入SSD盘,同时在所述HDD盘中建立链接,所述链接指向SSD盘中写入的所述文件。
在此,所述链接可以包括符号链接和硬链接等。本实施例通过在文件大小小于等于所述预设文件阈值,则将所述文件写入SSD盘,可以缓存更多的较小的文件,进一步升分布式数据存储系统的读写性能。
本发明可以提升分布式数据存储系统的读写性能,具体来说:
1)本发明能够对分布式存储系统中的各个目录设定缓存策略,缓存策略包括“禁止缓存”、“允许缓存”;客户端向存储节点写入文件时,请求消息中可以带有该缓存策略信息;
2)本发明的存储节点是基于文件级别而不是数据块级别,来实施SSD缓存,从而实现需要统计监控的数量大幅减少,效率提高,SSD缓存容量可以大幅提高。
3)本发明将文件写入到SSD盘中的同时在HDD盘中建立链接,该链接指向SSD中的文件。建立号链接后,存储节点在收到客户端的文件的读取请求时,如果文件位于HDD盘中,每次都可以从HDD盘中读取文件;如果文件位于SSD中,则通过HDD盘中的链接可以读取到SSD盘中的文件的内容,可以减少一次文件查找操作;另外,当列举目录时,不需要合并HDD盘和SSD盘,实现方案简化。
4)本发明的存储节点不需要监控每个文件或数据块的访问频度,而是根据客户端的缓存策略的提示信息、文件大小,来高效、可靠的确定将文件写入SSD盘还是HDD盘。
如图2所示,本发明的文件存储方法一实施例中,步骤S1,判断文件的写请求中是否包含禁止缓存的信息或允许缓存的信息,包括:
步骤S111,获取文件的写请求;
步骤S1112,判断所述SSD盘的存储空间是否用尽,
步骤S1113,若是,则将所述写入HDD盘;
步骤S1114,若否,则判断所述写请求中是否包含禁止缓存的信息或允许缓存的信息。
本实施例中,可以查看SSD盘的状态,如果SSD盘存储空间已用尽,则写入到HDD中,否则可以继续判断所述写请求中是否包含禁止缓存的信息或允许缓存的信息。
本发明的存储节点不需要监控每个文件或数据块的访问频度,而是根据客户端的缓存策略的提示信息、文件大小、SSD的存储空间利用率来准确、高效的确定是否将文件写入SSD或HDD。
如图2所示,本发明的文件存储方法一实施例中,步骤S1,判断文件的写请求中是否包含禁止缓存的信息或允许缓存的信息之后,还包括:
步骤S6,若未包含禁止缓存的信息和允许缓存的信息,则判断所述文件的大小是否大于预设文件阈值S,
在此,若未包含禁止缓存的信息和允许缓存的信息,则说明没有指定过缓存策略;
步骤S7,若大于所述预设文件阈值S,则将所述文件写入HDD盘;
步骤S8,若小于等于所述预设文件阈值S,则将所述文件写入SSD盘,同时在所述HDD盘中建立链接,所述链接指向SSD盘中写入的所述文件。
在此,如果客户端未指定缓存策略,则可以进步判断所述文件的大小是否大于预设文件阈值S,从而可以高效的判断文件是存入HDD盘,还是SSD盘。
本发明的文件存储方法一实施例中,步骤S5,将所述文件写入SSD盘,同时在所述HDD盘中建立链接,所述链接指向SSD盘中写入的所述文件之后,还包括:
步骤S9,获取文件读取请求;
步骤S10,基于所述文件读取请求从HDD盘读取对应的文件;
步骤S11,或基于所述文件读取请求从HDD盘获取指向对应的文件的链接,基于所述链接从所述SSD盘中读取对应的文件。
在此,本发明将文件写入到SSD盘中的同时在HDD盘中建立链接,该链接指向SSD中的文件。建立号链接后,存储节点在收到客户端的文件的读取请求时,如果文件位于HDD盘中,每次都可以从HDD盘中读取文件;如果文件位于SSD中,则通过HDD盘中的链接可以读取到SSD盘中的文件的内容,可以减少一次文件查找操作。
本发明的文件存储方法一实施例中,步骤S5,将所述文件写入SSD盘之后,还包括:
步骤S12,判断所述SSD盘的当前存储空间量是否高于预设存储空间量最高阈值Chigh,
在此,如果SSD盘的空间利用率低于预设存储空间量最高阈值Chigh,则不执行SSD盘的文件迁移任务;
步骤S13,若是,获取所述SSD盘中文件的未访问时间,并将所述SSD盘中文件按未访问时间由长到短进行排序得到队列;
在此,可以根据保存在SSD文件系统中的访问时间得到每个文件的未访问时间;
如果SSD的空间利用率高于预设存储空间量最高阈Chigh,可以对SSD盘中的文件按照未访问时间排序,优先迁移SSD盘中的未访问时间最长的文件;
步骤S14,将指向所述队列中当前排在最前的未访问时间对应的文件的链接从所述HDD盘中删除后,再将所述队列中当前排在最前的未访问时间对应的文件存储到所述HDD盘后,然后将该文件从所述SSD盘中删除,并将当前排在最前的未访问时间从所述队列中删除,判断所述SSD盘的当前存储空间量是否低于预设存储空间量最低阈值Clow,若否,重复本步骤。
在此,每个存储节点可以执行独立的SSD盘的文件迁移任务。可以在存储节点上周期性启动SSD盘的文件迁移任务,本实施例可以根据SSD盘上每个文件的未访问时间来确定是否被替换。
当确定迁移SSD盘中的一个文件时,首先删除HDD所述中指向该文件的链接,然后将SSD盘中的该文件复制到HDD盘中,然后删除SSD中的该文件。
同时,如果SSD的空间利用率低于预设存储空间量最低阈值Clow,则停止SSD盘中的文件向HDD盘中迁移。
本实施例中,文件只能从SSD迁移到HDD,而不能从HDD盘迁移到SSD盘,能够使得SSD缓存实现大幅简化,因为如果要支持将文件从HDD迁移到SSD,就需要监控每个文件的访问频度,本发明无需监控每个文件的访问频度。存储节点不需要监控每个文件或数据块的访问频度,而是根据保存在SSD文件系统中的访问时间来选择文件进行迁移。
如图3所示,本发明的文件存储方法一实施例中,步骤S5,将所述文件写入SSD盘之后,之后,还包括:
步骤S15,判断所述SSD盘的当前存储空间量是否高于预设存储空间量最高阈值Chig,
若是,转到步骤S16;
步骤S16,依次遍历所述SSD盘中的文件,获取当前时间Tc及所述SSD盘中存储的当前遍历到的文件的访问时间Taccess,计算当前时间Tc减去当前遍历到的文件的访问时间Taccess得到的差值;若当前遍历到的文件对应的差值Tc-TDelete小于等于预设时间阈值TDelete,则重复本步骤;若当前遍历到的文件对应的差值Tc-TDelete大于预设时间阈值TDelete,将指向遍历到的文件的链接从所述HDD盘中删除后,将该当前遍历到的文件存储到所述HDD盘,并将该文件从所述SSD盘中删除,判断所述SSD盘的当前存储空间量是否低于预设存储空间量最低阈值Clow,若否,重复本步骤。
在此,本实施例中,当所述SSD盘的当前存储空间量高于预设存储空间量最高阈值时开始选择文件进行迁移,依次遍历所述SSD盘中的未遍历过的文件,可以根据SSD盘中文件的访问时间Taccess来选择文件进行迁移,并可在所述SSD盘的当前存储空间量低于预设存储空间量最低阈值时,停止遍历及停止将遍历到的SSD盘中的文件迁移到HDD盘中。
本发明的文件存储方法一实施例中,步骤S12,判断所述SSD盘的当前存储空间量是否高于预设存储空间量最高阈值,包括:
判断所述SSD盘的当前存储空间量是否高于预设存储空间量最高阈值且当前时间是否为所述SSD盘的空闲时间。
本实施例通过在所述SSD盘的当前存储空间量高于预设存储空间量最高阈值且当前时间是所述SSD盘的空闲时间时,进行SSD盘中的文件迁移到HDD盘的操作,否则不进行文件迁移操作,可以避免在SSD盘在访问高峰时同时进行迁移操作,防止影响SSD盘的访问性能。
一具体实施例中,选择并迁移SSD盘中文件的步骤如下:
1)一种典型的方式是选择每天晚上0:00至5:00的时间作为SSD盘的空闲时间,在这个空闲时间周期性启动SSD盘的文件迁移清理任务;
2)检查SSD盘的存储空间使用率,
3)如果低于等于预设存储空间量最高阈值Rhigh,Rhigh典型值可以为SSD盘的总存储空间量的85%,则退出;
4)如果高于等于预设存储空间量最高阈值Rhigh,则遍历检查SSD盘中的所有文件,如果文件的访问时间Taccess和当前时间TC的差值大于预设时间阈值TDelete,TDelete典型的值可以为30天,则迁移差值大于预设第二时间阈值TDelete对应的文件到HDD盘;其中,在遍历检查过程中,如果SSD盘的存储空间使用率低于预设存储空间量最低阈值Rlow,Rlow典型值可以为70%,则停止从SSD盘迁移文件到HDD盘。
本发明的文件存储方法一实施例中,步骤S1,判断文件的写请求中是否包含禁止缓存的信息或允许缓存的信息,包括:
步骤S121,获取文件的写请求;
步骤S122,判断所述文件是否已经在所述HDD盘或SSD盘中存在,
步骤S123,若在所述HDD盘中存在,则将所述文件更新写入所述HDD盘;
步骤S124,若在所述SSD盘中存在,则将所述文件更新写入所述SSD盘;
若不在所述HDD盘和SSD盘中存在,则判断文件的写请求中是否包含禁止缓存的信息或允许缓存的信息。
在此,当存储节点收到写入一个文件的请求时,在本地查找该文件。如果该文件已经存在,则直接更新写入,如该文件在SSD,就在SSD覆盖更新该文件,如该文件在HDD,就在HDD覆盖更新该文件。如果是新文件,则可以进一步判断文件的写请求中是否包含禁止缓存的信息或允许缓存的信息,从而可以保证更新文件与其原来的存储盘一致,便于后续快速读取。
根据本发明的另一方面,还提供一种文件存储设备,其中,该设备包括:
第一装置,用于判断文件的写请求中是否包含禁止缓存的信息或允许缓存的信息,
第二装置,用于若包含禁止缓存的信息,则将所述文件写入HDD盘;
第三装置,用于若包含允许缓存的信息,则判断所述文件的大小是否大于预设文件阈值,
第四装置,用于若大于所述预设文件阈值,则将所述文件写入HDD盘;
第五装置,用于若小于等于所述预设文件阈值,则将所述文件写入SSD盘,同时在所述HDD盘中建立链接,所述链接指向SSD盘中写入的所述文件。
进一步的,上述设备中,所述第一装置,用于获取文件的写请求;判断所述SSD盘的存储空间是否用尽,若是,则将所述写入HDD盘;若否,则判断所述写请求中是否包含禁止缓存的信息或允许缓存的信息。
进一步的,上述设备中,还包括第一装置,还用于在判断文件的写请求中是否包含禁止缓存的信息或允许缓存的信息之后,若未包含禁止缓存的信息和允许缓存的信息,则判断所述文件的大小是否大于预设文件阈值,若大于所述预设文件阈值,则将所述文件写入HDD盘;若小于等于所述预设文件阈值,则将所述文件写入SSD盘,同时在所述HDD盘中建立链接,所述链接指向SSD盘中写入的所述文件。
进一步的,上述设备中,所述第五装置,还用于获取文件读取请求;基于所述文件读取请求从HDD盘读取对应的文件;或基于所述文件读取请求从HDD盘获取指向对应的文件的链接,基于所述链接从所述SSD盘中读取对应的文件。
进一步的,上述设备中,还包括:
第六装置,用于判断所述SSD盘的当前存储空间量是否高于预设存储空间量最高阈值,若是,获取所述SSD盘中文件的未访问时间,并将所述SSD盘中文件按未访问时间由长到短进行排序得到队列;
第七装置,用于将指向所述队列中当前排在最前的未访问时间对应的文件的链接从所述HDD盘中删除后,再将所述队列中当前排在最前的未访问时间对应的文件存储到所述HDD盘后,然后将该文件从所述SSD盘中删除,并将当前排在最前的未访问时间从所述队列中删除,判断所述SSD盘的当前存储空间量是否低于预设存储空间量最低阈值,若否,重复执行本装置。
进一步的,上述设备中,还包括:
第八装置,用于判断所述SSD盘的当前存储空间量是否高于预设存储空间量最高阈值,
若是,执行第九装置;
第九装置,用于依次遍历所述SSD盘中的文件,获取当前时间及所述SSD盘中存储的当前遍历到的文件的访问时间,计算当前时间减去当前遍历到的文件的访问时间得到的差值;若当前遍历到的文件对应的差值小于等于预设时间阈值,重复执行本第九装置;若当前遍历到的文件对应的差值大于预设时间阈值,将指向遍历到的文件的链接从所述HDD盘中删除后,将该当前遍历到的文件存储到所述HDD盘,并将该文件从所述SSD盘中删除,判断所述SSD盘的当前存储空间量是否低于预设存储空间量最低阈值,若否,重复执行本第九装置。
进一步的,上述设备中,所述第七装置或第九装置,用于判断所述SSD盘的当前存储空间量是否高于预设存储空间量最高阈值且当前时间是否为所述SSD盘的空闲时间。
进一步的,上述设备中,所述第一装置,还用于获取文件的写请求;判断所述文件是否已经在所述HDD盘或SSD盘中存在,若在所述HDD盘中存在,则将所述文件更新写入所述HDD盘;若在所述SSD盘中存在,则将所述文件更新写入所述SSD盘;若不在所述HDD盘和SSD盘中存在,则判断文件的写请求中是否包含禁止缓存的信息或允许缓存的信息。
根据本发明的另一方面,还提供一种计算机可读存储介质,其上存储有计算机可执行指令,其中,该计算机可执行指令被处理器执行时使得该处理器:
判断文件的写请求中是否包含禁止缓存的信息或允许缓存的信息,
若包含禁止缓存的信息,则将所述文件写入HDD盘;
若包含允许缓存的信息,则判断所述文件的大小是否大于预设文件阈值,
若大于所述预设文件阈值,则将所述文件写入HDD盘;
若小于等于所述预设文件阈值,则将所述文件写入SSD盘,同时在所述HDD盘中建立链接,所述链接指向SSD盘中写入的所述文件。
本发明各设备实施例的详细内容具体可参见各方法实施例的对应部分,在此,不再赘述。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
需要注意的是,本发明可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本发明的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本发明的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本发明的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本发明的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本发明的方法和/或技术方案。而调用本发明的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本发明的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本发明的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (10)
1.一种文件存储方法,其中,该方法包括:
判断文件的写请求中是否包含禁止缓存的信息或允许缓存的信息,
若包含禁止缓存的信息,则将所述文件写入HDD盘;
若包含允许缓存的信息,则判断所述文件的大小是否大于预设文件阈值,
若大于所述预设文件阈值,则将所述文件写入HDD盘;
若小于等于所述预设文件阈值,则将所述文件写入SSD盘,同时在所述HDD盘中建立链接,所述链接指向SSD盘中写入的所述文件。
2.根据权利要求1所述的方法,其中,判断文件的写请求中是否包含禁止缓存的信息或允许缓存的信息,包括:
获取文件的写请求;
判断所述SSD盘的存储空间是否用尽,
若是,则将所述写入HDD盘;
若否,则判断所述写请求中是否包含禁止缓存的信息或允许缓存的信息。
3.根据权利要求1所述的方法,其中,判断文件的写请求中是否包含禁止缓存的信息或允许缓存的信息之后,还包括:
若未包含禁止缓存的信息和允许缓存的信息,则判断所述文件的大小是否大于预设文件阈值,
若大于所述预设文件阈值,则将所述文件写入HDD盘;
若小于等于所述预设文件阈值,则将所述文件写入SSD盘,同时在所述HDD盘中建立链接,所述链接指向SSD盘中写入的所述文件。
4.根据权利要求1或3所述的方法,其中,将所述文件写入SSD盘,同时在所述HDD盘中建立链接,所述链接指向SSD盘中写入的所述文件之后,还包括:
获取文件读取请求;
基于所述文件读取请求从HDD盘读取对应的文件;
或基于所述文件读取请求从HDD盘获取指向对应的文件的链接,基于所述链接从所述SSD盘中读取对应的文件。
5.根据权利要求1所述的方法,其中,将所述文件写入SSD盘之后,还包括:
判断所述SSD盘的当前存储空间量是否高于预设存储空间量最高阈值,
若是,获取所述SSD盘中文件的未访问时间,并将所述SSD盘中文件按未访问时间由长到短进行排序得到队列;
将指向所述队列中当前排在最前的未访问时间对应的文件的链接从所述HDD盘中删除后,再将所述队列中当前排在最前的未访问时间对应的文件存储到所述HDD盘后,然后将该文件从所述SSD盘中删除,并将当前排在最前的未访问时间从所述队列中删除,判断所述SSD盘的当前存储空间量是否低于预设存储空间量最低阈值,若否,重复本步骤。
6.根据权利要求1所述的方法,其中,将所述文件写入SSD盘之后,之后,还包括:
判断所述SSD盘的当前存储空间量是否高于预设存储空间量最高阈值,
若是,转如下步骤:
依次遍历所述SSD盘中的文件,获取当前时间及所述SSD盘中存储的当前遍历到的文件的访问时间,计算当前时间减去当前遍历到的文件的访问时间得到的差值;若当前遍历到的文件对应的差值小于等于预设时间阈值,则重复本步骤;若当前遍历到的文件对应的差值大于预设时间阈值,将指向遍历到的文件的链接从所述HDD盘中删除后,将该当前遍历到的文件存储到所述HDD盘,并将该文件从所述SSD盘中删除,判断所述SSD盘的当前存储空间量是否低于预设存储空间量最低阈值,若否,重复本步骤。
7.根据权利要求5或6所述的方法,其中,判断所述SSD盘的当前存储空间量是否高于预设存储空间量最高阈值,包括:
判断所述SSD盘的当前存储空间量是否高于预设存储空间量最高阈值且当前时间是否为所述SSD盘的空闲时间。
8.根据权利要求1所述的方法,其中,判断文件的写请求中是否包含禁止缓存的信息或允许缓存的信息,包括:
获取文件的写请求;
判断所述文件是否已经在所述HDD盘或SSD盘中存在,
若在所述HDD盘中存在,则将所述文件更新写入所述HDD盘;
若在所述SSD盘中存在,则将所述文件更新写入所述SSD盘;
若不在所述HDD盘和SSD盘中存在,则判断文件的写请求中是否包含禁止缓存的信息或允许缓存的信息。
9.一种文件存储设备,其中,该设备包括:
第一装置,用于判断文件的写请求中是否包含禁止缓存的信息或允许缓存的信息,
第二装置,用于若包含禁止缓存的信息,则将所述文件写入HDD盘;
第三装置,用于若包含允许缓存的信息,则判断所述文件的大小是否大于预设文件阈值,
第四装置,用于若大于所述预设文件阈值,则将所述文件写入HDD盘;
第五装置,用于若小于等于所述预设文件阈值,则将所述文件写入SSD盘,同时在所述HDD盘中建立链接,所述链接指向SSD盘中写入的所述文件。
10.一种计算机可读存储介质,其上存储有计算机可执行指令,其中,该计算机可执行指令被处理器执行时使得该处理器:
判断文件的写请求中是否包含禁止缓存的信息或允许缓存的信息,
若包含禁止缓存的信息,则将所述文件写入HDD盘;
若包含允许缓存的信息,则判断所述文件的大小是否大于预设文件阈值,
若大于所述预设文件阈值,则将所述文件写入HDD盘;
若小于等于所述预设文件阈值,则将所述文件写入SSD盘,同时在所述HDD盘中建立链接,所述链接指向SSD盘中写入的所述文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010118965.6A CN111352590B (zh) | 2020-02-26 | 2020-02-26 | 文件存储方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010118965.6A CN111352590B (zh) | 2020-02-26 | 2020-02-26 | 文件存储方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111352590A true CN111352590A (zh) | 2020-06-30 |
CN111352590B CN111352590B (zh) | 2023-06-09 |
Family
ID=71197301
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010118965.6A Active CN111352590B (zh) | 2020-02-26 | 2020-02-26 | 文件存储方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111352590B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113238647A (zh) * | 2021-05-31 | 2021-08-10 | 山东中科好靓科技有限公司 | 一种用于存储的节能分时控制方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104572502A (zh) * | 2015-01-12 | 2015-04-29 | 浪潮电子信息产业股份有限公司 | 一种存储系统缓存策略自适应方法 |
CN105404673A (zh) * | 2015-11-19 | 2016-03-16 | 清华大学 | 基于nvram的高效文件系统构建方法 |
CN107341267A (zh) * | 2017-07-24 | 2017-11-10 | 郑州云海信息技术有限公司 | 一种分布式文件系统访问方法及平台 |
CN109375868A (zh) * | 2018-09-14 | 2019-02-22 | 网宿科技股份有限公司 | 一种数据存储方法、调度装置、系统、设备及存储介质 |
CN109597568A (zh) * | 2018-09-18 | 2019-04-09 | 天津字节跳动科技有限公司 | 一种数据存储方法、装置、终端设备及存储介质 |
-
2020
- 2020-02-26 CN CN202010118965.6A patent/CN111352590B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104572502A (zh) * | 2015-01-12 | 2015-04-29 | 浪潮电子信息产业股份有限公司 | 一种存储系统缓存策略自适应方法 |
CN105404673A (zh) * | 2015-11-19 | 2016-03-16 | 清华大学 | 基于nvram的高效文件系统构建方法 |
CN107341267A (zh) * | 2017-07-24 | 2017-11-10 | 郑州云海信息技术有限公司 | 一种分布式文件系统访问方法及平台 |
CN109375868A (zh) * | 2018-09-14 | 2019-02-22 | 网宿科技股份有限公司 | 一种数据存储方法、调度装置、系统、设备及存储介质 |
CN109597568A (zh) * | 2018-09-18 | 2019-04-09 | 天津字节跳动科技有限公司 | 一种数据存储方法、装置、终端设备及存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113238647A (zh) * | 2021-05-31 | 2021-08-10 | 山东中科好靓科技有限公司 | 一种用于存储的节能分时控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111352590B (zh) | 2023-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10671290B2 (en) | Control of storage of data in a hybrid storage system | |
US10101948B2 (en) | Data set management | |
US9830101B2 (en) | Managing data storage in a set of storage systems using usage counters | |
US8909887B1 (en) | Selective defragmentation based on IO hot spots | |
US9355112B1 (en) | Optimizing compression based on data activity | |
US9772949B2 (en) | Apparatus, system and method for providing a persistent level-two cache | |
US9665485B2 (en) | Logical and physical block addressing for efficiently storing data to improve access speed in a data deduplication system | |
CN113568582B (zh) | 数据管理方法、装置和存储设备 | |
CN111309245B (zh) | 一种分层存储写入方法和装置、读取方法和装置及系统 | |
CN111190537A (zh) | 一种追加写场景下顺序存储磁盘管理的方法及系统 | |
EP4372540A1 (en) | Techniques for zoned namespace (zns) storage using multiple zones | |
CN111352590B (zh) | 文件存储方法及设备 | |
CN109144403B (zh) | 一种用于云盘模式切换的方法与设备 | |
CN109508140B (zh) | 存储资源管理方法、装置、电子设备及电子设备、系统 | |
CN115981559A (zh) | 分布式数据存储方法、装置、电子设备和可读介质 | |
CN108021562B (zh) | 应用于分布式文件系统的存盘方法、装置及分布式文件系统 | |
US10853257B1 (en) | Zero detection within sub-track compression domains | |
KR101643278B1 (ko) | 데이터베이스 시스템에서 스토리지 서버 관리 방법, 장치 및 컴퓨터 판독가능 매체에 저장된 컴퓨터-프로그램 | |
CN115509437A (zh) | 存储系统、网卡、处理器、数据访问方法、装置及系统 | |
CN111444114B (zh) | 一种非易失性内存中数据的处理方法、装置及系统 | |
JP6107341B2 (ja) | データ管理プログラム,データ管理装置およびデータ管理方法 | |
CN115904211A (zh) | 一种存储系统、数据处理方法及相关设备 | |
US9146679B2 (en) | Effectively limitless apparent free space on storage device | |
US11144445B1 (en) | Use of compression domains that are more granular than storage allocation units | |
CN115904263B (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 | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right |
Denomination of invention: File storage methods and devices Granted publication date: 20230609 Pledgee: Minhang Branch of Shanghai Rural Commercial Bank Co.,Ltd. Pledgor: SHANGHAI XIAO YUN INFO. TECH. CO.,LTD. Registration number: Y2024310000129 |