CN105808620A - 一种管理磁盘文件的方法和装置 - Google Patents
一种管理磁盘文件的方法和装置 Download PDFInfo
- Publication number
- CN105808620A CN105808620A CN201410856658.2A CN201410856658A CN105808620A CN 105808620 A CN105808620 A CN 105808620A CN 201410856658 A CN201410856658 A CN 201410856658A CN 105808620 A CN105808620 A CN 105808620A
- Authority
- CN
- China
- Prior art keywords
- file
- temperature
- disk
- accessed
- accessed file
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种管理磁盘文件的方法、装置和系统,该方法包括:文件系统在每次接收到访问文件的请求后,累计被访问文件的总访问热度;确定所述被访问文件的存储位置;若所述被访问文件存储在磁盘的内道,则所述文件系统基于所述被访问文件的总访问热度确定所述被访问文件是否满足迁移到磁盘的外道的条件;在确定所述被访问文件满足迁移到磁盘的外道的条件后,将所述被访问文件迁移到所述磁盘的外道存储。本发明实施例可以提升磁盘的使用性能。
Description
技术领域
本发明涉及通信技术领域,特别涉及一种管理磁盘文件的方法和装置。
背景技术
磁盘由一个或多个圆形的“盘片”组成(盘片是由硬的物质,比如铝,制成的),盘片的单或双面涂有磁,用于记录数据。每面都有一个“读写头”(又称磁头),用于检查或修改记录下来的数据。盘片围绕着一个普通的轴旋转;一般转速有每分钟3600转、7200转等,高性能的磁盘的转速更高,甚至可达15000转。读写头沿盘片半径移动,这种随着盘片旋转的移动允许读写头对表层上每个部分进行访问。
表层通常分为若干个同心圆,就是通常所说的磁道,而这些磁道又依次分为若干个扇区。这样的划分用于指定磁盘上的位置,以及为文件分配磁盘空间。要想找出文件在磁盘上的具体位置,只须这样指出“表层3,第5磁道第7扇区”即可。通常情况下,所有磁道上的扇区号都是一样的,但有些磁盘在外部磁道上的扇区要多一些(所有扇区的物理大小都是一样的,所以,外部磁道可容纳更多的扇区)。一般说来,一个扇区可容纳512个字节的数据。磁盘本身不能处理数额少于一个扇区数的数据。
每个表层分划分磁道和扇区的方式都是一样的。这意味着一个表层的磁头位于一个磁道上时,另一个表层的磁头也会在相应的磁道上。聚集在一起的所有对应磁道就称为一个柱面。磁头从一个磁道移到另一个磁道上是要花时间的,所以要把经常访问的数据放在一起(比如,文件),使它们在同一个柱面内,这样,磁头就不必移来移去了(既花时间,又有损磁头),从而改进性能。
磁盘的外道性能比内道性能要高,一般来说,对于SATA/SAS硬盘,外道的性能可以达到内道的150%。其原因在于磁盘内外道有差异,磁盘转动的角速度是固定的,外道的线速度比内道快。另外,外道的磁性密度一般比内道要高。
现有技术中,文件系统分配磁盘空间给文件的时候,一般按一定策略分配(如:顺序分配)后,该文件一直占有该磁盘空间。由于每个文件的访问频率不同,就可能出现存储在磁盘外道的文件访问频率低,而存储在磁盘内道的文件访问频率高,这样就导致磁盘外道的存储空间没有有效利用,影响磁盘的使用性能。
发明内容
本发明实施例提供一种管理磁盘文件的方法和装置以提升磁盘的使用性能。
第一方面,一种管理磁盘文件的方法,包括:
文件系统在接收到访问文件的请求后,累计被访问文件的总访问热度;
确定所述被访问文件的存储位置;
若所述被访问文件存储在磁盘的内道,则所述文件系统基于所述被访问文件的总访问热度确定所述被访问文件是否满足迁移到磁盘的外道的条件;在确定所述被访问文件满足迁移到磁盘的外道的条件后,将所述被访问文件迁移到所述磁盘的外道存储。
可选的,所述方法还包括:
确定位于所述磁盘的外道的文件中总访问热度最低的文件;所述基于所述被访问文件的总访问热度确定所述被访问文件是否满足迁移到磁盘的外道的条件具体包括:
所述文件系统将所述被访问文件的总访问热度与所述磁盘的外道中总访问热度最低的文件的总访问热度进行比较;当所述被访问文件的总访问热度高于被比较的文件的总访问热度时,确定所述被访问文件满足迁移到磁盘的外道的条件。
可选的,在确定所述被访问文件满足迁移到磁盘的外道的条件后,所述方法还包括:
将所述总访问热度最低的文件迁移到所述磁盘的内道存储。
可选的,所述确定所述被访问文件的存储位置具体包括:
确定被访问文件所在的数据块;
将所述数据块的块号与用于划分所述内道和外道的分界值进行比较;
根据比较结果确定所述被访问文件是存储在所述磁盘的内道还是外道。
可选的,所述文件系统中记录有位于所述磁盘的外道的文件的总访问热度排名;所述方法还包括:
若所述被访问文件存储在磁盘的外道,则所述文件系统根据累计后的总访问热度判断所述被访问文件的排名是否发生变化,若发生变化,则更新所述访问热度排名。
可选的,所述方法还包括:
在文件发生迁移时,所述文件系统在发生迁移的文件的元数据中记录迁移位置;在迁移完成后,所述文件系统将所述元数据中记录的原存储位置删除,并将所述迁移位置更改为存储位置。
可选的,在迁移文件的过程中,若接收到对发生迁移的文件进行写操作的请求,所述方法还包括:所述文件系统将要写入的内容分别写入到发生迁移的文件的迁移位置和原存储位置中。
可选的,在迁移文件的过程中,若接收到对发生迁移的文件进行写操作的请求,所述方法还包括:所述文件系统阻塞所述写操作,在迁移完成后,将要写入的内容写入到迁移后的文件中。
可选的,其特征在于,所述累计被访问文件的访问热度具体包括:
根据本次访问计算所述被访问文件的本次访问热度;
获取所述所述被访问文件的历史访问热度;
将所述本次访问热度与所述被访问文件的历史访问热度进行累加,得到所述被访问文件的总访问热度。
可选的,所述文件系统中包括用于指定统计范围的滑窗;所述获取所述被访问文件的历史访问热度具体包括:获取所述被访问文件在所述滑窗指定的统计范围内的历史访问热度。
可选的,在获取所述被访问文件的历史访问热度前,所述方法还包括:判断是否需要滑动所述滑窗,若需要滑动所述滑窗,则在滑动所述滑窗后执行所述获取所述被访问文件的历史访问热度的操作;若无需滑动所述滑窗,则直接执行所述获取所述被访问文件的历史访问热度的操作。
可选的,所述滑窗包括至少一个统计周期;所述统计周期为所述滑窗的滑动单位;所述判断是否需要滑动所述滑窗具体包括:通过比较本次访问所述被访问文件的时间点与上次访问所述被访问文件的时间点判断本次访问与上次访问之间是否跨统计周期,若跨统计周期,则需要滑动所述滑窗;若未跨统计周期,则无需滑动所述滑窗。
可选的,所述方法还包括:在接收到对所述磁盘的外道的文件进行删除的请求时,所述文件系统删除请求删除的文件以及删除所述请求删除的文件在所述访问热度排名中的排名。
可选的,当所述访问文件的请求为写文件的请求时,所述方法还包括:文件系统确定是否需要为所述被访问文件分配新的数据块;在确定需要分配新的数据块时,按照所述被访问文件所在的磁道类型为所述被访问文件分配数据块;所述磁道类型包括所述磁盘的内道和所述磁盘的外道。
第二方面,一种管理磁盘文件的设备,所述设备包括访问接口和处理模块;
所述访问接口,用于接收访问文件的请求,并在接收到所述请求后触发所述处理模块进行处理;
所述处理模块,用于累计被访问文件的总访问热度;确定所述被访问文件的存储位置;若所述被访问文件存储在磁盘的内道,则基于所述被访问文件的总访问热度确定所述被访问文件是否满足迁移到磁盘的外道的条件;在确定所述被访问文件满足迁移到磁盘的外道的条件后,将所述被访问文件迁移到所述磁盘的外道存储。
可选的,所述处理模块具体包括:
累计子模块,用于累计被访问文件的总访问热度;
管理子模块,用于确定所述被访问文件的存储位置;若所述被访问文件存储在磁盘的内道,则基于所述被访问文件的总访问热度确定所述被访问文件是否满足迁移到磁盘的外道的条件;在确定所述被访问文件满足迁移到磁盘的外道的条件后,将所述被访问文件迁移到所述磁盘的外道存储。
可选的,所述管理子模块还用于确定位于所述磁盘的外道的文件中总访问热度最低的文件;
所述管理子模块基于所述被访问文件的总访问热度确定所述被访问文件是否满足迁移到磁盘的外道的条件具体包括:
所述管理子模块用于将所述被访问文件的总访问热度与所述磁盘的外道中总访问热度最低的文件的总访问热度进行比较;当所述被访问文件的总访问热度高于被比较的文件的总访问热度时,确定所述被访问文件满足迁移到磁盘的外道的条件。
可选的,所述管理子模块在确定所述被访问文件满足迁移到磁盘的外道的条件时,还进一步用于将位于所述磁盘的外道的文件中总访问热度最低的文件迁移到所述磁盘的内道存储。
可选的,所述管理子模块用于确定所述被访问文件的存储位置具体包括:
所述管理子模块用于确定被访问文件所在的数据块;将所述数据块的块号与用于划分所述内道和外道的分界值进行比较;根据比较结果确定所述被访问文件是存储在所述磁盘的内道还是外道。
可选的,所述处理模块还包括记录子模块,用于记录位于所述磁盘的外道的文件的总访问热度排名;
所述管理子模块还用于在确定出所述被访问文件是存储在磁盘的外道时,根据累计后的总访问热度判断所述被访问文件的排名是否发生变化,若发生变化,则更新所述记录子模块记录的所述访问热度排名。
可选的,所述管理子模块还用于在文件发生迁移时,在发生迁移的文件的元数据中记录迁移位置;在迁移完成后,将所述元数据中记录的原存储位置删除,并将所述迁移位置更改为存储位置。
可选的,在所述管理子模块迁移文件的过程中,若所述访问接口接收到对发生迁移的文件进行写操作的请求,则所述管理子模块还用于将要写入的内容分别写入到发生迁移的文件的迁移位置和原存储位置中。
可选的,在所述管理子模块迁移文件的过程中,若所述访问接口接收到对发生迁移的文件进行写操作的请求,则所述管理子模块还用于阻塞所述写操作,在迁移完成后,将要写入的内容写入到迁移后的文件中。
可选的,所述累计子模块用于累计被访问文件的访问热度具体包括:
所述累计子模块用于根据本次访问计算所述被访问文件的本次访问热度;获取所述所述被访问文件的历史访问热度;将所述本次访问热度与所述被访问文件的历史访问热度进行累加,得到所述被访问文件的总访问热度。
可选的,所述累计子模块用于获取所述被访问文件的历史访问热度具体包括:所述累计子模块用于获取所述被访问文件在预先设置的滑窗内的历史访问热度,所述滑窗用于指定统计范围。
可选的,所述累计子模块在获取所述被访问文件的历史访问热度前,还进一步用于判断是否需要滑动所述滑窗,若需要滑动所述滑窗,则在滑动所述滑窗后执行所述获取所述被访问文件的历史访问热度的操作;若无需滑动所述滑窗,则直接执行所述获取所述被访问文件的历史访问热度的操作。
可选的,所述滑窗包括至少一个统计周期;所述统计周期为所述滑窗的滑动单位;所述累计子模块判断是否需要滑动所述滑窗具体包括:所述累计子模块通过比较本次访问所述被访问文件的时间点与上次访问所述被访问文件的时间点判断本次访问与上次访问之间是否跨统计周期,若跨统计周期,则需要滑动所述滑窗;若未跨统计周期,则无需滑动所述滑窗。
可选的,在所述访问接口接收到对所述磁盘的外道的文件进行删除的请求时,所述管理子模块还用于删除请求删除的文件以及删除所述请求删除的文件在所述访问热度排名中的排名。
可选的,其特征在于,当所述访问文件的请求为写文件的请求时,所述管理子模块还用于确定是否需要为所述被访问文件分配新的数据块;在确定需要分配新的数据块时,按照所述被访问文件所在的磁道类型为所述被访问文件分配数据块;所述磁道类型包括所述磁盘的内道和所述磁盘的外道。
第三方面,一种管理磁盘文件的系统,所述系统包括用于存储文件的磁盘以及权利要求15-28所述的设备。
在上述实施例中,通过统计文件的访问热度,并基于该访问热度将文件迁移到合适的磁盘区域,可以有效利用磁盘的外道存储空间,提高磁盘的使用性能。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为适用本发明实施例提供的磁盘文件管理技术的系统的架构图;
图2为UNIX操作系统中的文件系统的数据结构的示意图;
图3为本发明实施例提供的管理磁盘文件的方法的流程图;
图4为本发明实施例提供的累计被访问文件的总访问热度的流程图;
图5为滑窗的示意图;
图6为本发明实施例提供的文件系统中的数据结构示意图;
图7为本发明实施例提供的执行写文件操作的流程图;
图8A为本发明实施例提供的管理磁盘文件的设备800A的结构示意图;
图8B为本发明另一实施例提供的管理磁盘文件的设备800B的结构示意图;
图9为本发明实施例提供的管理磁盘文件的系统900的结构示意图;
图10为本发明实施例提供的管理磁盘文件的设备的硬件结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为适用本发明实施例提供的磁盘文件管理技术的系统的架构图。如图1所示,该系统包括应用层、操作系统层和硬件层。
其中,硬件层为磁盘。磁盘可以是串行高级技术附件(SerialAdvancedTechnologyAttachment,SATA)硬盘、串行连接的SCSI(serialattachedSCSI,SAS)硬盘、固态磁盘(solidstatedisk,SSD)等硬盘,也可以是光盘、软盘等。通常情况下,磁盘中可包括物理存储介质、磁盘缓存以及磁盘控制器。磁盘控制器用于控制将数据写入物理存储介质,或者从物理存储介质中读取数据。磁盘中的缓存主要是为了提高存储访问性能。
操作系统层包括文件系统(FileSystem,FS)、通用块设备以及输入/输出(input/output,I/O)调度模块。其中,文件系统是操作系统用于明确磁盘上的文件的方法和数据结构,即在磁盘上组织文件的方法。其中,文件系统系统可以对磁盘进行逻辑划分,并采用特定的数据结构来描述对磁盘的逻辑划分。例如,图2为UNIX操作系统中的文件系统的数据结构的示意图。如图2所示,在UNIX操作系统的文件系统中,描述磁盘的逻辑划分的数据结构可包括超级块“superblock”、元数据区“Metadata”、日志区“Journal”以及数据区“datablock”。超级块用于记录文件系统的总体信息,比如文件系统的大小,各区域(如:元数据区、日志区、数据区)的起始地址。元数据区用于记录索引节点“inode”,又称i节点,索引节点用于管理和存放文件的属性,比如,记录文件的大小、所有者和最近修改时间等,这些属性被称为文件的元数据。一个文件由一个索引节点管理。数据区由数据块组成,用于存放文件内容。
应用层包括应用程序(Application,APP)。
当应用层的APP调用操作系统层的文件系统的接口对文件进行访问时,文件系统将该访问操作通过通用块设备以及I/O调度模块下发到硬件层的磁盘控制器,磁盘控制器接收到来自I/O调度模块的访问操作后,对磁盘的物理存储介质进行访问。其中,通用块设备负责将访问的逻辑区域转换为磁盘上的物理区域。I/O调度模块通过调度算法控制将访问操作下发到硬件层的时间和顺序。
本发明实施例对文件系统做了改进,在文件系统中实现了动态调整磁盘中的文件的存储位置功能,使得访问频率高的文件可以存放于磁盘的外道,从提高磁盘的使用性能。下面结合附图对本发明实施例提供的方法进行详细说明。
图3为本发明实施例提供的管理磁盘文件的方法的流程图。该方法应用于文件系统,如图3所示,该方法包括:
S300,文件系统在接收到访问文件的请求后,累计被访问文件的总访问热度。
文件系统可以提供操作文件的接口,应用层的APP可以通过该接口向文件系统发送访问文件的请求。该请求中通常包括该访问的操作类型(例如,读操作或写操作),还可以进一步包括要访问的文件的标识以及访问的数据范围(比如,访问文件中前200字节的数据)。
访问热度用于表征文件被访问的频率。文件系统可以将文件在统计范围内的访问热度进行累计得到总访问热度。该累计过程可在每次接收到访问文件的请求后执行。
S302,文件系统确定所述被访问文件的存储位置。
文件系统以数据块为单位存储文件,每个数据块在磁盘中具有对应的物理区域。一个文件可以存储在一个或多个数据块中。
其中,内道是指离磁盘中心近的磁道,外道是指离磁盘中心远磁道。而内道和外道可通过一个分界值来划分。该分界值可以采用数据块的块号来表示。
文件系统确定所述被访问文件的存储位置具体包括:确定被访问文件所在的数据块。将所述数据块的块号与用于划分所述内道和外道的分界值进行比较。根据比较结果确定所述被访问文件是存储在所述磁盘的内道还是外道。
其中,根据比较结果确定所述被访问文件是存储在所述磁盘的内道还是外道具体可以是:若所述数据块的块号小于所述分界值,则确定所述被访问文件存储在所述磁盘的外道;若所述数据块的块号大于所述分界值,则确定所述被访问文件存储在所述磁盘的内道。
需要说明的是,通常情况下,数据块的块号是按磁盘空间从外向内进行编号的,因此,位于磁盘外道的数据块的块号小,位于内道的磁盘块号大。对于未按该规则编号的情况,可以根据本发明实施例中提供的方案进行合理变形,例如,如果数据块的块号是按磁盘空间从内向外进行编号,那么可认为数据块的块号小于分界值的,存储在所述磁盘的内道;数据块的块号大于分界值的,存储在所述磁盘的外道。
分界值可以预先配置在文件系统中。也可以预先在文件系统中配置内道与外道的区域比例,在确定被访问文件的存储位置时再根据该比例来确定分界值。当然,也可以在文件系统中预先配置内道或外道的区域范围,该区域范围以数据块的块号来划分,在确定被访问文件的存储位置时从该区域范围中获取分界值,例如,假设外道的区域范围为(0,100),则可将块号100作为分界值。
在配置时,可以将等于分界值的情况配置为内道,也可以配置为外道,具体可根据需要进行配置,本发明中不做限定。
S304,若所述被访问文件存储在磁盘的内道,文件系统基于被访问文件的总访问热度确定被访问文件是否满足迁移到磁盘的外道的条件;在确定被访问文件满足迁移到磁盘的外道的条件时,将被访问文件迁移到所述磁盘的外道存储。
具体的,文件系统可以确定出位于所述磁盘的外道的文件中总访问热度最低的文件。文件系统将被访问文件的总访问热度与磁盘的外道中总访问热度最低的文件的总访问热度进行比较;当被访问文件的总访问热度高于被比较的文件的总访问热度时,确定被访问文件满足迁移到磁盘的外道的条件。
对于确定被访问文件是否满足迁移到磁盘的外道的条件,还可以采用其它方式来实现。例如,可以预先设置总访问热度阈值。文件系统可以将被访问文件的总访问热度与预设的总访问热度阈值进行比较;当被访问文件的总访问热度高于总访问热度阈值时,确定被访问文件满足迁移到磁盘的外道的条件。
其中,将被访问文件迁移到所述磁盘的外道存储的具体处理过程可以是:将被访问文件拷贝到磁盘的外道,并在拷贝完成后从内道删除该被访问文件。
需要说明的是,如果被访问文件不满足迁移到磁盘的外道的条件,则文件系统将该访问文件继续保留在磁盘的内道,不进行迁移处理。
通过本发明实施例提供的方案,文件系统可以将总访问热度高的文件迁移到磁盘的外道存储,使得这部分文件的访问速度加快,提升了磁盘的使用性能。
本发明实施例主要是解决磁盘文件的管理问题,因此,上述实施例介绍的是管理磁盘文件的过程,对于访问操作的执行过程则未在上述实施例中详细介绍。在实际实施过程中,文件系统还进一步根据访问文件的请求执行访问操作。其中,在步骤302中如果确定出所述被访问文件存储在磁盘的外道,则无需迁移文件,可直接对文件执行访问操作。如果步骤302中确定所述被访问文件存储在磁盘的内道,则在步骤304中如果确定所述被访问文件不满足迁移到磁盘的外道的条件,则无需执行迁移文件,可直接对文件执行访问操作。在步骤304中如果确定所述被访问文件满足迁移到磁盘的外道的条件,则可将被访问文件迁移到磁盘的外道后对文件执行访问操作。
为了更有效的使用磁盘空间,在确定所述被访问文件满足迁移到磁盘的外道的条件时,文件系统还可以进一步的将磁盘外道中总访问热度最低的文件迁移到磁盘的内道存储,从而提供更多的外道空间来存储访问热度高的文件。其中,在迁移的时候,可以先将该文件拷贝到磁盘的内道,在拷贝完成后再从磁盘的外道删除该文件。
另外,为了使文件系统更高效的确定出磁盘外道中总访问热度最低的文件,文件系统中可以记录位于磁盘的外道的文件的总访问热度排名。如果在步骤S304中确定出被访问文件存储在磁盘的外道,则文件系统还进一步根据累计后的总访问热度判断被访问文件的排名是否发生变化,若发生变化,则更新该访问热度排名。如果被访问文件的排名未发生变化,则文件系统继续执行其它处理,比如,根据接收到的请求执行访问文件的操作。
进一步的,文件系统在接收到对所述磁盘的外道的文件进行删除的请求时,文件系统在删除请求删除的文件时,还进一步删除所述请求删除的文件在所述访问热度排名中的排名。
由于在迁移文件的过程中,文件系统可能会接收到访问被迁移的文件的请求,因此,在迁移文件的过程中还需要将发生迁移的文件的迁移位置记录下来,以便文件系统在接收访问被迁移的文件的请求的时候,能找到该文件。
具体的,根据图2所示的文件系统的数据结构可知,文件系统中包括有文件的元数据。文件的元数据中记录有文件的存储位置,文件系统可以根据文件的元数据中记录的存储位置找到该文件。本发明实施例中,在文件发生迁移时,文件系统还可以在发生迁移的文件的元数据中记录迁移位置。在迁移完成后,文件系统再将元数据中记录的原存储位置删除,并将所述迁移位置更改为存储位置。
由于在迁移文件的过程中,文件系统可能会接收到对被迁移的文件进行写操作的请求,此时,由于在正在进行文件迁移,可能导致写入的内容丢失。为了解决该问题,本发明实施例提供了两种处理方式。
方式一,在迁移文件的过程中,若接收到对发生迁移的文件进行写操作的请求,文件系统将要写入的内容分别写入到发生迁移的文件的迁移位置和原存储位置中。
方式二,在迁移文件的过程中,若接收到对发生迁移的文件进行写操作的请求,文件系统阻塞所述写操作,在迁移完成后,将要写入的内容写入到迁移后的文件中。
为了更方便的识别文件是否在迁移过程中,文件系统在迁移文件时,可以在发生迁移的文件的元数据中设置迁移标记,并在迁移完成后清除该标记。
本发明实施例中的访问文件的请求可以包括读文件的请求或写文件的请求。当步骤300中的访问文件的请求为写文件的请求时,文件系统在执行写操作的过程中还进一步确定是否需要为所述被访问文件分配新的数据块;在确定需要分配新的数据块时,文件系统按照所述被访问文件所在的磁道类型为被访问文件分配数据块。其中,磁道类型包括磁盘的内道和磁盘的外道。也就是说,被访问文件在内道则分配内道的数据块,被访问文件在外道则分配外道的数据块。
图4为本发明实施例提供的累计被访问文件的总访问热度的流程图。如图4所示,累计被访问文件的总访问热度的过程具体包括:
S400,文件系统根据本次访问计算所述被访问文件的本次访问热度。
计算访问热度的算法可以有很多。例如,可以采用访问次数来表示访问热度,这样每次访问的访问热度就为1。由于存在一个文件中只有某一小部分数据被频繁访问,而其它大部分数据的访问频率都很低的情况,因此,需要以一个更全面的算法来计算每次访问的访问热度。本发明实施例提供的访问热度计算方法如下:
访问热度=被访问的数据大小/文件长度。
其中,被访问的数据大小可以根据访问文件的请求中携带的要访问的数据范围来获得。文件长度可以从文件的元数据中获得。
通过上述公式可以评估整个文件大小都被访问的频率,使得对访问热度的统计更精确。
S402,文件系统获取所述所述被访问文件的历史访问热度。
文件系统可采用滑窗方式来累计被访问文件的总访问热度。在采用滑窗方式来实现时,文件系统中可包括用于指定统计范围的滑窗。文件系统获取所述被访问文件的历史访问热度具体包括:获取被访问文件在该滑窗指定的统计范围内的历史访问热度。需要说明的是统计范围是指时间范围。
图5为滑窗的示意图。如图5所示,501为滑窗,502为统计周期。滑窗可以包括至少一个统计周期(图5以滑窗包括3个统计周期为例)。其中,统计周期为滑窗的滑动单位。假设按小时进行统计,那么1小时为1个统计周期。如果滑窗包括3个统计周期,就表示统计范围为最近3小时,由于每个小格代表一个统计周期,因此,滑窗按小格进行滑动。
文件系统可每过一个统计周期就滑动一次滑窗,但是,这需要文件系统持续的对统计周期进行监控,而且要频繁的滑动滑窗,效率低下。为了提高效率,文件系统可以在每次获取被访问文件的历史访问热度前确定滑窗位置。
具体的,文件系统先判断是否需要滑动所述滑窗,若需要滑动所述滑窗,则在滑动所述滑窗后执行S402;若无需滑动所述滑窗,则直接执行S402。
其中,判断是否需要滑动所述滑窗具体包括:通过比较本次访问所述被访问文件的时间点与上次访问所述被访问文件的时间点来判断本次访问与上次访问之间是否跨统计周期,若跨统计周期,则需要滑动所述滑窗;若未跨统计周期,则无需滑动所述滑窗。
同样以统计周期为1小时为例进行说明,假设统计周期以整点起算,上次访问所述被访问文件的时间点是2:30,本次访问所述被访问文件的时间点是3:20,由于统计周期以整点起算,因此,2:00至3:00为一个统计周期,3:00至4:00为一个统计周期,本次访问与上次访问之间已经跨统计周期,滑窗应从(1:00至3:00)滑动至(2:00至4:00)。
需要说明的是,滑窗仅是进行统计的一种方式。本发明实施例还可以采用其它统计方式。例如,文件系统可以采用每过一个统计周期就将累计的总访问热度按预设比例进行衰减的方式来实现类似滑动滑窗的功能。
需要说明的是,在采用滑窗的方式来累计总访问热度时,文件系统可分别累计滑窗内的每个统计周期内的访问热度,并将每个统计周期的累计访问热度记录下来。文件系统获取的历史访问热度可包括滑窗范围内的每个统计周期的累计访问热度。
S404,文件系统将所述本次访问热度与所述被访问文件的历史访问热度进行累加,得到所述被访问文件的总访问热度。
需要说明的是,在采用在每次获取被访问文件的历史访问热度前确定滑窗位置的方案中,文件系统需要记录下本次获得总访问热度的时间,以便在下次确定是否滑动滑窗时使用。
在本发明实施例中,文件的总访问热度或者处于滑窗范围内的每个统计周期的累计访问热度都可记录在该文件的元数据中。文件在发生迁移时,需要记录的迁移信息(例如,迁移位置,迁移标记等)也可记录在该文件的元数据中。
下面以UNIX的文件系统为例,对本发明的方案进行详细说明。如图6所示,图6为本发明实施例提供的文件系统中的数据结构示意图。图6所示的数据结构在图2所示的数据结构的基础上增加了访问热度排名区域。该访问热度排名区域为本发明实施例新增的用于记录存储在磁盘外道区域的文件的访问热度排名的区域。在具体实现时,热度排名区域中可包括头“Header”和排名列表“Topfilelist”两部分。“Header”中包含了访问热度排名区域的总体信息,如访问热度排名区域的区域大小、已使用大小等。“Topfilelist”中记录了磁盘外道区域的文件的访问热度排名,一般可以采用B+树、或者bitmap来管理。
除新增的访问热度排名区域外,图6所示的数据结构还可包括图2所示的数据结构中的超级块、元数据区以及数据区。其中,本发明实施例还在超级块中新增内外道迁移开关以及特性参数。内外道切换开关是内外道迁移的使能开关,用于表示是否打开进行内外道迁移的功能。特性参数中可以设置分界值或者滑窗大小等。超级块中还新增了访问热度排名区域的起始地址和大小的记录。本发明实施例还在索引节点“inode”中新增访问热度字段以及统计时间字段。其中,访问热度字段用于记录文件的总访问热度或处于滑窗范围内的每个统计周期的累计访问热度。统计时间字段用于记录访问热度字段中记录的总访问热度或累计访问热度的更新时间。在文件迁移过程中,索引节点中还可增加迁移标记位以及迁移位置字段。
图6所示的数据结构还可包括图2所示的数据结构中的日志区或现有技术中的其它逻辑分块,由于本发明实施例不涉及对其它逻辑分块的改进,因此,这里不再赘述。需要说明的是,图6中所示的数据结构仅是以UNIX的文件系统为例进行说明,在其它操作系统的文件系统中,也可以参考上述实施例实现同样的功能。
在本发明实施例中,由于写文件操作与迁移文件的操作可能发生冲突,因此对于写文件的请求的处理过程会更加复杂,下面结合图7对文件系统接收到写文件的请求后的处理过程做更详细的说明。如图7所示,图7为本发明实施例提供的执行写文件操作的流程图。该流程包括:
S700,文件系统接收写文件的请求。
本实施例中,文件系统接收的访问请求为写文件的请求。该请求中可以携带要读取的文件的标识、操作类型或访问的数据范围等。
S702,文件系统累计被写文件的总访问热度。
文件系统累计被写文件的总访问热度的具体实现过程可参考图4部分,这里不再赘述。
S704,文件系统确定被写文件的存储位置;若所述被写文件存储在磁盘的内道,则执行S706;若所述被写文件存储在磁盘的外道,则执行S710。
具体的,文件系统根据请求中携带的文件标识获取被写文件的元数据。从该文件的元数据中获取文件所在的数据块,并通过该数据块的块号和预先设置的分界值来确定该文件是位于磁盘的外道还是内道。
文件系统在获取到被写文件的元数据后,还可进一步判断该文件的元数据中是否设置有迁移标记,若设置有迁移标记,则表明该文件正在迁移中,文件系统可以阻塞接收到的写文件的请求,等到迁移标记清除(即文件迁移完成)再继续进行后续操作。
S706,文件系统确定位于所述磁盘的外道的文件中总访问热度最低的文件,将被写文件的总访问热度与磁盘的外道中总访问热度最低的文件的总访问热度进行比较;若被读取文件的总访问热度高于被比较的文件的总访问热度,则执行S708;若所述被读取文件的总访问热度低于被比较的文件的总访问热度,则执行S710
S708,文件系统将被写文件迁移到磁盘的外道存储,并将磁盘外道总访问热度最低的文件迁移到磁盘内道存储。
其中,文件迁移可以通过复制加删除来完成。例如,在将被写文件迁移到磁盘的外道时,可先将被写文件拷贝到磁盘外道再从磁盘内道删除该文件。
S710,文件系统将要写入的内容写入到被写文件中。
具体的,文件系统在写文件时,还可以进一步判断是否需要分配新的数据块。如果需要分配新的数据块,则文件系统可根据文件所在的磁道类型来分配。其中,磁道类型包括磁盘的外道和内道。文件系统可为在内道的文件分配位于内道的数据块,为在外道的文件分配位于外道的数据块,
下面结合附图对管理磁盘文件的设备的具体结构进行详细说明。
图8A为本发明实施例提供的管理磁盘文件的设备800A的结构示意图。如图8A所示,该设备可包括访问接口801和处理模块802。其中,
所述访问接口801,用于接收访问文件的请求,并在接收到该请求后触发所述处理模块对进行处理。
所述处理模块802,用于累计被访问文件的总访问热度。确定所述被访问文件的存储位置。若所述被访问文件存储在磁盘的内道,则基于所述被访问文件的总访问热度确定所述被访问文件是否满足迁移到磁盘的外道的条件;在确定所述被访问文件满足迁移到磁盘的外道的条件后,将所述被访问文件迁移到所述磁盘的外道存储。
上述访问接口801和处理模块802可用于实现方法实施例中文件系统的功能。
如图8B所示,图8B为本发明另一实施例提供的管理磁盘文件的设备800B的结构示意图。图8B所示的设备800B也可包括图8A所示设备800A中的访问接口801和处理模块802。其中,访问接口801可以是文件系统对外开放的接口,可以接收APP的调用或者接收用户的访问。处理模块802具体可包括累计子模块8021和管理子模块8022。其中,累计子模块8021,用于累计被访问文件的总访问热度。管理子模块8022,用于确定所述被访问文件的存储位置;若所述被访问文件存储在磁盘的内道,则基于所述被访问文件的总访问热度确定所述被访问文件是否满足迁移到磁盘的外道的条件;在确定所述被访问文件满足迁移到磁盘的外道的条件后,将所述被访问文件迁移到所述磁盘的外道存储。
其中,累计子模块8021用于累计被访问文件的访问热度具体包括:累计子模块8021用于根据本次访问计算所述被访问文件的本次访问热度;获取所述所述被访问文件的历史访问热度;将所述本次访问热度与所述被访问文件的历史访问热度进行累加,得到所述被访问文件的总访问热度。
累计子模块8021可采用图4所示实施例中的访问热度的计算公式来计算本次访问热度。该计算公式只是一种举例,也可采用其它计算公式来,在此不做限定。
累计子模块8021可采用滑窗方式来累计被访问文件的总访问热度。其中,滑窗用于指定的统计范围,该范围通常为时间范围。在采用滑窗方式来实现时,累计子模块8021用于获取所述被访问文件的历史访问热度具体包括:累计子模块8021用于获取所述被访问文件在预先设置的滑窗内的历史访问热度。
累计子模块8021在获取所述被访问文件的历史访问热度前,还进一步用于判断是否需要滑动所述滑窗,若需要滑动所述滑窗,则在滑动所述滑窗后执行所述获取所述被访问文件的历史访问热度的操作;若无需滑动所述滑窗,则直接执行所述获取所述被访问文件的历史访问热度的操作。
滑窗的大小可以预先配置,滑窗可包括至少一个统计周期,该统计周期为滑窗的滑动单位。滑窗包括的统计周期个数代表了滑窗的大小。累计子模块8021判断是否需要滑动所述滑窗可具体包括:累计子模块8021通过比较本次访问所述被访问文件的时间点与上次访问所述被访问文件的时间点判断本次访问与上次访问之间是否跨统计周期,若跨统计周期,则需要滑动所述滑窗;若未跨统计周期,则无需滑动所述滑窗。
其中,累计子模块8021实现累计被访问文件的访问热度的具体过程可参考图4所示的方法实施例部分,这里不再赘述。
下面对管理子模块8022的功能做更详细的说明。
为了更有效的使用磁盘空间,管理子模块8022在确定所述被访问文件满足迁移到磁盘的外道的条件时,还进一步用于将位于所述磁盘的外道的文件中总访问热度最低的文件迁移到所述磁盘的内道存储。从而提供更多的外道空间来存储访问热度高的文件。其中,在迁移的时候,管理子模块8022可以先将该文件拷贝到磁盘的内道,在拷贝完成后再从磁盘的外道删除该文件。
由于在从外道迁移文件到内道时,选择将位外道的文件中总访问热度最低的文件进行迁移,因此,管理子模块8022还用于确定位于所述磁盘的外道的文件中总访问热度最低的文件。相应的,将内道文件迁移到外道的条件也可以是内道文件的总访问热度高于外道中总访问热度最低的文件的总访问热度。具体的,管理子模块8022基于所述被访问文件的总访问热度确定所述被访问文件是否满足迁移到磁盘的外道的条件具体包括:管理子模块8022用于将所述被访问文件的总访问热度与所述磁盘的外道中总访问热度最低的文件的总访问热度进行比较;当所述被访问文件的总访问热度高于被比较的文件的总访问热度时,确定所述被访问文件满足迁移到磁盘的外道的条件。
需要说明的是,磁盘的内外道可以通过分界值来划分。该分界值的获得可以参见方法实施例部分,这里不再赘述。管理子模块8022用于确定所述被访问文件的存储位置具体包括:管理子模块8022用于确定被访问文件所在的数据块;将所述数据块的块号与用于划分所述内道和外道的分界值进行比较;根据比较结果确定所述被访问文件是存储在所述磁盘的内道还是外道。例如,若所述数据块的块号小于所述分界值,则确定所述被访问文件存储在所述磁盘的外道;若所述数据块的块号大于所述分界值,则确定所述被访问文件存储在所述磁盘的内道。
另外,为了使管理子模块8022更高效的确定出磁盘外道中总访问热度最低的文件,处理模块802还可以包括记录子模块8023,用于记录位于所述磁盘的外道的文件的总访问热度排名。管理子模块8022还用于在确定出所述被访问文件是存储在磁盘的外道时,根据累计后的总访问热度判断所述被访问文件的排名是否发生变化,若发生变化,则更新所述记录子模块记录的所述访问热度排名。
由于在迁移文件的过程中,设备800B可能会接收到访问被迁移的文件的请求,因此,在迁移文件的过程中还需要将发生迁移的文件的迁移位置记录下来,以便设备800B在接收访问被迁移的文件的请求的时候,能找到该文件。因此,管理子模块8022还用于在文件发生迁移时,在发生迁移的文件的元数据中记录迁移位置;在迁移完成后,将所述元数据中记录的原存储位置删除,并将所述迁移位置更改为存储位置。
由于在迁移文件的过程中,设备800B可能会接收到对被迁移的文件进行写操作的请求,此时,由于在正在进行文件迁移,可能导致写入的内容丢失。为了解决该问题,本发明实施例在管理子模块8022实现了解决冲突的能力。其中,该能力可通过两种方式来实现。
方式一,在所述管理子模块8022迁移文件的过程中,若所述访问接口801接收到对发生迁移的文件进行写操作的请求,则所述管理子模块8022还用于阻塞所述写操作,在迁移完成后,将要写入的内容写入到迁移后的文件中。
方式二,在所述管理子模块8022迁移文件的过程中,若所述访问接口801接收到对发生迁移的文件进行写操作的请求,则所述管理子模块还用于将要写入的内容分别写入到发生迁移的文件的迁移位置和原存储位置中。
应用本发明实施例提供的方案还可能涉及到对现有的其它功能的影响,因此,对这些受影响的功能,在本发明实施例中进行了相应改进。例如,对删除文件的请求的处理,以及对文件进行写操作的处理。具体的,
在所述访问接口801接收到对所述磁盘的外道的文件进行删除的请求时,所述管理子模块8022还用于删除请求删除的文件以及删除所述请求删除的文件在所述访问热度排名中的排名。
当所述访问文件的请求为写文件的请求时,所述管理子模块8022还用于确定是否需要为所述被访问文件分配新的数据块;在确定需要分配新的数据块时,按照所述被访问文件所在的磁道类型为所述被访问文件分配数据块。
图8A和图8B所示实施例的设备的各功能的具体实现可参考方法实施例,这里不再赘述。
图9为本发明实施例提供的管理磁盘文件的系统900的结构示意图,如图9所示,该系统包括管理设备900和磁盘901。其中,磁盘901用于存储文件,管理设备900用于对磁盘中存储的文件进行管理。管理设备900具体可以是图8A所示的设备800A或图8B所示的设备800B。
需要说明的是,本发明实施例中的文件系统是用于组织和管理磁盘空间的数据存储的。因此,文件系统中可包括用于描述对磁盘的逻辑划分的数据结构,该数据结构可包括:数据区和元数据区。其中,元数据区中可包括访问热度字段。访问热度字段可以记录文件的总访问热度,在采用滑窗方式来实现统计时,还可以用于记录统计周期内的累计访问热度。
数据区包括位于磁盘的内道的数据块区以及位于磁盘的外道的数据块区。
该数据结构中还可进一步包括访问热度排名区域,用于记录存储在磁盘外道区域的文件的访问热度排名。
进一步的,元数据区中还可包括统计时间字段,用于记录访问热度字段中记录的总访问热度或累计访问热度的更新时间。在文件迁移过程中,还可在元数据区中增加迁移标记以及迁移位置字段。
上述数据结构可应用在本发明实施例提供的方法、设备以及系统中。具体应用可参见图1至图9所示实施例中记载的内容。
图10为本发明实施例提供的管理磁盘文件的设备的硬件结构图。如图10所示,该设备包括存储器101,I/O接口102,处理器103和总线104。
其中,处理器103、存储器101和I/O接口102通过总线104通信连接。
I/O接口102用来实现设备与外部的交互。本发明实施例中,设备可以通过I/O接口102接收外部对文件的访问。
存储器101可以是硬盘等存储介质。存储器101可以存储操作系统和其他应用程序的指令以及应用数据。本发明实施例中存储器101存储有实现文件系统的程序指令和数据结构。
处理器103可以采用通用的中央处理器(CentralProcessingUnit,CPU),微处理器,应用专用集成电路(ApplicationSpecificIntegratedCircuit,ASIC),或者一个或多个集成电路,用于运行相关程序。
总线104可包括一通路,在各个部件(例如处理器103、存储器101和通信接口102)之间传送信息。
本发明实施例中,处理器103用于运行存储器101中的文件系统,用于实现以下功能:在接收到访问文件的请求后,累计被访问文件的总访问热度。确定所述被访问文件的存储位置。若所述被访问文件存储在磁盘的内道,则基于所述被访问文件的总访问热度确定所述被访问文件是否满足迁移到磁盘的外道的条件;在确定所述被访问文件满足迁移到磁盘的外道的条件后,将所述被访问文件迁移到所述磁盘的外道存储。
所述处理器103具体处理过程可参考图3至图7所示的方法实施例部分,这里不再赘述。
通过以上的实施例的描述,本领域普通技术人员可以理解:实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,包括如上述方法实施例的步骤,所述的存储介质,如:ROM/RAM、磁碟、光盘等。
以上所述,仅为本发明的具体实施例,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (30)
1.一种管理磁盘文件的方法,其特征在于,包括:
文件系统在接收到访问文件的请求后,累计被访问文件的总访问热度;
确定所述被访问文件的存储位置;
若所述被访问文件存储在磁盘的内道,则所述文件系统基于所述被访问文件的总访问热度确定所述被访问文件是否满足迁移到磁盘的外道的条件;在确定所述被访问文件满足迁移到磁盘的外道的条件后,将所述被访问文件迁移到所述磁盘的外道存储。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
确定位于所述磁盘的外道的文件中总访问热度最低的文件;所述基于所述被访问文件的总访问热度确定所述被访问文件是否满足迁移到磁盘的外道的条件具体包括:
所述文件系统将所述被访问文件的总访问热度与所述磁盘的外道中总访问热度最低的文件的总访问热度进行比较;当所述被访问文件的总访问热度高于被比较的文件的总访问热度时,确定所述被访问文件满足迁移到磁盘的外道的条件。
3.如权利要求2所述的方法,其特征在于,在确定所述被访问文件满足迁移到磁盘的外道的条件后,所述方法还包括:
将所述总访问热度最低的文件迁移到所述磁盘的内道存储。
4.如权利要求1-3任一项所述的方法,其特征在于,所述确定所述被访问文件的存储位置具体包括:
确定被访问文件所在的数据块;
将所述数据块的块号与用于划分所述内道和外道的分界值进行比较;
根据比较结果确定所述被访问文件是存储在所述磁盘的内道还是外道。
5.如权利要求1-4任一项所述的方法,其特征在于,所述文件系统中记录有位于所述磁盘的外道的文件的总访问热度排名;所述方法还包括:
若所述被访问文件存储在磁盘的外道,则所述文件系统根据累计后的总访问热度判断所述被访问文件的排名是否发生变化,若发生变化,则更新所述总访问热度排名。
6.如权利要求1-5任一项所述的方法,其特征在于,所述方法还包括:
在文件发生迁移时,所述文件系统在发生迁移的文件的元数据中记录迁移位置;在迁移完成后,所述文件系统将所述元数据中记录的原存储位置删除,并将所述迁移位置更改为存储位置。
7.如权利要求6所述的方法,其特征在于,在迁移文件的过程中,若接收到对发生迁移的文件进行写操作的请求,所述方法还包括:所述文件系统将要写入的内容分别写入到发生迁移的文件的迁移位置和原存储位置中。
8.如权利要求6所述的方法,其特征在于,在迁移文件的过程中,若接收到对发生迁移的文件进行写操作的请求,所述方法还包括:所述文件系统阻塞所述写操作,在迁移完成后,将要写入的内容写入到迁移后的文件中。
9.如权利要求1-8任一项所述的方法,其特征在于,所述累计被访问文件的访问热度具体包括:
根据本次访问计算所述被访问文件的本次访问热度;
获取所述所述被访问文件的历史访问热度;
将所述本次访问热度与所述被访问文件的历史访问热度进行累加,得到所述被访问文件的总访问热度。
10.如权利要求9所述的方法,其特征在于,所述文件系统中包括用于指定统计范围的滑窗;所述获取所述被访问文件的历史访问热度具体包括:获取所述被访问文件在所述滑窗指定的统计范围内的历史访问热度。
11.如权利要求10所述的方法,其特征在于,在获取所述被访问文件的历史访问热度前,所述方法还包括:判断是否需要滑动所述滑窗,若需要滑动所述滑窗,则在滑动所述滑窗后执行所述获取所述被访问文件的历史访问热度的操作;若无需滑动所述滑窗,则直接执行所述获取所述被访问文件的历史访问热度的操作。
12.如权利要求11所述的方法,其特征在于,所述滑窗包括至少一个统计周期;所述统计周期为所述滑窗的滑动单位;所述判断是否需要滑动所述滑窗具体包括:通过比较本次访问所述被访问文件的时间点与上次访问所述被访问文件的时间点判断本次访问与上次访问之间是否跨统计周期,若跨统计周期,则需要滑动所述滑窗;若未跨统计周期,则无需滑动所述滑窗。
13.如权利要求5所述的方法,其特征在于,所述方法还包括:在接收到对所述磁盘的外道的文件进行删除的请求时,所述文件系统删除请求删除的文件以及删除所述请求删除的文件在所述访问热度排名中的排名。
14.如权利要求1-13任一项所述的方法,其特征在于,当所述访问文件的请求为写文件的请求时,所述方法还包括:文件系统确定是否需要为所述被访问文件分配新的数据块;在确定需要分配新的数据块时,按照所述被访问文件所在的磁道类型为所述被访问文件分配数据块;所述磁道类型包括所述磁盘的内道和所述磁盘的外道。
15.一种管理磁盘文件的设备,其特征在于,所述设备包括访问接口和处理模块;
所述访问接口,用于接收访问文件的请求,并在接收到所述请求后触发所述处理模块进行处理;
所述处理模块,用于累计被访问文件的总访问热度;确定所述被访问文件的存储位置;若所述被访问文件存储在磁盘的内道,则基于所述被访问文件的总访问热度确定所述被访问文件是否满足迁移到磁盘的外道的条件;在确定所述被访问文件满足迁移到磁盘的外道的条件后,将所述被访问文件迁移到所述磁盘的外道存储。
16.如权利要求15所述的方法,其特征在于,所述处理模块具体包括:
累计子模块,用于累计被访问文件的总访问热度;
管理子模块,用于确定所述被访问文件的存储位置;若所述被访问文件存储在磁盘的内道,则基于所述被访问文件的总访问热度确定所述被访问文件是否满足迁移到磁盘的外道的条件;在确定所述被访问文件满足迁移到磁盘的外道的条件后,将所述被访问文件迁移到所述磁盘的外道存储。
17.如权利要求15或16所述的设备,其特征在于,所述管理子模块还用于确定位于所述磁盘的外道的文件中总访问热度最低的文件;
所述管理子模块基于所述被访问文件的总访问热度确定所述被访问文件是否满足迁移到磁盘的外道的条件具体包括:
所述管理子模块用于将所述被访问文件的总访问热度与所述磁盘的外道中总访问热度最低的文件的总访问热度进行比较;当所述被访问文件的总访问热度高于被比较的文件的总访问热度时,确定所述被访问文件满足迁移到磁盘的外道的条件。
18.如权利要求17所述的设备,其特征在于,所述管理子模块在确定所述被访问文件满足迁移到磁盘的外道的条件时,还进一步用于将位于所述磁盘的外道的文件中总访问热度最低的文件迁移到所述磁盘的内道存储。
19.如权利要求15-18任一项所述的设备,其特征在于,所述管理子模块用于确定所述被访问文件的存储位置具体包括:
所述管理子模块用于确定被访问文件所在的数据块;将所述数据块的块号与用于划分所述内道和外道的分界值进行比较;根据比较结果确定所述被访问文件是存储在所述磁盘的内道还是外道。
20.如权利要求15-19任一项所述的设备,其特征在于,所述处理模块还包括记录子模块,用于记录位于所述磁盘的外道的文件的总访问热度排名;
所述管理子模块还用于在确定出所述被访问文件是存储在磁盘的外道时,根据累计后的总访问热度判断所述被访问文件的排名是否发生变化,若发生变化,则更新所述记录子模块记录的所述访问热度排名。
21.如权利要求15-19任一项所述的设备,其特征在于,所述管理子模块还用于在文件发生迁移时,在发生迁移的文件的元数据中记录迁移位置;在迁移完成后,将所述元数据中记录的原存储位置删除,并将所述迁移位置更改为存储位置。
22.如权利要求21所述的设备,其特征在于,在所述管理子模块迁移文件的过程中,若所述访问接口接收到对发生迁移的文件进行写操作的请求,则所述管理子模块还用于将要写入的内容分别写入到发生迁移的文件的迁移位置和原存储位置中。
23.如权利要求21所述的设备,其特征在于,在所述管理子模块迁移文件的过程中,若所述访问接口接收到对发生迁移的文件进行写操作的请求,则所述管理子模块还用于阻塞所述写操作,在迁移完成后,将要写入的内容写入到迁移后的文件中。
24.如权利要求15-23任一项所述的设备,其特征在于,所述累计子模块用于累计被访问文件的访问热度具体包括:
所述累计子模块用于根据本次访问计算所述被访问文件的本次访问热度;获取所述所述被访问文件的历史访问热度;将所述本次访问热度与所述被访问文件的历史访问热度进行累加,得到所述被访问文件的总访问热度。
25.如权利要求24所述的设备,其特征在于,所述累计子模块用于获取所述被访问文件的历史访问热度具体包括:所述累计子模块用于获取所述被访问文件在预先设置的滑窗内的历史访问热度,所述滑窗用于指定统计范围。
26.如权利要求25所述的设备,其特征在于,所述累计子模块在获取所述被访问文件的历史访问热度前,还进一步用于判断是否需要滑动所述滑窗,若需要滑动所述滑窗,则在滑动所述滑窗后执行所述获取所述被访问文件的历史访问热度的操作;若无需滑动所述滑窗,则直接执行所述获取所述被访问文件的历史访问热度的操作。
27.如权利要求26所述的设备,其特征在于,所述滑窗包括至少一个统计周期;所述统计周期为所述滑窗的滑动单位;所述累计子模块判断是否需要滑动所述滑窗具体包括:所述累计子模块通过比较本次访问所述被访问文件的时间点与上次访问所述被访问文件的时间点判断本次访问与上次访问之间是否跨统计周期,若跨统计周期,则需要滑动所述滑窗;若未跨统计周期,则无需滑动所述滑窗。
28.如权利要求20所述的设备,其特征在于,在所述访问接口接收到对所述磁盘的外道的文件进行删除的请求时,所述管理子模块还用于删除请求删除的文件以及删除所述请求删除的文件在所述访问热度排名中的排名。
29.如权利要求15-28任一项所述的设备,其特征在于,其特征在于,当所述访问文件的请求为写文件的请求时,所述管理子模块还用于确定是否需要为所述被访问文件分配新的数据块;在确定需要分配新的数据块时,按照所述被访问文件所在的磁道类型为所述被访问文件分配数据块;所述磁道类型包括所述磁盘的内道和所述磁盘的外道。
30.一种管理磁盘文件的系统,其特征在于,所述系统包括用于存储文件的磁盘以及权利要求15-29所述的设备。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410856658.2A CN105808620B (zh) | 2014-12-31 | 2014-12-31 | 一种管理磁盘文件的方法和装置 |
PCT/CN2015/096973 WO2016107390A1 (zh) | 2014-12-31 | 2015-12-10 | 一种管理磁盘文件的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410856658.2A CN105808620B (zh) | 2014-12-31 | 2014-12-31 | 一种管理磁盘文件的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105808620A true CN105808620A (zh) | 2016-07-27 |
CN105808620B CN105808620B (zh) | 2019-11-26 |
Family
ID=56284203
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410856658.2A Active CN105808620B (zh) | 2014-12-31 | 2014-12-31 | 一种管理磁盘文件的方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN105808620B (zh) |
WO (1) | WO2016107390A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106775461A (zh) * | 2016-11-30 | 2017-05-31 | 华为技术有限公司 | 热点数据确定方法、设备及装置 |
CN106802934A (zh) * | 2016-12-29 | 2017-06-06 | 中国科学院空间应用工程与技术中心 | 一种动态调整空间科学与应用数据文件存储的方法及装置 |
CN107092443A (zh) * | 2017-04-28 | 2017-08-25 | 杭州宏杉科技股份有限公司 | 数据迁移方法及装置 |
CN109471836A (zh) * | 2018-11-01 | 2019-03-15 | 浪潮电子信息产业股份有限公司 | 一种数据迁移方法、装置和系统 |
CN110381153A (zh) * | 2019-07-24 | 2019-10-25 | 深圳市网心科技有限公司 | 一种文件部署方法、部署设备、系统及介质 |
CN117991997A (zh) * | 2024-04-07 | 2024-05-07 | 深圳市铨兴科技有限公司 | 一种磁盘存储负载均衡的方法和装置 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10782888B2 (en) | 2018-02-27 | 2020-09-22 | Cisco Technology, Inc. | Method and device for improving file system write bandwidth through hard disk track management |
CN110442309A (zh) * | 2019-07-24 | 2019-11-12 | 广东紫晶信息存储技术股份有限公司 | 一种基于光存储的冷热数据交换方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090113160A1 (en) * | 2007-10-25 | 2009-04-30 | Disk Trix Incorporated, A South Carolina Corporation | Method and System for Reorganizing a Storage Device |
CN102667772A (zh) * | 2010-03-01 | 2012-09-12 | 株式会社日立制作所 | 文件级分级存储管理系统、方法和设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9043373B2 (en) * | 2010-08-17 | 2015-05-26 | Iolo Technologies, Llc | System and method for efficient data storage |
US8572315B2 (en) * | 2010-11-05 | 2013-10-29 | International Business Machines Corporation | Smart optimization of tracks for cloud computing |
CN102841931A (zh) * | 2012-08-03 | 2012-12-26 | 中兴通讯股份有限公司 | 分布式文件系统的存储方法及装置 |
-
2014
- 2014-12-31 CN CN201410856658.2A patent/CN105808620B/zh active Active
-
2015
- 2015-12-10 WO PCT/CN2015/096973 patent/WO2016107390A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090113160A1 (en) * | 2007-10-25 | 2009-04-30 | Disk Trix Incorporated, A South Carolina Corporation | Method and System for Reorganizing a Storage Device |
CN102667772A (zh) * | 2010-03-01 | 2012-09-12 | 株式会社日立制作所 | 文件级分级存储管理系统、方法和设备 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106775461A (zh) * | 2016-11-30 | 2017-05-31 | 华为技术有限公司 | 热点数据确定方法、设备及装置 |
CN106802934A (zh) * | 2016-12-29 | 2017-06-06 | 中国科学院空间应用工程与技术中心 | 一种动态调整空间科学与应用数据文件存储的方法及装置 |
CN107092443A (zh) * | 2017-04-28 | 2017-08-25 | 杭州宏杉科技股份有限公司 | 数据迁移方法及装置 |
CN107092443B (zh) * | 2017-04-28 | 2020-04-07 | 杭州宏杉科技股份有限公司 | 数据迁移方法及装置 |
CN109471836A (zh) * | 2018-11-01 | 2019-03-15 | 浪潮电子信息产业股份有限公司 | 一种数据迁移方法、装置和系统 |
CN110381153A (zh) * | 2019-07-24 | 2019-10-25 | 深圳市网心科技有限公司 | 一种文件部署方法、部署设备、系统及介质 |
CN117991997A (zh) * | 2024-04-07 | 2024-05-07 | 深圳市铨兴科技有限公司 | 一种磁盘存储负载均衡的方法和装置 |
CN117991997B (zh) * | 2024-04-07 | 2024-06-11 | 深圳市铨兴科技有限公司 | 一种磁盘存储负载均衡的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105808620B (zh) | 2019-11-26 |
WO2016107390A1 (zh) | 2016-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105808620A (zh) | 一种管理磁盘文件的方法和装置 | |
US9368130B2 (en) | Data storage system, method of writing to storage in the data storage system, hard disk and method of forming the hard disk | |
US9841906B2 (en) | Zone forward drive management | |
EP3869316B1 (en) | Hybrid storage | |
US9355112B1 (en) | Optimizing compression based on data activity | |
WO2017000658A1 (zh) | 存储系统、存储管理装置、存储器、混合存储装置及存储管理方法 | |
US8205054B2 (en) | Hierarchical storage system | |
US8612488B1 (en) | Efficient method for relocating shared memory | |
US10235101B2 (en) | Log structured block device for hard disk drive | |
US8589617B2 (en) | Write once recording device | |
WO2018121454A1 (zh) | 文件访问控制列表管理方法和相关装置和系统 | |
TW201250471A (en) | Managing data placement on flash-based storage by use | |
JP5833754B2 (ja) | ファイルシステムをクリーニングするための方法及び装置並びにその記憶媒体 | |
JP2004334419A (ja) | 磁気ディスク装置、ファイル管理システム及びその方法 | |
KR100703807B1 (ko) | 블록 방식의 메모리에서 데이터의 변경 유형에 따라 블록을관리하는 방법 및 장치 | |
WO2015007155A1 (zh) | 一种数据存储方法及装置 | |
US9183127B2 (en) | Sequential block allocation in a memory | |
CN106558320B (zh) | 最大化smr驱动器容量 | |
CN105786401A (zh) | 服务器集群系统中的数据管理方法及装置 | |
CN113490922B (zh) | 固态硬盘写放大优化方法 | |
US9666228B2 (en) | Shingled magnetic recording data store | |
CN107092443B (zh) | 数据迁移方法及装置 | |
US10585592B2 (en) | Disk area isolation method and device | |
KR102546741B1 (ko) | 파일 시스템 기반의 블록 할당 장치 및 방법 | |
WO2015101083A1 (zh) | 一种存储数据的保护方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |