CN110163009B - Hdfs存储平台的安全校验及修复的方法和装置 - Google Patents

Hdfs存储平台的安全校验及修复的方法和装置 Download PDF

Info

Publication number
CN110163009B
CN110163009B CN201910434154.4A CN201910434154A CN110163009B CN 110163009 B CN110163009 B CN 110163009B CN 201910434154 A CN201910434154 A CN 201910434154A CN 110163009 B CN110163009 B CN 110163009B
Authority
CN
China
Prior art keywords
file
file block
data
damaged
blocks
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.)
Expired - Fee Related
Application number
CN201910434154.4A
Other languages
English (en)
Other versions
CN110163009A (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.)
Beijing Jiaotong University
China Information Technology Security Evaluation Center
Original Assignee
Beijing Jiaotong University
China Information Technology Security Evaluation Center
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 Beijing Jiaotong University, China Information Technology Security Evaluation Center filed Critical Beijing Jiaotong University
Priority to CN201910434154.4A priority Critical patent/CN110163009B/zh
Publication of CN110163009A publication Critical patent/CN110163009A/zh
Application granted granted Critical
Publication of CN110163009B publication Critical patent/CN110163009B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • 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/113Details of archiving
    • 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/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • 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/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种HDFS存储平台的安全校验及修复的方法和装置。该装置设置在HDFS存储平台上,包括名字节点和数据节点;名字节点用于管理文件块的存储数据节点信息,接收数据节点发送的损坏的文件块的查询请求,向数据节点返回损坏的文件块的备份存储数据节点信息;数据节点用于存储文件块,对存储的文件块进行定期校验,检测文件块是否发生损坏,根据名字节点返回的损坏的文件块的备份存储数据节点信息从其它数据节点下载数据块,完成损坏的文件块的修复操作。本发明通过使用不可逆的MD5算法计算文件块校验值,解决了原系统中可能出现的文件篡改问题,保证了校验的可靠性,并实现了根据需要对校验间隔的调整,提高了校验效率。

Description

HDFS存储平台的安全校验及修复的方法和装置
技术领域
本发明涉及计算机信息技术领域,尤其涉及一种HDFS存储平台的安全校验及修复的方法和装置。
背景技术
Hadoop是一个能对大量数据进行分布式存储和海量信息分析的软件框架。HDFS(Hadoop Distributed File System,分布式文件系统)是Hadoop的核心之一,它将多台服务器的磁盘组合在一起成为一个分布式的存储系统,用于分布式存储海量数据。它简化了文件的一致性模型,通过流式数据访问,提供高吞吐量应用程序数据访问功能,适合带有大型数据集的应用程序,具有高可靠、高性能、可伸缩的能力。
HDFS是一个主从架构的分布式文件系统,主要由一个名字节点NameNode和许多个数据节点DataNode组成。存放入HDFS中的数据是一个文件分割成的一个或多个块,这些块被存储在一组数据节点中。NameNode主要的功能是负责执行诸如文件打开、关闭以及对文件重命名等一系列和文件命名空间相关的指令,同时还确定块与数据节点的映射。DataNode的主要功能是负责处理来自客户端的读写请求,同时它还可以按照NameNode给出的指示来执行与文件块相关的操作。
HDFS采用了多副本方式对数据进行冗余存储,保证系统的容错性和可用性。每一个文件块默认至少有三个备份,至少有一个备份放置在另一个机架中以防止当前运行备份的节点所在的机架宕机导致数据丢失,其他的备份放置在文件块所在机架的不同节点中。当一个文件块发生损坏时,可以从存储在其他节点上的副本中进行恢复,增加了数据存储的鲁棒性。采用冗余备份的方式可以有效地提高数据文件的可靠性,特别是对于重要的大数据文件。
目前HDFS为保证数据完整性使用两种校验方式:
方式1.在数据读取时采用校验和校验;
方式2.DataNode运行后台进程文件块检测程序DataBlockScanner,定期验证存储在这个数据节点上的所有文件块。
对于方式1,HDFS每固定长度(默认512字节)就会计算一次校验和,校验和和文件块一起保存,对于一个大文件,分成小文件块后再进行校验需要很长时间,计算效率低且浪费存储资源。同时原始HDFS采用的是循环冗余校验CRC32,但CRC32没有出于数据安全的考虑,只能根据校验值是否相同检测出文件块是否损坏,并不能检测出文件块是否被篡改,攻击者可通过原始CRC32校验码生成相同校验码的假文件,此时文件块被替换但CRC32值仍然相同,无法检测出来,无法实现对数据完整性可靠校验。
对于方式2,HDFS每隔504个小时(3周)进行一次扫描,若在此时间段内发生文件块损坏,系统无法检测出来,无法保证存储系统中的数据完整性。
综上所述可以看出,现有的HDFS存储平台的安全校验方法存在校验效率低下、校验频度过低、校验准确度低等问题,因此,提出一种更有效的HDFS存储平台的安全校验及修复方法是十分有必要的。
发明内容
本发明的实施例提供了一种HDFS存储平台的安全校验及修复的方法和装置,以克服现有技术的问题。
为了实现上述目的,本发明采取了如下技术方案。
根据本发明的一个方面,提供了一种HDFS存储平台的安全校验及修复的装置,包括:所述装置设置在HDFS存储平台上,包括名字节点和数据节点;
所述的名字节点,用于管理文件块的存储数据节点信息,接收数据节点发送的损坏的文件块的查询请求,向所述数据节点返回所述损坏的文件块的备份存储数据节点信息;
所述的数据节点,用于存储文件块,对存储的文件块进行定期校验,检测文件块是否发生损坏,根据所述名字节点返回的损坏的文件块的备份存储数据节点信息从其它数据节点下载数据块,完成所述损坏的文件块的修复操作。
优选地,所述的名字节点包括:
数据分块处理模块,用于根据用户上传的数据文件大小,以设定的文件块大小对所述数据文件进行分块处理,为每个文件块建立三个备份的文件块,将所有文件块分布存储在不同的数据节点上;
存储信息管理模块,用于存储和管理每个文件块的元信息和每个数据文件对应的文件块列表信息,所述文件块的元信息包括;文件块名称、文件块索引、存储位置、存放节点、所属文件名称和上传时间;
查询请求处理模块,用于接收数据节点发送的损坏的文件块的查询请求,向所述数据节点返回所述损坏的文件块的备份存储数据节点信息。
优选地,所述的数据节点包括:
存储模块,用于存储文件块,使用MD5算法根据从名字节点获取的文件块的元信息计算其所存储的文件块的哈希值,将所述哈希值作为文件块的校验值,将所述文件块的校验值和从名字节点获取的文件块的元信息一起进行关联存储;
校验模块,用于对所述存储模块存储的文件块进行定期校验,检测文件块是否发生损坏,将检测出来的损坏的文件块的查询请求发送给所述名字节点;
修复模块,用于根据所述名字节点返回的损坏的文件块的备份存储数据节点信息从其它数据节点下载数据块,完成所述损坏的文件块的修复操作。
优选地,所述的校验模块,具体用于按照设定的校验间隔根据文件块的元信息对存储模块所存储的文件块重新计算校验值,将重新计算出的哈希值与存储模块所存储的校验值进行比对,如果比对结果为不一致,则判断文件块发生损坏,将损坏的文件块的查询请求发送给名字节点;如果比对结果为一致,判断文件块正常;如果重新校验文件块时,发现文件块打开失败或者文件块不存在了,则判断文件块发生损坏,将损坏的文件块的查询请求发送给名字节点。
优选地,所述的修复模块,具体用于若发现损坏的文件块还在数据节点上,将损坏的文件块删除,接收到名字节点返回的损坏的文件块的备份存储数据节点信息后,与存储备份文件块的其它数据节点进行通信,从所述其他数据节点上下载备份的文件块和备份的文件块对应的元信息,根据备份的文件块对应的元信息计算出校验值,将计算出的校验值与存储的损坏的文件块对应的校验值进行比对,若比对结果为相同,则判断所述损坏的文件块修复成功;若比对结果为不相同,判断所述损坏的文件块修复失败,从另一个存储备份文件块的其它数据节点的下载备份的文件块和备份的文件块对应的元信息,并将计算出的校验值与存储的损坏的文件块对应的校验值进行比对,重复上述过程,直到计算出的校验值与存储的损坏的文件块对应的校验值的比对结果为相同;如果根据所有下载的备份的文件块计算出的校验值与存储的损坏的文件块对应的校验值的比对结果都为不相同,则判断系统中不再有所述损坏的文件块的完整的备份文件块,无法对所述损坏的文件块进行修复。
根据本发明的另一个方面,提供了一种HDFS存储平台的安全校验及修复的方法,包括:
通过HDFS存储平台上的名字节点管理文件块的存储数据节点信息,通过HDFS存储平台上的数据节点存储文件块;
所述名字节点接收HDFS存储平台上的数据节点发送的损坏的文件块的查询请求,向所述数据节点返回所述损坏的文件块的备份存储数据节点信息;
所述数据节点对存储的文件块进行定期校验,检测文件块是否发生损坏,根据所述名字节点返回的损坏的文件块的备份存储数据节点信息从其它数据节点下载数据块,完成所述损坏的文件块的修复操作。
优选地,所述的名字节点,具体用于根据用户上传的数据文件大小,以设定的文件块大小对所述数据文件进行分块处理,为每个文件块建立三个备份的文件块,将所有文件块分布存储在不同的数据节点上;
存储和管理每个文件块的元信息和每个数据文件对应的文件块列表信息,所述文件块的元信息包括;文件块名称、文件块索引、存储位置、存放节点、所属文件名称和上传时间;
接收数据节点发送的损坏的文件块的查询请求,向所述数据节点返回所述损坏的文件块的备份存储数据节点信息。
优选地,所述的数据节点,具体用于存储文件块,使用MD5算法根据从名字节点获取的文件块的元信息计算其所存储文件块的哈希值,将所述哈希值作为文件块的校验值,将所述文件块的校验值和从名字节点获取的文件块的元信息一起进行关联存储;
对所述存储模块存储的文件块进行定期校验,检测文件块是否发生损坏,将检测出来的损坏的文件块的查询请求发送给所述名字节点;
根据所述名字节点返回的损坏的文件块的备份存储数据节点信息从其它数据节点下载数据块,完成所述损坏的文件块的修复操作。
优选地,所述的数据节点,还具体用于按照设定的校验间隔根据文件块的元信息对存储模块所存储的文件块重新计算校验值,将重新计算出的哈希值与存储模块所存储的校验值进行比对,如果比对结果为不一致,则判断文件块发生损坏,将损坏的文件块的查询请求发送给名字节点;如果比对结果为一致,判断文件块正常;如果重新校验文件块时,发现文件块打开失败或者文件块不存在了,则判断文件块发生损坏,将损坏的文件块的查询请求发送给名字节点。
优选地,所述的数据节点,还具体用于若发现损坏的文件块还在数据节点上,将损坏文件块删除,接收到名字节点返回的损坏的文件块的备份存储数据节点信息后,与存储备份文件块的其它数据节点进行通信,从所述其他数据节点上下载备份的文件块和备份的文件块对应的元信息,根据备份的文件块对应的元信息计算出校验值,将计算出的校验值与存储的损坏的文件块对应的校验值进行比对,若比对结果为相同,则判断所述损坏的文件块修复成功;若比对结果为不相同,判断所述损坏的文件块修复失败,从另一个存储备份文件块的其它数据节点的下载备份的文件块和备份的文件块对应的元信息,并将计算出的校验值与存储的损坏的文件块对应的校验值进行比对,重复上述过程,直到计算出的校验值与存储的损坏的文件块对应的校验值的比对结果为相同;如果根据所有下载的备份的文件块计算出的校验值与存储的损坏的文件块对应的校验值的比对结果都为不相同,则判断系统中不再有所述损坏的文件块的完整的备份文件块,无法完成所述损坏的文件块的修复操作。
由上述本发明的实施例提供的技术方案可以看出,本发明实施例通过使用不可逆的MD5算法计算文件块校验值,解决了原系统中可能出现的文件篡改问题,保证了校验的可靠性,并实现了根据需要对校验间隔的调整,提高了校验效率。同时,本发明应用在基于HDFS的存储平台,但未修改HDFS系统源码,与HDFS系统耦合度很低,具有灵活性和可扩展性。
本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种HDFS存储平台的安全校验及修复的装置的实现原理图;
图2为本发明实施例提供的一种HDFS存储平台的安全校验及修复的装置的结构图;
图3为本发明实施例提供的一种建立文件块和校验值对应关系步骤流程图
图4为本发明实施例提供的一种文件块循环校验的算法流程图;
图5为本发明实施例提供的一种文件块修复算法的流程图。
具体实施方式
下面详细描述本发明的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。
为便于对本发明实施例的理解,下面将结合附图以几个具体实施例为例做进一步的解释说明,且各个实施例并不构成对本发明实施例的限定。
本发明实施例提供了一种HDFS存储平台的安全校验方法和装置,服务器端对用户上传到HDFS存储平台的数据实现定期安全校验,检测是否存在损坏的文件块。若数据节点检测到存储的文件块发生损坏,立即通过修复机制对损坏的文件块进行修复,保证数据的完整性和可靠性。
图1为本发明实施例提供的一种HDFS存储平台的安全校验及修复的装置的实现原理图,图2为上述装置的结构图,该装置设置在HDFS存储平台上,包括名字节点(NameNode)21和数据节点22(DadaNode),装置中各个模块相互通信共同作用,完成数据的安全校验和修复。
所述的名字节点21,用于管理文件块的存储数据节点信息,接收数据节点发送的损坏的文件块的查询请求,向所述数据节点返回所述损坏的文件块的备份存储数据节点信息;
所述的数据节点22,用于存储文件块,对存储的文件块进行定期校验,检测文件块是否发生损坏,根据所述名字节点返回的损坏的文件块的备份存储数据节点信息从其它数据节点下载数据块,完成所述损坏的文件块的修复操作。
具体的,所述的名字节点21可以包括:
数据分块处理模块211,用于根据用户上传的数据文件大小,以设定的文件块大小对所述数据文件进行分块处理,为每个文件块建立三个备份的文件块,将所有文件块分布存储在不同的数据节点上;
存储信息管理模块212,用于存储和管理每个文件块的元信息和每个数据文件对应的文件块列表信息,所述文件块的元信息包括;文件块名称、文件块索引、存储位置、存放节点、所属文件名称和上传时间等;
查询请求处理模块213,用于接收数据节点发送的损坏的文件块的查询请求,向所述数据节点返回所述损坏的文件块的备份存储数据节点信息。
具体的,所述的数据节点22可以包括:
存储模块221,用于存储文件块,使用MD5算法根据从名字节点获取的文件块的元信息计算其所存储文件块的哈希值,将所述哈希值作为文件块的校验值,将所述文件块的校验值和从名字节点获取的文件块的元信息一起进行关联存储;
校验模块222,用于对所述存储模块存储的文件块进行定期校验,检测文件块是否发生损坏,将检测出来的损坏的文件块信息的查询请求发送给所述名字节点;
修复模块223,用于根据所述名字节点返回的损坏的文件块的备份存储数据节点信息从其它数据节点下载数据块,完成所述损坏的文件块的修复操作。
进一步地,所述的校验模块222,具体用于按照设定的校验间隔根据文件块的元信息对存储模块所存储的文件块重新计算校验值,将重新计算出的哈希值与存储模块所存储的校验值进行比对,如果比对结果为不一致,则判断文件块发生损坏,将损坏的文件块的查询请求发送给名字节点;如果比对结果为一致,判断文件块正常;如果重新校验文件块时,发现文件块打开失败或者文件块不存在了,则判断文件块发生损坏,将损坏的文件块的查询请求发送给名字节点。
进一步地,所述的修复模块223,具体用于若发现损坏的文件块还在数据节点上,将损坏文件块删除,接收到名字节点返回的损坏的文件块的备份存储数据节点信息后,与存储备份文件块的其它数据节点进行通信,从所述其他数据节点上下载备份的文件块和备份的文件块对应的元信息,根据备份的文件块对应的元信息计算出校验值,将计算出的校验值与存储的损坏的文件块对应的校验值进行比对,若比对结果为相同,则判断所述损坏的文件块修复成功;若比对结果为不相同,判断所述损坏的文件块修复失败,从另一个存储备份文件块的其它数据节点的下载备份的文件块和备份的文件块对应的元信息,并将计算出的校验值与存储的损坏的文件块对应的校验值进行比对,重复上述过程,直到计算出的校验值与存储的损坏的文件块对应的校验值的比对结果为相同;如果根据所有下载的备份的文件块计算出的校验值与存储的损坏的文件块对应的校验值的比对结果都为不相同,则判断系统中不再有所述损坏的文件块的完整的备份文件块,无法完成所述损坏的文件块的修复操作。
图3为本发明实施例提供的一种建立文件块和校验值之间的对应关系的算法的流程图,该算法的具体处理过程包括:该方法通过使用MD5校验值提升系统的安全性。首先用户将数据文件上传到HDFS存储平台后,将数据文件自动分块,根据文件分块计算MD5校验值,并将校验值存储在对应数据节点上。系统可根据元信息查找到文件块在数据节点上存储的具体位置,以实现后续的文件块校验与修复。图2所示的方法的具体处理步骤如下:
步骤一、根据用户上传的数据文件大小,以默认128M为文件块大小对上述数据文件进行分块处理,为每个文件块建立三个备份的文件块,将所有文件块分布存储在不同的数据节点上,每个文件块的元信息和每个数据文件对应的文件块列表存储在NameNode中;
步骤二、数据节点使用MD5算法计算其所存储文件块的哈希值,将上述哈希值作为校验值存储在数据节点上;
步骤三、数据节点上建立数据库,根据从NameNode中获取的文件块的元信息,包括文件块名称、文件块索引、存储位置、存放节点以及所属文件名称等,与步骤二所计算的对应校验值一起保存在数据表中,该数据表中存储文件块和校验值等相关信息对应关系。
在步骤二中,使用的MD5算法只能通过文件块单向生成哈希值,无法根据哈希值生成对应文件块,是不可逆的,有效的防止了非法用户对文件块进行篡改,与HDFS使用的CRC32校验方法相比,提高了数据的安全可靠性。
图4为本发明实施例提供的一种文件块循环校验算法的流程图,该算法的具体处理过程包括:通过在每个数据节点上存储文件块的校验模块,实现对存储文件块的循环校验。数据节点以基于数据文件的上传时间计算的哈希值作为参考,根据文件块和哈希值的对应关系,根据文件块的元信息对存储模块所存储的文件块重新计算校验值,将重新计算出的哈希值与存储模块所存储的校验值进行比对,如果比对结果为不一致,则判断文件块发生损坏,将损坏的文件块的查询请求发送给名字节点;如果比对结果为一致,判断文件块正常。校验模块每隔一段时间对节点上存储的文件块进行完整性校验,用户可通过设置校验间隔来调整每个文件的校验周期,对于重要文件可适当缩短校验间隔,保证数据文件的完整性,而对于一般文件,可适当增加校验间隔,减轻系统的运行压力,提高的校验的灵活性。
图5为本发明实施例提供的一种文件块修复算法的流程图,该算法的具体处理过程包括:当校验模块发现文件块损坏时,将损坏的文件块信息发送给数据节点上的修复模块,修复模块实现文件块的修复功能。文件块损坏表现在:再次计算出的哈希值与数据库中存储的对应哈希值不一致,或计算哈希值时发现文件块已经不存在。文件块修复功能由以下步骤实现:
步骤一、若损坏的文件块还在数据节点上,将损坏文件块删除;
步骤二、修复模块将损坏的文件块信息发送给NameNode上的查询模块,查询存储该文件块的备份文件块的数据节点信息;
步骤三、与存储备份文件块的数据节点进行通信,将其他数据节点上完整的文件块下载到本数据节点上,完成文件块修复。
由于每个数据节点都可能出现文件块的损坏,在步骤三中其他数据节点上的备份文件块也可能是不完整的,此时使用的方法是:当从其他数据节点上成功下载文件块后,再次计算新文件块的哈希值与数据库中保存的原始哈希值进行比对,若二者相同说明成功完成修复,若不相同或从其他数据节点上下载失败,则从另一个存储备份数据块的数据节点进行下载,重复上述过程。如果根据所有下载的备份的文件块计算出的校验值与存储的损坏的文件块对应的校验值的比对结果都为不相同,则判断系统中不再有所述损坏的文件块的完整的备份文件块,无法完成所述损坏的文件块的修复操作。
本发明基于HDFS存储平台提供了一种数据的安全校验及修复方法,使用了HDFS分布式存储策略。该方法在实现校验修复功能的同时,还能应对文件删除和文件块移动等文件变化情况。当数据节点校验过程中发现文件块不存在时,向NameNode查询模块发送查询请求,查询存储在HDFS系统中的文件信息,判断该文件是否还存在,同时判断文件的存储节点是否发生改变,即文件块是否发生移动;NameNode将查询结果发送给该数据节点,若结果表明文件已删除或文件块已不存在在该数据节点上,修复模块将数据库中保存的对应文件块信息删除,该文件块以及对应的所有信息在数据节点上删除,此后数据节点将不再对该文件块进行校验。该方法无需对HDFS源码进行修改,与HDFS耦合度很低。
综上所述,本发明实施例通过使用不可逆的MD5算法计算文件块校验值,解决了原系统中可能出现的文件篡改问题,保证了校验的可靠性,并实现了根据需要对校验间隔的调整,提高了校验效率。同时,本发明应用在基于HDFS的存储平台,但未修改HDFS系统源码,与HDFS系统耦合度很低,具有灵活性和可扩展性。
本发明实施例提供的方法和装置可以应用于对保存在HDFS存储平台上的数据完整性提供保障。
本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

Claims (4)

1.一种HDFS存储平台的安全校验及修复的装置,其特征在于,包括:所述装置设置在HDFS存储平台上,包括名字节点和数据节点;
所述的名字节点,用于管理文件块的存储数据节点信息,接收数据节点发送的损坏的文件块的查询请求,向所述数据节点返回所述损坏的文件块的备份存储数据节点信息;
所述的数据节点,用于存储文件块,对存储的文件块进行定期校验,检测文件块是否发生损坏,根据所述名字节点返回的损坏的文件块的备份存储数据节点信息从其它数据节点下载数据块,完成所述损坏的文件块的修复操作;
所述的名字节点包括:
数据分块处理模块,用于根据用户上传的数据文件大小,以设定的文件块大小对所述数据文件进行分块处理,为每个文件块建立三个备份的文件块,将所有文件块分布存储在不同的数据节点上;
存储信息管理模块,用于存储和管理每个文件块的元信息和每个数据文件对应的文件块列表信息,所述文件块的元信息包括;文件块名称、文件块索引、存储位置、存放节点、所属文件名称和上传时间;
查询请求处理模块,用于接收数据节点发送的损坏的文件块的查询请求,向所述数据节点返回所述损坏的文件块的备份存储数据节点信息;
所述的数据节点包括:
校验模块,用于对存储模块存储的文件块进行定期校验,检测文件块是否发生损坏,将检测出来的损坏的文件块的查询请求发送给所述名字节点;
修复模块,用于根据所述名字节点返回的损坏的文件块的备份存储数据节点信息从其它数据节点下载数据块,完成所述损坏的文件块的修复操作;
存储模块,用于存储文件块,使用一种建立文件块和校验值之间的对应关系的算法;
所述的算法是通过使用MD5算法根据从名字节点获取的文件块的元信息计算其所存储的文件块的哈希值,将所述哈希值作为文件块的校验值,将所述文件块的校验值和从名字节点获取的文件块的元信息一起进行关联存储;
所述的算法的具体处理步骤如下:
(1)根据用户上传的数据文件大小,以默认128M为文件块大小对上述数据文件进行分块处理,为每个文件块建立三个备份的文件块,将所有文件块分布存储在不同的数据节点上,每个文件块的元信息和每个数据文件对应的文件块列表存储在NameNode中;
(2)数据节点使用MD5算法计算其所存储文件块的哈希值,将上述哈希值作为校验值存储在数据节点上,使用的MD5算法只能通过文件块单向生成哈希值,无法根据哈希值生成对应文件块,是不可逆的,有效的防止了非法用户对文件块进行篡改,提高了数据的安全可靠性,所述的数据节点以基于数据文件的上传时间计算的哈希值作为参考,根据文件块和哈希值的对应关系,根据文件块的元信息对存储模块所存储的文件块重新计算校验值;
(3)数据节点上建立数据库,根据从NameNode中获取的文件块的元信息,包括文件块名称、文件块索引、存储位置、存放节点以及所属文件名称等,与步骤二所计算的对应校验值一起保存在数据表中,该数据表中存储文件块和校验值等相关信息对应关系;
所述的校验模块,具体用于按照设定的校验间隔根据文件块的元信息对存储模块所存储的文件块重新计算校验值,将重新计算出的哈希值与存储模块所存储的校验值进行比对,如果比对结果为不一致,则判断文件块发生损坏,将损坏的文件块的查询请求发送给名字节点;如果比对结果为一致,判断文件块正常;如果重新校验文件块时,发现文件块打开失败或者文件块不存在了,则判断文件块发生损坏,将损坏的文件块的查询请求发送给名字节点; 校验模块每隔一段时间对节点上存储的文件块进行完整性校验,用户可通过设置校验间隔来调整每个文件的校验周期,对于重要文件可适当缩短校验间隔,保证数据文件的完整性,而对于一般文件,可适当增加校验间隔,减轻系统的运行压力,提高校验的灵活性;
所述的装置应用在基于HDFS的存储平台,但未修改HDFS系统源码,与HDFS系统耦合度很低,具有灵活性和可扩展性。
2.根据权利要求1所述的装置,其特征在于:
所述的修复模块,具体用于若发现损坏的文件块还在数据节点上,将损坏的文件块删除,接收到名字节点返回的损坏的文件块的备份存储数据节点信息后,与存储备份文件块的其它数据节点进行通信,从所述其它数据节点上下载备份的文件块和备份的文件块对应的元信息,根据备份的文件块对应的元信息计算出校验值,将计算出的校验值与存储的损坏的文件块对应的校验值进行比对,若比对结果为相同,则判断所述损坏的文件块修复成功;若比对结果为不相同,判断所述损坏的文件块修复失败,从另一个存储备份文件块的其它数据节点的下载备份的文件块和备份的文件块对应的元信息,并将计算出的校验值与存储的损坏的文件块对应的校验值进行比对,重复上述过程,直到计算出的校验值与存储的损坏的文件块对应的校验值的比对结果为相同;如果根据所有下载的备份的文件块计算出的校验值与存储的损坏的文件块对应的校验值的比对结果都为不相同,则判断系统中不再有所述损坏的文件块的完整的备份文件块,无法对所述损坏的文件块进行修复。
3.一种HDFS存储平台的安全校验及修复的方法,其特征在于,包括:
通过HDFS存储平台上的名字节点管理文件块的存储数据节点信息,通过HDFS存储平台上的数据节点存储文件块;
所述名字节点接收HDFS存储平台上的数据节点发送的损坏的文件块的查询请求,向所述数据节点返回所述损坏的文件块的备份存储数据节点信息;
所述数据节点对存储的文件块进行定期校验,检测文件块是否发生损坏,根据所述名字节点返回的损坏的文件块的备份存储数据节点信息从其它数据节点下载数据块,完成所述损坏的文件块的修复操作;
所述的名字节点,具体用于根据用户上传的数据文件大小,以设定的文件块大小对所述数据文件进行分块处理,为每个文件块建立三个备份的文件块,将所有文件块分布存储在不同的数据节点上;
存储和管理每个文件块的元信息和每个数据文件对应的文件块列表信息,所述文件块的元信息包括;文件块名称、文件块索引、存储位置、存放节点、所属文件名称和上传时间;
接收数据节点发送的损坏的文件块的查询请求,向所述数据节点返回所述损坏的文件块的备份存储数据节点信息;
所述的数据节点,具体用于存储文件块,使用MD5算法根据从名字节点获取的文件块的元信息计算其所存储文件块的哈希值,将所述哈希值作为文件块的校验值,将所述文件块的校验值和从名字节点获取的文件块的元信息一起进行关联存储;
所述的算法的具体处理步骤如下:
(1)根据用户上传的数据文件大小,以默认128M为文件块大小对上述数据文件进行分块处理,为每个文件块建立三个备份的文件块,将所有文件块分布存储在不同的数据节点上,每个文件块的元信息和每个数据文件对应的文件块列表存储在NameNode中;
(2)数据节点使用MD5算法计算其所存储文件块的哈希值,将上述哈希值作为校验值存储在数据节点上,使用的MD5算法只能通过文件块单向生成哈希值,无法根据哈希值生成对应文件块,是不可逆的,有效的防止了非法用户对文件块进行篡改,提高了数据的安全可靠性,所述的数据节点以基于数据文件的上传时间计算的哈希值作为参考,根据文件块和哈希值的对应关系,根据文件块的元信息对存储模块所存储的文件块重新计算校验值;
(3)数据节点上建立数据库,根据从NameNode中获取的文件块的元信息,包括文件块名称、文件块索引、存储位置、存放节点以及所属文件名称等,与步骤二所计算的对应校验值一起保存在数据表中,该数据表中存储文件块和校验值等相关信息对应关系;
对所述存储模块存储的文件块进行定期校验,检测文件块是否发生损坏,将检测出来的损坏的文件块的查询请求发送给所述名字节点;
根据所述名字节点返回的损坏的文件块的备份存储数据节点信息从其它数据节点下载数据块,完成所述损坏的文件块的修复操作;
所述的数据节点,还具体用于按照设定的校验间隔根据文件块的元信息对存储模块所存储的文件块重新计算校验值,将重新计算出的哈希值与存储模块所存储的校验值进行比对,如果比对结果为不一致,则判断文件块发生损坏,将损坏的文件块的查询请求发送给名字节点;如果比对结果为一致,判断文件块正常;如果重新校验文件块时,发现文件块打开失败或者文件块不存在了,则判断文件块发生损坏,将损坏的文件块的查询请求发送给名字节点;校验模块每隔一段时间对节点上存储的文件块进行完整性校验,用户可通过设置校验间隔来调整每个文件的校验周期,对于重要文件可适当缩短校验间隔,保证数据文件的完整性,而对于一般文件,可适当增加校验间隔,减轻系统的运行压力,提高校验的灵活性;
所述的方法应用在基于HDFS的存储平台,但未修改HDFS系统源码,与HDFS系统耦合度很低,具有灵活性和可扩展性。
4.根据权利要求3所述的方法,其特征在于:
所述的数据节点,还具体用于若发现损坏的文件块还在数据节点上,将损坏文件块删除,接收到名字节点返回的损坏的文件块的备份存储数据节点信息后,与存储备份文件块的其它数据节点进行通信,从所述其它数据节点上下载备份的文件块和备份的文件块对应的元信息,根据备份的文件块对应的元信息计算出校验值,将计算出的校验值与存储的损坏的文件块对应的校验值进行比对,若比对结果为相同,则判断所述损坏的文件块修复成功;若比对结果为不相同,判断所述损坏的文件块修复失败,从另一个存储备份文件块的其它数据节点的下载备份的文件块和备份的文件块对应的元信息,并将计算出的校验值与存储的损坏的文件块对应的校验值进行比对,重复上述过程,直到计算出的校验值与存储的损坏的文件块对应的校验值的比对结果为相同;如果根据所有下载的备份的文件块计算出的校验值与存储的损坏的文件块对应的校验值的比对结果都为不相同,则判断系统中不再有所述损坏的文件块的完整的备份文件块,无法完成所述损坏的文件块的修复操作。
CN201910434154.4A 2019-05-23 2019-05-23 Hdfs存储平台的安全校验及修复的方法和装置 Expired - Fee Related CN110163009B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910434154.4A CN110163009B (zh) 2019-05-23 2019-05-23 Hdfs存储平台的安全校验及修复的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910434154.4A CN110163009B (zh) 2019-05-23 2019-05-23 Hdfs存储平台的安全校验及修复的方法和装置

Publications (2)

Publication Number Publication Date
CN110163009A CN110163009A (zh) 2019-08-23
CN110163009B true CN110163009B (zh) 2021-06-15

Family

ID=67632372

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910434154.4A Expired - Fee Related CN110163009B (zh) 2019-05-23 2019-05-23 Hdfs存储平台的安全校验及修复的方法和装置

Country Status (1)

Country Link
CN (1) CN110163009B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110989922B (zh) * 2019-10-28 2023-05-26 烽火通信科技股份有限公司 一种分布式数据存储方法及系统
CN111782623A (zh) * 2020-05-21 2020-10-16 北京交通大学 Hdfs存储平台中的文件校验修复方法
CN112019447A (zh) * 2020-08-19 2020-12-01 博锐尚格科技股份有限公司 数据流量控制方法、装置、系统、电子设备、及存储介质
CN112533245A (zh) * 2020-11-19 2021-03-19 深圳市广和通无线通信软件有限公司 校准数据恢复方法、装置、计算机设备和存储介质
CN113676473B (zh) * 2021-08-19 2023-05-02 中国电信股份有限公司 网络业务安全防护装置、方法以及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102419766A (zh) * 2011-11-01 2012-04-18 西安电子科技大学 基于hdfs分布式文件系统的数据冗余及文件操作方法
CN103761162A (zh) * 2014-01-11 2014-04-30 深圳清华大学研究院 分布式文件系统的数据备份方法
CN106326222A (zh) * 2015-06-16 2017-01-11 阿里巴巴集团控股有限公司 一种数据处理方法和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10491635B2 (en) * 2017-06-30 2019-11-26 BlueTalon, Inc. Access policies based on HDFS extended attributes

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102419766A (zh) * 2011-11-01 2012-04-18 西安电子科技大学 基于hdfs分布式文件系统的数据冗余及文件操作方法
CN103761162A (zh) * 2014-01-11 2014-04-30 深圳清华大学研究院 分布式文件系统的数据备份方法
CN106326222A (zh) * 2015-06-16 2017-01-11 阿里巴巴集团控股有限公司 一种数据处理方法和装置

Also Published As

Publication number Publication date
CN110163009A (zh) 2019-08-23

Similar Documents

Publication Publication Date Title
CN110163009B (zh) Hdfs存储平台的安全校验及修复的方法和装置
US11086545B1 (en) Optimizing a storage system snapshot restore by efficiently finding duplicate data
US9697215B2 (en) Systems and methods for resumable replication
US9396073B2 (en) Optimizing restores of deduplicated data
RU2449358C1 (ru) Распределенная файловая система и способ управления согласованностью блоков данных в такой системе
US8977602B2 (en) Offline verification of replicated file system
US7827137B2 (en) Seeding replication
US8924354B2 (en) Block level data replication
US7478113B1 (en) Boundaries
US11782649B2 (en) Restoring an archive authorized by an authenticated user
US20110218967A1 (en) Partial Block Based Backups
US11755590B2 (en) Data connector component for implementing integrity checking, anomaly detection, and file system metadata analysis
US10387271B2 (en) File system storage in cloud using data and metadata merkle trees
US20220138169A1 (en) On-demand parallel processing of objects using data connector components
US20220138151A1 (en) Sibling object generation for storing results of operations performed upon base objects
US20220138152A1 (en) Full and incremental scanning of objects
US20230133533A1 (en) Snapshot copy operation between endpoints
CN114416665B (zh) 一种数据一致性检测和修复的方法、装置及介质
CN111782623A (zh) Hdfs存储平台中的文件校验修复方法
US20220138153A1 (en) Containerization and serverless thread implementation for processing objects
CN111625396B (zh) 备份数据的校验方法、服务器及存储介质
US11645333B1 (en) Garbage collection integrated with physical file verification
US9767115B2 (en) Asynchronous multi-node filesystem coordinated replication
US11592992B1 (en) Verification microservice for a deduplicated object storage system
WO2023076240A1 (en) Snapshot copy operation between endpoints

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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20210329

Address after: 100044 Beijing city Haidian District Xizhimen Shangyuan Village No. 3

Applicant after: Beijing Jiaotong University

Applicant after: CHINA INFORMATION TECHNOLOGY SECURITY EVALUATION CENTER

Address before: 100044 Beijing city Haidian District Xizhimen Shangyuan Village No. 3

Applicant before: Beijing Jiaotong University

GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20210615