CN114564456B - 分布式存储文件的恢复方法及装置 - Google Patents
分布式存储文件的恢复方法及装置 Download PDFInfo
- Publication number
- CN114564456B CN114564456B CN202210203570.5A CN202210203570A CN114564456B CN 114564456 B CN114564456 B CN 114564456B CN 202210203570 A CN202210203570 A CN 202210203570A CN 114564456 B CN114564456 B CN 114564456B
- Authority
- CN
- China
- Prior art keywords
- file
- bunker
- target
- storage unit
- target file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/162—Delete operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/164—File meta data generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/568—Computer malware detection or handling, e.g. anti-virus arrangements eliminating virus, restoring damaged files
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- Health & Medical Sciences (AREA)
- Virology (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了一种分布式存储文件的恢复方法,应用于超融合系统,该方法包括:当检测到至少一个目标文件被删除时,创建基于多级链式的掩体文件;所述掩体文件是通过对所述目标文件的各个数据块所在存储单元格进行写零填充生成的稀疏文件;保存所述目标文件的删除日志;所述删除日志包括:目标文件的文件路径以及位置信息;所述文件路径包括所述目标文件所在的目录以及文件名;所述位置信息包括所述目标文件的各个数据块所在存储单元的唯一编号、创建掩体文件所在的层数以及所在存储单元格的唯一编号;根据所述删除日志恢复所述目标文件。采用本方法能够避免因海量文件单独检测导致计算机性能下降的问题。
Description
技术领域
本公开涉及云计算技术领域,尤其涉及一种分布式存储文件的恢复方法、装置、电子设备及可读存储介质。
背景技术
勒索病毒是一种常见的、危害极大的新型计算机病毒,这种病毒主要通过互联网进行传播。勒索病毒的工作流程为:首先找到待攻击的文件,获取文件及相关信息生成公钥私钥,然后读取文件数据,加密后生成新文件,删除原文件。
相关技术中,通过监控磁盘中每个文件的I/O(Input/Output,输入/输出)操作,然后部署污点文件,监控污点文件的I/O操作,当通过监控发现操作状态异常时,获取终端当下的所有进程,若某个进程满足勒索病毒的任一特定属性,则确定与进程对应的软件为勒索病毒。通过这种方式只能检测已知的勒索病毒,对于未知或变异的勒索病毒,这种后期查杀的方式无法避免原文件被加密并删除的损失。为了避免这种损失,目前采用CDP(Continuous Data Protection,持续数据保护)技术,恢复文件系统上的数据。CDP包括定时和实时两种模式,但是定时CDP会丢失在周期内的数据更新,而实时CDP则需要捕获和拷贝每个I/O,对于修改较频繁的文件,如数据库的底层文件,采用实时CDP技术对系统资源消耗大,影响数据库的性能。同时随着磁盘的容量越来越大,能存储的文件越多,在监控磁盘中文件的修改时,需要遍历磁盘中所有的文件,占用大量磁盘带宽,计算文件校验值,也需要占用大量的CPU(中央处理器,central processing unit)资源。
综上,在对磁盘内大量文件进行统一防护时,如何避免因海量文件单独检测导致计算机性能下降是当前亟需解决的问题。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种分布式存储文件的恢复方法,避免了虚拟机上的软件被复用或非法使用的问题。
为了实现上述目的,本公开实施例提供技术方案如下:
第一方面,本公开的实施例提供一种分布式存储文件的恢复方法,应用于超融合系统,所述超融合系统通过分布式存储系统管理;所述方法包括:
当检测到至少一个目标文件被删除时,创建基于多级链式的掩体文件;所述目标文件由存储在至少一个存储单元的至少一个存储单元格的数据块组成;所述掩体文件是通过对所述目标文件的各个数据块所在存储单元格进行写零填充生成的稀疏文件;
保存所述目标文件的删除日志;所述删除日志包括:目标文件的文件路径以及位置信息;所述文件路径包括所述目标文件所在的目录以及文件名;所述位置信息包括所述目标文件的各个数据块所在存储单元的唯一编号、创建掩体文件所在的层数以及所在存储单元格的唯一编号;
根据所述删除日志恢复所述目标文件。
作为本公开实施例一种可选的实施方式,在创建基于多级链式的掩体文件之前,所述方法还包括:
通过分布式存储系统的磁盘获取分布式存储在存储设备中的存储单元文件集合;
从所述存储单元文件集合中获取至少一个目标文件。
作为本公开实施例一种可选的实施方式,若第一目标文件与第二目标文件存储于同一个目标存储单元中,则所述创建基于多级链式的掩体文件,包括:
当第一目标文件被删除时,创建第一掩体文件,并在所述第一掩体文件对应的存储单元格中进行写零填充;所述第一掩体文件创建于所述目标存储单元的第一层;所述第一目标文件的各个数据块存储于所述目标存储单元的第零层;
当所述第二目标文件被删除时,创建第二掩体文件,并在所述第二掩体文件对应的存储单元格中进行写零填充;所述第二掩体文件创建于所述目标存储单元的第二层;所述第二目标文件的各个数据块存储于所述目标存储单元的第零层;
其中,所述第一掩体文件与所述第二掩体文件形成基于多级链式的掩体文件。
作为本公开实施例一种可选的实施方式,在创建基于多级链式的掩体文件之后,所述方法还包括:
接收输入输出IO访问请求;
若掩体文件所在存储单元格有数据,则执行IO操作;
若掩体文件所在存储单元格为空洞,则依次从掩体文件所在存储单元格的最高层逐层向下进行数据读取。
作为本公开实施例一种可选的实施方式,根据第一次IO访问请求的访问结果,确定索引数组中每个元素的值;所述索引数组中的每个元素用于表示每个存储有数据块的存储单元格的最高层数;所述最高层数由存储单元创建的掩体文件的数量决定。
作为本公开实施例一种可选的实施方式,当再次接收到IO访问请求时,根据所述索引数组查找各个数据块的位置,执行IO操作。
作为本公开实施例一种可选的实施方式,所述根据所述删除日志构造并恢复所述目标文件,包括:
根据所述删除日志确定所述目标文件所在的目录以及文件名;
根据所述删除日志确定所述目标文件的各个数据块所在存储单元的唯一编号;
根据所述删除日志确定所述目标文件的各个数据块创建掩体文件所在的层数;
根据所述删除日志确定所述目标文件的各个数据块所在存储单元格的唯一编号;
根据所述目标文件所在的目录以及文件名、各个数据块所在存储单元的唯一编号、各个数据块创建掩体文件所在的层数、各个数据块所在存储单元格的唯一编号构造所述目标文件。
第二方面,本公开实施例提供一种分布式存储文件的恢复装置,包括:
文件创建模块,用于当检测到至少一个目标文件被删除时,创建基于多级链式的掩体文件;所述目标文件由存储在至少一个存储单元的至少一个存储单元格的数据块组成;所述掩体文件是通过对所述目标文件的各个数据块所在存储单元格进行写零填充生成的稀疏文件;
日志保存模块,用于保存所述目标文件的删除日志;所述删除日志包括:目标文件的文件路径以及位置信息;所述文件路径包括所述目标文件所在的目录以及文件名;所述位置信息包括所述目标文件的各个数据块所在存储单元的唯一编号、创建掩体文件所在的层数以及所在存储单元格的唯一编号;
文件恢复模块,用于根据所述删除日志恢复所述目标文件。
作为本公开实施例一种可选的实施方式,所述装置还包括获取模块,所述获取模块用于通过分布式存储系统的磁盘获取分布式存储在存储设备中的存储单元文件集合;从所述存储单元文件集合中获取至少一个目标文件。
作为本公开实施例一种可选的实施方式,若第一目标文件与第二目标文件存储于同一个目标存储单元中,则所述创建基于多级链式的掩体文件,包括:当第一目标文件被删除时,创建第一掩体文件,并在所述第一掩体文件对应的存储单元格中进行写零填充;所述第一掩体文件创建于所述目标存储单元的第一层;所述第一目标文件的各个数据块存储于所述目标存储单元的第零层;当所述第二目标文件被删除时,创建第二掩体文件,并在所述第二掩体文件对应的存储单元格中进行写零填充;所述第二掩体文件创建于所述目标存储单元的第二层;所述第二目标文件的各个数据块存储于所述目标存储单元的第零层;其中,所述第一掩体文件与所述第二掩体文件形成基于多级链式的掩体文件。
作为本公开实施例一种可选的实施方式,在创建基于多级链式的掩体文件之后,所述方法还包括:接收输入输出IO访问请求;若掩体文件所在存储单元格有数据,则执行IO操作;若掩体文件所在存储单元格为空洞,则依次从掩体文件所在存储单元格的最高层逐层向下进行数据读取。
作为本公开实施例一种可选的实施方式,根据第一次IO访问请求的访问结果,确定索引数组中每个元素的值;所述索引数组中的每个元素用于表示每个存储有数据块的存储单元格的最高层数;所述最高层数由存储单元创建的掩体文件的数量决定。
作为本公开实施例一种可选的实施方式,所述方法还包括:当再次接收到IO访问请求时,根据所述索引数组查找各个数据块的位置,执行IO操作。
作为本公开实施例一种可选的实施方式,所述文件恢复模块具体用于:根据所述删除日志确定所述目标文件所在的目录以及文件名;根据所述删除日志确定所述目标文件的各个数据块所在存储单元的唯一编号;根据所述删除日志确定所述目标文件的各个数据块创建掩体文件所在的层数;根据所述删除日志确定所述目标文件的各个数据块所在存储单元格的唯一编号;根据所述目标文件所在的目录以及文件名、各个数据块所在存储单元的唯一编号、各个数据块创建掩体文件所在的层数、各个数据块所在存储单元格的唯一编号构造所述目标文件。
第三方面,本公开实施例提供一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一方面或第一方面的任一实施方式所述的分布式存储文件的恢复方法。
第四方面,本公开实施例提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述第一方面或第一方面的任一实施方式所述的分布式存储文件的恢复方法。
本公开提供的分布式存储文件的恢复方法,应用于超融合系统,所述超融合系统通过分布式存储系统管理,当检测到至少一个目标文件被删除时,创建基于多级链式的掩体文件,保存目标文件的删除日志,根据删除日志恢复目标文件。
由于目标文件由存储在至少一个存储单元的至少一个存储单元格的数据块组成,且掩体文件是通过对目标文件的各个数据块所在存储单元格进行写零填充生成的稀疏文件,即组成目标文件的各个数据块位于掩体文件的下层,因此掩体文件的作用是隐藏组成目标文件的各个数据块,以使被删除的目标文件通过正常的IO无法访问到,从而,勒索病毒无法对目标文件中的数据进行二次破坏或进行数据覆盖,确保了数据安全。又由于在删除目标文件时保存了目标文件的删除日志,所以根据目标文件所在的目录以及文件名、目标文件的各个数据块所在存储单元的唯一编号、创建掩体文件所在的层数以及所在存储单元格的唯一编号能够重新构造目标文件,进而恢复目标文件。通过创建基于多级链式的掩体文件,可以同时完成对同一磁盘内所有文件进行勒索病毒防护,无需针对文件进行设置,对文件频繁动态删减的场景和海量文件的场景都能实现很好的防护,并且保证在中勒索病毒的情况下,不会丢失任何数据即可恢复原文件。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中分布式存储文件的恢复方法的应用场景图;
图2为一个实施例中分布式存储文件的恢复方法的流程示意图;
图3为一个实施例中分布式存储文件的恢复方法的多级链式掩体文件示意图;
图4为一个实施例中分布式存储文件的恢复装置的结构示意图;
图5为本公开实施例所述的电子设备的结构示意图。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
在本公开实施例中,“示例性的”或者“例如”等词是用于表示作例子、例证或说明。本公开实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。此外,在本公开实施例的描述中,除非另有说明,“多个”的含义是指两个或两个以上。
本公开提供的一种分布式存储文件的恢复方法,可以应用于如图1所示的应用环境中。该分布式存储文件的恢复方法应用于超融合系统11中。超级融合系统11是由多个宿主机组成的集群系统,其存储能力是将集群中宿主机的物理磁盘,通过分布式存储系统统一管理并抽象成存储池,提供服务。虚拟机中的虚拟磁盘的数据是由分布式存储系统打散后,存放到集群的多个宿主机的磁盘中。图1中的灰色块代表一个基本存储单元,虚拟磁盘是由多个基本存储单元组合成的一个逻辑上连续的存储空间。当在虚拟磁盘中检测到至少一个目标文件被删除时,创建基于多级链式的掩体文件;保存所述目标文件的删除日志;根据所述删除日志恢复所述目标文件。
在一个实施例中,如图2所示,提供一种分布式存储文件的恢复方法,应用于超融合系统,所述超融合系统通过分布式存储系统管理,该方法包括如下步骤:
S21、当检测到至少一个目标文件被删除时,创建基于多级链式的掩体文件。
其中,目标文件由存储在至少一个存储单元的至少一个存储单元格的数据块组成。
具体的,虚拟磁盘接收到文件系统发送的unmap命令时,表明虚拟磁盘中有目标文件被删除。Unmap命令用于从主机操作系统、应用程序或虚拟机已删除的块中回收空间。即,Unmap命令用于释放低层存储空间,对于目标文件落到的存储单元,Unmap命令将向磁盘的指定位置写入0。
其中,掩体文件是通过对目标文件的各个数据块所在存储单元格进行写零填充生成的稀疏文件。稀疏文件是一种计算机文件,它能尝试在文件内容大多为空时更有效率地使用文件系统的空间。稀疏文件的原理是以简短的信息(元数据)表示空数据块,而不是在磁盘上占用实际空间来存储空数据块,只有非空的数据块会按照原样写入磁盘。在读取稀疏文件时,文件系统会按元数据在运行时将这些透明填充为零。
具体的,通过掩体文件,被删除的目标文件通过正常的IO无法访问到,但是组成目标文件的数据块并没有被删除,只是被“隐藏”,勒索病毒无法发现目标文件,因此无法二次破坏或进行数据覆盖,从而确保文件数据安全。
进一步,由于勒索病毒的工作过程是:读取待加密的原文件,生成新的加密文件,删除原文件。在勒索病毒被识别出来之前,系统无法提前预知处理,必须当正常IO请求处理。所以通过引入多级链式掩体文件,可以同时完成对同一磁盘内所有文件进行勒索病毒防护,无需针对文件进行设置,对文件频繁动态删减的场景和海量文件的场景都能实现很好的防护。
S22、保存所述目标文件的删除日志。
其中,所述删除日志包括:目标文件的文件路径以及位置信息。
具体的,文件路径包括目标文件所在的目录以及文件名;位置信息包括目标文件的各个数据块所在存储单元的唯一编号、创建掩体文件所在的层数以及所在存储单元格的唯一编号。
示例性的,为了恢复被删除的目标文件,需要记录目标文件的删除日志。
另外,虚拟机中对虚拟磁盘的文件系统进行格式化后,才能正常存取文件,主流的文件系统如ext4、XFS、NTFS都支持获取文件所在的磁盘位置。
S23、根据所述删除日志恢复所述目标文件。
示例性的,如果检测到文件A被勒索病毒删除,可以从删除文件列表中,选择恢复文件A,分布式存储系统将根据删除日志中记录的文件路径和位置数组,重新构造出文件A,以恢复文件A,并删除文件A对应创建的掩体文件。
在一个实施例中,步骤S23(根据所述删除日志构造并恢复所述目标文件),可以通过如下步骤实现:
根据所述删除日志确定所述目标文件所在的目录以及文件名;
根据所述删除日志确定所述目标文件的各个数据块所在存储单元的唯一编号;
根据所述删除日志确定所述目标文件的各个数据块创建掩体文件所在的层数;
根据所述删除日志确定所述目标文件的各个数据块所在存储单元格的唯一编号;
根据所述目标文件所在的目录以及文件名、各个数据块所在存储单元的唯一编号、各个数据块创建掩体文件所在的层数、各个数据块所在存储单元格的唯一编号构造所述目标文件。
示例性的,通过虚拟机中安装的守护程序agent获取删除日志。具体的,agent执行宿主机发出的命令,例如在宿主机上获取目标文件的位置信息。守护程序agent为宿主机和虚拟机提供了一个数据通道,通过agent访问操作系统,调用操作系统中的文件驱动;文件驱动能够实时监测磁盘文件的变化情况。
本公开提供的分布式存储文件的恢复方法,应用于超融合系统,所述超融合系统通过分布式存储系统管理,当检测到至少一个目标文件被删除时,创建基于多级链式的掩体文件,保存目标文件的删除日志,根据删除日志恢复目标文件。由于目标文件由存储在至少一个存储单元的至少一个存储单元格的数据块组成,且掩体文件是通过对目标文件的各个数据块所在存储单元格进行写零填充生成的稀疏文件,即组成目标文件的各个数据块位于掩体文件的下层,因此掩体文件的作用是遮盖或隐藏对应的目标文件,以使被删除的目标文件通过正常的IO无法访问到,从而,勒索病毒无法对目标文件中的数据进行二次破坏或进行数据覆盖,确保了数据安全。又由于在删除目标文件时保存了目标文件的删除日志,所以根据目标文件所在的目录以及文件名、目标文件的各个数据块所在存储单元的唯一编号、创建掩体文件所在的层数以及所在存储单元格的唯一编号能够重新构造目标文件,进而恢复目标文件。通过创建基于多级链式的掩体文件,可以同时完成对同意磁盘内所有文件进行勒索病毒防护,无需针对文件进行设置,对文件频繁动态删减的场景和海量文件的场景都能实现很好的防护,并且保证在中勒索病毒的情况下,不会丢失任何数据即可恢复原文件。
在一个实施例中,在创建基于多级链式的掩体文件之前,通过分布式存储系统的磁盘获取分布式存储在存储设备中的存储单元文件集合;从所述存储单元文件集合中获取至少一个目标文件。
示例性的,通过分布式存储系统的磁盘获取分布式存储在存储设备中的存储单元文件A和存储单元文件B。
在一个实施例中,若第一目标文件与第二目标文件存储于同一个目标存储单元中,则步骤S21(当检测到至少一个目标文件被删除时,创建基于多级链式的掩体文件),可以通过如下方式实现:
(1)、当第一目标文件被删除时,创建第一掩体文件,并在所述第一掩体文件对应的存储单元格中进行写零填充。
其中,第一掩体文件创建于目标存储单元的第一层;第一目标文件的各个数据块存储于所述目标存储单元的第零层。
具体的,掩体文件可以遮盖住存储单元的某些存储单元格的数据,如图3所示,图3中的31、32、33(存储单元格中填充的形状为交叉格纹)即掩体文件的掩盖部分。另外,创建掩体文件的大小与存储单元的大小相同,但是掩体文件不占用额外的空间。图3中的每个小单元格是存储单元的最小管理单位:存储单元格。每个存储单元格通常设置为512字节或4K字节,并从0开始编号表示偏移。存储单元格在没写入数据前是空洞。
示例性,图3中的文件A的前两个数据块分别存储在存储单元1和存储单元2中的其中一个存储单元格中。当文件A被删除时,两个存储单元都执行Unmap操作,此时存储单元1和存储单元2分别创建掩体文件31、掩体文件32,由于两个存储单元中在此之前没有创建其他掩体文件,所以存储单元1和存储单元2创建的掩体文件都属于第1层。具体的,在掩体文件31、掩体文件32对应的存储单元格中写入0(以交叉格纹表示),表示文件A被删除。
(2)、当所述第二目标文件被删除时,创建第二掩体文件,并在所述第二掩体文件对应的存储单元格中进行写零填充。
其中,所述第二掩体文件创建于所述目标存储单元的第二层;所述第二目标文件的各个数据块存储于所述目标存储单元的第零层。
示例性的,当文件B被删除时,文件B的第二个数据块存储在存储单元2中,此时在第1层的掩体文件上,再创建第2层的掩体文件33,并在对应的存储单元格中写入0(以交叉格纹表示)。
从而,第一掩体文件与第二掩体文件形成基于多级链式的掩体文件。
在一个实施例中,在执行步骤S21(创建基于多级链式的掩体文件)之后,还执行以下步骤a-c:
a、接收输入输出IO访问请求。
b、若掩体文件所在存储单元格有数据,则执行IO操作。
c、若掩体文件所在存储单元格为空洞,则依次从掩体文件所在存储单元格的最高层逐层向下进行数据读取。
示例性的,当接收到虚拟磁盘的IO访问请求时,IO请求按照从高层到低层逐级进行处理,如图3中存储单元2的读写方式,IO请求从第2层的掩体文件的对应存储单元格进行读取,如果有数据,则完成IO操作;如果是空洞,则往下一层执行IO操作。
进一步,为了避免多级链式文件带来的IO放大问题,减少IO读取的次数,每个存储的单元设置一个索引数组,数组的大小与存储单元中存储单元格的数量相同,每个数组元素对应一个存储单元格。
在一个实施例中,根据第一次IO访问请求的访问结果,确定索引数组中每个元素的值。
其中,索引数组中的每个元素用于表示每个存储有数据块的存储单元格的最高层数。具体的,最高层数由存储单元创建的掩体文件的数量决定。
示例性的,如图3所示,存储单元1的存储单元格301的位置,数组元素对应是1;存储单元2的存储单元格302的位置,数组元素对应是1;存储单元2的存储单元格303的位置,数组元素对应是2。因此,每个存储单元只有在第一次IO访问时需要逐级操作,找到掩体文件所在的最高层数后更新索引数组。
在一个实施例中,当再次接收到IO访问请求时,根据所述索引数组查找各个数据块的位置,执行IO操作。
具体的,之后的IO直接查找索引数组找到对应的位置完成IO操作。另外,需要注意的是,每次创建掩体文件或者IO写入都可能更新索引数组。
在一个实施例中,如图4所示,提供了一种分布式存储文件的恢复装置400,包括:
文件创建模块410,用于当检测到至少一个目标文件被删除时,创建基于多级链式的掩体文件;所述目标文件由存储在至少一个存储单元的至少一个存储单元格的数据块组成;所述掩体文件是通过对所述目标文件的各个数据块所在存储单元格进行写零填充生成的稀疏文件;
日志保存模块420,用于保存所述目标文件的删除日志;所述删除日志包括:目标文件的文件路径以及位置信息;所述文件路径包括所述目标文件所在的目录以及文件名;所述位置信息包括所述目标文件的各个数据块所在存储单元的唯一编号、创建掩体文件所在的层数以及所在存储单元格的唯一编号;
文件恢复模块430,用于根据所述删除日志恢复所述目标文件。
作为本公开实施例一种可选的实施方式所述装置还包括获取模块,所述获取模块用于通过分布式存储系统的磁盘获取分布式存储在存储设备中的存储单元文件集合;从所述存储单元文件集合中获取至少一个目标文件。
作为本公开实施例一种可选的实施方式,若第一目标文件与第二目标文件存储于同一个目标存储单元中,则所述创建基于多级链式的掩体文件,包括:当第一目标文件被删除时,创建第一掩体文件,并在所述第一掩体文件对应的存储单元格中进行写零填充;所述第一掩体文件创建于所述目标存储单元的第一层;所述第一目标文件的各个数据块存储于所述目标存储单元的第零层;当所述第二目标文件被删除时,创建第二掩体文件,并在所述第二掩体文件对应的存储单元格中进行写零填充;所述第二掩体文件创建于所述目标存储单元的第二层;所述第二目标文件的各个数据块存储于所述目标存储单元的第零层;其中,所述第一掩体文件与所述第二掩体文件形成基于多级链式的掩体文件。
作为本公开实施例一种可选的实施方式,在创建基于多级链式的掩体文件之后,所述方法还包括:接收输入输出IO访问请求;若掩体文件所在存储单元格有数据,则执行IO操作;若掩体文件所在存储单元格为空洞,则依次从掩体文件所在存储单元格的最高层逐层向下进行数据读取。
作为本公开实施例一种可选的实施方式,根据第一次IO访问请求的访问结果,确定索引数组中每个元素的值;所述索引数组中的每个元素用于表示每个存储有数据块的存储单元格的最高层数;所述最高层数由存储单元创建的掩体文件的数量决定。
作为本公开实施例一种可选的实施方式,所述方法还包括:当再次接收到IO访问请求时,根据所述索引数组查找各个数据块的位置,执行IO操作。
作为本公开实施例一种可选的实施方式,所述文件恢复模块具体用于:根据所述删除日志确定所述目标文件所在的目录以及文件名;根据所述删除日志确定所述目标文件的各个数据块所在存储单元的唯一编号;根据所述删除日志确定所述目标文件的各个数据块创建掩体文件所在的层数;根据所述删除日志确定所述目标文件的各个数据块所在存储单元格的唯一编号;根据所述目标文件所在的目录以及文件名、各个数据块所在存储单元的唯一编号、各个数据块创建掩体文件所在的层数、各个数据块所在存储单元格的唯一编号构造所述目标文件。
应用本公开实施例,本公开提供的分布式存储文件的恢复装置,应用于超融合系统,所述超融合系统通过分布式存储系统管理,当检测到至少一个目标文件被删除时,创建基于多级链式的掩体文件,保存目标文件的删除日志,根据删除日志恢复目标文件。由于目标文件由存储在至少一个存储单元的至少一个存储单元格的数据块组成,且掩体文件是通过对目标文件的各个数据块所在存储单元格进行写零填充生成的稀疏文件,即组成目标文件的各个数据块位于掩体文件的下层,因此掩体文件的作用是遮盖或隐藏对应的目标文件,以使被删除的目标文件通过正常的IO无法访问到,从而,勒索病毒无法对目标文件中的数据进行二次破坏或进行数据覆盖,确保了数据安全。又由于在删除目标文件时保存了目标文件的删除日志,所以根据目标文件所在的目录以及文件名、目标文件的各个数据块所在存储单元的唯一编号、创建掩体文件所在的层数以及所在存储单元格的唯一编号能够重新构造目标文件,进而恢复目标文件。通过创建基于多级链式的掩体文件,可以同时完成对同意磁盘内所有文件进行勒索病毒防护,无需针对文件进行设置,对文件频繁动态删减的场景和海量文件的场景都能实现很好的防护,并且保证在中勒索病毒的情况下,不会丢失任何数据即可恢复原文件。
关于分布式存储文件的恢复装置的具体限定可以参见上文中对于分布式存储文件的恢复方法的限定,在此不再赘述。上述分布式存储文件的恢复装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于电子设备的处理器中,也可以软件形式存储于电子设备的处理器中,以便于处理器调用执行以上各个模块对应的操作。
本公开实施例还提供了一种电子设备,图5为本公开实施例提供的电子设备的结构示意图。如图5所示,本实施例提供的电子设备包括:存储器51和处理器52,存储器51用于存储计算机程序;处理器52用于调用计算机程序时执行上述方法实施例提供的分布式存储文件的恢复方法中任一实施例所执行的步骤。所述电子设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,所述电子设备的处理器用于提供计算和控制能力。所述电子设备的存储器包括非易失性存储介质、内存储器。所述非易失性存储介质存储有操作系统和计算机程序。所述内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。所述计算机程序被处理器执行时以实现一种分布式存储文件的恢复方法。所述电子设备的显示屏可以是液晶显示屏或者电子墨水显示屏,所述电子设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图5中示出的结构,仅仅是与本公开方案相关的部分结构的框图,并不构成对本公开方案所应用于其上的计算机设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本公开提供的分布式存储文件的恢复装置可以实现为一种计算机的形式,计算机程序可以在如图5所示的电子设备上运行。电子设备的存储器中可存储组成该电子设备的分布式存储文件的恢复装置的各个程序模块,比如,图4中所示的文件创建模块410、日志保存模块420以及文件恢复模块430。各个程序模块构成的计算机程序使得处理器执行本说明书描述的本公开各个实施例的电子设备的分布式存储文件的恢复方法中的步骤。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例提供的分布式存储文件的恢复方法。
本领域技术人员应明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质上实施的计算机程序产品的形式。
处理器可以是中央判断单元(CentralProcessingUnit,CPU),还可以是其他通用处理器、数字信号处理器(DigitalSignalProcessor,DSP)、专用集成电路(ApplicationSpecificIntegratedCircuit,ASIC)、现成可编程门阵列(Field-ProgrammableGateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动存储介质。存储介质可以由任何方法或技术来实现信息存储,信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。根据本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (8)
1.一种分布式存储文件的恢复方法,其特征在于,应用于超融合系统,所述超融合系统通过分布式存储系统管理;所述方法包括:
当检测到至少一个目标文件被删除时,创建基于多级链式的掩体文件;所述目标文件由存储在至少一个存储单元的至少一个存储单元格的数据块组成;所述掩体文件是通过对所述目标文件的各个数据块所在存储单元格进行写零填充生成的稀疏文件;
保存所述目标文件的删除日志;所述删除日志包括:目标文件的文件路径以及位置信息;所述文件路径包括所述目标文件所在的目录以及文件名;所述位置信息包括所述目标文件的各个数据块所在存储单元的唯一编号、创建掩体文件所在的层数以及所在存储单元格的唯一编号;
根据所述删除日志恢复所述目标文件;
若第一目标文件与第二目标文件存储于同一个目标存储单元中,则所述创建基于多级链式的掩体文件,包括:
当第一目标文件被删除时,创建第一掩体文件,并在所述第一掩体文件对应的存储单元格中进行写零填充;所述第一掩体文件创建于所述目标存储单元的第一层;所述第一目标文件的各个数据块存储于所述目标存储单元的第零层;
当所述第二目标文件被删除时,创建第二掩体文件,并在所述第二掩体文件对应的存储单元格中进行写零填充;所述第二掩体文件创建于所述目标存储单元的第二层;所述第二目标文件的各个数据块存储于所述目标存储单元的第零层;
其中,所述第一掩体文件与所述第二掩体文件形成基于多级链式的掩体文件;
接收输入输出IO访问请求;
若掩体文件所在存储单元格有数据,则执行IO操作;
若掩体文件所在存储单元格为空洞,则依次从掩体文件所在存储单元格的最高层逐层向下进行数据读取。
2.根据权利要求1所述的方法,其特征在于,在创建基于多级链式的掩体文件之前,所述方法还包括:
通过分布式存储系统的磁盘获取分布式存储在存储设备中的存储单元文件集合;
从所述存储单元文件集合中获取至少一个目标文件。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据第一次IO访问请求的访问结果,确定索引数组中每个元素的值;所述索引数组中的每个元素用于表示每个存储有数据块的存储单元格的最高层数;所述最高层数由存储单元创建的掩体文件的数量决定。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
当再次接收到IO访问请求时,根据所述索引数组查找各个数据块的位置,执行IO操作。
5.根据权利要求1所述的方法,其特征在于,所述根据所述删除日志构造并恢复所述目标文件,包括:
根据所述删除日志确定所述目标文件所在的目录以及文件名;
根据所述删除日志确定所述目标文件的各个数据块所在存储单元的唯一编号;
根据所述删除日志确定所述目标文件的各个数据块创建掩体文件所在的层数;
根据所述删除日志确定所述目标文件的各个数据块所在存储单元格的唯一编号;
根据所述目标文件所在的目录以及文件名、各个数据块所在存储单元的唯一编号、各个数据块创建掩体文件所在的层数、各个数据块所在存储单元格的唯一编号构造所述目标文件。
6.一种分布式存储文件的恢复装置,其特征在于,包括:
文件创建模块,用于当检测到至少一个目标文件被删除时,创建基于多级链式的掩体文件;所述目标文件由存储在至少一个存储单元的至少一个存储单元格的数据块组成;所述掩体文件是通过对所述目标文件的各个数据块所在存储单元格进行写零填充生成的稀疏文件;
日志保存模块,用于保存所述目标文件的删除日志;所述删除日志包括:目标文件的文件路径以及位置信息;所述文件路径包括所述目标文件所在的目录以及文件名;所述位置信息包括所述目标文件的各个数据块所在存储单元的唯一编号、创建掩体文件所在的层数以及所在存储单元格的唯一编号;
文件恢复模块,用于根据所述删除日志恢复所述目标文件;
若第一目标文件与第二目标文件存储于同一个目标存储单元中,则所述文件创建模块具体用于:
当第一目标文件被删除时,创建第一掩体文件,并在所述第一掩体文件对应的存储单元格中进行写零填充;所述第一掩体文件创建于所述目标存储单元的第一层;所述第一目标文件的各个数据块存储于所述目标存储单元的第零层;
当所述第二目标文件被删除时,创建第二掩体文件,并在所述第二掩体文件对应的存储单元格中进行写零填充;所述第二掩体文件创建于所述目标存储单元的第二层;所述第二目标文件的各个数据块存储于所述目标存储单元的第零层;
其中,所述第一掩体文件与所述第二掩体文件形成基于多级链式的掩体文件;
接收输入输出IO访问请求;
若掩体文件所在存储单元格有数据,则执行IO操作;
若掩体文件所在存储单元格为空洞,则依次从掩体文件所在存储单元格的最高层逐层向下进行数据读取。
7.一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述的分布式存储文件的恢复方法。
8.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,计算机程序被处理器执行时实现权利要求1至5中任一项所述的分布式存储文件的恢复方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210203570.5A CN114564456B (zh) | 2022-03-03 | 2022-03-03 | 分布式存储文件的恢复方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210203570.5A CN114564456B (zh) | 2022-03-03 | 2022-03-03 | 分布式存储文件的恢复方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114564456A CN114564456A (zh) | 2022-05-31 |
CN114564456B true CN114564456B (zh) | 2022-09-23 |
Family
ID=81716975
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210203570.5A Active CN114564456B (zh) | 2022-03-03 | 2022-03-03 | 分布式存储文件的恢复方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114564456B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8504758B1 (en) * | 2010-09-21 | 2013-08-06 | Amazon Technologies, Inc. | System and method for logical deletion of stored data objects |
US9678968B1 (en) * | 2010-05-03 | 2017-06-13 | Panzura, Inc. | Deleting a file from a distributed filesystem |
CN108228813A (zh) * | 2017-12-29 | 2018-06-29 | 北京奇虎科技有限公司 | 分布式系统中副本数据库的删除方法及装置 |
CN110457163A (zh) * | 2019-07-05 | 2019-11-15 | 苏州元核云技术有限公司 | 一种分布式块存储的数据恢复方法、装置及存储介质 |
CN111143116A (zh) * | 2018-11-06 | 2020-05-12 | 深圳市茁壮网络股份有限公司 | 一种磁盘坏块处理的方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101546295B (zh) * | 2008-03-24 | 2010-12-22 | 上海梅山钢铁股份有限公司 | 基于计算机硬盘分区的数据备份和恢复方法 |
EP2359271A2 (en) * | 2008-12-16 | 2011-08-24 | SanDisk IL Ltd. | Discardable files |
CN108418796B (zh) * | 2018-01-30 | 2020-12-18 | 西安电子科技大学 | 云数据多副本完整性验证及关联删除的方法、云存储系统 |
CN110750325A (zh) * | 2019-02-25 | 2020-02-04 | 北京嘀嘀无限科技发展有限公司 | 虚拟机的镜像备份方法、故障恢复方法、装置和电子设备 |
-
2022
- 2022-03-03 CN CN202210203570.5A patent/CN114564456B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9678968B1 (en) * | 2010-05-03 | 2017-06-13 | Panzura, Inc. | Deleting a file from a distributed filesystem |
US8504758B1 (en) * | 2010-09-21 | 2013-08-06 | Amazon Technologies, Inc. | System and method for logical deletion of stored data objects |
CN108228813A (zh) * | 2017-12-29 | 2018-06-29 | 北京奇虎科技有限公司 | 分布式系统中副本数据库的删除方法及装置 |
CN111143116A (zh) * | 2018-11-06 | 2020-05-12 | 深圳市茁壮网络股份有限公司 | 一种磁盘坏块处理的方法及装置 |
CN110457163A (zh) * | 2019-07-05 | 2019-11-15 | 苏州元核云技术有限公司 | 一种分布式块存储的数据恢复方法、装置及存储介质 |
Non-Patent Citations (3)
Title |
---|
A scheme for crash recovery of distributed real-time main memory database;Xiao Yingyuan et al.;《Journal of Huazhong University of Science and Technology》;20060630;第39-42页 * |
HFS+删除文件恢复技术;沈长达等;《信息网络安全》;20130810(第08期);第63-66页 * |
文件系统安全存储算法研究与系统设计;张玉洁;《华北科技学院学报》;20110415(第02期);第84-90页 * |
Also Published As
Publication number | Publication date |
---|---|
CN114564456A (zh) | 2022-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10977124B2 (en) | Distributed storage system, data storage method, and software program | |
US8301670B2 (en) | Managing snapshot storage pools | |
EP3617867B1 (en) | Fragment management method and fragment management apparatus | |
US7895394B2 (en) | Storage system | |
CN102473223B (zh) | 信息处理装置以及信息处理方法 | |
US8234317B1 (en) | Auto-committing files to immutable status based on a change log of file system activity | |
US20070061540A1 (en) | Data storage system using segmentable virtual volumes | |
JP2007012056A (ja) | データ保全の先送りされた認証を有するファイルシステム | |
JP2007012054A (ja) | ファイルシステム保全の最適化されたスタートアップ認証 | |
CN109388945B (zh) | 一种基于固态存储设备防范勒索软件攻击的方法和系统 | |
US11061788B2 (en) | Storage management method, electronic device, and computer program product | |
US11449402B2 (en) | Handling of offline storage disk | |
Chakraborti et al. | Datalair: Efficient block storage with plausible deniability against multi-snapshot adversaries | |
CN114710263B (zh) | 密钥管理方法、密钥管理装置、密钥管理设备及存储介质 | |
CN111782625A (zh) | 芯智科技嵌入式远程文件系统软件 | |
CN111143130B (zh) | 数据恢复方法、装置、计算机可读存储介质和计算机设备 | |
CN114564456B (zh) | 分布式存储文件的恢复方法及装置 | |
CN105095352B (zh) | 应用于分布式系统的数据处理方法及装置 | |
CN111273862A (zh) | 数据存储方法及其装置、可读介质和系统 | |
CN113849317B (zh) | 一种内存池资源使用方法及相关装置 | |
CN108271420B (zh) | 管理文件的方法、文件系统和服务器系统 | |
Onarlioglu et al. | Eraser: Your data won't be back | |
US11163642B2 (en) | Methods, devices and computer readable medium for managing a redundant array of independent disks | |
Kuts et al. | Deleted Data Recovery on Solid-State Drives by Software Based Methods | |
CN113342274A (zh) | 一种数据处理方法及装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |