本公开涉及分布式文件系统,尤其涉及一种文件的检测和修复方法、装置和系统。
背景技术:
1、随着大数据技术的不断发展,具有安全性和可靠性高、扩展性强、存取效率高且用户无感等优点的分布式文件系统(distributed file system,dfs)被广泛应用,以glusterfs(简称gfs)为例,用户通过虚拟端口向gfs的客户端发送数据处理请求,响应于数据处理请求,客户端与对应的gfs的服务端交互,执行数据的读/写、修改、删除等操作。
2、为了保证数据的准确性和完整性,只能利用自带的文件损坏修复命令heal对损坏数据进行修复,heal的修复模式包括自动扫描修复和指定路径修复两种,自动扫描修复是指定期扫描全盘数据,定位其中的损坏数据并修复;指定路径修复是指在用户访问过程中发现数据损坏时,主动上报损坏数据所在的路径,由gfs调用heal命令进行修复。
3、然而,由于gfs没有集中式的元数据管理中心,自动扫描修复方式需要全盘扫描,一方面,修复过程耗时长,使得修复成本大大增加;另一方面,定期扫描的方式对于文件损坏的感知过于滞后,同时修复需要占用系统资源,使得服务器负载加大、正常的用户请求响应迟缓,皆会导致用户访问体验较差。面对海量文件(亿级甚至更大),指定路径修复的方式过于随机、不确定性较高,不仅滞后而且无法遍及全部损坏数据,导致数据完整性和准确性低下。
技术实现思路
1、有鉴于此,本公开实施例提供一种文件的检测和修复方法、装置和系统,能够解决全盘扫描修复耗时很长、修复所需资源等成本过高,系统负载大随之性能下降,影响用户的正常数据访问、正常的用户请求响应迟缓,无法对全副本皆缺损的文件进行修复;指定路径修复不确定性较高,无法遍及全部损坏数据,导致数据完整性和准确性低下,皆使得修复过于滞后、用户访问体验较差的问题。
2、为实现上述目的,根据本公开的一方面,提供了一种文件的检测和修复方法,所述方法应用于gfs服务端的gfs服务节点,所述方法包括:
3、接收一个或多个文件检测任务;
4、响应于所述文件检测任务,根据端点配置中的元数据服务器地址,访问元数据服务器,从所述元数据服务器中读取所述文件检测任务对应的待检测文件的元数据信息;
5、将所述待检测文件的元数据信息与对应的服务节点上存储的文件副本进行对比,确定各个所述文件副本中的损坏副本、以及各个所述损坏副本的损坏类型;
6、根据所述损坏类型,对所述损坏副本进行备份修复或者同步修复。
7、根据本公开的另一方面,提供了一种文件的检测和修复装置,所述装置应用于gfs服务端的gfs服务节点,所述装置包括:
8、接收模块,用于接收一个或多个文件检测任务;
9、读取模块,用于响应于所述文件检测任务,根据端点配置中的元数据服务器地址,访问元数据服务器,从所述元数据服务器中读取所述文件检测任务对应的待检测文件的元数据信息;
10、对比模块,用于将所述待检测文件的元数据信息与对应的服务节点上存储的文件副本进行对比,确定各个所述文件副本中的损坏副本、以及各个所述损坏副本的损坏类型;
11、修复模块,用于根据所述损坏类型,对所述损坏副本进行备份修复或者同步修复。
12、根据本公开的再一方面,提供了一种文件的检测和修复系统,包括:由包括文件的检测和修复装置的多个gfs服务节点组成的gfs服务端、gfs客户端和元数据服务器。
13、根据本公开的还一个方面,提供了一种电子设备,包括:
14、处理器;以及
15、存储程序的存储器,
16、其中,所述程序包括指令,所述指令在由所述处理器执行时使所述处理器执行所述文件的检测和修复方法。
17、根据本公开实施例的又一个方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行所述文件的检测和修复方法。
18、本申请实施例中提供的一个或多个技术方案,通过引入元数据服务器,用于存储全部文件的元数据信息,从而后续检测过程中基于元数据信息定位损坏文件,并根据损坏副本的损坏类型确定不同的修复方式,可以实现缩短检测耗时和计算资源消耗,提升检测效率,降低系统负载,达到检测成本降低和系统性能提升的双重效果;并且,以并发修复提高修复速度,提升修复效率,同时备份修复兜底极限全损坏场景,保证了数据内容的准确度和完整度,保障用户的正常数据访问及请求的即时响应,提升用户访问体验的技术效果。
1.一种文件的检测和修复方法,其特征在于,所述方法应用于gfs服务端的gfs服务节点,所述方法包括:
2.如权利要求1所述的文件的检测和修复方法,其特征在于,所述元数据信息包括文件名称、文件大小和节点标识;所述将所述待检测文件的元数据信息与对应的服务节点上存储的文件副本进行对比,确定各个所述文件副本中的损坏副本,包括:
3.如权利要求2所述的文件的检测和修复方法,其特征在于,所述元数据信息还包括与文件名称对应的各个文件块的哈希值;在所述待检测文件的文件大小与所述副本大小相同的情况下,还包括:
4.如权利要求3所述的文件的检测和修复方法,其特征在于,在所述当前副本块的哈希值和所述当前文件块的哈希值不等的情况下,确定所述当前副本块为损坏块且所述文件副本为损坏副本。
5.如权利要求4所述的文件的检测和修复方法,其特征在于,还包括:
6.如权利要求1所述的文件的检测和修复方法,其特征在于,所述确定各个所述损坏副本的损坏类型,包括:
7.如权利要求6所述的文件的检测和修复方法,其特征在于,在所述损坏副本的副本数量不等于所述副本总数的情况下,还包括:
8.如权利要求1所述的文件的检测和修复方法,其特征在于,所述损坏类型包括第一类型、第二类型和第三类型,所述根据所述损坏类型,对所述损坏副本进行备份修复,包括:
9.如权利要求8所述的文件的检测和修复方法,其特征在于,所述采用备份修复的方式修复所述损坏副本,包括:
10.如权利要求8所述的文件的检测和修复方法,其特征在于,所述同步修复包括并发同步和单独同步,所述在所述损坏类型为第二类型或者第三类型的情况下,采用同步修复的方式修复所述损坏副本,包括:
11.如权利要求10所述的文件的检测和修复方法,其特征在于,所述采用并发同步的方式修复所述损坏副本,包括:
12.如权利要求10所述的文件的检测和修复方法,其特征在于,所述采用单独同步的方式修复所述损坏副本,包括:
13.如权利要求1所述的文件的检测和修复方法,其特征在于,还包括:
14.如权利要求1所述的文件的检测和修复方法,其特征在于,还包括:
15.如权利要求14所述的文件的检测和修复方法,其特征在于,所述节点指标包括:
16.一种文件的检测和修复装置,其特征在于,所述装置应用于gfs服务端的gfs服务节点,所述装置包括:
17.一种文件的检测和修复系统,其特征在于,包括:由包括如权利要求16所述的文件的检测和修复装置的多个gfs服务节点组成的gfs服务端、gfs客户端和元数据服务器。
18.如权利要求17所述的文件的检测和修复系统,其特征在于,还包括:
19.一种电子设备,包括:
20.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-15中任一项所述的文件的检测和修复方法。