CN105637491A - 一种文件迁移方法、装置和存储设备 - Google Patents

一种文件迁移方法、装置和存储设备 Download PDF

Info

Publication number
CN105637491A
CN105637491A CN201480037601.8A CN201480037601A CN105637491A CN 105637491 A CN105637491 A CN 105637491A CN 201480037601 A CN201480037601 A CN 201480037601A CN 105637491 A CN105637491 A CN 105637491A
Authority
CN
China
Prior art keywords
data block
target data
write
write time
logical address
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
Application number
CN201480037601.8A
Other languages
English (en)
Other versions
CN105637491B (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN105637491A publication Critical patent/CN105637491A/zh
Application granted granted Critical
Publication of CN105637491B publication Critical patent/CN105637491B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/1724Details of de-fragmentation performed by the file system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • 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/11File system administration, e.g. details of archiving or snapshots
    • G06F16/128Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/214Database migration support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1204Improving or facilitating administration, e.g. print management resulting in reduced user or operator actions, e.g. presetting, automatic actions, using hardware token storing data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1222Increasing security of the print job
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1236Connection management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1238Secure printing, e.g. user identification, user rights for device usage, unallowed content, blanking portions or fields of a page, releasing held jobs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1253Configuration of print job parameters, e.g. using UI at the client
    • G06F3/1258Configuration of print job parameters, e.g. using UI at the client by updating job settings at the printer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1292Mobile client, e.g. wireless printing

Abstract

本发明实施例提供了一种文件迁移方法、装置和存储设备。其中,所述方法包括:存储设备获取所述目标文件的元数据的快照,所述快照包括所述多个数据块的逻辑地址和所述多个数据块的第一写入时间;从所述多个数据块的逻辑地址和所述多个数据块的第一写入时间中,确定目标数据块的逻辑地址和所述目标数据块的第一写入时间;根据所述目标数据块的逻辑地址从所述目标文件的元数据中获得所述目标数据块的逻辑地址对应的第二写入时间,其中所述目标文件的元数据包括所述目标数据块的逻辑地址和所述第二写入时间;确定所述第一写入时间与所述第二写入时间相同时,将所述目标数据块迁移到预先分配的连续的存储空间中。可以将目标文件迁移到预先分配的连续的存储空间中,由此达到磁盘碎片整理的目的。

Description

一种文件迁移方法、装置和存储设备 技术领域
本发明实施例涉及存储技术领域,特别是一种文件迁移方法、装置和存储设备。
背景技术
文件系统是一种存储和组织用户数据的数据结构,为用户提供了简单方便的数据访问。对于具有文件系统的存储设备来说,其磁盘上的存储空间对用户是透明的,用户不用关心数据存放在磁盘中的具体位置,仅通过访问目录或文件就可以访问数据。
写重定向(全称:Redirection On Write,简称:ROW)文件系统,是指采用写时重定向方式写数据的文件系统。当新的用户数据写入或者修改原有的用户数据时,新数据不会覆盖掉原来的旧数据,而是在存储设备上分配新的空间写入该数据,当新数据写成功后再释放旧数据的存储空间。然而,随着新数据的不断写入,存储设备上不停地分配新的存储空间,同时旧数据的存储空间不停地释放,而释放出的旧数据的存储空间也是离散的,无法再写入新的数据,那么就造成了磁盘上的存储空间碎片化的问题。因此,对存储空间进行碎片整理就变得必要,碎片整理是指将离散的小块空闲存储空间,整理成大块连续的存储空间。
发明内容
本发明实施例提供了一种文件迁移方法、装置和存储设备,可以将目标文件迁移到预先分配的连续的存储空间中,由此达到磁盘碎片整理的目的。
本发明实施例第一方面提供了一种文件迁移方法,所述方法应用于存储设备中,所述存储设备保存有目标文件,所述目标文件包括多个数据块,所述方法包括:
所述存储设备获取所述目标文件的元数据的快照,所述快照包括所述多个数据块的逻辑地址和所述多个数据块的第一写入时间,所述第一写入时间是指所述快照中记录的所述数据块写入所述存储设备的时间;
从所述多个数据块的逻辑地址和所述多个数据块的第一写入时间中,确定目标数据块的逻辑地址和所述目标数据块的第一写入时间;
根据所述目标数据块的逻辑地址从所述目标文件的元数据中获得所述目标数据块的逻辑地址对应的第二写入时间,其中所述目标文件的元数据包括所述目标数据块的逻辑地址和所述第二写入时间,所述第二写入时间是指所述目标数据块最近一次写入所述存储设备的时间;
确定所述第一写入时间与所述第二写入时间相同时,将所述目标数据块迁移到预先分配的连续的存储空间中。
结合第一方面,在第一种可能的实施方式中,所述方法还包括:
预先分配所述连续的存储空间,所述存储空间的大小不小于所述目标文件的大小。
结合第一方面,或者第一方面的第一种可能的实施方式,在第二种可能的实施方式中,所述方法还包括:
在所述存储空间中为所述目标数据块分配物理地址;
所述将所述目标数据块迁移到预先分配的连续的存储空间中包括:将所述目标数据块写入所述物理地址对应的存储空间中。
结合第一方面的第二种可能的实施方式,在第三种可能的实施方式中,在所述存储空间中为所述目标数据块分配物理地址之后,所述方法还包括:
将所述物理地址以及所述目标数据块写入所述物理地址对应的存储空间的时间保存在所述目标文件的元数据中。
结合第一方面的第三种可能的实施方式,在第四种可能的实施方式中,在所述根据所述目标数据块的逻辑地址从所述目标文件的元数据中获得所述目标数据块的逻辑地址对应的第二写入时间时,所述方法还包括:
对所述目标数据块的逻辑地址和所述第二写入时间执行加锁操作,使得所述目标数据块的逻辑地址和所述第二写入时间在所述获得所述目标数据块的逻辑地址对应的第二写入时间之后至所述将所述物理地址以及所述目标数据块写入所述物理地址对应的存储空间的时间保存在所述目标文件的元数据中之前不能被修改。
结合第一方面,或者第一方面的第一种至第一方面的第四种可能的实施方式,在本发明第五种可能的实施方式中,所述存储设备获取所述目标文件的元数据的快照包括:
当预设的时间到达时或者接收到文件迁移指令时,所述存储设备获取所述目标文件的元数据的快照。
本发明实施例第二方面提供了一种文件迁移装置,所述装置位于存储设备中,所述存储设备保存有目标文件,所述目标文件包括多个数据块,所述装置包括碎片整理模块,其中,所述碎片整理模块包括:
快照获取模块,用于获取所述目标文件的元数据的快照,所述快照包括所述多个数据块的逻辑地址和所述多个数据块的第一写入时间,所述第一写入时间是指所述快照中记录的所述数据块写入所述存储设备的时间;
地址映射模块,用于保存所述目标文件的元数据的快照以及目标文件的元数据;
所述快照获取模块,还用于从所述多个数据块的逻辑地址和所述多个数据块的第一写入时间中,确定目标数据块的逻辑地址和所述目标数据块的第一写入时间;
迁移模块,用于根据所述目标数据块的逻辑地址从所述地址映射模块保存的所述目标文件的元数据中获得所述目标数据块的逻辑地址对应的第二写入时间,其中所述目标文件的元数据包括所述目标数据块的逻辑地址和所述第二写入时间,所述第二写入时间是指所述目标数据块的最近一次写入所述存储设备的时间;
所述迁移模块,还用于确定所述第一写入时间与所述第二写入时间相同时,将所述目标数据块迁移到预先分配的连续的存储空间中。
结合第二方面,在第一种可能的实施方式中,所述文件迁移装置还包括空间管理模块,用于预先分配所述连续的存储空间,所述存储空间的大小不小于所述目标文件的大小。
结合第二方面,或者第二方面的第一种可能的实施方式,在第二种可能的实施方式中,所述迁移模块,还用于在所述存储空间中为所述目标数据块分配物理地址;所述迁移模块具体用于:将所述目标数据块写入所述物理地址对应的存储空间中。
结合第二方面的第二种可能的实施方式,在第三种可能的实施方式中,所述迁移模块,还用于在所述存储空间中为所述目标数据块分配物理地址之后将所述物理地址以及所述目标数据块写入所述物理地址对应的存储空间的时间保存在所述目标文件的元数据中。
结合第二方面的第三种可能的实施方式,在第四种可能的实施方式中,所述迁移模块,还用于对所述目标数据块的逻辑地址和所述第二写入时间执行加锁操作,使得所述目标数据块的逻辑地址和所述第二写入时间在所述获得所述目标数据块的逻辑地址对应的第二写入时间之后至所述将所述物理地址以及所述目标数据块写入所述物理地址对应的存储空间的时间保存在所述目标文件的元数据中之前不能被修改。
结合第二方面,或者第二方面的第一种至第二方面的第四种可能的实施方式,在本发明第五种可能的实施方式中,所述碎片整理模块还包括触发器;
所述触发器,用于设置预设的时间,或者接收文件迁移指令;
所述快照获取模块,具体用于当预设的时间到达时或者接收到文件迁移指令时,获取所述目标文件的元数据的快照。
本发明实施例第三方面提供了一种存储设备,所述存储设备包括控制器和磁盘,所述控制器包括处理器和通信接口;
所述通信接口,用于与所述磁盘进行通信;
所述处理器,用于获取所述目标文件的元数据的快照,所述快照包括所述多个数据块的逻辑地址和所述多个数据块的第一写入时间,所述第一写入时间是指所述快照中记录的所述数据块写入所述磁盘的时间;
从所述多个数据块的逻辑地址和第一写入时间中,确定目标数据块的逻辑地址和所述目标数据块的第一写入时间;
根据所述目标数据块的逻辑地址从所述目标文件的元数据中获得所述目标数据块的逻辑地址对应的第二写入时间,其中所述目标文件的元数据包括所述目标数据块的逻辑地址和所述第二写入时间,所述第二写入时间是指所述目标数据块最近一次写入所述磁盘的时间;
确定所述第一写入时间与所述第二写入时间相同时,将所述目标数据块迁移到预先分配的连续的存储空间中。
结合第三方面,在第一种可能的实施方式中,所述处理器,还用于预先分配所述连续的存储空间,所述存储空间的大小不小于所述目标文件的大小。
结合第三方面,或者第三方面的第一种可能的实施方式,在第二种可能的实施方式中,所述处理器,还用于在所述存储空间中为所述目标数据块分配物理地址;所述处理器具体用于将所述目标数据块写入所述物理地址对应的存储空间中。
结合第三方面的第二种可能的实施方式,在第三种可能的实施方式中,所述处理器,还用于在所述存储空间中为所述目标数据块分配物理地址之后将所述物理地址以及所述目标数据块写入所述物理地址对应的存储空间的时间保存在所述目标文件的元数据中。
结合第三方面的第三种可能的实施方式,在第四种可能的实施方式中,所述处理器,还用于在所述根据所述目标数据块的逻辑地址从所述目标文件的元数据中获得所述目标数据块的逻辑地址对应的第二写入时间时,对所述 目标数据块的逻辑地址和所述第二写入时间执行加锁操作,使得所述目标数据块的逻辑地址和所述第二写入时间在所述获得所述目标数据块的逻辑地址对应的第二写入时间之后至所述将所述物理地址以及所述目标数据块写入所述物理地址对应的存储空间的时间保存在所述目标文件的元数据中之前不能被修改。
结合第三方面,或者第三方面的第一种至第三方面的第四种可能的实施方式,在本发明第五种可能的实施方式中,所述处理器,具体用于当预设的时间到达时或者接收到文件迁移指令时,所述存储设备获取所述目标文件的元数据的快照。
在本发明实施例中,存储设备获取目标文件的元数据的快照,所述快照包括多个数据块的逻辑地址和所述多个数据块的第一写入时间,所述第一写入时间是指所述快照中记录的所述数据块写入所述存储设备的时间;从所述多个数据块的逻辑地址和所述多个数据块的第一写入时间中,确定目标数据块的逻辑地址和所述目标数据块的第一写入时间;根据所述逻辑地址从所述目标文件的元数据中获得所述逻辑地址对应的第二写入时间,所述第二写入时间是指所述目标数据块最近一次写入所述存储设备的时间,确定第一写入时间和第二写入时间相同时,说明所述目标数据块在快照之后没有被修改过,则将其迁移到预先分配的连续的存储空间中,由此可以将所述整个目标文件迁移到所述连续的存储空间中,达到磁盘碎片整理的目的。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的存储系统的组成图;
图2是本发明实施例提供的控制器的硬件组成结构;
图3是本发明实施例提供的文件系统的逻辑结构示意图;
图4是本发明实施例提供的文件的元数据的B+树示意图;
图5是本发明实施例提供的文件迁移方法的流程示意图;
图6是本发明实施例提供的文件的元数据的快照的B+树示意图;
图7是本发明实施例提供的以文件为粒度的碎片整理流程示意图。
具体实施方式
本发明实施例提供了一种文件迁移方法、文件迁移装置和存储设备,能够将目标文件迁移到连续的存储空间中,达到对磁盘的存储空间进行碎片整理的目的。
现有技术中,在以文件为单位对存储空间进行碎片整理时,在迁移的过程中往往需要将该文件锁定,以避免用户对该文件进行修改。由于文件包含若干个数据块,因此在现有技术中,需要依次将每个数据块迁移完毕之后,才能对该文件解除锁定,这就会影响用户对该文件的访问。而本发明实施例不但能达到碎片整理的目的,并且在文件的迁移过程中,可以不将该文件锁定,而是通过获取所述文件的元数据的快照,进一步获得在快照之后没有被修改过的数据块,将其迁移到预先分配的连续的存储空间中,从而使得文件迁移过程对用户透明。
在本发明实施例中,文件的元数据是指描述文件信息的数据,包括所述文件包含的数据块的逻辑地址、物理地址、逻辑地址与物理地址之间的映射关系以及数据块写入存储设备的时间等信息。
下面开始对本发明实施例进行详细介绍:
图1描绘了本发明实施例提供的存储系统的组成图,图1所示的存储系统包括至少一个应用服务器10和至少一个存储设备20。所述应用服务器10可以包括当前技术已知的任何计算设备,如主机、服务器、台式计算机等等。应用服务器10中运行有应用程序(application)11,用户可以通过应用程序11向存储设备20发送各种文件处理请求。
所述存储设备20与所述应用服务器11之间可以通过网络中的NFS/CIFS协议进行数据传输,它可以是当前技术已知的任何包含文件系统的存储设备,如存储阵列、存储服务器等等。
存储设备20包括控制器21和若干个磁盘31。控制器21可以包括当前技术已知的任何计算设备,如服务器、台式计算机等等。在控制器内部,安装有文件系统210以及其他应用程序。控制器21用于执行文件处理请求的各种操作,例如创建文件操作、打开文件操作、读文件操作、写文件操作等等。存储设备20包含的若干个磁盘31用于提供存储空间保存文件。
下面介绍控制器21的硬件组成结构,请参考图2,图2是本发明实施例控制器21的结构示意图。如图2所示,控制器21主要包括处理器(processor)118、缓存(cache)120、存储器(memory)122、通信总线(简称总线)126以及通信接口(Communication Interface)128。处理器118、缓存120、存储器122以及通信接口128通过通信总线126完成相互间的通信。
通信接口128,用于与应用服务器10或磁盘31通信。
存储器122,用于存放程序124,存储器122可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可以理解的是,存储器122可以为随机存储器(Random-Access Memory,RAM)、磁碟、硬盘、光盘、固态硬盘(Solid State Disk,SSD)或者非易失性存储器等各种可以存储程序代码的非短暂性的(non-transitory)机器可读介质。
程序124可以包括程序代码,所述程序代码包括文件系统210以及其他程序代码。
缓存120(Cache)用于缓存从应用服务器10接收的数据或从磁盘31中读取的数据。缓存120可以是RAM、ROM、闪存(Flash memory)或固态硬盘(Solid State Disk,SSD)等各种可以存储数据的非短暂性的(non-transitory)机器可读介质,在此不做限定。
另外,存储器122和缓存120可以合设或者分开设置,本发明实施例对此不做限定。
处理器118可能是一个中央处理器CPU,或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。在本发明实施例中,处理器118可以用于接收来自应用服务器10的各种文件处理请求,并且通过文件系统210执行所述文件处理请求的各种操作,例如文件迁移操作、读文件操作、写文件操作等等。
文件系统210是一种存储和组织存储设备20中数据的方法,它使得对数据的访问和查找变得容易,文件系统210使用文件和树形目录的抽象逻辑概念代替了磁盘等物理设备使用的数据块的概念。存储设备20在使用文件系统210来保存数据后,用户不必关心数据实际保存在磁盘的地址为多少的数据块上,只需要记住这个文件的所属目录和文件名。同样的,在写入新数据之前,用户不必关心磁盘上的那个块地址没有被使用,磁盘上的存储空间管理(分配和释放)功能由文件系统210自动完成,用户只需要记住数据被写入到了哪个文件中。需要说明的是,虽然存储在存储设备20中的数据是以文件的形式呈现给用户的,然而文件在磁盘31中存储的单位仍然是数据块。因此,一个文件可以包含多个数据块。
本实施例中的文件系统210是写重定向(全称:Redirection On Write,简称:ROW)文件系统。当新的用户数据写入或者修改原有的用户数据时,新数据不会覆盖掉原来的旧数据,而是在存储设备20上分配新的空间写入新数据,当新数据写成功后再释放旧数据的存储空间。然而,随着新数据的不断写入,存储设备20上的磁盘空间不停地进行分配新的存储空间,原本连续的用户数据由于多次被修改就会变得离散,从而影响了该数据的访问性能。因此,在本实施例中的文件系统210中增加了碎片整理模块,以用于对存储设备20上的磁盘空间进行碎片整理。
下面介绍文件系统210的逻辑结构,请参考图3,图3是本发明实施例 文件系统210的逻辑结构示意图。如图3所示,文件系统210主要包括:碎片整理模块214和空间管理模块212。其中,碎片整理模块214用于对目标文件包含的数据块进行迁移;空间整理模块212用于预先分配一块连续的存储空间,以保存所述迁移后的数据块。
具体的,碎片整理模块214可以包括快照获取模块2140、地址映射模块2145和迁移模块2144。其中,快照获取模块2140用于获取所述目标文件的元数据的快照;地址映射模块2145用于保存所述目标文件的元数据的快照以及所述目标文件的元数据;迁移模块2144用于从地址映射模块2145中查找所述目标文件的元数据,并且,迁移模块2144还用于将所述目标文件包含的数据迁移至所述预先分配的连续的存储空间中。
进一步地,快照获取模块2140可以包括:整理控制模块2143和快照适配器2141。其中,整理控制模块2143,用于控制碎片整理的整个流程,通过协调其他几个模块的分工实现碎片整理功能;快照适配器2141可以用于生成所述目标文件的元数据的快照。然而,在某些场景下,文件系统210中已经包含用于生成快照的模块(例如,快照模块211)时,快照适配器2141可以仅用于与快照模块211进行数据交互,例如,向快照模块211发送快照请求,要求快照模块211生成快照并保存快照信息。
另外,可选的,碎片整理模块214还可以包括:触发器2142。触发器2142是启动碎片整理的入口,为文件系统210提供碎片整理的时机和策略。具体而言,触发器2142中可以设置定时器,当预设的时间到达时,启动碎片整理任务,或者设置其他触发条件,当预设的条件满足时,启动碎片整理任务。此外,触发器2142还可以用于接收文件迁移指令、碎片整理指令或者类似指令,以启动碎片整理任务。另外,触发器2142中配置有碎片整理的策略,例如以文件为单位进行碎片整理或者以目录为单位进行碎片整理或者以所有文件为单位进行碎片整理。
可选的,文件系统210中还可以包括数据IO模块213,用于实现对磁 盘31上存储的数据的读写功能,例如,当迁移模块2144确定出待迁移的数据块时,可以将该数据块发送给数据IO模块213,由将数据IO模块213将该数据块写入空间管理模块212预先分配的连续的存储空间中。当所述数据块写入成功之后,可以将新的元数据保存在地址映射模块2145中。这里的新的元数据包括所述数据块的逻辑地址、所述数据块写入的存储空间的物理地址,所述逻辑地址与所述物理地址之间的对应关系、以及数据块写入的时间等信息。需要说明的是,迁移前后所述数据块的物理地址发生变化,逻辑地址不变,然而由于物理地址是对应用服务器10屏蔽的,因此数据块乃至整个文件的迁移过程对应用服务器10是透明的。
可以理解的是,文件系统210还可以包括其他功能模块,本发明实施例暂时不做讨论。
需要说明的是,在图3所示的实施例中,文件系统210既包括了快照适配器2141,也包括了快照模块211,其中快照模块211用于执行生成快照的操作,快照适配器2141用于与快照模块211进行数据交互,要求快照模块211生成快照,以及保存快照信息等。然而,在某些场景中,快照模块211的功能可以集成在快照适配器2141中,由快照适配器2141执行生成快照的操作。总而言之,图3所示的文件系统210的模块划分只是本发明实施例的示例性说明,只要能完成上述功能的模块都在本发明实施例的保护范围以内。
在本实施例中,地址映射模块2145可以利用地址映射树(例如,B+树)管理逻辑地址和物理地址之间的映射关系。图4是文件系统对应的B+树的示意图,如图4所示:
需要说明的是,这里的文件系统对应的B+树是指用于管理所述存储设备中所有文件的元数据的B+树。所述B+树包括根节点,各级索引以及多个叶子节点,其中根节点是所述B+树的入口,通过根节点可以进入所述B+树。每个叶子节点保存一对键值(全称:Key-Value,简称KV)。在本实施例中, Key字段和Value字段的具体定义如下表:
其中,Key字段用于保存逻辑地址,又称逻辑偏移或者逻辑起始地址;Value字段中保存了两部分内容,一部分是写入时间,另一部分是物理地址。物理地址是指所述逻辑地址指向的数据块存放在磁盘上的具体位置;写入时间是指所述逻辑地址指向的数据块写入磁盘的时间。所述写入时间的表现形式可以是一个64位的序列号或者体现先后顺序的数字或字母,或者其他方式,本发明实施例并不对写入时间的形式做任何限定。并且,可以理解的是,写入时间可以是在所述逻辑地址指向的数据块写入磁盘之前分配的时间,而不一定是所述数据块实际写入磁盘的时间。
由图4可知,由于Value字段中保存有物理地址,每个物理地址可以指向一个文件的元数据或者目录的元数据,因此由文件系统对应的B+树可以获得一个文件的子树(文件对应的B+树)。同样的,所述文件对应的B+树也包括各级索引和多个叶子节点,每个叶子节点保存一对KV,其中Key字段和Value字段的定义与上表相同。由于一个文件是由多个数据块组成的,因此该文件的子树中的Value字段保存的物理地址可以指向一个或多个数据块的元数据。
下面介绍本发明实施例文件迁移的方法流程,本发明实施例中的文件迁移方法可以应用在图2所示的存储设备中。图5是本发明实施例文件迁移方法的流程图,如图5所示,所述方法包括:
步骤S301A:处理器118获取目标文件的元数据的快照,所述目标文件包含多个数据块,所述快照包括所述多个数据块的逻辑地址和所述多个数据块的第一写入时间,所述第一写入时间是指所述快照中记录的所述数据块写入所述存储设备的时间。
参考图4所示的B+树,所述目标文件的元数据保存在文件对应的B+树中,所述B+树的每个叶子节点保存一对Key-Value(KV),其中Key字段作为检索值,用于保存每个数据块的逻辑地址,Value字段作为值,用于保存每个数据块的物理地址以及每个数据块写入存储设备20的时间。
可选的,步骤S301A可以在预设的时间到达时或者接收到文件迁移指令时执行,具体可参考图3的触发器2142以及相关描述,这里不再赘述。
在步骤S301A中,处理器118需要生成所述目标文件的元数据的快照。快照是指相应数据在某个写入时间(拷贝开始的写入时间)的映像。当快照生成以后,所述目标文件的元数据就可以生成一个被定格的映像,所述映像不会被修改。结合图4,所述目标文件的元数据是按照图4所示的文件对应的B+树组织起来的,所述目标文件的元数据的快照是指将所述文件对应的B+树定格下来的另一棵B+树,如图6所示。在所述快照刚生成时,由于暂时没有对数据块进行修改,所以所述目标文件的元数据对应的B+树(后面简称为文件对应的B+树)和所述快照对应的B+树虽然根节点不同,但可以共用叶子节点。
然而,在快照生成之后,处理器118可能会接收到对所述数据块的修改请求,所述修改请求用于对所述数据块进行修改,其修改方式是:为修改后的数据块新分配一块存储空间,将所述修改后的数据块写入新分配的存储空间中,待写入成功后再释放修改前的数据块所在的存储空间。
那么,相应的,处理器118可以根据所述修改请求生成KV,在所述文件对应的B+树中插入新的叶子节点,以保存所述新生成的KV。此时,所述新生成的KV中的Key字段仍然是所述被修改的数据块的所述逻辑地址,Value字段中的物理地址是修改后的数据块保存在新分配的存储空间中的地址,Value字段中的写入时间是所述修改后的数据块写入新分配的存储空间中的时间,由于逻辑地址不变,所以所述写入时间也就是所述逻辑地址所指向的数据块的最近一次写入时间。可以理解的是,所述新的叶子节点是所述 文件对应的B+树的叶子节点,不会和快照对应的B+树共用。因此,虽然文件对应的B+树和快照对应的B+树共用一些叶子节点,然而文件对应的B+树中的Value字段保存的写入时间和快照对应的B+树中保存的写入时间代表的含义不同。为了将两个写入时间区别开来,在本实施例中,将快照对应的B+树中保存的写入时间称为第一写入时间,将文件对应的B+树中保存的写入时间称为第二写入时间。其中,第一写入时间是指快照中记录的数据块写入所述存储设备的时间,而所述第二写入时间是指数据块的最近一次写入时间。
步骤S301B:处理器118从所述多个数据块的逻辑地址和所述多个数据块的第一写入时间中,确定目标数据块的逻辑地址和所述目标数据块的第一写入时间。
在本实施例中,为了方便以所述目标文件中的一个数据块举例说明迁移流程,将这个数据块称为目标数据块。可以理解的是,除所述目标数据块以外,所述目标文件中的其他数据块也是按照同样的方法进行迁移的。
由于快照对应的B+树中保存了所述目标文件包含的各个数据块的KV,因此在获取所述快照对应的B+树之后,也就获得了所述目标文件包含的各个数据块的KV,处理器118可以对所述各个数据块对应的KV进行扫描,获取目标数据块对应的KV。其中所述Key字段包括所述目标数据块的逻辑地址,所述Value字段包括所述目标数据块的第一写入时间。
步骤S302:处理器118根据所述目标数据块的逻辑地址从所述目标文件的元数据中获得所述目标数据块的逻辑地址对应的第二写入时间,其中所述目标文件的元数据包括所述目标数据块的逻辑地址和所述第二写入时间,所述第二写入时间是指所述目标数据块最近一次写入所述存储设备的时间。
在步骤S302中,所述目标文件的元数据是指所述文件对应的B+树,由于在步骤S301A中得到所述目标数据块的逻辑地址,因此可以根据所述逻辑地址在所述文件对应的B+树中查找获得所述逻辑地址对应的KV。其中,所 述Key字段用于保存所述逻辑地址,Value字段用于保存第二写入时间(参见步骤S301A中的描述),因此可以进一步获得所述第二写入时间。
步骤S303:确定所述第一写入时间与所述第二写入时间相同时,处理器118将所述目标数据块迁移到预先分配的连续的存储空间中。
具体的,处理器118在获得第一写入时间和第二写入时间之后,可以判断二者是否相同,如果相同则说明所述目标数据块在生成快照之后没有被修改,因此可以将所述目标数据块迁移到预先分配的连续的存储空间中;如果不相同,则说明所述目标数据块在生成快照之后被修改过,并且修改后的数据块已经写入新的存储空间中,对于这样的目标数据块则不需要迁移。
所以预先分配的连续存储空间可以是在执行步骤S301A之前分配的,也可以是在执行步骤S301A之后步骤303之前分配的。具体的,所述连续的存储空间的大小需不小于所述目标文件的大小,以使得有足够的空间存储迁移后的所述目标文件的各个数据块,从而达到碎片整理的目的。其分配方式可以是,一次分配足够的存储空间,也可以是经过多次分配,其总共分配的存储空间的大小不小于所述目标文件的大小。
在本发明实施例中,存储设备获取目标文件的元数据的快照,所述快照包括多个数据块的逻辑地址和第一写入时间,所述第一写入时间是指所述快照中记录的所述数据块写入所述存储设备的时间;从所述多个数据块的逻辑地址和第一写入时间中,确定目标数据块的逻辑地址和第一写入时间;根据所述逻辑地址从所述目标文件的元数据中获得所述逻辑地址对应的第二写入时间,所述第二写入时间是指所述目标数据块最近一次写入所述存储设备的时间,当第一写入时间和第二写入时间相同时,说明所述目标数据块在快照之后没有被修改过,则将其迁移到预先分配的连续的存储空间中,由此达到磁盘碎片整理的目的。并且,本发明实施例在迁移过程中不需要对所述目标文件进行锁定,就可以通过所述目标文件的元数据的快照,获得在快照之后没有被修改过的数据块,将其迁移到预先分配的连续的存储空间中,因此 在一定程度上,本发明实施例的文件迁移过程可以不影响用户对文件的访问,提高了文件的访问效率。
在上述步骤S303中,由于所述预先分配的存储空间是一大块连续的存储空间,其大小不小于所述目标文件的大小,所以在将所述目标数据块写入所述预先分配的存储空间之前还需要在所述存储空间中为所述目标数据块分配物理地址,在分配所述物理地址之后,将所述目标数据块写入所述物理地址对应的存储空间中。
那么,相应地,在图5所示的文件迁移方法中还可以包括:
步骤S304:处理器118将所述目标数据块的逻辑地址、所述迁移后的物理地址以及所述目标数据块写入所述物理地址对应的存储空间中的时间保存在所述文件对应的B+树中。
可以理解的是,这里的所述目标数据块写入所述物理地址对应的存储空间中的时间即最近一次写入所述存储设备的时间,也就是前面描述的第二写入时间。
结合图6,步骤S304具体可以是生成一个新的叶子节点插入所述文件对应的B+树中,并修改所述新的叶子节点与所述文件对应的B+树的根节点之间的各级索引。所述新的叶子节点用于保存新的KV,其中Key字段用于保存所述逻辑地址,所述Value字段用于保存所述迁移后的物理地址以及所述目标数据块写入所述物理地址对应的存储空间中的时间。需要说明的是,这里的时间可以不是严格意义上的时间,而是分配的序列号或者其他形式。
进一步地,在图5所示的文件迁移方法中,还可以包括:
处理器118在根据所述逻辑地址从所述目标文件的元数据中获得所述逻辑地址对应的第二写入时间时,对所述逻辑地址和所述第二写入时间执行加锁操作,使得所述逻辑地址和所述第二写入时间在所述获得所述逻辑地址对应的第二写入时间之后至所述在所述存储空间中为所述目标数据块分配物理地址之前不能被修改。
在本实施例中,对所述逻辑地址和所述第二写入时间执行加锁操作具体可以是:在所述文件对应的B+树中,对所述逻辑地址对应的KV所在的叶子节点执行加锁操作,其目的是防止所述目标数据块被修改。具体的加锁操作可以利用现有的各种加锁算法实现,这里不做详细讨论。
相应地,本实施例还可以包括:处理器118对所述逻辑地址和第二写入时间执行解锁操作。执行解锁操作以后,所述目标数据块可以被修改。
需要说明的是,本实施例并不对解锁的时机做任何限定,只要步骤S304之后执行均可,可以在处理器118将目标数据块写入所述物理地址对应的存储空间之前执行,也可以在处理器118将目标数据块写入所述物理地址对应的存储空间之后执行。
可以理解的是,在对所述逻辑地址和所述第二写入时间执行加锁操作至解锁期间,所述逻辑地址和所述第二写入时间作为所述目标数据块的元数据不能被修改,那么意味着所述目标数据块也不能被修改。举例来说,当这段期间内,处理器118接收到用于对所述目标数据块进行修改的修改请求,所述修改请求将会被暂停执行,直至对所述逻辑地址和所述第二写入时间执行解锁操作。需要说明的是,修改请求只是本发明实施例的一个示例,其他访问请求,例如读取请求等也将被暂停执行。
然而,对于所述目标文件而言,虽然在对所述逻辑地址和所述第二写入时间执行加锁操作至解锁期间不能对所述目标数据块进行修改,但其他除所述目标数据块之外的数据块仍然可以接受修改请求或者其他访问请求。因为在本发明实施例中,被加锁的对象是所述目标数据块的元数据,其他数据块并不会因此受到影响。这就使得本发明实施例的文件迁移方法尽可能地不影响到被迁移文件的用户访问,提高了用户体验。
图5所示的文件迁移方法是以迁移目标文件中的一个数据块为例来进行说明的,当所述目标文件中的所有的数据块都以同样的方式迁移完成后,以所述目标文件为粒度的碎片整理工作也完成了。
磁盘空间的碎片整理工作可以以一个文件为粒度,也可以以一个目录为粒度,以目录为粒度的碎片整理流程与图5所示的以文件为粒度的碎片整理流程类似,这里不再赘述。
另外,磁盘空间的碎片整理工作还可以以存储设备20中保存的所有文件为粒度。在这种场景下,可以循环执行图5所示的方法流程,直至所有文件都迁移完成。或者,为了节省系统资源,可以在步骤S301A中,获取所有文件的元数据(即图4所示的文件系统对应的B+树)的快照,然后依次获取所述快照中记录的每个文件的每个数据块的KV,直至所有的数据块都迁移完毕,其具体流程与图5所示的实施例类似,这里不再赘述。
下面结合图3介绍本发明实施例提供的文件迁移装置,所述装置位于存储设备中,所述存储设备保存有目标文件,所述目标文件包括多个数据块,所述文件迁移装置与图3所示的文件系统210的结构相同。具体的,所述文件迁移装置包括碎片整理模块214,所述碎片整理模块214包括快照获取模块2140、地址映射模块2145和迁移模块2144。
其中,快照获取模块2140,用于获取所述目标文件的元数据的快照,所述快照包括所述多个数据块的逻辑地址和所述多个数据块的第一写入时间,所述第一写入时间是指所述快照中记录的所述数据块写入所述存储设备的时间;
地址映射模块2145,用于保存所述目标文件的元数据的快照以及目标文件的元数据;
所述快照获取模块2140,还用于从所述多个数据块的逻辑地址和所述多个数据块的第一写入时间中,确定目标数据块的逻辑地址和所述目标数据块的第一写入时间;
迁移模块2144,用于根据所述目标数据块的逻辑地址从所述地址映射模块保存的目标文件的元数据中获得所述目标数据块的逻辑地址对应的第二写入时间,其中所述目标文件的元数据包括所述目标数据块的逻辑地址和所 述第二写入时间,所述第二写入时间是指所述目标数据块的最近一次写入所述存储设备的时间;
所述迁移模块2144,还用于确定所述第一写入时间与所述第二写入时间相同时,将所述目标数据块迁移到预先分配的连续的存储空间中。
可选的,所述文件迁移装置还包括空间管理模块212,用于预先分配所述连续的存储空间,所述存储空间的大小不小于所述目标文件的大小。
可选的,所述迁移模块2144,还用于在所述存储空间中为所述目标数据块分配物理地址;所述迁移模块2144,还用于在所述存储空间中为所述目标数据块分配物理地址之后将所述物理地址以及所述目标数据块写入所述物理地址对应的存储空间的时间保存在所述目标文件的元数据中。
可选的,所述迁移模块2144,还用于对所述目标数据块的逻辑地址和所述第二写入时间执行加锁操作,使得所述目标数据块的逻辑地址和所述第二写入时间在所述获得所述目标数据块的逻辑地址对应的第二写入时间之后至所述将所述物理地址以及所述目标数据块写入所述物理地址对应的存储空间的时间保存在所述目标文件的元数据中之前不能被修改。
可选的,所述碎片整理模块214还包括触发器2142;
所述触发器2142,用于设置预设的时间,或者接收文件迁移指令;
相应地,所述快照获取模块2140,具体用于当预设的时间到达时或者接收到文件迁移指令时,获取所述目标文件的元数据的快照。
下面将以一个具体的示例并结合图3来说明各个模块如何相互配合完成碎片整理工作的。
请参考图7,图7是以文件为粒度的碎片整理流程示意图。下面步骤中描述的文件可以是图5所示的文件迁移流程中的目标文件,并且下面步骤中描述的各个模块与图3所示的各个模块的定义与功能相同。如图7所示,所述方法包括:
步骤S401:定时触发碎片整理任务。
举例来说,用户可以通过定时器,定时触发碎片整理任务,或者用户手动开启碎片整理任务。
步骤S402:触发器2142向整理控制模块2143发送指令,以指示启动所述碎片整理任务。
步骤S403:整理控制模块2143向地址映射模块2145发送查询指令,要求查找地址映射模块2145保存的地址映射树中文件的元数据。
具体的,所述地址映射树中文件的元数据可以是图4或图6所示的文件对应的B+树。
步骤S404:地址映射模块2145向整理控制模块2143返回所述文件的元数据的信息,所述信息可以是所述文件的元数据在文件系统中的位置信息等。
步骤S405:整理控制模块2143向快照适配器2141发送快照生成指令,要求生成所述文件的元数据的快照,所述快照生成指令中可以包括所述文件的元数据的信息。
步骤S406:快照适配器2141向快照模块211转发所述快照生成指令。
步骤S407:快照模块211访问地址映射模块2145,生成所述文件的元数据的快照并保存在地址映射模块2145中。
具体的,所述快照模块211可以根据所述文件的元数据的信息在地址映射模块2145中查找到所述文件的元数据,并生成快照。其生成方式可参考图5所示的文件迁移流程中步骤S301A中的描述,这里不再赘述。
步骤S408:地址映射模块2145向快照模块211返回所述快照生成指令的响应请求,以说明所述文件的元数据的快照已生成并保存成功。
并且,所述响应请求中包含快照的信息,所述快照的信息包括所述快照保存在地址映射模块2145中的地址等信息。
步骤S409:快照模块211向快照适配器2141返回所述快照生成指令的响应请求,以说明所述文件的元数据的快照已生成并保存成功。
并且,所述响应请求中包含步骤S408中的快照的信息。
步骤S410:快照适配器2141保存所述快照的信息。
步骤S411:快照适配器2141向整理控制模块2143返回快照生成指令的响应请求,以指示快照生成并保存成功。
步骤S412:整理控制模块2143向迁移模块2144发送文件迁移指令。
步骤S413:迁移模块2144向空间管理模块212发送空间申请指令,以申请连续的存储空间,所述连续的存储空间的大小不小于所述文件的大小。
具体的,本步骤的实施可参考图5所示的文件迁移流程中步骤S303中的描述,这里不再赘述。
步骤S414:空间管理模块212向迁移模块2144返回所述空间申请指令的响应请求,以指示所述存储空间分配成功。
步骤S415:迁移模块2144向快照适配器2141发送扫描请求,要求扫描快照。
步骤S416:快照适配器2141向地址映射模块2145发送查询指令,以获取第一个KV。
具体的,所述查询指令中包括所述快照的信息,由于所述快照的信息中包含所述快照保存在地址映射模块2145中的地址,所以地址映射模块2145可以根据所述地址将所述文件的元数据的快照发送给快照适配器2141。由图5所示实施例的步骤S301A可知,所述文件的元数据的快照是指快照对应的B+树,快照适配器2141可以从B+树的根节点开始查找,获取第一个数据块的KV(简称为第一个KV)。关于数据块的KV,可参考图5所示的文件迁移流程的步骤S301A中关于目标数据块对应的KV的描述,这里不再赘述。
步骤S417:快照适配器2141将所述第一个KV发送给迁移模块2144。
步骤S418:迁移模块2144对所述文件的元数据的KV进行加锁操作。
步骤S419:迁移模块2144向地址映射模块2145发送查询指令,以获取文件的元数据中的KV。
由于所述第一KV中的Key字段保存有逻辑地址,所以迁移模块2144可以根据所述逻辑地址向地址映射模块2145查询,以获得所述逻辑地址对应的文件的元数据中的KV。
具体的,可参考图5所示的文件迁移流程的步骤S302的描述,这里不再赘述。
步骤S420:地址映射模块2145将所述获得的所述逻辑地址对应的文件的元数据中的KV返回给迁移模块2144。
步骤S421:迁移模块2144判断第一写入时间和第二写入时间是否相同。
具体的,可参考图5所示的文件迁移流程的步骤S303的描述,这里不再赘述。
步骤S422:若相同,则迁移模块2144向地址映射模块2145发送更新指令,以更新所述文件的元数据。
具体的,可参考图5所示的文件迁移流程的步骤S304的描述,这里不再赘述。
步骤S423:地址映射模块2145向迁移模块2144返回所述更新指令的响应请求,以指示更新成功。
步骤S424:迁移模块2144对所述文件的元数据的KV进行解锁操作。
具体的,可参考图5所示的文件迁移流程的步骤S305的描述,这里不再赘述。
另外,若第一写入时间和第二写入时间不相同,则执行步骤S425:跳过所述KV;以及步骤S426:对所述KV解锁。
需要说明的是,步骤S416至步骤S426是循环执行的,直至处理完所有KV。
当所有KV处理完毕之后,执行步骤S427:快照适配器2141向迁移模块2144发送扫描完成的指令。
步骤S428:迁移模块2144向整理控制模块2143反馈文件迁移完成。
步骤S429:整理控制模块2143向快照适配器2141发送删除快照的指令。
步骤S430:快照适配器2141向快照模块211转发删除快照的指令,以删除所述文件的元数据的快照。
在本发明实施例中,存储设备获取目标文件的元数据的快照,所述快照包括多个数据块的逻辑地址和第一写入时间,所述第一写入时间是指所述快照中记录的所述数据块写入所述存储设备的时间;从所述多个数据块的逻辑地址和第一写入时间中,确定目标数据块的逻辑地址和第一写入时间;根据所述逻辑地址从所述目标文件的元数据中获得所述逻辑地址对应的第二写入时间,所述第二写入时间是指所述目标数据块最近一次写入所述存储设备的时间,当第一写入时间和第二写入时间相同时,说明所述目标数据块在快照之后没有被修改过,则将其迁移到预先分配的连续的存储空间中,由此达到磁盘碎片整理的目的。并且,本发明实施例在迁移过程中不需要对所述目标文件进行锁定,就可以通过所述目标文件的元数据的快照,获得在快照之后没有被修改过的数据块,将其迁移到预先分配的连续的存储空间中,因此在一定程度上,本发明实施例的文件迁移过程可以不影响用户对文件的访问,提高了文件的访问效率。
本领域普通技术人员将会理解,本发明的各个方面、或各个方面的可能实现方式可以被具体实施为系统、方法或者计算机程序产品。因此,本发明的各方面、或各个方面的可能实现方式可以采用完全硬件实施例、完全软件实施例(包括固件、驻留软件等等),或者组合软件和硬件方面的实施例的形式,在这里都统称为“电路”、“模块”或者“系统”。此外,本发明的各方面、或各个方面的可能实现方式可以采用计算机程序产品的形式,计算机程序产品是指存储在计算机可读介质中的计算机可读程序代码。
计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质包含但不限于电子、磁性、光学、电磁、红外或半导体 系统、设备或者装置,或者前述的任意适当组合,如随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或者快闪存储器)、光纤、便携式只读存储器(CD-ROM)。
计算机中的处理器读取存储在计算机可读介质中的计算机可读程序代码,使得处理器能够执行在流程图中每个步骤、或各步骤的组合中规定的功能动作;生成实施在框图的每一块、或各块的组合中规定的功能动作的装置。
计算机可读程序代码可以完全在用户的计算机上执行、部分在用户的计算机上执行、作为单独的软件包、部分在用户的计算机上并且部分在远程计算机上,或者完全在远程计算机或者服务器上执行。也应该注意,在某些替代实施方案中,在流程图中各步骤、或框图中各块所注明的功能可能不按图中注明的顺序发生。例如,依赖于所涉及的功能,接连示出的两个步骤、或两个块实际上可能被大致同时执行,或者这些块有时候可能被以相反顺序执行。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (18)

  1. 一种文件迁移方法,其特征在于,所述方法应用于存储设备中,所述存储设备保存有目标文件,所述目标文件包括多个数据块,所述方法包括:
    所述存储设备获取所述目标文件的元数据的快照,所述快照包括所述多个数据块的逻辑地址和所述多个数据块的第一写入时间,所述第一写入时间是指所述快照中记录的所述数据块写入所述存储设备的时间;
    从所述多个数据块的逻辑地址和所述多个数据块的第一写入时间中,确定目标数据块的逻辑地址和所述目标数据块的第一写入时间;
    根据所述目标数据块的逻辑地址从所述目标文件的元数据中获得所述目标数据块的逻辑地址对应的第二写入时间,其中所述目标文件的元数据包括所述目标数据块的逻辑地址和所述第二写入时间,所述第二写入时间是指所述目标数据块最近一次写入所述存储设备的时间;
    确定所述第一写入时间与所述第二写入时间相同时,将所述目标数据块迁移到预先分配的连续的存储空间中。
  2. 根据权利要求1所述的方法,其特征在于,所述方法还包括:
    预先分配所述连续的存储空间,所述存储空间的大小不小于所述目标文件的大小。
  3. 根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
    在所述存储空间中为所述目标数据块分配物理地址;
    所述将所述目标数据块迁移到预先分配的连续的存储空间中包括:将所述目标数据块写入所述物理地址对应的存储空间中。
  4. 根据权利要求3所述的方法,其特征在于,在所述存储空间中为所述目标数据块分配物理地址之后,所述方法还包括:
    将所述物理地址以及所述目标数据块写入所述物理地址对应的存储空间的时间保存在所述目标文件的元数据中。
  5. 根据权利要求4所述的方法,其特征在于,在所述根据所述目标数 据块的逻辑地址从所述目标文件的元数据中获得所述目标数据块的逻辑地址对应的第二写入时间时,所述方法还包括:
    对所述目标数据块的逻辑地址和所述第二写入时间执行加锁操作,使得所述目标数据块的逻辑地址和所述第二写入时间在所述获得所述目标数据块的逻辑地址对应的第二写入时间之后至所述将所述物理地址以及所述目标数据块写入所述物理地址对应的存储空间的时间保存在所述目标文件的元数据中之前不能被修改。
  6. 根据权利要求1-5中任一所述的方法,其特征在于,所述存储设备获取所述目标文件的元数据的快照包括:
    当预设的时间到达时或者接收到文件迁移指令时,所述存储设备获取所述目标文件的元数据的快照。
  7. 一种文件迁移装置,其特征在于,所述装置位于存储设备中,所述存储设备保存有目标文件,所述目标文件包括多个数据块,所述装置包括碎片整理模块,其中,所述碎片整理模块包括:
    快照获取模块,用于获取所述目标文件的元数据的快照,所述快照包括所述多个数据块的逻辑地址和所述多个数据块的第一写入时间,所述第一写入时间是指所述快照中记录的所述数据块写入所述存储设备的时间;
    地址映射模块,用于保存所述目标文件的元数据的快照以及目标文件的元数据;
    所述快照获取模块,还用于从所述多个数据块的逻辑地址和所述多个数据块的第一写入时间中,确定目标数据块的逻辑地址和所述目标数据块的第一写入时间;
    迁移模块,用于根据所述目标数据块的逻辑地址从所述地址映射模块保存的所述目标文件的元数据中获得所述目标数据块的逻辑地址对应的第二写入时间,其中所述目标文件的元数据包括所述目标数据块的逻辑地址和所述第二写入时间,所述第二写入时间是指所述目标数据块的最近一次写入所 述存储设备的时间;
    所述迁移模块,还用于确定所述第一写入时间与所述第二写入时间相同时,将所述目标数据块迁移到预先分配的连续的存储空间中。
  8. 根据权利要求7所述的装置,其特征在于,所述文件迁移装置还包括空间管理模块,用于预先分配所述连续的存储空间,所述存储空间的大小不小于所述目标文件的大小。
  9. 根据权利要求7或8所述的装置,其特征在于,
    所述迁移模块,还用于在所述存储空间中为所述目标数据块分配物理地址;
    所述迁移模块具体用于:将所述目标数据块写入所述物理地址对应的存储空间中。
  10. 根据权利要求9所述的装置,其特征在于,
    所述迁移模块,还用于在所述存储空间中为所述目标数据块分配物理地址之后将所述物理地址以及所述目标数据块写入所述物理地址对应的存储空间的时间保存在所述目标文件的元数据中。
  11. 根据权利要求10所述的装置,其特征在于,
    所述迁移模块,还用于对所述目标数据块的逻辑地址和所述第二写入时间执行加锁操作,使得所述目标数据块的逻辑地址和所述第二写入时间在所述获得所述目标数据块的逻辑地址对应的第二写入时间之后至所述将所述物理地址以及所述目标数据块写入所述物理地址对应的存储空间的时间保存在所述目标文件的元数据中之前不能被修改。
  12. 根据权利要求7-11任一所述的装置,其特征在于,所述碎片整理模块还包括触发器;
    所述触发器,用于设置预设的时间,或者接收文件迁移指令;
    所述快照获取模块,具体用于当预设的时间到达时或者接收到文件迁移指令时,获取所述目标文件的元数据的快照。
  13. 一种存储设备,其特征在于,所述存储设备包括控制器和磁盘,所述控制器包括处理器和通信接口;
    所述通信接口,用于与所述磁盘进行通信;
    所述处理器,用于获取所述目标文件的元数据的快照,所述快照包括所述多个数据块的逻辑地址和所述多个数据块的第一写入时间,所述第一写入时间是指所述快照中记录的所述数据块写入所述磁盘的时间;
    从所述多个数据块的逻辑地址和所述多个数据块的第一写入时间中,确定目标数据块的逻辑地址和所述目标数据块的第一写入时间;
    根据所述目标数据块的逻辑地址从所述目标文件的元数据中获得所述目标数据块的逻辑地址对应的第二写入时间,其中所述目标文件的元数据包括所述目标数据块的逻辑地址和所述第二写入时间,所述第二写入时间是指所述目标数据块最近一次写入所述磁盘的时间;
    确定所述第一写入时间与所述第二写入时间相同时,将所述目标数据块迁移到预先分配的连续的存储空间中。
  14. 根据权利要求13所述的存储设备,其特征在于,
    所述处理器,还用于预先分配所述连续的存储空间,所述存储空间的大小不小于所述目标文件的大小。
  15. 根据权利要求13或14所述的存储设备,其特征在于,
    所述处理器,还用于在所述存储空间中为所述目标数据块分配物理地址;
    所述处理器具体用于将所述目标数据块写入所述物理地址对应的存储空间中。
  16. 根据权利要求15所述的存储设备,其特征在于,
    所述处理器,还用于在所述存储空间中为所述目标数据块分配物理地址之后将所述物理地址以及所述目标数据块写入所述物理地址对应的存储空间的时间保存在所述目标文件的元数据中。
  17. 根据权利要求16所述的存储设备,其特征在于,
    所述处理器,还用于在所述根据所述目标数据块的逻辑地址从所述目标文件的元数据中获得所述目标数据块的逻辑地址对应的第二写入时间时,对所述目标数据块的逻辑地址和所述第二写入时间执行加锁操作,使得所述目标数据块的逻辑地址和所述第二写入时间在所述获得所述目标数据块的逻辑地址对应的第二写入时间之后至所述将所述物理地址以及所述目标数据块写入所述物理地址对应的存储空间的时间保存在所述目标文件的元数据中之前不能被修改。
  18. 根据权利要求13-17任一所述的存储设备,其特征在于,
    所述处理器,具体用于当预设的时间到达时或者接收到文件迁移指令时,所述存储设备获取所述目标文件的元数据的快照。
CN201480037601.8A 2014-09-26 2014-09-26 一种文件迁移方法、装置和存储设备 Active CN105637491B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/087572 WO2016045096A1 (zh) 2014-09-26 2014-09-26 一种文件迁移方法、装置和存储设备

Publications (2)

Publication Number Publication Date
CN105637491A true CN105637491A (zh) 2016-06-01
CN105637491B CN105637491B (zh) 2017-06-20

Family

ID=55580143

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480037601.8A Active CN105637491B (zh) 2014-09-26 2014-09-26 一种文件迁移方法、装置和存储设备

Country Status (5)

Country Link
US (1) US10417186B2 (zh)
EP (1) EP3035197B1 (zh)
JP (1) JP6122557B2 (zh)
CN (1) CN105637491B (zh)
WO (1) WO2016045096A1 (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107229429A (zh) * 2017-06-27 2017-10-03 郑州云海信息技术有限公司 一种存储空间管理方法及装置
CN107643880A (zh) * 2017-09-27 2018-01-30 郑州云海信息技术有限公司 基于分布式文件系统的文件数据迁移的方法及装置
CN108021337A (zh) * 2016-10-31 2018-05-11 甲骨文国际公司 用于流线型访问和迁移的数据打包的存储容器
CN108021336A (zh) * 2016-10-31 2018-05-11 甲骨文国际公司 用于无缝数据迁移的数据布局方案
CN108959486A (zh) * 2018-06-22 2018-12-07 平安科技(深圳)有限公司 审计字段信息获取方法、装置、计算机设备和存储介质
CN110915161A (zh) * 2017-07-12 2020-03-24 惠普发展公司,有限责任合伙企业 存储器设备的迁移
CN111007990A (zh) * 2019-12-24 2020-04-14 曙光信息产业(北京)有限公司 一种对快照系统中数据块引用进行快速定位的定位方法
CN111857593A (zh) * 2020-07-21 2020-10-30 星辰天合(北京)数据科技有限公司 提高快照数据和克隆数据读写速度的方法与装置
CN112463058A (zh) * 2020-11-27 2021-03-09 杭州海康威视系统技术有限公司 一种碎片数据整理方法、装置及存储节点
CN114356224A (zh) * 2021-12-15 2022-04-15 广州致存科技有限责任公司 文件地址优化方法、终端、服务器及计算机可读存储介质
CN115629716A (zh) * 2022-12-07 2023-01-20 广东睿江云计算股份有限公司 基于磁盘镜像文件的碎片整理方法及碎片整理系统
US11599504B2 (en) 2016-10-27 2023-03-07 Oracle International Corporation Executing a conditional command on an object stored in a storage system
US11726979B2 (en) 2016-09-13 2023-08-15 Oracle International Corporation Determining a chronological order of transactions executed in relation to an object stored in a storage system

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9881040B2 (en) * 2015-08-20 2018-01-30 Vmware, Inc. Tracking data of virtual disk snapshots using tree data structures
CN106648909A (zh) * 2016-10-13 2017-05-10 华为技术有限公司 一种磁盘锁的管理方法、装置和系统
US11194760B1 (en) * 2017-07-28 2021-12-07 EMC IP Holding Company LLC Fast object snapshot via background processing
KR102406666B1 (ko) 2017-09-20 2022-06-08 삼성전자주식회사 스냅샷 기능을 지원하는 키-밸류 스토리지 장치 및 상기 키-밸류 스토리지 장치의 동작 방법
US10282099B1 (en) * 2017-10-27 2019-05-07 Netapp, Inc. Intelligent snapshot tiering
CN110018988B (zh) * 2017-11-08 2023-04-04 阿里巴巴集团控股有限公司 快照删除方法、处理方法、装置及系统
US10254996B1 (en) * 2018-08-10 2019-04-09 Cohesity, Inc. Fast migration of metadata
CN109359085A (zh) * 2018-08-23 2019-02-19 平安科技(深圳)有限公司 文件迁移方法、装置、计算机设备及存储介质
US10877849B2 (en) * 2018-08-25 2020-12-29 Vmware, Inc. System and method for managing different types of snapshots of storage objects
US10872059B2 (en) * 2018-08-25 2020-12-22 Vmware, Inc. System and method for managing snapshots of storage objects for snapshot deletions
CN111045857B (zh) * 2018-10-12 2023-11-28 伊姆西Ip控股有限责任公司 数据备份和恢复的方法、电子设备和计算机可读存储介质
CN109918208A (zh) * 2019-02-28 2019-06-21 新华三技术有限公司成都分公司 一种io操作处理方法及装置
CN111723056B (zh) * 2020-06-09 2024-04-30 北京青云科技股份有限公司 小文件的处理方法、装置、设备和存储介质
CN112214175A (zh) * 2020-10-21 2021-01-12 重庆紫光华山智安科技有限公司 数据处理方法、装置、数据节点及存储介质
CN112988065B (zh) * 2021-02-08 2023-11-17 北京星网锐捷网络技术有限公司 数据迁移方法、装置、设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120303918A1 (en) * 2011-05-25 2012-11-29 International Business Machines Corporation Defragmentation of data storage pools
CN103761053A (zh) * 2013-12-30 2014-04-30 华为技术有限公司 一种数据处理方法和装置

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5530850A (en) 1993-10-25 1996-06-25 International Business Machines Corporation Data storage library array with log-structured file system which allows simultaneous write and garbage collection
US7107385B2 (en) 2002-08-09 2006-09-12 Network Appliance, Inc. Storage virtualization by layering virtual disk objects on a file system
JP4257785B2 (ja) * 2003-04-22 2009-04-22 株式会社日立製作所 キャッシュストレージ装置
US7822715B2 (en) * 2004-11-16 2010-10-26 Petruzzo Stephen E Data mirroring method
CN101369967A (zh) 2007-08-14 2009-02-18 华为技术有限公司 发送及接收数据的方法、基站、终端
CN101576890B (zh) 2008-05-08 2015-06-17 深圳市朗科科技股份有限公司 一种新型碎片整理方法和系统
JP5141402B2 (ja) * 2008-06-26 2013-02-13 富士通株式会社 ストレージシステム,コピー制御方法およびコピー制御装置
CN102171664B (zh) 2008-08-06 2014-12-03 莫维克网络公司 无线电接入网(ran)中的内容高速缓存
CN101520743B (zh) * 2009-04-17 2010-12-08 杭州华三通信技术有限公司 基于写时拷贝的数据存储方法及设备
US8285959B2 (en) * 2010-01-25 2012-10-09 Netapp, Inc. Method for placement of virtual volume hot-spots in storage pools using ongoing load measurements and ranking
US8886900B2 (en) * 2010-11-22 2014-11-11 International Business Machines Corporation Legacy data management
FR2980285B1 (fr) * 2011-09-15 2013-11-15 Maxim Integrated Products Systemes et procedes de gestion de cles cryptographiques dans un microcontroleur securise
CN103827970B (zh) 2012-09-25 2016-05-18 株式会社东芝 对固态驱动器再配置数据的存储装置、存储控制器以及方法
US9448927B1 (en) * 2012-12-19 2016-09-20 Springpath, Inc. System and methods for removing obsolete data in a distributed system of hybrid storage and compute nodes
US9891860B1 (en) * 2013-06-28 2018-02-13 EMC IP Holding Company, LLC. Managing copying of data in storage systems
US9367395B1 (en) * 2014-03-31 2016-06-14 Emc Corporation Managing data inconsistencies in storage systems
CN104159249B (zh) 2014-07-30 2018-05-18 华为技术有限公司 一种业务数据管理的方法、装置及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120303918A1 (en) * 2011-05-25 2012-11-29 International Business Machines Corporation Defragmentation of data storage pools
CN103562881A (zh) * 2011-05-25 2014-02-05 国际商业机器公司 数据存储池的碎片整理
CN103761053A (zh) * 2013-12-30 2014-04-30 华为技术有限公司 一种数据处理方法和装置

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11726979B2 (en) 2016-09-13 2023-08-15 Oracle International Corporation Determining a chronological order of transactions executed in relation to an object stored in a storage system
US11599504B2 (en) 2016-10-27 2023-03-07 Oracle International Corporation Executing a conditional command on an object stored in a storage system
CN108021337B (zh) * 2016-10-31 2023-07-11 甲骨文国际公司 用于流线型访问和迁移的数据打包的存储容器
CN108021337A (zh) * 2016-10-31 2018-05-11 甲骨文国际公司 用于流线型访问和迁移的数据打包的存储容器
CN108021336A (zh) * 2016-10-31 2018-05-11 甲骨文国际公司 用于无缝数据迁移的数据布局方案
CN107229429B (zh) * 2017-06-27 2020-06-16 苏州浪潮智能科技有限公司 一种存储空间管理方法及装置
CN107229429A (zh) * 2017-06-27 2017-10-03 郑州云海信息技术有限公司 一种存储空间管理方法及装置
CN110915161A (zh) * 2017-07-12 2020-03-24 惠普发展公司,有限责任合伙企业 存储器设备的迁移
CN107643880A (zh) * 2017-09-27 2018-01-30 郑州云海信息技术有限公司 基于分布式文件系统的文件数据迁移的方法及装置
CN107643880B (zh) * 2017-09-27 2021-06-29 郑州云海信息技术有限公司 基于分布式文件系统的文件数据迁移的方法及装置
CN108959486A (zh) * 2018-06-22 2018-12-07 平安科技(深圳)有限公司 审计字段信息获取方法、装置、计算机设备和存储介质
CN108959486B (zh) * 2018-06-22 2023-04-18 平安科技(深圳)有限公司 审计字段信息获取方法、装置、计算机设备和存储介质
CN111007990A (zh) * 2019-12-24 2020-04-14 曙光信息产业(北京)有限公司 一种对快照系统中数据块引用进行快速定位的定位方法
CN111007990B (zh) * 2019-12-24 2023-09-19 曙光信息产业(北京)有限公司 一种对快照系统中数据块引用进行快速定位的定位方法
CN111857593A (zh) * 2020-07-21 2020-10-30 星辰天合(北京)数据科技有限公司 提高快照数据和克隆数据读写速度的方法与装置
CN112463058A (zh) * 2020-11-27 2021-03-09 杭州海康威视系统技术有限公司 一种碎片数据整理方法、装置及存储节点
CN114356224A (zh) * 2021-12-15 2022-04-15 广州致存科技有限责任公司 文件地址优化方法、终端、服务器及计算机可读存储介质
CN114356224B (zh) * 2021-12-15 2024-04-19 广州致存科技有限责任公司 文件地址优化方法、终端、服务器及计算机可读存储介质
CN115629716A (zh) * 2022-12-07 2023-01-20 广东睿江云计算股份有限公司 基于磁盘镜像文件的碎片整理方法及碎片整理系统

Also Published As

Publication number Publication date
EP3035197B1 (en) 2019-03-20
JP6122557B2 (ja) 2017-04-26
US10417186B2 (en) 2019-09-17
EP3035197A1 (en) 2016-06-22
US20160210302A1 (en) 2016-07-21
EP3035197A4 (en) 2016-11-16
CN105637491B (zh) 2017-06-20
JP2016535910A (ja) 2016-11-17
WO2016045096A1 (zh) 2016-03-31

Similar Documents

Publication Publication Date Title
CN105637491A (zh) 一种文件迁移方法、装置和存储设备
JP7437117B2 (ja) ソリッドステートドライブ(ssd)及び分散データストレージシステム並びにその方法
US8904136B2 (en) Optimized shrinking of virtual disks
US10374792B1 (en) Layout-independent cryptographic stamp of a distributed dataset
KR102013430B1 (ko) 어레이 컨트롤러, 솔리드 스테이트 디스크, 및 데이터를 기록하기 위해 솔리드 스테이트 디스크를 제어하는 방법
US11693789B2 (en) System and method for mapping objects to regions
EP3312714B1 (en) Distributed data parallel method for reclaiming space
US9785547B2 (en) Data management apparatus and method
AU2020361670B2 (en) Virtual memory metadata management
US9430492B1 (en) Efficient scavenging of data and metadata file system blocks
WO2021047425A1 (zh) 一种持久性内存的虚拟化方法及系统
CN105744001A (zh) 分布式缓存系统扩容方法、数据访问方法及装置和系统
CN113939796A (zh) 使用ReFS扩展文件系统以及扩展卷
CN113805816B (zh) 一种磁盘空间管理方法、装置、设备及存储介质
EP2669806A1 (en) Storage system
US11176089B2 (en) Systems and methods for implementing dynamic file systems
US10614055B2 (en) Method and system for tree management of trees under multi-version concurrency control
CN104537023A (zh) 一种反向索引记录的存储方法及装置
US10606822B2 (en) Dynamically updating metadata
CN105786608A (zh) 异地虚拟机去重迁移方法及系统
US10853320B1 (en) Scavenging directories for free space
US11971848B2 (en) Efficient transparent switchover of file system consolidation migrations
CN115543179A (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