CN117076191A - Hdd磁盘上文件元数据备份方法及元数据备份服务器 - Google Patents

Hdd磁盘上文件元数据备份方法及元数据备份服务器 Download PDF

Info

Publication number
CN117076191A
CN117076191A CN202310530686.4A CN202310530686A CN117076191A CN 117076191 A CN117076191 A CN 117076191A CN 202310530686 A CN202310530686 A CN 202310530686A CN 117076191 A CN117076191 A CN 117076191A
Authority
CN
China
Prior art keywords
file
metadata
information
data
closed
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.)
Pending
Application number
CN202310530686.4A
Other languages
English (en)
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.)
Alibaba China Co Ltd
Original Assignee
Alibaba China 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 Alibaba China Co Ltd filed Critical Alibaba China Co Ltd
Priority to CN202310530686.4A priority Critical patent/CN117076191A/zh
Publication of CN117076191A publication Critical patent/CN117076191A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • 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/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1734Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • 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/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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种HDD磁盘上文件元数据备份方法及元数据备份服务器,涉及云计算技术领域,该方法包括:获取数据服务在所述HDD磁盘上写入数据的目录信息;监测所述目录信息的写入文件关闭事件,获取根据所述写入文件关闭事件返回的关闭文件信息;根据所述关闭文件信息确定关闭文件,获取所述关闭文件的元数据,以及备份所述元数据至元数据备份仓库。本发明可以尽量在元数据还在内核内存时,获取关闭文件的元数据,在规避了额外的磁盘IO操作的情况下,实现备份所述元数据至元数据备份仓库。

Description

HDD磁盘上文件元数据备份方法及元数据备份服务器
技术领域
本申请涉及到云计算领域,具体而言,涉及一种HDD磁盘上文件元数据备份方法及元数据备份服务器。
背景技术
本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
对于存储系统来说,不丢不错是永恒的追求,但是在生产系统中,仍然面临各种原因的数据删除后找回需求,比如存储系统软件问题造成的文件误删、运维操作导致的文件误删或者文件系统损坏、用户误操作导致文件被删等等。为了守住数据不丢的底线,满足用户业务的需求,存储系统需要恢复这些被误删除的文件。对于SSD((Solid State Disk或Solid State Drive,固态硬盘)闪存盘来说,全盘扫描不失为最后的保障,但是对于空间越来越大,但IO(Input/Output,输入/输出)能力变化不大的HDD(Hard Disk Drive,机械硬盘)磁盘来说,全盘扫描的时间需要按周计算,这严重影响了存储服务恢复的时效性,可能会对信息造成毁灭性的打击。为了加快数据恢复的速度,备份HDD上文件的元数据尤为重要。但现有的备份方案需要消耗较多的磁盘IO能力,这对于性能捉襟见肘的HDD磁盘来说,经常是不可接受的。
发明内容
本申请实施例提供了一种HDD磁盘上文件元数据备份方法及元数据备份服务器,可以在规避额外的磁盘IO操作的情况下,完成HDD磁盘上文件元数据的备份。
根据本申请的一个方面,还提供了一种HDD磁盘上文件元数据备份方法,包括:获取数据服务在所述HDD磁盘上写入数据的目录信息;监测所述目录信息的写入文件关闭事件,获取根据所述写入文件关闭事件返回的关闭文件信息;根据所述关闭文件信息确定关闭文件,获取所述关闭文件的元数据,以及备份所述元数据至元数据备份仓库。
根据本申请的另一个方面,还提供了一种元数据备份服务器,包括:获取模块、事件模块和备份模块:所述获取模块,用于获取数据服务在HDD磁盘上写入数据的目录信息;所述事件模块,用于监测所述目录信息的写入文件关闭事件,获取根据所述写入文件关闭事件返回的关闭文件信息;所述备份模块,用于根据所述关闭文件信息确定关闭文件,获取所述关闭文件的元数据,以及备份所述元数据至元数据备份仓库。
根据本申请的另一个方面,还提供了一种存储系统,包括:上述的元数据备份服务器。
根据本申请的另一个方面,还提供了一种电子设备,包括:处理器;以及存储程序的存储器,其中,所述程序包括指令,所述指令在由所述处理器执行时使所述处理器执行根据上述的方法。
根据本申请的另一个方面,还提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据上述的方法步骤。
根据本申请的另一个方面,还提供了一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述的方法步骤。
本发明实施例的有益效果:
在本发明实施例中,获取数据服务在所述HDD磁盘上写入数据的目录信息;监测所述目录信息的写入文件关闭事件,获取根据所述写入文件关闭事件返回的关闭文件信息;根据所述关闭文件信息确定关闭文件,获取所述关闭文件的元数据,以及备份所述元数据至元数据备份仓库。本发明在操作系统中监测数据服务在HDD磁盘上写入数据的目录信息,在监测到发生写入文件关闭事件时,获取根据所述写入文件关闭事件返回的关闭文件信息,根据所述关闭文件信息确定关闭文件,从而尽量在元数据还在内核内存时,获取关闭文件的元数据,在规避了额外的磁盘IO操作的情况下,实现备份所述元数据至元数据备份仓库。
本发明的一个或多个实施例的细节在以下附图和描述中提出,以使本发明的其他特征、目的和优点更加简明易懂。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1是本发明实施例的HDD磁盘上文件元数据备份方法的流程图;
图2是本发明实施例的常规备份和修正备份流程示意图;
图3是能够用于实现本发明的实施例的示例性电子设备的结构框图。
具体实施方式
下面将参照附图更详细地描述本发明实施例。虽然附图中显示了本发明的某些实施例,然而应当理解的是,本发明可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本发明。应当理解的是,本发明的附图及实施例仅用于示例性作用,并非用于限制本发明的保护范围。
现有的HDD磁盘上文件元数据备份方案一,通过对文件全量/增量扫描实现元数据的备份。该方案定期的对盘上存储的文件进行扫描,然后逐个文件的调用stat获取文件的元数据信息,通过fiemap接口获取文件的extent信息,然后把每个文件的元数据/extent信息持久化,从而完成文件元数据的全量备份或者自从上次备份以后修改文件元数据的增量备份。但是这种方法文件遍历顺序和磁盘存储方式解耦,所以需要大量的随机读操作,从而需要消耗过多的磁盘性能,对正常服务会造成影响。
现有的HDD磁盘上文件元数据备份方案二,是文件系统特异的元数据备份方案。实现该方案二的第一种方式是inode table(一个文件系统中的数据结构,用于存储文件和目录的元数据信息,包括文件的大小、创建时间、修改时间、访问权限等)备份方式:对于常规的文件系统设计,元数据通常存储在相对连续的区域,为了降低元数据备份的磁盘IO数量,可以通过解析文件系统元数据区内容的方式完成元数据备份,比如ext3每个inode的存储空间占用128字节,ext4每个inode的空间占用256字节,一次64K的IO操作可以获取512个ext3分区文件的元数据或256个ext4分区文件的元数据,从而相比方案一量级的节省磁盘IO的数量。
因为HDD磁盘的IOPS(Input/Output Operations Per Second,每秒输入/输出操作数)上限比较低,而且存储数据普遍比较离散,所以方案一和方案二的第一种方式的随机读写比较频繁,元数据备份方式对HDD非常不友好。实现该方案二的第二种方式是journal区备份方式,通过解析文件系统journal区完成备份。因为journal区含有被修改元数据的备份,通过解析文件系统特异性的journal格式完成元数据备份。但journal区经常会保留对同一个文件的多次修改,另外存储效率低,浪费空间多,还经常面对journal预留空间可能较小的问题,从而对备份服务读journal时间窗口要求很高。另外不同文件系统的journal格式可能不一样,增加了方案适配的复杂度。
在常规的通过扫描文件或者备份文件系统元数据区、Journal区的方案中,都不可避免的需要读取HDD盘上的数据,从而消耗磁盘IO能力,进而影响服务的性能。为了降低磁盘IO的操作,也可以通过增强内核完成元数据备份。比如通过内核模块或者BPF(BerkeleyPacket Filter,一种高效的网络数据包处理技术)等方案,增强内核功能,在内核中发现文件的元数据发生修改以后,持久化被修改文件的元数据,从而完成备份。但这种方案需要内核态的修改,所以对开发的要求非常高,稍有不慎引入BUG会有系统崩溃的可能,另外随着内核版本的变更迭代,也会引入不可控的适配风险。
基于以上背景,本申请现提出一种HDD磁盘上文件元数据备份方法及元数据备份服务器,该方法在写入文件的元数据还在内存的情况下,获取文件的元数据信息、extent信息等,从而完成数据的备份,最终达到文件系统元数据备份的磁盘开销接近于无。
首先,对涉及的术语进行说明。
文件系统:操作系统用于存储设备或分区上的文件的方法和数据结构,即在存储设备上组织文件的方法。
ext4文件系统:第四代扩展文件系统(Fourth extended filesystem,ext4),Linux系统下的日志文件系统,是ext3文件系统的后继版本。
元数据(Metadata):又称中介数据、中继数据,为描述数据的数据,主要是描述数据属性的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。
extent:是文件系统中的一种数据结构,用于管理文件在磁盘上的存储和检索。
fiemap(一种Linux文件系统的系统调用):现代很多文件系统都采用了extent替代block来管理磁盘。extent就是一些连续的block,一个extent由起始的block加上长度进行定义。fiemap是一种用户态获取文件存储extent信息的方法。
备份:容灾的基础,是指为防止系统出现操作失误或系统故障导致数据丢失,而将全部或部分数据集合从应用主机的硬盘或阵列复制到其它的存储介质的过程。
stat:是一个Unix/Linux系统调用,用于获取文件的元数据信息,包括文件的类型、大小、权限、创建时间、修改时间、访问时间等信息。通过调用stat函数,可以获取文件的元数据信息,并将其存储在一个结构体中。
inode:是文件系统中的一种数据结构,用于管理文件和目录的元数据信息。每个文件和目录都有一个对应的inode,inode包含了文件或目录的属性、权限、大小、创建时间、修改时间、访问时间等信息,但不包含文件的实际数据。
journal:是一种文件系统的日志记录机制,用于记录文件系统的操作和状态变化。journal可以记录文件系统的元数据信息,包括文件的创建、修改、删除、移动等操作,以及文件系统的状态变化,如文件系统的挂载、卸载、恢复等操作。
inotify:是Linux内核提供的一种文件系统监控机制,它可以监控文件系统中的文件和目录,当文件或目录发生变化时,可以及时通知应用程序。
在本实施例中提供了一种HDD磁盘上文件元数据备份方法,图1是根据本申请实施例的HDD磁盘上文件元数据备份方法的流程图,下面对图1中所涉及到的方法步骤进行说明。
步骤S102,获取数据服务在所述HDD磁盘上写入数据的目录信息。
在该步骤中,数据服务负责写入数据操作。例如,将需要存储的各种来源的数据写入HDD磁盘上的某个目录下的某个文件内。目录信息为这些被写入文件所在的目录。不同的文件信息可以属于同一个目录或者不同的目录。
需要说明的是,HDD磁盘是计算机存储的主要形式之一,它们通常用于桌面计算机、笔记本电脑、服务器和其他设备中。
在该步骤中,HDD磁盘上文件元数据备份启动后,获取数据服务写入数据的目录信息,以便对目录信息下的写入文件的状态进行监测。
步骤S104,监测所述目录信息的写入文件关闭事件,获取根据所述写入文件关闭事件返回的关闭文件信息。
在该步骤中,写入文件关闭事件,用于表征写入文件完成本次写入或修改,写入文件被关闭。监测目录信息对应的各个写入文件的状态,当监测到写入文件关闭事件时,操作系统会根据写入文件关闭事件,返回被关闭的文件相关的描述信息和识别信息,即关闭文件信息。获取该根据所述写入文件关闭事件返回的关闭文件信息。
需要说明的是,写入文件关闭事件指的是在文件写入完成后,关闭文件的操作。关闭文件的操作可以包括以下几个方面:刷新缓冲区、释放文件资源和确保数据完整性。关闭文件的操作,可以确保数据的持久化存储和文件资源的释放。
另外需要说明的是,上述被关闭的文件相关的描述信息中可以包括该被关闭的文件的修改内容信息。上述被关闭的文件相关的识别信息,可以用于识别以及查询到该被关闭的文件。
在该步骤中,在监测到目录信息的写入文件关闭事件时,此时,文件虽然被关闭,但是元数据还在操作系统的内存中,因此,获取关闭文件信息,以便后续基于文件信息获取元数据,在关闭时间点马上进行元数据查询不会产生额外的磁盘IO。
步骤S106,根据所述关闭文件信息确定关闭文件,获取所述关闭文件的元数据,以及备份所述元数据至元数据备份仓库。
在该步骤中,在得到关闭文件信息后,即可确定出被关闭的写入文件,即关闭文件。在该关闭文件的元数据还在内存的情况下,可以实时地通过标准的操作系统接口获取所述关闭文件的元数据,从而完成数据的备份。
需要说明的是,文件的元数据是指描述文件属性、特征、结构、格式、来源、质量等信息的数据。常见的文件元数据包括:文件名:文件的名称,用于标识文件。文件类型:文件的类型,如文本文件、图像文件、音频文件、视频文件等。文件大小:文件的大小,以字节、千字节、兆字节等单位表示。创建时间和修改时间:文件的创建时间和最后修改时间。文件路径:文件在文件系统中的路径,用于标识文件的位置。文件权限:文件的访问权限,包括读、写、执行等权限。文件格式:文件的格式,如文本文件的编码格式、图像文件的压缩格式等。文件版本:文件的版本号,用于标识文件的不同版本。文件摘要:文件的摘要信息,如文件的哈希值、数字签名等。
另外需要说明的是,元数据备份仓库可以是本地磁盘、网络存储设备或云存储服务,具体采用的元数据备份仓库可以根据实际需求进行选择,本发明实施例对此不作具体限定。将系统元数据备份到元数据备份仓库,以便在系统故障或数据丢失时进行恢复。
在本发明实施例中,获取数据服务在所述HDD磁盘上写入数据的目录信息;监测所述目录信息的写入文件关闭事件,获取根据所述写入文件关闭事件返回的关闭文件信息;根据所述关闭文件信息确定关闭文件,获取所述关闭文件的元数据,以及备份所述元数据至元数据备份仓库。本发明在操作系统中监测数据服务在HDD磁盘上写入数据的目录信息,在监测到发生写入文件关闭事件时,获取根据所述写入文件关闭事件返回的关闭文件信息,根据所述关闭文件信息确定关闭文件,从而尽量在元数据还在内核内存时,获取关闭文件的元数据,在规避了额外的磁盘IO操作的情况下,实现备份所述元数据至元数据备份仓库。
在一种可能的实施方式中,监测所述目录信息的写入文件关闭事件,获取根据所述写入文件关闭事件返回的关闭文件信息,可以按照如下步骤执行:利用inotify组件,监测所述目录信息的写入文件关闭事件,获取所述inotify组件根据所述写入文件关闭事件返回的关闭文件信息;其中,所述关闭文件信息包括监控描述符和文件名。
在本发明实施例中,inotify可以帮助应用程序实时监控文件系统的变化,提高应用程序的效率和可靠性。利用inotify组件,监测所述目录信息的写入文件关闭事件,当监测到写入文件关闭事件时,可以及时地获取所述inotify组件根据所述写入文件关闭事件返回的关闭文件信息。
关闭文件信息包括监控描述符和文件名。其中,监控描述符(Watch Descriptor,WD)是inotify机制中的一个概念,它表示一个被监控的文件或目录。在使用inotify机制时,应用程序可以使用inotify_init()函数创建一个inotify实例,并使用inotify_add_watch()函数添加一个监控目录,返回代表该目录的监控描述符。监控描述符和文件名可以用于识别关闭文件的完整路径并唯一定位修改的文件。
需要说明的是,inotify可以用于:文件系统监控:inotify可以监控文件系统中的文件和目录,包括文件的创建、修改、删除、移动等操作。当文件或目录发生变化时,inotify会及时通知应用程序。实时通知:inotify可以实时通知应用程序文件系统的变化,避免了轮询文件系统的开销和延迟。精确监控:inotify可以精确监控文件系统中的文件和目录,可以指定监控的文件类型、目录层级、文件名等。应用场景广泛:inotify可以应用于很多场景,如文件同步、日志监控、安全审计等。
在一种可能的实施方式中,根据所述关闭文件信息确定关闭文件,可以按照如下步骤执行:根据所述监控描述符和所述文件名生成关闭文件路径;根据所述关闭文件路径确定关闭文件。
在本发明实施例中,利用监控描述符和文件名进行拼接,可以得到关闭文件路径,关闭文件路径可以用于查找到关闭文件。
在该步骤中,可以基于关闭文件路径获得关闭文件,为基于关闭文件获取元数据提供支持。
在一种可能的实施方式中,获取所述关闭文件的元数据,可以按照如下步骤执行:利用fiemap接口和/或stat系统调用,获取所述关闭文件的元数据。
在本发明实施例中,fiemap接口和stat都可以用于获取文件系统的元数据信息,但是它们的使用场景略有不同。
fiemap接口主要用于获取文件在磁盘上的物理位置信息,可以用于实现文件碎片整理、文件压缩等操作。fiemap可以获取文件的所有物理块的位置信息,包括稀疏文件中的空洞块。fiemap的使用需要文件系统支持。
而stat系统调用则主要用于获取文件的基本属性信息,如文件大小、创建时间、修改时间、访问时间等。stat可以获取文件的inode号,可以用于判断两个文件是否为同一个文件。stat的使用不需要root权限,可以适用于普通用户。
综上可知,如果需要获取文件的物理位置信息,可以使用fiemap接口;如果需要获取文件的基本属性信息,可以使用stat调用,也可根据实际需求,同时采用该两种方式获取关闭文件的元数据,具体选择何种方式获取元数据,可以根据实际需求进行确定,本发明实施例对此不作具体限定。
考虑到常规备份路径依赖于备份服务能够感知所有文件的修改,并且正常持久化这些修改文件的元数据,但是实际操作中,inotify监视的事件有可能丢失,并且元数据备份服务有可能在某个时刻突然被杀或者异常退出,造成期间修改文件的元数据没有正常备份,这种情况下,就需要单独的修正备份通道进行查漏补缺,因此,在一种可能的实施方式中,备份所述元数据后,还可以执行如下步骤:获取所述数据服务管理的第一文件的第一元数据;其中,所述第一元数据包括文件名数据、创建时刻数据、Inode数据和文件长度数据中的一种或几种;加载所述元数据备份仓库中的第二元数据;对比所述第一元数据和所述第二元数据,根据对比结果确定增量文件列表信息,根据所述增量文件列表信息,获取增量元数据,以及备份所述增量元数据。
在本发明实施例中,将数据服务正在管理的所有文件作为第一文件,将数据服务中的第一文件的元数据作为第一元数据。第一元数据中包括多种类型的元数据,可以获取其中文件名数据、创建时刻数据、Inode数据和文件长度数据中的一种或几种。将元数据备份仓库中所有的元数据作为第二元数据。
需要说明的是,上述获取第一文件的第一元数据以及加载元数据备份仓库中的第二元数据的两个步骤是两个独立的步骤,二者的执行顺序不分先后,二者可以同时执行,或者择一优先执行,可以根据实际需求确定执行该二者的先后顺序,本发明实施例对此不作具体限定。
对比所述第一元数据和所述第二元数据,将得到的差异信息作为对比结果,根据对比结果确定增量文件列表信息。其中,增量文件列表信息包括多个文件名信息。在得到增量文件列表信息后,按照类似于步骤S106的方法,获取多个需要重新进行备份的文件的元数据,即增量元数据,再将增量元数据补充备份至元数据备份仓库,使元数据备份仓库中的备份元数据与数据服务管理的文件的元数据相对应,避免元数据备份仓库中的备份元数据存在错漏的情况,降低正常备份流程情况下,各种异常问题情况对元数据备份结果的影响。
在该步骤中,通过补充备份增量元数据,可以对常规备份进行查漏补缺,保证元数据的完整性和准确性。
在一种可能的实施方式中,根据对比结果确定增量文件列表信息,可以按照如下步骤执行:若所述第一元数据包括第一目标元数据,且所述第二元数据不包括所述第一目标元数据,则将所述第一目标元数据对应的文件名数据添加至所述增量文件列表信息;若所述第一元数据中的第二目标元数据,与所述第二目标元数据在所述第二元数据中的文件名数据、创建时刻数据、Inode数据和文件长度数据中任一项或几项不同,则将所述第一元数据中所述第二目标元数据的文件名添加至所述增量文件列表信息。
在该步骤中,若某文件对应的第一目标元数据仅存在于第一元数据,不存在于第二元数据中,则说明该文件可能在备份的时候被漏掉或者备份失败,因此,需要将第一目标元数据对应的上述文件的文件名数据添加至所述增量文件列表信息,以便将该文件的元数据补充备份至元数据备份仓库。
需要说明的是,第一目标元数据是第一元数据中的一个子集。第一目标元数据是(或者不是)第二元数据中某个子集的一部分数据。
另外,若备份过程正常进行,则第一元数据中的第二目标元数据包含的文件名数据、创建时刻数据、Inode数据和文件长度数据与第二目标元数据在第二元数据中包含的这些数据相同,若这些数据中任意一项或几项不相同,则将第一元数据中第二目标元数据的文件名添加至所述增量文件列表信息。
需要说明的是,第二目标元数据是某个文件的元数据,若正常备份,则第二目标元数据在第一元数据中和在第二元数据中是一样的,若不一样,则证明备份过程可能存在错误,则以第一元数据中的内容为准,重新对该文件的元数据进行备份。
在该步骤中,文件名数据、创建时刻数据、Inode数据和文件长度数据等元数据信息,需要的存储空间比较少,在存储介质中连续存储,同时可以存储在高性能存储设备中,从而读取开销也比较低。另外,第一文件的第一元数据也可以在内存态通过对数据服务远程过程调用获取,从而对HDD盘的IO性能无损耗。
在一种可能的实施方式中,获取所述数据服务管理的第一文件的第一元数据,可以按照如下步骤执行:通过与所述数据服务远程过程调用和/或加载所述数据服务的checkpoint文件获取所述数据服务管理的第一文件的第一元数据。
在本发明实施例中,远程过程调用(Remote Procedure Call,RPC)是一种计算机通信协议,用于在不同的计算机之间或者同计算机的不同进程间进行远程调用。在RPC中,调用方(客户端)向被调用方(服务器)发送请求消息,请求消息中包含要调用的远程过程的名称和参数。服务器接收到请求消息后,执行相应的远程过程,并将结果返回给客户端。客户端接收到结果后,继续执行本地程序。RPC可以使用不同的传输协议和编码方式。
checkpoint文件是一种用于保存进程状态的文件,通常用于实现进程的恢复和迁移。当一个进程需要被暂停或迁移时,它的状态信息会被写入checkpoint文件中,包括进程的内存映像、寄存器状态、文件描述符等信息。checkpoint文件可以在另一个系统上被读取和恢复,使得进程可以在不同的系统上继续执行。
在该步骤中,通过远程过程调用或checkpoint,或同时采用远程过程调用和checkpoint文件,确定所述数据服务正在管理的第一文件的第一元数据,从而为获得增量元数据提供支持。
参见图2所示的常规备份和修正备份流程示意图,下面以一个具体实施例对该方法可能的实施方式进行说明。为了实现接近无额外磁盘IO的元数据备份服务,可以通过常规备份和查漏补缺的修正备份两个通道完成元数据的备份。其中,
1.常规备份:
a.备份服务启动后,获取数据服务写入数据的目录,然后通过inotify_add_watch注册对这些目录下写入文件关闭事件的监控;
b.在操作系统发现监控目录下文件写fd(文件描述符,是操作系统中用于标识和访问文件或其他输入/输出资源的整数值)关闭之后,会通过inotify_event的方式返回元数据备份服务被关闭文件的监控描述符(wd),以及被关闭的文件名。元数据备份服务器可以基于这两个信息拼接出完成的关闭文件路径;
c.在文件系统中,可以通过stat获取文件的基础元数据,比如文件的长度、创建/修改时间等等。另外操作系统也提供了fiemap的接口,可以在用户态非常高效的获取文件系统上某个文件的存储位置。常规情况下,步骤1b中的文件虽然被关闭,但是元数据还在操作系统的内存中,所以在关闭时间点马上进行元数据查询不会产生额外的磁盘IO。
2.修正备份:
步骤1的常规备份路径依赖于备份服务能够感知所有文件的修改,并且正常持久化这些修改文件的元数据,但是实际操作中,inotify监视的事件有可能丢失,并且元数据备份服务有可能在某个时刻突然被杀或者异常退出,造成期间修改或者新建文件的元数据没有正常备份,这种情况下,就需要单独的修正备份通道进行查漏补缺。基本流程如下:
a.通过RPC或者数据服务的checkpoint文件获取当前数据服务中有效的文件列表和必要的元数据,比如文件长度、创建时间、Inode号等。checkpoint中存储信息需要的存储空间比较少,在存储介质中连续存储,从而读取开销也比较低,另外也可以在内存态通过RPC获取,从而对HDD盘的IO性能无损耗
b.读取元数据备份仓库中已知的备份元数据,构建已知文件元数据备份表
c.比较步骤2a和步骤2b中的条目,如果同时满足如下条件,则认为备份的元数据仍然有效,否则通过可能消耗磁盘IO的类步骤1c的方式,完成元数据备份的查漏补缺:i.文件名相同;ii.创建时间相同;iii.Inode号相同;iv.文件长度相同。
上述元数据备份过程,通过stat/fiemap获取到足够的信息后,可以把包括但不限于文件名(文件路径)、文件长度、文件创建时间、Inode号、extents列表等信息持久化,从而完成元数据备份。
通过如上的方案,可以在常规路径基本无额外HDD磁盘IO的情况下,完成元数据的备份,从而降低了对生产服务的影响,提高了备份服务的可用性。另外,这种备份方式,不需要在存储服务中做任何修改,所以适用性更广。
本申请提供了一种HDD磁盘上文件元数据备份方法,该方法提供了通用的文件系统元数据备份方案,可以适用于多种云上和云下的存储系统。该方法通过操作系统接口,监视数据目录下文件写句柄关闭的事件,以及之后进行查漏补缺的修正方案,能够尽可能的确保相应元数据还在内核内存的时间点查找,从而规避了额外的磁盘IO操作。另外所有操作都是使用的操作系统支持的常规接口,不需要内核做出适配,从而极大地降低各种风险。
本申请还提供了一种元数据备份服务器,包括:获取模块、事件模块和备份模块:所述获取模块,用于获取数据服务在HDD磁盘上写入数据的目录信息;所述事件模块,用于监测所述目录信息的写入文件关闭事件,获取根据所述写入文件关闭事件返回的关闭文件信息;所述备份模块,用于根据所述关闭文件信息确定关闭文件,获取所述关闭文件的元数据,以及备份所述元数据至元数据备份仓库。
在本申请实施例中,所述获取模块,用于获取数据服务在所述HDD磁盘上写入数据的目录信息;所述事件模块,用于监测所述目录信息的写入文件关闭事件,获取根据所述写入文件关闭事件返回的关闭文件信息;所述备份模块,用于根据所述关闭文件信息确定关闭文件,获取所述关闭文件的元数据,以及备份所述元数据至元数据备份仓库。本发明实施例在操作系统中监测数据服务在HDD磁盘上写入数据的目录信息,在监测到发生写入文件关闭事件时,获取根据所述写入文件关闭事件返回的关闭文件信息,根据所述关闭文件信息确定关闭文件,从而尽量在元数据还在内核内存时,获取关闭文件的元数据,在规避了额外的磁盘IO操作的情况下,实现备份所述元数据至元数据备份仓库。
在一种可能的实施方式中,所述事件模块,具体用于:利用inotify组件,监测所述目录信息的写入文件关闭事件,获取所述inotify组件根据所述写入文件关闭事件返回的关闭文件信息;其中,所述关闭文件信息包括监控描述符和文件名。
在一种可能的实施方式中,所述备份模块,具体用于:根据所述监控描述符和所述文件名生成关闭文件路径;根据所述关闭文件路径确定关闭文件。
在一种可能的实施方式中,所述备份模块,具体用于:利用fiemap接口和/或stat系统调用,获取所述关闭文件的元数据。
在一种可能的实施方式中,还包括修正模块,用于:获取所述数据服务管理的第一文件的第一元数据;其中,所述第一元数据包括文件名数据、创建时刻数据、Inode数据和文件长度数据中的一种或几种;加载所述元数据备份仓库中的第二元数据;对比所述第一元数据和所述第二元数据,根据对比结果确定增量文件列表信息;根据所述增量文件列表信息,获取增量元数据,以及备份所述增量元数据。
在一种可能的实施方式中,所述修正模块,具体用于:若所述第一元数据包括第一目标元数据,且所述第二元数据不包括所述第一目标元数据,则将所述第一目标元数据对应的文件名数据添加至所述增量文件列表信息;若所述第一元数据中的第二目标元数据,与所述第二目标元数据在所述第二元数据中的文件名数据、创建时刻数据、Inode数据和文件长度数据中任一项或几项不同,则将所述第一元数据中所述第二目标元数据的文件名添加至所述增量文件列表信息。
在一种可能的实施方式中,所述修正模块,具体用于:通过与所述数据服务远程过程调用和/或加载所述数据服务的checkpoint文件获取所述数据服务管理的第一文件的第一元数据。
本发明实施例还提供一种存储系统,包括:上述的元数据备份服务器。
本发明实施例还提供一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器。所述存储器存储有能够被所述至少一个处理器执行的计算机程序,所述计算机程序在被所述至少一个处理器执行时用于使所述电子设备执行根据本发明实施例的方法。
本发明实施例还提供一种存储有计算机程序的非瞬时计算机可读存储介质,其中,所述计算机程序在被计算机的处理器执行时用于使所述计算机执行根据本发明实施例的方法。
本发明实施例还提供一种计算机程序产品,包括计算机程序,其中,所述计算机程序在被计算机的处理器执行时用于使所述计算机执行根据本发明实施例的方法。
参考图3,现将描述可以作为本发明的服务器或用户的电子设备300的结构框图,其是可以应用于本发明的各方面的硬件设备的示例。电子设备旨在表示各种形式的数字电子的计算机设备,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图3所示,电子设备300包括计算单元301,其可以根据存储在只读存储器(ROM)302中的计算机程序或者从存储单元308加载到随机访问存储器(RAM)303中的计算机程序,来执行各种适当的动作和处理。在RAM 303中,还可存储设备300操作所需的各种程序和数据。计算单元301、ROM 302以及RAM 303通过总线304彼此相连。输入/输出(I/O)接口305也连接至总线304。
电子设备300中的多个部件连接至I/O接口305,包括:输入单元306、输出单元307、存储单元308以及通信单元309。输入单元306可以是能向电子设备300输入信息的任何类型的设备,输入单元306可以接收输入的数字或字符信息,以及产生与电子设备的用户设置和/或功能控制有关的键信号输入。输出单元307可以是能呈现信息的任何类型的设备,并且可以包括但不限于显示器、扬声器、视频/音频输出终端、振动器和/或打印机。存储单元308可以包括但不限于磁盘、光盘。通信单元309允许电子设备300通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据,并且可以包括但不限于调制解调器、网卡、红外通信设备、无线通信收发机和/或芯片组,例如蓝牙设备、WiFi设备、WiMax设备、蜂窝通信设备和/或类似物。
计算单元301可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元301的一些示例包括但不限于处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元301执行上文所描述的各个方法和处理。例如,在一些实施例中,前述的方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元308。在一些实施例中,计算机程序的部分或者全部可以经由ROM302和/或通信单元309而被载入和/或安装到电子设备300上。在一些实施例中,计算单元301可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行前述的方法。
用于实施本发明实施例的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明实施例的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
需要说明的是,本发明实施例使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。本发明实施例中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本发明实施例所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
本发明实施例所提供的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本发明的保护范围在此方面不受限制。
“实施例”一词在本说明书中指的是结合实施例描述的具体特征、结构或特性可以包括在本发明的至少一个实施例中。该短语出现在说明书中的各个位置并不一定意味着相同的实施例,也不意味着与其它实施例相互排斥而具有独立性或可供选择。本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见。尤其,对于装置、设备、系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对专利保护范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明的保护范围应以所附权利要求为准。

Claims (12)

1.一种HDD磁盘上文件元数据备份方法,包括:
获取数据服务在所述HDD磁盘上写入数据的目录信息;
监测所述目录信息的写入文件关闭事件,获取根据所述写入文件关闭事件返回的关闭文件信息;
根据所述关闭文件信息确定关闭文件,获取所述关闭文件的元数据,以及备份所述元数据至元数据备份仓库。
2.根据权利要求1所述的方法,其中,监测所述目录信息的写入文件关闭事件,获取根据所述写入文件关闭事件返回的关闭文件信息,包括:
利用inotify组件,监测所述目录信息的写入文件关闭事件,获取所述inotify组件根据所述写入文件关闭事件返回的关闭文件信息;其中,所述关闭文件信息包括监控描述符和文件名。
3.根据权利要求2所述的方法,其中,根据所述关闭文件信息确定关闭文件,包括:
根据所述监控描述符和所述文件名生成关闭文件路径;
根据所述关闭文件路径确定关闭文件。
4.根据权利要求1所述的方法,其中,获取所述关闭文件的元数据,包括:
利用fiemap接口和/或stat系统调用,获取所述关闭文件的元数据。
5.根据权利要求1-4任一项所述的方法,其中,备份所述元数据后,还包括:
获取所述数据服务管理的第一文件的第一元数据;其中,所述第一元数据包括文件名数据、创建时刻数据、Inode数据和文件长度数据中的一种或几种;
加载所述元数据备份仓库中的第二元数据;
对比所述第一元数据和所述第二元数据,根据对比结果确定增量文件列表信息;
根据所述增量文件列表信息,获取增量元数据,以及备份所述增量元数据。
6.根据权利要求5所述的方法,其中,根据对比结果确定增量文件列表信息,包括:
若所述第一元数据包括第一目标元数据,且所述第二元数据不包括所述第一目标元数据,则将所述第一目标元数据对应的文件名数据添加至所述增量文件列表信息;
若所述第一元数据中的第二目标元数据,与所述第二目标元数据在所述第二元数据中的文件名数据、创建时刻数据、Inode数据和文件长度数据中任一项或几项不同,则将所述第一元数据中所述第二目标元数据的文件名添加至所述增量文件列表信息。
7.根据权利要求5所述的方法,其中,获取所述数据服务管理的第一文件的第一元数据,包括:
通过与所述数据服务远程过程调用和/或加载所述数据服务的checkpoint文件获取所述数据服务管理的第一文件的第一元数据。
8.一种元数据备份服务器,包括:获取模块、事件模块和备份模块:
所述获取模块,用于获取数据服务在HDD磁盘上写入数据的目录信息;
所述事件模块,用于监测所述目录信息的写入文件关闭事件,获取根据所述写入文件关闭事件返回的关闭文件信息;
所述备份模块,用于根据所述关闭文件信息确定关闭文件,获取所述关闭文件的元数据,以及备份所述元数据至元数据备份仓库。
9.一种存储系统,包括:权利要求8所述的元数据备份服务器。
10.一种电子设备,包括:
处理器;以及
存储程序的存储器,
其中,所述程序包括指令,所述指令在由所述处理器执行时使所述处理器执行根据权利要求1-7任一项所述的方法步骤。
11.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-7任一项所述的方法步骤。
12.一种计算机程序产品,其中,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现权利要求1-7任一项所述的方法步骤。
CN202310530686.4A 2023-05-08 2023-05-08 Hdd磁盘上文件元数据备份方法及元数据备份服务器 Pending CN117076191A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310530686.4A CN117076191A (zh) 2023-05-08 2023-05-08 Hdd磁盘上文件元数据备份方法及元数据备份服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310530686.4A CN117076191A (zh) 2023-05-08 2023-05-08 Hdd磁盘上文件元数据备份方法及元数据备份服务器

Publications (1)

Publication Number Publication Date
CN117076191A true CN117076191A (zh) 2023-11-17

Family

ID=88703011

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310530686.4A Pending CN117076191A (zh) 2023-05-08 2023-05-08 Hdd磁盘上文件元数据备份方法及元数据备份服务器

Country Status (1)

Country Link
CN (1) CN117076191A (zh)

Similar Documents

Publication Publication Date Title
US10216740B2 (en) System and method for fast parallel data processing in distributed storage systems
CN112131237B (zh) 数据同步方法、装置、设备及计算机可读介质
US20150213100A1 (en) Data synchronization method and system
US20120296960A1 (en) Method and system for providing access to mainframe data objects in a heterogeneous computing environment
US20100318575A1 (en) Storage or removal actions based on priority
US11221785B2 (en) Managing replication state for deleted objects
US10372547B1 (en) Recovery-chain based retention for multi-tier data storage auto migration system
US9817834B1 (en) Techniques for performing an incremental backup
US20230376385A1 (en) Reducing bandwidth during synthetic restores from a deduplication file system
US11669404B2 (en) Efficient access-based reallocation of backup data within an object storage
JPWO2010052999A1 (ja) メンテナンスシステム、メンテナンス方法、及びメンテナンス用プログラム
US9483484B1 (en) Techniques for deduplicated data access statistics management
CN112800019A (zh) 基于Hadoop分布式文件系统的数据备份方法及系统
CN111367926A (zh) 分布式系统的数据处理方法和装置
US11507473B2 (en) System and method for efficient backup generation
CN112306957A (zh) 获取索引节点号的方法、装置、计算设备和存储介质
US20220129352A1 (en) Cloud-based processing of backup data for storage onto various types of object storage systems
US20220156139A1 (en) Fault indications for storage system commands
CN117076191A (zh) Hdd磁盘上文件元数据备份方法及元数据备份服务器
US10698862B2 (en) Enhanced snapshot performance, storage efficiency improvement, dynamic snapshot policy in erasure code supported object storage environment
CN108733753B (zh) 一种文件读取方法及应用实体
US20200371849A1 (en) Systems and methods for efficient management of advanced functions in software defined storage systems
CN113127261A (zh) 文件处理方法、装置、设备及存储介质
US11188248B2 (en) System and method to achieve an uninterrupted file level backup using a pass-through snapshot engine
US11675668B2 (en) Leveraging a cloud-based object storage to efficiently manage data from a failed backup operation

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