CN111913915A - 文件隐藏方法和装置 - Google Patents

文件隐藏方法和装置 Download PDF

Info

Publication number
CN111913915A
CN111913915A CN202010752804.2A CN202010752804A CN111913915A CN 111913915 A CN111913915 A CN 111913915A CN 202010752804 A CN202010752804 A CN 202010752804A CN 111913915 A CN111913915 A CN 111913915A
Authority
CN
China
Prior art keywords
file
directory
target file
dnod
file system
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
CN202010752804.2A
Other languages
English (en)
Other versions
CN111913915B (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.)
Macrosan Technologies Co Ltd
Original Assignee
Macrosan 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 Macrosan Technologies Co Ltd filed Critical Macrosan Technologies Co Ltd
Priority to CN202010752804.2A priority Critical patent/CN111913915B/zh
Publication of CN111913915A publication Critical patent/CN111913915A/zh
Application granted granted Critical
Publication of CN111913915B publication Critical patent/CN111913915B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/14Details of searching files based on file metadata
    • G06F16/148File search processing
    • 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
    • G06F16/162Delete operations
    • 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/602Providing cryptographic facilities or services

Abstract

本申请提供了一种文件隐藏方法和装置。该文件隐藏方法,包括:当对目标文件进行隐藏时,在本地文件系统已建立的临时目录中构建与所述目标文件对应的第一Dnode;在本地文件系统中的元数据对象集MOS中查找到所述目标文件对应的第二Dnode;将所述第二Dnode中记录的所述目标文件的文件描述信息记录至所述第一Dnode,并删除所述第二Dnode已记录的所述文件描述信息,以使用于访问所述目标文件的访问请求访问不到所述目标文件;所述文件描述信息至少包括:所述目标文件在本地文件系统的存储地址。

Description

文件隐藏方法和装置
技术领域
本申请涉及存储技术,特别涉及文件隐藏方法和装置。
背景技术
目前,对于某些文件系统例如ZFS,其自身并不具备文件隐藏功能。因此,在需要隐藏某些文件(记为目标文件)时,通常将目标文件嵌入至另一个文件(记为宿主文件)中,以实现目标文件的隐藏。
但是,为了保证目标文件不易被发现,通常需要宿主文件的大小是目标文件的10至30倍,这就导致宿主文件严重的占用了存储空间,同时也难以对大型文件进行隐藏。
发明内容
本申请提供了文件隐藏方法和装置,以通过更改目标文件对应的文件描述信息的存储位置实现对目标文件的隐藏。
本申请提供的技术方案包括:
根据本申请的第一方面,提供一种文件隐藏方法,包括:
当对目标文件进行隐藏时,在本地文件系统已建立的临时目录中构建与所述目标文件对应的第一Dnode;
在本地文件系统中的元数据对象集MOS中查找到所述目标文件对应的第二Dnode;
将所述第二Dnode中记录的所述目标文件的文件描述信息记录至所述第一Dnode,并删除所述第二Dnode已记录的所述文件描述信息,以使用于访问所述目标文件的访问请求访问不到所述目标文件;所述文件描述信息至少包括:所述目标文件在本地文件系统的存储地址。
根据本申请的第二方面,提供一种文件隐藏装置,包括:
构建单元,用于当对目标文件进行隐藏时,在本地文件系统已建立的临时目录中构建与所述目标文件对应的第一Dnode;
查找单元,用于在本地文件系统中的元数据对象集MOS中查找到所述目标文件对应的第二Dnode;
隐藏单元,用于将所述第二Dnode中记录的所述目标文件的文件描述信息记录至所述第一Dnode,并删除所述第二Dnode已记录的所述文件描述信息,以使用于访问所述目标文件的访问请求访问不到所述目标文件;所述文件描述信息至少包括:所述目标文件在本地文件系统的存储地址。
由以上技术方案可以看出,本申请中,在对目标文件进行隐藏时,可以通过新建对应于目标文件的第一Dnode,并将目标文件原本对应的第二Dnode中记录的文件描述信息(至少包括目标文件在本地文件系统中的存储地址)记录至第一Dnode,同时删除第二Dnode中的文件描述信息的方式,实现了对该文件描述信息的存储位置的更改,进而使用于访问该目标文件的访问请求访问不到所述目标文件,相较于利用宿主文件来对目标文件进行隐藏,减少了对存储空间的占用并不受目标文件的文件大小的限制。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请施例,并与说明书一起用于解释本申请的原理。
图1为本申请实施例提供的一种文件隐藏方法的流程示意图;
图2为本申请实施例提供的步骤102的实现流程图;
图3为本申请实施例提供的一种取消对隐藏文件的隐藏的流程示意图;
图4为本申请实施例提供的恢复目录信息的流程示意图;
图5为本申请提供的一种文件隐藏装置的结构示意图;
图6为本申请提供的图5所示装置的硬件结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
为了使本申请的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本申请进行详细描述。
为了使得本申请的描述更清楚简洁,下面对本申请中的一些技术术语进行解释:
1、泽字节文件系统(Zettabyte File System,ZFS):ZFS是一种利用存储池来进行存储设备管理和存储空间分配的文件系统。所谓存储池,其是由一组虚设备(virtualDevices,Vdev)组成的存储空间,Vdev可分为物理Vdev和逻辑Vdev。其中,物理Vdev是可读写的存储设备,比如机械硬盘、固态硬盘等。
2、对象(Object):物理Vdev中所存储的所有数据均被ZFS组织和表示为对象,比如文件、目录、卷和文件系统等。
3、节点(Dnode):ZFS中的每个对象均对应一个Dnode,该Dnode中存储其对应对象的文件描述信息,该文件描述信息中可以包括其对应的对象在ZFS中的存储地址、该对象在ZFS中的目录信息等。
4、对象集(Object set)对象:在ZFS中,可以使用对象集对多个对象进行统一管理,对象集是其所管理的若干个对象对应的Dnode的集合。
5、数据集(Data set)对象:在ZFS中,每个对象集对应有一个数据集,该数据集用于管理其对应的对象集。
6、Vdev标签:Vdev标签设置于存储池的每一物理Vdev中,用于标识物理Vdev是存储池中Vdev中的一员。
7、超级块(Uberblock):Uberblock存储在Vdev标签中,Uberblock中存储有ZFS中MOS的存储地址,通过MOS可以访问ZFS中的任一对象。为了避免多个Uberblock同时访问存储池进而造成访问冲突,存储池在每一时刻都仅有一个Uberblock处于激活状态,它拥有最高的事务组编号。
8、元数据对象集(Meta Object Set,MOS):在ZFS中,MOS以数组形式存储ZFS中每一对象对应的Dnode,每一Dnode在MOS中的编号称之为Dnode ID,通过Dnode ID便可在MOS中确定出相应的Dnode。
9、ZAP对象:ZAP对象即为ZAP类型的对象,ZAP对象在ZFS中主要用于组织和表示文件系统中的各类目录。例如,文件系统根目录对象的对象类型便是ZAP对象。在ZAP对象中,可以通过键值对的形式存储其所组织和表示的目录下各文件的路径信息和各文件对应的Dnode在MOS中的Dnode ID。
10、间接块:每一个对象对应的Dnode中可最多可存储有三个块指针,若这三个块指针均指向存储该对象的数据块,且每个块指针所指向的数据块的存储空间均为128KB(ZFS中单个数据块的最大存储空间为128KB),则该Dnode中的3个块指针所指向的数据块的存储空间之和为384KB(3个128KB)。若存储该对象的各数据块的存储空间之和大于384KB,则需要采用其它的块指针以指向存储该对象的其它数据块,而存储这些块指针以及块指针所指向的存储地址的数据块便是间接块。
请参见图1,为本申请实施例提供的一种文件隐藏方法的流程示意图。作为一个实施例,图1所示流程可应用于存储设备。
如图1所示,该流程可包括以下步骤:
步骤101,当对目标文件进行隐藏时,在本地文件系统已建立的临时目录中构建与目标文件对应的第一Dnode。
作为一个示例,本申请实施例中的文件系统可以是ZFS。下文若未明确说明,则均以文件系统为ZFS为例进行描述。
本申请实施例中,目标文件可以是文件系统中的任意一个文件,具体可根据用户需求决定,本申请对此不作具体限定。
在一个例子中,本步骤101中的临时目录可以是在上述步骤101执行前就预先建立,这样可以在隐藏目标文件的过程中减少所需执行的步骤,提高文件隐藏效率。在另一个例子中,本步骤101中的临时目录也可以是本步骤101执行过程中建立,这样可以节省ZFS中的存储空间。
本申请实施例中,临时目录的数量可以根据实际情况设置。例如,可以仅建立一个临时目录,该唯一的临时目录对应于本地文件系统中的所有文件。又例如,可以针对每一个需要隐藏的目标文件都建立一个临时目录,即一个临时目录对应于一个需要隐藏的目标文件。需要说明的是,临时目录可以是建立在本地文件系统中任一目录下,比如临时目录可以建立在文件系统根目录下、也可以是建立在目标文件所在目录下,本申请对此不做具体限定。
在本申请实施例中,新建的第一Dnode是未存储任何信息的Dnode,该Dnode的具体作用在后续步骤中会详细描述。
步骤102,在本地文件系统中的元数据对象集MOS中查找到目标文件对应的第二Dnode。
在本申请实施例中,在本地文件系统中的MOS中查找到目标文件对应的第二Dnode有多种实现方式。下文会详细描述其中一种实现方式,这里暂不赘述。
步骤103,将第二Dnode中记录的目标文件的文件描述信息记录至第一Dnode,并删除第二Dnode已记录的文件描述信息,以使用于访问目标文件的访问请求访问不到目标文件;文件描述信息至少包括:目标文件在本地文件系统的存储地址。
在本步骤103中,第二Dnode是ZFS中原本对应于目标文件的Dnode,该第二Dnode中存储有目标文件的文件描述信息,文件描述信息中至少可以包括目标文件的在本地文件系统中的存储地址。当然,上述文件描述信息还可以包括:目标文件的大小、目标文件的名称、目标文件的文件类型等各类能够描述目标文件的信息。
在本步骤103中,之所以要删除第二Dnode中记录的目标文件在本地文件系统中的存储地址,原因是:在ZFS中,访问请求在访问目标文件的过程中,需依赖于目标文件对应的第二Dnode中所记录的上述存储地址实现对目标文件的访问。因此,通过删除第二Dnode中记录的上述存储地址,便可使得访问该目标文件的访问请求无法再通过第二Dnode中的存储地址实现对目标文件的访问,进而达到了隐藏目标文件的目的。
此外,在本步骤103中,之所以要将文件描述信息记录至第一Dnde,是因为:若仅执行上述删除第二Dnode已记录的文件描述信息的操作,则会导致目标文件在隐藏后无法被恢复。至于如何依据第一Dnde中记录的文件描述信息来取消对目标文件的隐藏,下文会详细描述,这里暂不赘述。
为了便于管理文件系统中的各临时目录,可以在本地文件系统中构建一个临时目录列表,并将上述用于隐藏目标文件的临时目录添加至该临时目录列表。这里,为避免上述的临时目录列表被读取进而泄露临时目录,可使用加密算法对上述的临时目录列表进行加密。
可选的,上述的加密算法可以是对称加密算法,比如DES算法、AES算法或3DES算法等。可选的,上述的加密算法也可以是非对称加密算法,比如RSA算法或ECC算法等。至于具体采用何种加密算法进行加密,本申请并不具体限定。
此外,为防止临时目录被访问请求所访问,可以在临时目录的目录名中添加指定字符串,该指定字符串用于指示本地文件系统将针对该临时目录的访问请求过滤掉,以使用于访问临时目录的访问请求访问不到临时目录。
需要说明的是,上述指定字符串的具体内容可以根据实际情况设置,例如将指定字符串设置为$Tempfile$RANDOM,本申请对此不作限定。
在完成本步骤103后,受限于ZFS的数据校验机制,ZFS中任何一个数据被改写后,都需要重新计算改写后数据所在数据块的校验和、以及存储池根数据块至该改写后数据所在数据块间所有数据块的校验和。因此,在一个例子中,完成本步骤103之后,还需要重新计算存储池根数据块至第一Dnode所在数据块、以及存储池根块至第二Dnode所在数据块之间各数据块的校验和。
至此,完成图1所示流程。
由以上技术方案可以看出,本申请中,在对目标文件进行隐藏时,可以通过新建对应于目标文件的第一Dnode,并将目标文件原本对应的第二Dnode中记录的文件描述信息(至少包括目标文件在本地文件系统中的存储地址)记录至第一Dnode,同时删除第二Dnode中的文件描述信息的方式,实现了对该文件描述信息所存储位置的更改,进而使用于访问该目标文件的访问请求访问不到目标文件,相较于利用宿主文件来对目标文件进行隐藏,减少了对存储空间的占用并不受目标文件的文件大小的限制。
下面对上述步骤102中如何在本地文件系统中的元数据对象集MOS中查找到目标文件对应的第二Dnode进行描述:
参考图2,该流程包括:
步骤201,在本地文件系统中查找到文件系统根目录对象,文件系统根目录对象中记录有目标文件对应的目录信息;该目录信息至少包括:第二Dnode在MOS中的Dnode ID。
在本申请实施例中,在本地文件系统中查找到文件系统根目录对象有多种实现方式。下文会详细描述其中一种实现方式,这里暂不赘述。
在ZFS中,文件系统根目录对象可以是ZAP类型的对象,其中记录有文件系统根目录下各文件的目录信息。在具体应用时,该目录信息可以被记录至ZAP entry中,以键值对的方式存储。其中,文件系统根目录下各文件的路径信息作为键值对中的键,各文件对应的Dnode在MOS中的Dnode ID作为键值对中的值。基于此,可以在对目标文件进行隐藏时,获得目标文件的文件信息比如文件名称、文件所在路径信息等。之后,将该文件信息作为关键字,在上述的ZAP entry中搜索包含该文件信息的键值对,并将该键值中记录的Dnode ID确定为第二Dnode在MOS中的Dnode ID。
步骤202,依据Dnode ID在MOS中查找到第二Dnode。
在ZFS中,MOS以数组形式存储了本地文件系统中每一对象对应的Dnode,每一Dnode均对应有一个Dnode ID,以用于标识该Dnode在MOS中的位置。基于此,在得到第二Dnode在MOS中的Dnode ID后,则可以依据该Dnode ID在MOS中查找到第二Dnode。
以上对上述步骤102中如何在本地文件系统中的元数据对象集MOS中查找到目标文件对应的第二Dnode进行了描述。
下面对上述步骤201中如何在本地文件系统中查找到文件系统根目录对象进行描述:
步骤a,在本地文件系统的存储池所包括的各Uberblock中,确定出在当前处于活跃状态的目标Uberblock。
作为一个示例,处于活跃状态的目标Uberblock具有最高的事务组编号。基于此,可以通过遍历存储池中每一Uberblock具有的事务组编号,查找到具有最高事务组编号的Uberblock,并将查找到的该Uberblock确定为目标Uberblock。
步骤b,依据目标Uberblock中记录的MOS在本地文件系统中的存储地址访问MOS。
在ZFS中,目标Uberblock记录有MOS在本地文件系统中的存储地址。因此,在确定出目标Uberblock后,可以通过该目标Uberblock中存储的上述存储地址访问到MOS。
步骤c,在MOS中确定出对象目录对象对应的Dnode并访问对象目录对象。
在ZFS中,MOS中除包含本地文件系统中各对象对应的Dnode之外,还包括一个用于访问前述各Dnode的特殊对象的Dnode,即对象目录对象对应的Dnode,该对象目录对象对应的Dnode在MOS中的Dnode ID始终为2。因此,可以直接的利用对象目录对象在MOS中的DnodeID确定出对象目录对象的Dnode,并利用该Dnode访问该对象目录对象。
步骤d,依据对象目录对象访问根数据集目录对象。
在ZFS中,对象目录对象是一个ZAP类型的对象,其中存储有若干个键值对。在若干键值对中,尤为重要的是root dataset键值对,该键值对中记录有根数据集目录对象对应的Dnode在MOS中的Dnode ID。基于此,可以在上述的root dataset键值对中获得根数据集目录对象对应的Dnode在MOS中的Dnode ID,并依据该Dnode ID在MOS中确定出根数据集目录对象对应的Dnode以访问根数据集目录对象。
步骤e,依据根数据集目录对象访问子数据集目录对象。
在ZFS中,根数据集目录对象中存储有子数据集目录对象对应的Dnode在MOS中的Dnode ID。基于此,依据子数据集目录对象对应的Dnode在MOS中的Dnode ID,则可以在MOS中确定出子数据集目录对象对应的Dnode,并依据该Dnode访问子数据集目录对象。
步骤f,依据子数据集目录对象访问文件系统目录对象。
在ZFS中,子数据集目录对象中存储有文件系统目录对象对应的Dnode在MOS中的Dnode ID。基于此,依据文件系统目录对象对应的Dnode在MOS中的Dnode ID,可以在MOS中确定出文件系统目录对象对应的Dnode,并依据该Dnode访问文件系统目录对象。
步骤g,依据文件系统目录对象在MOS中确定出当前处于活跃状态的文件系统数据集对应的Dnode。
在ZFS中,文件系统目录对象是一个ZAP类型的对象,该文件系统目录对象中存储有各文件系统数据集对应的Dnode在MOS中的Dnode ID。其中,在当前处于活跃状态的文件系统数据集对应的Dnode中的dn_bonus字段为dd_head_dataset_obj。基于此,可以通过遍历各文件系统数据集对应的Dnode,进而找到dn_bonus字段为dd_head_dataset_obj的Dnode,将该Dnode确定为当前处于活跃状态的文件系统数据集对应的Dnode。这里,当前处于活跃状态的文件系统数据集,是指当前所正在使用的文件系统所对应的文件系统数据集。
步骤h,依据当前处于活跃状态的文件系统数据集对应的Dnode访问文件系统对象集。
在ZFS中,当前处于活跃状态的文件系统数据集对应的Dnode中存储有文件系统对象集的存储地址。基于此,可依据该存储地址访问到文件系统对象集。
需要说明的是,由于文件系统对象集通常需要占用3个以上的数据块来进行存储,因此文件系统数据集对应的Dnode中存储的块指针可能会指向对应于文件系统对象集的间接块。在这种情况下,则需要借助该间接块中所存储的块指针所指向的数据块以最终访问到存储文件系统对象集的数据块。
步骤i,依据文件系统对象集访问Master Node(主节点)对象。
在ZFS中,Master Node对象所对应的Dnode在文件系统对象集中的Dnode ID是固定的,其Dnode ID固定为1。基于此,可将文件系统对象集中Dnode ID为1的Dnode确定为Master Node对象对应的Dnode,并依据该Dnode访问Master Node对象。
步骤j,依据Master Node对象访问文件系统根目录对象。
在ZFS中,Master Node对象中存储有三个属性信息,分别是DELETE_QUEUE属性信息、VERSION属性信息以及ROOT属性信息。其中,ROOT属性信息中存储有文件系统根目录对象对应的Dnode在MOS中的Dnode ID。基于此,可根据Master Node对象中存储的文件系统根目录对象对应的Dnode在MOS中的Dnode ID,在MOS中确定出文件系统根目录对象对应的Dnode,并依据该Dnode访问文件系统根目录对象。
以上对上述步骤201中如何在本地文件系统中查找到文件系统根目录对象进行了描述。
如前述的,通过上述步骤101至步骤103已经实现了对第二Dnode中记录的存储地址的隐藏,但是,通过文件系统根目录对象中存储的目标文件对应的目录信息仍可以在MOS中找到目标文件对应的第二Dnode,以获得该第二Dnode中未被删除的信息。因此,为进一步保证目标文件不会因目录信息的存在,而泄露第一Dnode中所存储的其它信息,这里可以在第二Dnode中记录有目标文件对应的目录信息的前提下,进一步将文件系统根目录对象中记录的目标文件的目录信息删除。
当目标文件被隐藏后,则相应的产生了取消隐藏的需求。下面结合图3所示流程,对已完成隐藏的目标文件如何取消隐藏进行描述:
如图3所示,该流程可以包括:
步骤301,当对目标文件取消隐藏时,将第一Dnode中记录的文件描述信息记录至第二Dnode,以使用于访问目标文件的访问请求能够访问到目标文件。
作为一个示例,在本步骤301中,可以是在接收到针对目标文件的文件恢复指令时,取消对目标文件的隐藏。
在一个例子中,上述的文件恢复指令中可以携带存储有目标文件对应的第一Dnode的临时目录的目录名。这里,文件恢复指令之所以要携带临时目录的目录名,是因为目标文件在之前的文件隐藏过程中,该临时目录的目录名只有特定用户(即触发文件隐藏流程的用户)知晓,而其他用户则并不知晓。因此,通过对文件恢复指令中携带的目录名进行校验,则可确定该目录名是否合法,并仅在目录名合法时取消对目标文件的隐藏。
在另一个例子中,若目标文件在隐藏的过程中,还涉及将临时目录添加至临时目录列表并对该临时目录列表加密的操作,则上述的文件恢复指令中还可以携带有临时目录列表的密钥。通过对文件恢复指令中携带的密钥以及目录名进行校验,则可确定该密钥是否正确以及目录名是否合法,并仅在目录名合法且密钥正确时取消对目标文件的隐藏。
可选的,在对文件恢复指令中携带的目录名进行校验时,可以将该目录名作为关键字,在本地文件系统中查找该关键字;若查找到该关键字,则确定该目录名指令通过校验,可以取消对目标文件的隐藏;否则,确定该文件目录名未通过校验,不能够取消对目标文件的隐藏。
可选的,若目标文件在隐藏的过程中,涉及将临时目录添加至临时目录列表并对该临时目录列表加密的操作,则在对文件恢复指令中携带的目录名进行校验时,首先判断接收到的文件恢复指令中是否携带有密钥;在携带有密钥的前提下,可以使用该密钥对临时目录列表进行解密。若成功完成解密,则将该目录名作为关键字,在临时目录列表中查找该关键字;若查找到该关键字,则确定取消对目标文件的隐藏;否则,确定不能取消对目标文件的隐藏。
在确定需要取消对目标文件的隐藏时,则可以将目标文件对应的第一Dnode中记录的文件描述信息记录至第二Dnode,由于第一Dnode中记录的文件描述信息本身是在之前隐藏目标文件的过程中从第二Dnode中拷贝得到的,因此将第一Dnode中记录的文件描述信息记录至第二Dnode后,则实现了对第二Dnode中已删除的文件描述信息的恢复,进而使用于访问目标文件的访问请求能够访问到目标文件。
在一个例子中,若在隐藏该目标文件的过程中,还涉及到对文件系统根目录对象中目标文件对应的目录信息的删除操作,则在执行本步骤301的过程中,还可以执行图4所示的以下步骤:
步骤401,从第一Dnode记录的文件描述信息中查找到目标文件对应的目录信息,目录信息是文件系统根目录对象已删除的目录信息。
在本申请实施例中,若在隐藏该目标文件的过程中,删除了文件系统根目录对象中目标文件对应的目录信息,则会导致本地文件系统在响应访问目标文件的访问请求时,无法从MOS中确定出目标文件对应的第二Dnode,导致访问失败。因此,在取消对目标文件的隐藏过程中,还需要从第一Dnode记录文件描述信息中查找到目标文件对应的目录信息。
步骤402,将查找到的目录信息记录至文件系统根目录对象。
在查找到目标文件对应的目录信后,则可将该目标文件对应的目录信记录至文件系统根目录对象,以实现对文件系统根目录对象中已删除的该目录信息的恢复,进而使访问目标文件的访问请求能够访问到该目标文件。
至此,完成图4所示流程。
步骤302,删除第一Dnode和临时目录。
在本申请实施例中,由于已经取消了对目标文件的隐藏,因此为了释放存储空间,则可以将第一Dnode以及存储该第一Dnode的临时目录均删除。
在完成本步骤301后,受限于ZFS的数据校验机制,ZFS中任何一个数据被改写后,都需要重新计算改写后数据所在数据块的校验和、以及存储池根数据块至该改写后数据所在数据块间所有数据块的校验和。因此,在一个例子中,完成本步骤301之后,还需要重新计算存储池根数据块至第一Dnode所在数据块、以及存储池根块至第二Dnode所在数据块之间各数据块的校验和。
以上对如何取消对隐藏文件的隐藏进行了描述。
下面对本申请提供的装置进行描述:
请参见图5,为本申请实施例提供的一种文件隐藏装置的结构示意图,该文件隐藏装置可应用于存储设备。
如图5所示,该文件隐藏装置可以包括:
构建单元,用于当对目标文件进行隐藏时,在本地文件系统已建立的临时目录中构建与目标文件对应的第一Dnode;
查找单元,用于在本地文件系统中的元数据对象集MOS中查找到目标文件对应的第二Dnode;
隐藏单元,用于将第二Dnode中记录的目标文件的文件描述信息记录至第一Dnode,并删除第二Dnode已记录的文件描述信息,以使用于访问目标文件的访问请求访问不到目标文件;文件描述信息至少包括:目标文件在本地文件系统的存储地址。
作为一个示例,查找单元在本地文件系统中的元数据对象集MOS中查找到目标文件对应的第二Dnode,包括:
在本地文件系统中查找到文件系统根目录对象,文件系统根目录对象中记录有目标文件对应的目录信息;目录信息至少包括:第二Dnode在MOS中的Dnode ID;
依据Dnode ID在MOS中查找到第二Dnode。
作为一个示例,在文件描述信息还包括目标文件对应的目录信息的情况下,隐藏单元还用于:
删除文件系统根目录对象中记录的目标文件对应的目录信息。
作为一个示例,临时目录的目录名中包含指定字符串,指定字符串用于指示本地文件系统将针对临时目录的访问请求过滤掉,以使用于访问临时目录的访问请求访问不到临时目录。
作为一个示例,隐藏单元还用于:
当对目标文件取消隐藏时,将第一Dnode中记录的文件描述信息记录至第二Dnode,并删除第一Dnode,以使用于访问目标文件的访问请求能够访问到目标文件。
作为一个示例,若在隐藏目标文件的过程中,删除了文件系统根目录对象中记录的目标文件对应的目录信息,则隐藏单元对目标文件取消隐藏时,还用于:
从第一Dnode记录的文件描述信息中查找到目标文件对应的目录信息,目录信息是文件系统根目录对象已删除的目录信息;
将查找到的目录信息记录至文件系统根目录对象。
至此,完成对图5所示装置的描述。
对应地,本申请还提供了图5所示装置的硬件结构。参见图6,该硬件结构可包括:处理器和机器可读存储介质,机器可读存储介质存储有能够被处理器执行的机器可执行指令;处理器用于执行机器可执行指令,以实现本申请上述示例公开的方法。
基于与上述方法同样的申请构思,本申请实施例还提供一种机器可读存储介质,机器可读存储介质上存储有若干计算机指令,计算机指令被处理器执行时,能够实现本申请上述示例公开的方法。
示例性的,上述机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
以上仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (12)

1.一种文件隐藏方法,其特征在于,包括:
当对目标文件进行隐藏时,在本地文件系统已建立的临时目录中构建与所述目标文件对应的第一Dnode;
在本地文件系统中的元数据对象集MOS中查找到所述目标文件对应的第二Dnode;
将所述第二Dnode中记录的所述目标文件的文件描述信息记录至所述第一Dnode,并删除所述第二Dnode已记录的所述文件描述信息,以使用于访问所述目标文件的访问请求访问不到所述目标文件;所述文件描述信息至少包括:所述目标文件在本地文件系统的存储地址。
2.根据权利要求1所述的方法,其特征在于,所述在本地文件系统中的元数据对象集MOS中查找到所述目标文件对应的第二Dnode,包括:
在本地文件系统中查找到文件系统根目录对象,所述文件系统根目录对象中记录有所述目标文件对应的目录信息;所述目录信息至少包括:所述第二Dnode在所述MOS中的DnodeID;
依据所述DnodeID在所述MOS中查找到所述第二Dnode。
3.根据权利要求2所述的方法,其特征在于,在所述文件描述信息还包括所述目标文件对应的所述目录信息的情况下,该方法进一步包括:
删除所述文件系统根目录对象中记录的所述目标文件对应的目录信息。
4.根据权利要求1所述的方法,其特征在于,所述临时目录的目录名中包含指定字符串,所述指定字符串用于指示本地文件系统将针对所述临时目录的访问请求过滤掉,以使所述用于访问所述临时目录的访问请求访问不到所述临时目录。
5.根据权利要求1至4任一项所述的方法,其特征在于,该方法进一步包括:
当对所述目标文件取消隐藏时,将所述第一Dnode中记录的所述文件描述信息记录至所述第二Dnode,并删除所述第一Dnode,以使用于访问所述目标文件的访问请求能够访问到所述目标文件。
6.根据权利要求5所述的方法,其特征在于,若在隐藏所述目标文件的过程中,删除了所述文件系统根目录对象中记录的所述目标文件对应的目录信息,则对所述目标文件取消隐藏时,该方法还包括:
从所述第一Dnode记录的所述文件描述信息中查找到所述目标文件对应的目录信息,所述目录信息是所述文件系统根目录对象已删除的所述目录信息;
将查找到的所述目录信息记录至所述文件系统根目录对象。
7.一种文件隐藏装置,其特征在于,包括:
构建单元,用于当对目标文件进行隐藏时,在本地文件系统已建立的临时目录中构建与所述目标文件对应的第一Dnode;
查找单元,用于在本地文件系统中的元数据对象集MOS中查找到所述目标文件对应的第二Dnode;
隐藏单元,用于将所述第二Dnode中记录的所述目标文件的文件描述信息记录至所述第一Dnode,并删除所述第二Dnode已记录的所述文件描述信息,以使用于访问所述目标文件的访问请求访问不到所述目标文件;所述文件描述信息至少包括:所述目标文件在本地文件系统的存储地址。
8.根据权利要求7所述的装置,其特征在于,所述查找单元在本地文件系统中的元数据对象集MOS中查找到所述目标文件对应的第二Dnode,包括:
在本地文件系统中查找到文件系统根目录对象,所述文件系统根目录对象中记录有所述目标文件对应的目录信息;所述目录信息至少包括:所述第二Dnode在所述MOS中的DnodeID;
依据所述DnodeID在所述MOS中查找到所述第二Dnode。
9.根据权利要求8所述的装置,其特征在于,在所述文件描述信息还包括所述目标文件对应的所述目录信息的情况下,所述隐藏单元还用于:
删除所述文件系统根目录对象中记录的所述目标文件对应的目录信息。
10.根据权利要求7所述的装置,其特征在于,所述临时目录的目录名中包含指定字符串,所述指定字符串用于指示本地文件系统将针对所述临时目录的访问请求过滤掉,以使用于访问所述临时目录的访问请求访问不到所述临时目录。
11.根据权利要求7至10任一项所述的装置,其特征在于,所述隐藏单元还用于:
当对所述目标文件取消隐藏时,将所述第一Dnode中记录的所述文件描述信息记录至所述第二Dnode,并删除所述第一Dnode,以使用于访问所述目标文件的访问请求能够访问到所述目标文件。
12.根据权利要求11所述的装置,其特征在于,若在隐藏所述目标文件的过程中,删除了所述文件系统根目录对象中记录的所述目标文件对应的目录信息,则所述隐藏单元对所述目标文件取消隐藏时,还用于:
从所述第一Dnode记录的所述文件描述信息中查找到所述目标文件对应的目录信息,所述目录信息是所述文件系统根目录对象已删除的所述目录信息;
将查找到的所述目录信息记录至所述文件系统根目录对象。
CN202010752804.2A 2020-07-30 2020-07-30 文件隐藏方法和装置 Active CN111913915B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010752804.2A CN111913915B (zh) 2020-07-30 2020-07-30 文件隐藏方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010752804.2A CN111913915B (zh) 2020-07-30 2020-07-30 文件隐藏方法和装置

Publications (2)

Publication Number Publication Date
CN111913915A true CN111913915A (zh) 2020-11-10
CN111913915B CN111913915B (zh) 2023-10-03

Family

ID=73287983

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010752804.2A Active CN111913915B (zh) 2020-07-30 2020-07-30 文件隐藏方法和装置

Country Status (1)

Country Link
CN (1) CN111913915B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1983265A (zh) * 2005-07-01 2007-06-20 Qnx软件操作系统德国有限公司 具有倒置层次结构的文件系统
US20080022133A1 (en) * 2006-07-18 2008-01-24 Network Appliance, Inc. System and method for securing information by obscuring contents of a persistent image
CN103282899A (zh) * 2011-12-23 2013-09-04 华为技术有限公司 文件系统中数据的存储方法、访问方法及装置
CN105242986A (zh) * 2015-09-11 2016-01-13 金步国 备份与还原Windows操作系统的方法
US10691639B1 (en) * 2019-07-05 2020-06-23 5th Kind LLC Hybrid metadata and folder based file access

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1983265A (zh) * 2005-07-01 2007-06-20 Qnx软件操作系统德国有限公司 具有倒置层次结构的文件系统
US20080022133A1 (en) * 2006-07-18 2008-01-24 Network Appliance, Inc. System and method for securing information by obscuring contents of a persistent image
CN103282899A (zh) * 2011-12-23 2013-09-04 华为技术有限公司 文件系统中数据的存储方法、访问方法及装置
CN105242986A (zh) * 2015-09-11 2016-01-13 金步国 备份与还原Windows操作系统的方法
US10691639B1 (en) * 2019-07-05 2020-06-23 5th Kind LLC Hybrid metadata and folder based file access

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
刘勇;陆小慧;: "分布式文件系统的文件访问处理、安全访问方法及装置", 广东通信技术, no. 03 *

Also Published As

Publication number Publication date
CN111913915B (zh) 2023-10-03

Similar Documents

Publication Publication Date Title
US8892905B2 (en) Method and apparatus for performing selective encryption/decryption in a data storage system
US7856451B2 (en) Selective file erasure using metadata modifications
US8838875B2 (en) Systems, methods and computer program products for operating a data processing system in which a file delete command is sent to an external storage device for invalidating data thereon
US8275970B2 (en) Optimizing write traffic to a disk
US7895394B2 (en) Storage system
US9043334B2 (en) Method and system for accessing files on a storage system
US11782632B2 (en) Selective erasure of data in a SSD
US20180107402A1 (en) System and method for data storage using log-structured merge trees
JP2007012058A (ja) フラッシュ様媒体におけるトランザクションレコードを格納するファイルシステム
JP2007012056A (ja) データ保全の先送りされた認証を有するファイルシステム
JP5833754B2 (ja) ファイルシステムをクリーニングするための方法及び装置並びにその記憶媒体
JP2007012054A (ja) ファイルシステム保全の最適化されたスタートアップ認証
CN111382126B (zh) 删除文件及阻碍文件恢复的系统和方法
US5276878A (en) Method and system for task memory management in a multi-tasking data processing system
US7996370B2 (en) System restoration apparatus and method for management of dependencies, ordering sensitivities, and database index rebuilds
CN111581647A (zh) 文件加密及解密方法、装置
CN112825098A (zh) 数据保护方法、装置、计算设备及存储介质
CN111913915B (zh) 文件隐藏方法和装置
KR101826176B1 (ko) 스냅샷 방식의 이미지 테이블을 이용한 백업데이터 제어방법
US10831916B2 (en) Method for blocking access of malicious application and storage device implementing the same
US10956080B2 (en) Erasure of data from a memory of a data storage apparatus by identifying available free space in the memory and iteratively writing a sequence of files decreasing size to the memory using a file-based protocol
Kuts et al. Deleted Data Recovery on Solid-State Drives by Software Based Methods
RU96433U1 (ru) Система безвозвратного удаления файла (шредер файла)
WO2003083670A1 (en) Protection of data by hiding the data
KR101265691B1 (ko) 저장 장치의 식별자 관리 방법, 복원 방법 및 그 장치

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