CN106528830A - 一种恢复文件索引目录的方法和装置 - Google Patents
一种恢复文件索引目录的方法和装置 Download PDFInfo
- Publication number
- CN106528830A CN106528830A CN201611030948.7A CN201611030948A CN106528830A CN 106528830 A CN106528830 A CN 106528830A CN 201611030948 A CN201611030948 A CN 201611030948A CN 106528830 A CN106528830 A CN 106528830A
- Authority
- CN
- China
- Prior art keywords
- file
- numbering
- filename
- catalogue
- file index
- 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
Links
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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种恢复文件索引目录的方法和装置,属于计算机技术领域。该方法包括:遍历第一文件索引目录记录的A类文件名与数据块的编号的对应关系,确定对应的文件名发生损坏的第一编号,在第二文件索引目录记录的A类文件名与数据块的编号的对应关系中确定第一编号对应的第一文件名,将第一文件名与第一编号添加至第一文件索引目录记录的A类文件名与数据块的编号的对应关系中,其中,第一文件索引目录为大小写敏感CS文件索引目录,第二文件索引目录为大小写非敏感CI文件索引目录,A类文件名为CS文件名,或者,第一文件索引目录为CI文件索引目录,第二文件索引目录为CS文件索引目录,A类文件名为CI文件名。通过本发明,可以成功的读取文件。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种恢复文件索引目录的方法和装置。
背景技术
存储设备(如数据服务器)一般需要存储大量的文件,为了存储大量的文件,一般会设置存储介质,存储介质包括多个数据块,每个数据块分配有一个编号,并且为了管理文件的相关信息,一般会在存储设备中设置文件***(用于管理文件的程序)。将文件存储至存储设备时,文件***可以在存储介质中为文件分配数据块,并记录数据块的编号,然后获取文件的文件名,将文件的文件名与数据块的编号对应的存储至文件索引目录中,建立起文件名与数据块的编号的对应关系。这样,从存储设备中读写文件时,可以根据文件的文件名从文件索引目录中查找到对应的数据块的编号,然后根据编号,查找到存储文件的数据块,进而读写文件。
现有技术中,对于不同的访问协议的文件查询,存储设备设置有不同的文件索引目录,例如,对于通用网络文件***(英文:common internet file system,CIFS)协议下的文件查询,设置大小写非敏感(英文:case insensitive,CI)文件索引目录,对于网络文件***(英文:network file system,NFS)协议下的文件查询,设置大小写敏感(英文:casesensitive,CS)文件索引目录。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
在存储设备中读取或写入文件时,如果突然断电等,有可能会使文件索引目录中的文件名损坏,这样,在后续读取文件的过程中,会由于无法查找到数据块的编号,而导致文件读取失败。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种恢复文件索引目录的方法和装置。所述技术方案如下:
第一方面,提供了一种恢复文件索引目录的方法,该方法应用于存储设备中,该存储设备包括处理器和存储介质,存储介质包括多个数据块,其中,每个数据块分配有一个编号,方法由处理器执行,包括:
遍历第一文件索引目录记录的A类文件名与数据块的编号的对应关系,确定对应的文件名发生损坏的第一编号,根据第二文件索引目录记录的A类文件名与数据块的编号的对应关系,确定第一编号对应的第一文件名;其中,第一文件索引目录为CS文件索引目录,第二文件索引目录为CI文件索引目录,A类文件名为CS文件名,或者,第一文件索引目录为CI文件索引目录,第二文件索引目录为CS文件索引目录,A类文件名为CI文件名,CS文件索引目录应用于网络文件***NFS协议下的文件查询,CI文件索引目录应用于通用网络文件***CIFS协议下的文件查询,将第一文件名与第一编号,添加至第一文件索引目录记录的A类文件名与数据块的编号的对应关系中。
其中,第一文件索引目录与第二文件索引目录是不相同的文件索引目录,如果第一文件索引目录为CS文件索引目录,则第二文件索引目录为CI文件索引目录,A类文件名为CS文件名。如果第一文件索引目录为CI文件索引目录,则第二文件索引目录为CS文件索引目录,A类文件名为CI文件名。
本发明实施例所示的方案,存储设备可以是数据服务器,用户可以使用设置有CIFS协议的终端、或者设置有NFS协议的终端,连接到存储设备,并从存储设备读取文件,在CIFS协议下,使用CI文件索引目录读取文件,在NFS协议下,使用CS文件索引目录读取文件。当用户发现终端从存储设备读取文件失败时,可以在终端中安装目录修复应用程序,并且使用目录修复应用程序向存储设备发送修复请求。存储设备接收到修复请求后,可以从第一文件索引目录中记录的A类文件名与数据块的编号的对应关系中,确定对应的文件名发生损坏的第一编号。然后获取第二文件索引目录,并从第二文件索引目录的A类文件名与数据块的编号的对应关系中,确定第一编号对应的第一文件名。然后将第一文件名与第一编号,对应的添加到第一文件索引目录记录的A类文件名与数据块的编号的对应关系中。
在一种可能的实现方式中,CI文件索引目录不能应用于NFS协议下的文件查询,CS文件索引目录不能应用于CIFS协议下的文件查询。
在一种可能的实现方式中,第二文件索引目录还记录有B类文件名与数据块的编号的对应关系,第二文件索引目录记录的A类文件名与数据块的编号的对应关系为A类文件名与数据块的目标编号的对应关系;其中,目标编号对应的存储位置所存储的文件的A类文件名与B类文件名不相同,如果A类文件名为CS文件名,则B类文件名为CI文件名,如果A类文件名为CI文件名,则B类文件名为CS文件名,根据第二文件索引目录记录的A类文件名与数据块的编号的对应关系,确定第一编号对应的第一文件名,包括:根据第二文件索引目录记录的A类文件名与数据块的目标编号的对应关系、以及B类文件名与数据块的编号的对应关系,确定第一编号对应的第一文件名。
其中,如果A类文件名为CS文件名,则B类文件名为CI文件名,如果A类文件名为CI文件名,则B类文件名为CS文件名。
本发明实施例所示的方案,第二文件索引目录中还记录有B类文件名与数据块的编号的对应关系,第二文件索引目录中记录有A类文件名、数据块的编号和B类文件名的对应关系,对于第二文件索引目录,A类文件名与B类文件名相同的数据块的编号为数据块的目标编号,这样,第二文件索引目录记录的A类文件名与数据块的编号的对应关系为A类文件名与数据块的目标编号的对应关系,可以节约存储资源。
存储设备确定第一编号后,可以在第二文件索引目录记录的B类文件名与数据块的编号的对应关系、A类文件名与数据块的目标编号的对应关系中,确定第一编号对应的第一文件名。
在一种可能的实现方式中,根据第二文件索引目录记录的A类文件名与数据块的目标编号的对应关系、以及B类文件名与数据块的编号的对应关系,确定第一编号对应的第一文件名,包括:如果目标编号中包括第一编号,则在第二文件索引目录记录的A类文件名与数据块的目标编号的对应关系中,确定第一编号对应的A类文件名为第一文件名,如果目标编号中不包括第一编号,则在第二文件索引目录记录的B类文件名与数据块的编号的对应关系中,确定第一编号对应的B类文件名为第一文件名。
本发明实施例所示的方案,在第二文件索引目录中,如果目标编号中包括第一编号,可以直接从A类文件名与数据块的编号的对应关系中,查找第一编号对应的A类文件名为第一文件名,如果目标编号中不包括第一编号,第一编号对应的A类文件名与B类文件名相同,则可以从B类文件名与数据块的编号的对应关系中,确定第一编号对应的B类文件名为第一文件名,这样,在数据块的编号对应的A类文件名与B类文件名相同时,仅存储B类文件名,从而可以节约存储资源。
在一种可能的实现方式中,遍历第一文件索引目录记录的A类文件名与数据块的编号的对应关系,确定对应的文件名发生损坏的第一编号,包括:获取存储的所有文件对应的文件属性信息中包括的A类文件名,遍历第一文件索引目录记录的A类文件名与数据块的编号的对应关系,查找获取到的每个A类文件名对应的编号,并将第一文件索引目录中未被查找到的第一编号,确定为对应的文件名发生损坏的编号。
其中,每个文件对应存储位置处,存储有文件属性信息和文件数据,文件属性信息中包括文件大小、文件名、创建时间、修改时间等。
本发明实施例所示的方案,存储设备可以遍历存储的所有文件,获取所有文件分别对应的文件属性信息,并从中获取A类文件名。然后从第一文件索引目录记录的A类文件名与数据块的编号的对应关系中,查找获取到的每个A类文件名对应的编号,确定未被查找到的第一编号,为对应的文件名发生损坏的编号。
第二方面,提供了一种恢复文件索引目录的方法,该方法应用于存储设备中,该存储设备包括处理器和存储介质,存储介质包括多个数据块,其中,每个数据块分配有一个编号,方法由处理器执行,包括:遍历第一文件索引目录记录的文件名与数据块的编号的对应关系,确定对应的文件名发生损坏的第一编号;其中,第一文件索引目录为CS文件索引目录或C1文件索引目录,CS文件索引目录应用于NFS协议下的文件查询,CI文件索引目录应用于CIFS协议下的文件查询,在第一编号对应的存储位置处获取存储的文件属性信息,确定文件属性信息中包括的第一文件名,将第一文件名与第一编号,添加至第一文件索引目录记录的文件名与数据块的编号的对应关系中。
其中,第一文件索引目录为CS文件索引目录、或CI文件索引目录。每个文件对应存储位置处,存储有文件属性信息和文件数据,文件属性信息中包括文件大小、文件名、创建时间、修改时间等。
本发明实施例所示的方案,存储设备可以是数据服务器,用户可以使用设置有CIFS协议的终端、或者设置有NFS协议的终端,连接到存储设备,并从存储设备读取文件,在CIFS协议下,使用CI文件索引目录读取文件,在NFS协议下,使用CS文件索引目录读取文件。当用户发现终端从存储设备读取文件失败时,可以在终端中安装目录修复应用程序,并且使用目录修复应用程序向存储设备发送修复请求。存储设备接收到修复请求后,可以从第一文件索引目录中记录的A类文件名与数据块的编号的对应关系中,确定对应的文件名发生损坏的第一编号。然后查找第一编号对应的存储位置处的文件的文件属性信息,从获取到文件属性信息中包括的第一文件名。然后将第一文件名与第一编号,对应的添加到第一文件索引目录记录的文件名与数据块的编号的对应关系中。
在一种可能的实现方式中,遍历第一文件索引目录记录的文件名与数据块的编号的对应关系中,确定对应的文件名发生损坏的第一编号,包括:获取存储的所有文件对应的文件属性信息中包括的文件名,遍历第一文件索引目录记录的文件名与数据块的编号的对应关系,查找获取到的每个文件名对应的编号,并将第一文件索引目录中未被查找到的第一编号,确定为对应的文件名发生损坏的编号。
其中,每个文件对应存储位置处,存储有文件属性信息和文件数据,文件属性信息中包括文件大小、文件名、创建时间、修改时间等。
本发明实施例所示的方案,存储设备可以遍历存储的所有文件,获取所有文件分别对应的文件属性信息,并从中获取文件名。然后从第一文件索引目录记录的文件名与数据块的编号的对应关系中,查找获取到的每个文件名对应的编号,确定未被查找到的第一编号,为对应的文件名发生损坏的编号。
在一种可能的实现方式中,确定对应的文件名发生损坏的第一编号之前,还包括:对于第一文件索引目录中的任一编号,如果任一编号对应的CS文件名与CI文件名不相同,则在任一编号对应的存储位置处的文件属性信息中,分别存储CS文件名与CI文件名,如果任一编号对应的CS文件名与CI文件名相同,则在任一编号对应的存储位置处的文件属性信息中,存储CS文件名或CI文件名;确定文件属性信息中包括的第一文件名,包括:如果文件属性信息中包括CS文件名与CI文件名,则当第一文件索引目录为CS文件索引目录时,确定文件属性信息中包括的CS文件名为第一文件名,当第一文件索引目录为CI文件索引目录时,确定文件属性信息中包括的CI文件名为第一文件名;如果文件属性信息中包括CS文件名或CI文件名,则确定文件属性信息中包括的CS文件名或CI文件名为第一文件名。
本发明实施例所示的方案,在往存储设备中存储文件时,如果第一文件索引目录中的任一编号对应的CS文件名与CI文件名不相同,则在该任一编号对应的存储位置处的文件属性信息中,分别存储CS文件名与CI文件名,并分别为CS文件名与CI文件名添加CS标识与CI标识,如果第一文件索引目录中的任一编号对应的CS文件名与CI文件名相同,则可以在该任一编号对应的存储位置处的文件属性信息中,分别存储CS文件名或CI文件名。
存储设备在文件属性信息查找文件名时,如果包括CS文件名与CI文件名,当第一文件索引目录为CI文件索引目录时,则可以在文件属性信息中,查找CI标识的CI文件名为第一文件名,当第一文件索引目录为CS文件索引目录时,则可以在文件属性信息中,查找CS标识的CS文件名为第一文件名。另外,如果文件属性信息中包括一个文件名(CS文件名或CI文件名),则可以确定此一个文件名为第一文件名。这样,在数据块的编号对应的CI文件名与CS文件名相同时,仅存储其中一个文件名,从而可以节约存储资源。
第三方面,提供了一种存储设备,所述存储设备包括处理器和存储介质,所述存储介质包括多个数据块,其中,每个数据块分配有一个编号,所述处理器通过执行指令来实现上述第一方面所提供的恢复文件索引目录的方法。
第四方面,提供了一种存储设备,所述存储设备包括处理器和存储介质,所述存储介质包括多个数据块,其中,每个数据块分配有一个编号,所述处理器通过执行指令来实现上述第二方面所提供的恢复文件索引目录的方法。
第五方面,提供了一种恢复文件索引目录的装置,该装置包括至少一个模块,该至少一个模块用于实现上述第一方面所提供的恢复文件索引目录的方法。
第六方面,提供了一种恢复文件索引目录的装置,该装置包括至少一个模块,该至少一个模块用于实现上述第二方面所提供的恢复文件索引目录的方法。
上述本发明实施例第三到第六方面所获得的技术效果与第一方面、第二方面中对应的技术手段获得的技术效果近似,在这里不再赘述。
本发明实施例提供的技术方案带来的有益效果是:
基于上述处理,第一文件索引目录记录的文件名发生损坏后,可以使用数据块的编号,从第二文件索引目录中查找到发生损坏的文件名,或者可以使用数据块的编号,从文件属性信息中查找到发生损坏的文件名,进而可以恢复第一文件索引目录,在后续读取文件的过程中,由于可以使用文件名查找到数据块的编号,从而可以读取文件。
附图说明
图1是本发明实施例提供的一种存储设备的结构示意图;
图2是本发明实施例提供的一种恢复文件索引目录的流程示意图;
图3是本发明实施例提供的一种恢复文件索引目录的流程示意图;
图4是本发明实施例提供的一种恢复文件索引目录的装置的结构示意图;
图5是本发明实施例提供的一种恢复文件索引目录的装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
为了便于对本发明实施例的理解,下面首先介绍本发明实施例涉及的专业名词。
CI文件索引目录,记录数据块的编号与CI文件名的对应关系,用于CIFS协议下的文件查询。在CIFS协议下,文件的文件名属于CI文件名,两个文件的文件名分别为“A”与“a”,是无法区分的,为了区分文件,如果已经有文件的文件名为“A”,后续再存储文件名为“a”的文件时,一般会将文件名为“a”的文件的文件名修改为“A~1”,CI文件索引目录中不可能同时存在“A”与“a”的文件名。
CS文件索引目录,记录数据块的编号与CS文件名的对应关系,用于NFS协议下的文件查询。在NFS协议下,文件的文件名属于CS文件名,文件的文件名为“A”与文件的文件名为“a”可以区分,CS文件索引目录中可以同时存在“A”与“a”的文件名。
本发明实施例提供了一种恢复文件索引目录的方法,该方法可以由存储设备实现,存储设备可以是数据服务器,存储设备中设置有目录修复应用程序。如图1所示,存储设备可以包括接收器110、处理器120、存储介质130,接收器110、存储介质130可以分别与处理器120连接。接收器110可以用于接收消息,处理器120可以是中央处理器等,是控制中心,存储介质230可以是磁介质等,可以用于存储文件数据、文件索引目录、以及在恢复文件索引目录过程中需要的数据。在本发明中,处理器120可以用于确定对应文件名发生损坏的编号、数据块的编号对应的文件名的相关处理,可选的,处理器120可以包括一个或多个处理单元。
如图2所示,该方法的处理流程可以包括如下的步骤,图2所示的处理流程可以由处理器120执行。
步骤201,遍历第一文件索引目录记录的A类文件名与数据块的编号的对应关系,确定对应的文件名发生损坏的第一编号。
其中,第一文件索引目录为CI文件索引目录,或CS文件索引目录。
在实施中,用户可以使用设置有CIFS协议的终端,或设置有NFS协议的终端从存储设备读取文件,如果发现从存储设备中读取文件失败,用户可以在终端中安装目录修复应用程序,然后启动目录修复应用程序,并使用账户和密码登录目录修复程序,终端则会显示目录修复程序的主界面,主界面中显示有修复选项等一些其它选项,用户可以点击修复选项,终端则会显示待修复的设备的名称选项,用户可以选择要修复的存储设备的名称,终端则会向存储设备发送修复请求。存储设备接收到修复请求后,可以启动设置的目录修复应用程序,然后可以获取第一文件索引目录,并遍历第一文件索引目录记录的A类文件名与数据块的编号的对应关系,从中确定对应的文件名发生损坏的第一编号。
可选的,可以根据文件的文件属性信息中包括的文件名,确定对应的文件名发生损坏的第一编号,相应的步骤201的处理可以如下:
获取存储的所有文件对应的文件属性信息中包括的A类文件名;遍历第一文件索引目录记录的A类文件名与数据块的编号的对应关系,查找获取到的每个A类文件名对应的编号,并将第一文件索引目录中未被查找到的第一编号,确定为对应的文件名发生损坏的编号。
其中,每个文件对应的存储位置处,存储有文件属性信息和文件数据,文件属性信息中包括文件大小、文件名、创建时间、修改时间等,如果CS文件名与CI文件名相同,则文件属性中的文件名可以仅存储CS文件名或CI文件名,如果CS文件名与CI文件名不相同,则文件属性中存储有CS文件名与CI文件名。
在实施中,用户可以使用设置有CIFS协议的终端,或设置有NFS协议的终端从存储设备读取文件,如果发现从存储设备中读取文件失败,用户可以在终端中安装目录修复应用程序,然后启动目录修复应用程序,并使用账户和密码登录目录修复程序,终端则会显示目录修复程序的主界面,主界面中显示有修复选项等一些其它选项,用户可以点击修复选项,终端则会显示待修复的设备的名称选项,用户可以选择要修复的存储设备的名称,终端则会向存储设备发送修复请求。存储设备接收到修复请求后,可以启动设置的目录修复应用程序,然后可以遍历存储介质中存储的所有文件,并获取所有文件分别对应的文件属性信息,文件属性信息中包括文件大小、创建时间、修改时间、文件名等。如果第一文件索引目录为CI文件索引目录,A类文件名为CI文件名,存储设备可以从文件的文件属性信息中,获取到CI文件名,然后根据获取到的CI文件名,从第一文件索引目录中查找CI文件名对应的数据块的编号,在第一文件索引目录中,记录能使用CI文件名查找到的数据块的编号,然后将使用CI文件名没有查找到的第一编号,记录为对应文件名发生损坏的编号。如果第一文件索引目录为CS文件索引目录,A类文件名为CS文件名,存储设备可以从文件的文件属性信息中,获取到CS文件名,然后根据获取到的CS文件名,从第一文件索引目录中查找CS文件名对应的数据块的编号,在第一文件索引目录中,记录能使用CS文件名查找到的数据块的编号,然后将使用CS文件名没有查找到的第一编号,记录为对应文件名发生损坏的编号。
步骤202,根据第二文件索引目录记录的A类文件名与数据块的编号的对应关系,确定第一编号对应的第一文件名;其中,第一文件索引目录为CS文件索引目录,第二文件索引目录为CI文件索引目录,A类文件名为CS文件名,或者,第一文件索引目录为CI文件索引目录,第二文件索引目录为CS文件索引目录,A类文件名为CI文件名;CS文件索引目录应用于NFS协议下的文件查询,CI文件索引目录应用于CIFS协议下的文件查询。
其中,第二文件索引目录中记录有A类文件名与数据块的编号的对应关系,如果第一文件索引目录为CS文件索引目录,第二文件索引目录为CI文件索引目录,则A类文件名为CS文件名,如果第一文件索引目录为CI文件索引目录,第二文件索引目录为CS文件索引目录,则A类文件名为CI文件名。设置有NFS协议的终端可以使用CS文件索引目录读取文件,设置有CIFS协议的终端可以使用CI文件索引目录读取文件。
在实施中,在往存储设备中存储文件时,往第一文件索引目录中添加A类文件名与对应的数据块的编号时,还同时往第二文件索引目录中添加A类文件名与数据块的编号的对应关系。如表一所示,数据块的编号为123,第一文件索引目录中的A类文件名为Q,第二文件索引目录中的A类文件名为Q,数据块的编号为124,第一文件索引目录中的A类文件名为Z,第二文件索引目录中的A类文件名为Z,数据块的编号为125,第一文件索引目录中的A类文件名为M,第二文件索引目录中的A类文件名为M。
表一
第一文件索引目录
A类文件名 | 数据块的编号 |
Q | 123 |
Z | 124 |
M | 125 |
… | … |
第二文件索引目录
A类文件名 | 数据块的编号 |
Q | 123 |
Z | 124 |
M | 125 |
… | … |
存储设备确定对应的文件名发生损坏的第一编号后,可以获取存储的第二文件索引目录,并且从第二文件索引目录记录的A类文件名与数据块的编号的对应关系中,查找第一编号对应的第一文件名。例如,第一编号为123,从第二文件索引目录记录的A类文件名与数据块的编号的对应关系中,查找到的第一文件名为Q。
可选的,CI文件索引目录不能应用于NFS协议下的文件查询,CS文件索引目录不能应用于CIFS协议下的文件查询。
在实施中,由于CS文件索引目录中文件名是区分大小写的,CI文件索引目录中文件名是不区分大小写的,对于CS文件索引目录,两个文件的文件名分别为“A”与“a”,是可以区分的,对于CI文件索引目录,两个文件的文件名分别为“A”与“a”,是无法区分的,为了区分文件,如果已经有文件的文件名为“A”,后续再存储文件名为“a”的文件时,一般会将文件名为“a”的文件的文件名修改为“A~1”。设置有NFS协议的终端,可以区分文件名的大小写,可以使用CS文件索引目录读取文件,不可以使用CI文件索引目录读取文件。设置有CIFS协议的终端,不能区分文件名的大小写,可以使用CI文件索引目录读取文件,不可以使用CS文件索引目录读取文件。
可选的,第二文件索引目录还记录有B类文件名与数据块的编号的对应关系,第二文件索引目录记录的A类文件名与数据块的编号的对应关系为A类文件名与数据块的目标编号的对应关系;其中,目标编号对应的存储位置所存储的文件的A类文件名与B类文件名不相同,如果A类文件名为CS文件名,则B类文件名为CI文件名,如果A类文件名为CI文件名,则B类文件名为CS文件名;步骤202中,确定第一编号对应的文件名的方法可以如下:
根据第二文件索引目录记录的A类文件名与数据块的目标编号的对应关系、以及B类文件名与数据块的编号的对应关系,确定第一编号对应的第一文件名。
在实施中,在往存储设备中存储文件时,在第二文件索引目录中添加了A类文件名、B类文件名、数据块的编号,如果数据块的编号对应的A类文件名与B类文件名相同,对于同一数据块的编号,可以仅存储B类文件名,如果数据块的编号对应的A类文件名与B类文件名不相同,对于同一数据块的编号,需同时存储A类文件名与B类文件名。这样,第二文件索引目录中除了记录有A类文件名与数据块的编号的对应关系,还记录有B类文件名与数据块的编号的对应关系,即第二文件索引目录中记录的是A类文件名、数据块的编号和B类文件名三者的对应关系,在该三者的对应关系中,A类文件名与数据块的编号的对应关系为A类文件名与数据块的目标编号的对应关系,目标编号对应的存储位置所存储的文件的A类文件名与B类文件名不相同。如表二所示,第二文件索引目录中,数据块的编号为123,A类文件名与B类文件名不相同,分别为q和Q,数据块的编号为124,A类文件名与B类文件名相同,为Z,不记录A类文件名,数据块的编号为125,A类文件名与B类文件名不相同,分别为M和m,目标编号为123、125等。
表二
B类文件名 | 数据块的编号 | A类文件名 |
Q | 123 | q |
Z | 124 | |
m | 125 | M |
… | … | … |
存储设备确定对应的文件名发生损坏的第一编号后,可以获取存储的第二文件索引目录,并且从第二文件索引目录记录的A类文件名与数据块的目标编号、B类文件名与数据块的编号的对应关系中,查找第一编号对应的第一文件名。
可选的,可以根据目标编号中是否包括有第一编号,查找第一编号对应的文件名,相应的处理可以如下:
如果目标编号中包括第一编号,则在第二文件索引目录记录的A类文件名与数据块的目标编号的对应关系中,确定第一编号对应的A类文件名为第一文件名,如果目标编号中不包括第一编号,则在第二文件索引目录记录的B类文件名与数据块的编号的对应关系中,确定第一编号对应的B类文件名为第一文件名。
在实施中,存储设备确定对应的文件名发生损坏的第一编号后,可以获取第二文件索引目录,确定目标编号中是否包括第一编号,如果目标编号中包括第一编号,则可以从A类文件名与数据块的目标编号的对应关系中,查找第一编号对应的A类文件名为第一文件名,如果目标编号中不包括第一编号,则可以从B类文件名与数据块的编号的对应关系中,查找第一编号对应的B类文件名为第一编号。例如,第一编号为123,目标编号中包括123,可以直接从A类文件名与数据块的目标编号的对应关系中,确定第一文件名为Q。第一编号为124,目标编号中不包括124,可以直接从B类文件名与数据块的编号的对应关系中,确定第一文件名为Z。
另外,第一文件索引目录中除了记录有A类文件名与数据块的编号的对应关系,还可以记录有B类文件名与数据块的编号的对应关系,即同一数据块的编号可以对应有A类文件名与B类文件名。另外,对于同一数据块的编号,当A类文件名与B类文件名相同时,可以仅记录A类文件名与数据块的编号的对应关系,B类文件名与数据块的编号的对应关系中,不会记录B类文件名,当A类文件名与B类文件名不相同时,可以同时记录A类文件名与B类文件名。如表三所示,第一文件索引目录中,数据块的编号为123,A类文件名与B类文件名不相同,分别为q和Q,数据块的编号为124,A类文件名与B类文件名相同,为Z,数据块的编号为125,A类文件名与B类文件名不相同,分别为M和m。
表三
A类文件名 | 数据块的编号 | B类文件名 |
q | 123 | Q |
Z | 124 | |
M | 125 | m |
… | … | … |
步骤203,将第一文件名与第一编号,添加至第一文件索引目录记录的A类文件名与数据块的编号的对应关系中。
在实施中,存储设备确定第一编号对应的第一文件名后,可以将第一文件名与第一编号,对应的添加到第一文件索引目录记录的A类文件名与数据块的编号的对应关系中,这样,第一文件索引目录中第一编号对应有文件名,终端可以使用文件名读取对应的文件。
另外,本发明实施例中还提供了,在第二文件索引目录中未查找到第一编号对应的文件名时,确定第一编号对应的文件名的方法,相应的处理可以如下:
存储设备如果在第二文件索引目录中未查找到第一编号对应的文件名,可以查找第一编号对应的存储位置,在该存储位置处存储有文件的文件属性信息和文件的数据,文件属性信息中包括文件的大小、创建时间、修改时间、文件名等。存储设备可以从第一编号对应的存储位置处的文件属性信息中,获取到文件属性信息中包括的第一文件名。然后将第一编号与第一文件名对应的添加到第一文件索引目录记录的文件名与数据块的编号的对应关系中。
本发明实施例中,存储设备可以遍历第一文件索引目录记录的A类文件名与数据块的编号的对应关系,确定对应的文件名发生损坏的第一编号,然后获取第二文件索引目录,从第二文件索引目录记录的A类文件名与数据块的编号的对应关系中,确定第一编号对应的第一文件名,其中,第一文件索引目录为CS文件索引目录,第二文件索引目录为CI文件索引目录,A类文件名为CS文件名,或者,第一文件索引目录为CI文件索引目录,第二文件索引目录为CS文件索引目录,A类文件名为CI文件名,CS文件索引目录应用于NFS协议下的文件查询,CI文件索引目录应用于CIFS协议下的文件查询,在确定第一编号对应的第一文件名后,将第一文件名与第一编号,添加至第一文件索引目录记录的A类文件名与数据块的编号的对应关系中。这样,第一文件索引目录记录的文件名发生损坏后,由于第二文件索引目录中存储有第一文件索引目录中文件名与数据块的编号的对应关系,可以从第二文件索引目录中查找到数据块的编号对应的文件名,进而可以恢复第一文件索引目录,在后续读取文件的过程中,由于可以使用文件名查找到数据块的编号,从而可以读取文件。
本发明另一实施例中提供了,从文件的文件属性信息中获取文件名,恢复文件索引目录的方法,如图3所示,该方法的处理流程可以包括如下的步骤,图3所示的处理流程可以由处理器120执行:
步骤301,遍历第一文件索引目录记录的文件名与数据块的编号的对应关系,确定对应的文件名发生损坏的第一编号;其中,第一文件索引目录为CS文件索引目录或C1文件索引目录,CS文件索引目录应用于NFS协议下的文件查询,CI文件索引目录应用于CIFS协议下的文件查询。
其中,第一文件索引目录为CS文件索引目录,或CI文件索引目录。CS文件索引目录可以应用于设置有NFS协议的终端的文件查询,CI文件索引目录可以应用于设置有CIFS协议的终端的文件查询。
在实施中,用户可以使用设置有CIFS协议的终端,或设置有NFS协议的终端从存储设备读取文件,如果发现从存储设备中读取文件失败,用户可以在终端中安装目录修复应用程序,然后启动目录修复应用程序,并使用账户和密码登录目录修复程序,终端则会显示目录修复程序的主界面,主界面中显示有修复选项等一些其它选项,用户可以点击修复选项,终端则会显示待修复的设备的名称选项,用户可以选择要修复的存储设备的名称,终端则会向存储设备发送修复请求。存储设备接收到修复请求后,可以启动设置的目录修复应用程序,获取第一文件索引目录,然后遍历第一文件索引目录记录的文件名与数据块的编号的对应关系,从中确定对应的文件名发生损坏的第一编号。
可选的,可以根据文件的文件属性信息中包括的文件名,确定对应的文件名发生损坏的第一编号,相应的步骤301的处理可以如下:
获取存储的所有文件对应的文件属性信息中包括的文件名;
遍历第一文件索引目录记录的文件名与数据块的编号的对应关系,查找获取到的每个文件名对应的编号,并将第一文件索引目录中未被查找到的第一编号,确定为对应的文件名发生损坏的编号。
其中,每个文件对应存储位置处,存储有文件属性信息和文件数据,文件属性信息中包括文件大小、文件名、创建时间、修改时间等。
在实施中,用户可以使用设置有CIFS协议的终端,或设置有NFS协议的终端从存储设备读取文件,如果发现从存储设备中读取文件失败,用户可以在终端中安装目录修复应用程序,然后启动目录修复应用程序,并使用账户和密码登录目录修复程序,终端则会显示目录修复程序的主界面,主界面中显示有修复选项等一些其它选项,用户可以点击修复选项,终端则会显示待修复的设备的名称选项,用户可以选择要修复的存储设备的名称,终端则会向存储设备发送修复请求。存储设备接收到修复请求后,可以启动设置的目录修复应用程序,然后可以遍历存储介质中存储的所有文件,并获取所有文件分别对应的文件属性信息,文件属性信息中包括文件大小、创建时间、修改时间、文件名等。如果第一文件索引目录为CI文件索引目录,存储设备可以从文件的文件属性信息中,获取到CI文件名,然后根据获取到的CI文件名,从第一文件索引目录中查找CI文件名对应的数据块的编号,在第一文件索引目录中,记录能使用CI文件名查找到的数据块的编号,然后将使用CI文件名没有查找到的第一编号,记录为对应文件名发生损坏的编号。如果第一文件索引目录为CS文件索引目录,存储设备可以从文件的文件属性信息中,获取到CS文件名,然后根据获取到的CS文件名,从第一文件索引目录中查找CS文件名对应的数据块的编号,在第一文件索引目录中,记录能使用CS文件名查找到的数据块的编号,然后将使用CS文件名没有查找到的第一编号,记录为对应文件名发生损坏的编号。
步骤302,在第一编号对应的存储位置处获取存储的文件属性信息,确定文件属性信息中包括的第一文件名。
在实施中,存储设备确定第一编号后,可以查找第一编号对应的存储位置,在该存储位置处存储有文件的文件属性信息和文件的数据,文件属性信息中包括文件的大小、创建时间、修改时间、文件名等。存储设备可以从第一编号对应的存储位置处的文件属性信息中,获取到文件属性信息中包括的第一文件名。
可选的,往文件属性信息中添加文件名的方法可以如下:
对于第一文件索引目录中的任一编号,如果任一编号对应的CS文件名与CI文件名不相同,则在任一编号对应的存储位置处的文件属性信息中,分别存储CS文件名与CI文件名,如果任一编号对应的CS文件名与CI文件名相同,则在任一编号对应的存储位置处的文件属性信息中,存储CS文件名或CI文件名。
相应的,步骤302的处理可以如下:
如果文件属性信息中包括CS文件名与CI文件名,则当第一文件索引目录为CS文件索引目录时,确定文件属性信息中包括的CS文件名为第一文件名,当第一文件索引目录为CI文件索引目录时,确定文件属性信息中包括的CI文件名为第一文件名,如果文件属性信息中包括CS文件名或CI文件名,则确定文件属性信息中包括的CS文件名或CI文件名为第一文件名。
在实施中,在存储设备中存储文件时,往第一文件索引目录中添加文件的文件名与数据块的编号后,对于第一文件索引目录中的任一编号,如果任一编号对应的CS文件名与CI文件名不相同,则会在任一编号对应的存储位置处的文件属性信息中,分别存储CS文件名与CI文件名,并分别对CS文件名与CI文件名添加CS标识与CI标识。如果任一编号对应的CS文件名与CI文件名相同,则可以在任一编号对应的存储位置处的文件属性信息中,存储CS文件名或CI文件名。例如,第一文件索引目录中任一编号为128,对应的CS文件名为AA、CI文件名为aa,则任一编号对应的存储位置处的文件属性信息中的文件名有“AA”与“aa”,第一文件索引目录中任一编号为130,对应的CS文件名与CI文件名为“AA”,则文件属性信息中的文件名可以存储为“AA”。
存储设备可以查找第一编号对应的存储位置处存储的文件属性信息,存储设备在文件属性信息查找文件名时,如果包括CS文件名与CI文件名,当第一文件索引目录为CI文件索引目录时,则可以在文件属性信息中,查找CI标识的CI文件名为第一文件名,当第一文件索引目录为CS文件索引目录时,则可以在文件属性信息中,查找CS标识的CS文件名为第一文件名。另外,如果文件属性信息中包括一个文件名(CS文件名或CI文件名),则可以确定此一个文件名为第一文件名。这样,在数据块的编号对应的CI文件名与CS文件名相同时,仅存储其中一个文件名,从而可以节约存储资源。
步骤303,将第一文件名与第一编号,添加至第一文件索引目录记录的文件名与数据块的编号的对应关系中。
在实施中,存储设备确定第一编号对应的第一文件名后,可以将第一文件名与第一编号,对应的添加到第一文件索引目录记录的文件名与数据块的编号的对应关系中,这样,第一文件索引目录中第一编号对应有文件名,终端可以使用文件名读取对应的文件。
本发明实施例中,遍历第一文件索引目录记录的文件名与数据块的编号的对应关系,确定对应的文件名发生损坏的第一编号,其中,第一文件索引目录为CS文件索引目录或C1文件索引目录,然后在第一编号对应的存储位置处获取存储的文件属性信息,确定该文件属性信息中包括的第一文件名,将第一文件名与第一编号,添加至第一文件索引目录记录的文件名与数据块的编号的对应关系中。这样,第一文件索引目录记录的文件名发生损坏后,由于数据块的编号对应的存储位置的文件属性信息中包括文件名,可以从文件属性信息中查找到数据块的编号对应的文件名,进而可以恢复第一文件索引目录,在后续读取文件的过程中,由于可以使用文件名查找到数据块的编号,从而可以读取文件。
图4是本发明实施例提供的恢复文件索引目录的装置的结构图。该装置可以通过软件、硬件或者两者的结合实现成为装置中的部分或者全部。本发明实施例提供的恢复文件索引目录的装置可以实现本发明实施例图2所述的流程,该装置包括:确定模块410和添加模块420,其中:
所述确定模块410,用于遍历第一文件索引目录记录的A类文件名与数据块的编号的对应关系,确定对应的文件名发生损坏的第一编号;根据第二文件索引目录记录的A类文件名与数据块的编号的对应关系,确定所述第一编号对应的第一文件名;其中,所述第一文件索引目录为CS文件索引目录,所述第二文件索引目录为CI文件索引目录,所述A类文件名为CS文件名,或者,所述第一文件索引目录为CI文件索引目录,所述第二文件索引目录为CS文件索引目录,所述A类文件名为CI文件名;所述CS文件索引目录应用于网络文件***NFS协议下的文件查询,所述CI文件索引目录应用于通用网络文件***CIFS协议下的文件查询;
所述添加模块420,用于将所述第一文件名与所述第一编号,添加至所述第一文件索引目录记录的A类文件名与数据块的编号的对应关系中。
可选的,所述CI文件索引目录不能应用于网络文件***NFS协议下的文件查询,所述CS文件索引目录不能应用于通用网络文件***CIFS协议下的文件查询。
可选的,所述第二文件索引目录还记录有B类文件名与数据块的编号的对应关系,所述第二文件索引目录记录的A类文件名与数据块的编号的对应关系为A类文件名与数据块的目标编号的对应关系;其中,所述目标编号对应的存储位置所存储的文件的A类文件名与B类文件名不相同,如果所述A类文件名为CS文件名,则所述B类文件名为CI文件名,如果所述A类文件名为CI文件名,则所述B类文件名为CS文件名;
所述确定模块410,用于:
根据第二文件索引目录记录的A类文件名与数据块的目标编号的对应关系、以及B类文件名与数据块的编号的对应关系,确定所述第一编号对应的第一文件名。
可选的,所述确定模块410,用于:
如果所述目标编号中包括所述第一编号,则在所述第二文件索引目录记录的A类文件名与数据块的目标编号的对应关系中,确定所述第一编号对应的A类文件名为第一文件名,如果所述目标编号中不包括所述第一编号,则在所述第二文件索引目录记录的B类文件名与数据块的编号的对应关系中,确定所述第一编号对应的B类文件名为第一文件名。
可选的,所述确定模块410,用于:
获取存储的所有文件对应的文件属性信息中包括的A类文件名;
遍历第一文件索引目录记录的A类文件名与数据块的编号的对应关系,查找获取到的每个A类文件名对应的编号,并将所述第一文件索引目录中未被查找到的第一编号,确定为对应的文件名发生损坏的编号。
需要说明的是,上述确定模块410、添加模块420可以由处理器120实现,或者处理器120配合存储介质130来实现,或者,处理器120执行存储介质130中的程序指令来实现。
本发明实施例中,存储设备可以遍历第一文件索引目录记录的A类文件名与数据块的编号的对应关系,确定对应的文件名发生损坏的第一编号,然后获取第二文件索引目录,从第二文件索引目录记录的A类文件名与数据块的编号的对应关系中,确定第一编号对应的第一文件名,其中,第一文件索引目录为CS文件索引目录,第二文件索引目录为CI文件索引目录,A类文件名为CS文件名,或者,第一文件索引目录为CI文件索引目录,第二文件索引目录为CS文件索引目录,A类文件名为CI文件名,在确定第一编号对应的第一文件名后,将第一文件名与第一编号,添加至第一文件索引目录记录的A类文件名与数据块的编号的对应关系中。这样,第一文件索引目录记录的文件名发生损坏后,由于第二文件索引目录中存储有第一文件索引目录中文件名与数据块的编号的对应关系,可以从第二文件索引目录中查找到数据块的编号对应的文件名,进而可以恢复第一文件索引目录,在后续读取文件的过程中,由于可以使用文件名查找到数据块的编号,从而可以读取文件。
需要说明的是:上述实施例提供的恢复文件索引目录的装置在恢复文件索引目录时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将该装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的恢复文件索引目录的装置与恢复文件索引目录的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图4是本发明实施例提供的恢复文件索引目录的装置的结构图。该装置可以通过软件、硬件或者两者的结合实现成为装置中的部分或者全部。本发明实施例提供的恢复文件索引目录的装置可以实现本发明实施例图3所述的流程,该装置包括:确定模块410、添加模块420和存储模块430,其中:
确定模块410,用于遍历第一文件索引目录记录的文件名与数据块的编号的对应关系,确定对应的文件名发生损坏的第一编号;其中,所述第一文件索引目录为CS文件索引目录或C1文件索引目录,所述CS文件索引目录应用于网络文件***NFS协议下的文件查询,所述CI文件索引目录应用于通用网络文件***CIFS协议下的文件查询;在所述第一编号对应的存储位置处获取存储的文件属性信息,确定所述文件属性信息中包括的第一文件名;
添加模块420,用于将所述第一文件名与所述第一编号,添加至所述第一文件索引目录记录的文件名与数据块的编号的对应关系中。
可选的,所述确定模块410,用于:
获取存储的所有文件对应的文件属性信息中包括的文件名;
遍历第一文件索引目录记录的文件名与数据块的编号的对应关系,查找获取到的每个文件名对应的编号,并将所述第一文件索引目录中未被查找到的第一编号,确定为对应的文件名发生损坏的编号。
可选的,如图5所示,所述装置还包括:
存储模块430,用于:
对于所述第一文件索引目录中的任一编号,如果所述任一编号对应的CS文件名与CI文件名不相同,则在所述任一编号对应的存储位置处的文件属性信息中,分别存储所述CS文件名与所述CI文件名,如果所述任一编号对应的CS文件名与CI文件名相同,则在所述任一编号对应的存储位置处的文件属性信息中,存储所述CS文件名或所述CI文件名;
所述确定模块410,用于:
如果所述文件属性信息中包括CS文件名与CI文件名,则当所述第一文件索引目录为CS文件索引目录时,确定所述文件属性信息中包括的CS文件名为第一文件名,当所述第一文件索引目录为CI文件索引目录时,确定所述文件属性信息中包括的CI文件名为第一文件名;
如果所述文件属性信息中包括CS文件名或CI文件名,则确定所述文件属性信息中包括的CS文件名或CI文件名为第一文件名。
需要说明的是,上述确定模块410、添加模块420、存储模块430可以由处理器120实现,或者处理器120配合存储介质130来实现,或者,处理器120执行存储介质130中的程序指令来实现。
本发明实施例中,遍历第一文件索引目录记录的文件名与数据块的编号的对应关系,确定对应的文件名发生损坏的第一编号,其中,第一文件索引目录为CS文件索引目录或C1文件索引目录,然后在第一编号对应的存储位置处获取存储的文件属性信息,确定该文件属性信息中包括的第一文件名,将第一文件名与第一编号,添加至第一文件索引目录记录的文件名与数据块的编号的对应关系中。这样,第一文件索引目录记录的文件名发生损坏后,由于数据块的编号对应的存储位置的文件属性信息中包括文件名,可以从文件属性信息中查找到数据块的编号对应的文件名,进而可以恢复第一文件索引目录,在后续读取文件的过程中,由于可以使用文件名查找到数据块的编号,从而可以读取文件。
需要说明的是:上述实施例提供的恢复文件索引目录的装置在恢复文件索引目录时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将该装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的恢复文件索引目录的装置与恢复文件索引目录的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的一个实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (24)
1.一种恢复文件索引目录的方法,其特征在于,所述方法应用于存储设备中,所述存储设备包括处理器和存储介质,所述存储介质包括多个数据块,其中,每个数据块分配有一个编号,所述方法由所述处理器执行,包括:
遍历第一文件索引目录记录的A类文件名与数据块的编号的对应关系,确定对应的文件名发生损坏的第一编号;
根据第二文件索引目录记录的A类文件名与数据块的编号的对应关系,确定所述第一编号对应的第一文件名;其中,所述第一文件索引目录为大小写敏感CS文件索引目录,所述第二文件索引目录为大小写非敏感CI文件索引目录,所述A类文件名为CS文件名,或者,所述第一文件索引目录为CI文件索引目录,所述第二文件索引目录为CS文件索引目录,所述A类文件名为CI文件名;所述CS文件索引目录应用于网络文件***NFS协议下的文件查询,所述CI文件索引目录应用于通用网络文件***CIFS协议下的文件查询;
将所述第一文件名与所述第一编号,添加至所述第一文件索引目录记录的A类文件名与数据块的编号的对应关系中。
2.根据权利要求1所述的方法,其特征在于,所述CI文件索引目录不能应用于NFS协议下的文件查询,所述CS文件索引目录不能应用于CIFS协议下的文件查询。
3.根据权利要求1所述的方法,其特征在于,所述第二文件索引目录还记录有B类文件名与数据块的编号的对应关系,所述第二文件索引目录记录的A类文件名与数据块的编号的对应关系为A类文件名与数据块的目标编号的对应关系;其中,所述目标编号对应的存储位置所存储的文件的A类文件名与B类文件名不相同,如果所述A类文件名为CS文件名,则所述B类文件名为CI文件名,如果所述A类文件名为CI文件名,则所述B类文件名为CS文件名;
所述根据第二文件索引目录记录的A类文件名与数据块的编号的对应关系,确定所述第一编号对应的第一文件名,包括:
根据第二文件索引目录记录的A类文件名与数据块的目标编号的对应关系、以及B类文件名与数据块的编号的对应关系,确定所述第一编号对应的第一文件名。
4.根据权利要求3所述的方法,其特征在于,所述根据第二文件索引目录记录的A类文件名与数据块的目标编号的对应关系、以及B类文件名与数据块的编号的对应关系,确定所述第一编号对应的第一文件名,包括:
如果所述目标编号中包括所述第一编号,则在所述第二文件索引目录记录的A类文件名与数据块的目标编号的对应关系中,确定所述第一编号对应的A类文件名为第一文件名,如果所述目标编号中不包括所述第一编号,则在所述第二文件索引目录记录的B类文件名与数据块的编号的对应关系中,确定所述第一编号对应的B类文件名为第一文件名。
5.根据权利要求1所述的方法,其特征在于,所述遍历第一文件索引目录记录的A类文件名与数据块的编号的对应关系,确定对应的文件名发生损坏的第一编号,包括:
获取存储的所有文件对应的文件属性信息中包括的A类文件名;
遍历第一文件索引目录记录的A类文件名与数据块的编号的对应关系,查找获取到的每个A类文件名对应的编号,并将所述第一文件索引目录中未被查找到的第一编号,确定为对应的文件名发生损坏的编号。
6.一种恢复文件索引目录的方法,其特征在于,所述方法应用于存储设备中,所述存储设备包括处理器和存储介质,所述存储介质包括多个数据块,其中,每个数据块分配有一个编号,所述方法由所述处理器执行,所述方法包括:
遍历第一文件索引目录记录的文件名与数据块的编号的对应关系,确定对应的文件名发生损坏的第一编号;其中,所述第一文件索引目录为大小写敏感CS文件索引目录或大小写非敏感C1文件索引目录,所述CS文件索引目录应用于网络文件***NFS协议下的文件查询,所述CI文件索引目录应用于通用网络文件***CIFS协议下的文件查询;
在所述第一编号对应的存储位置处获取存储的文件属性信息,确定所述文件属性信息中包括的第一文件名;
将所述第一文件名与所述第一编号,添加至所述第一文件索引目录记录的文件名与数据块的编号的对应关系中。
7.根据权利要求6所述的方法,其特征在于,所述遍历第一文件索引目录记录的文件名与数据块的编号的对应关系中,确定对应的文件名发生损坏的第一编号,包括:
获取存储的所有文件对应的文件属性信息中包括的文件名;
遍历第一文件索引目录记录的文件名与数据块的编号的对应关系,查找获取到的每个文件名对应的编号,并将所述第一文件索引目录中未被查找到的第一编号,确定为对应的文件名发生损坏的编号。
8.根据权利要求6所述的方法,其特征在于,所述确定对应的文件名发生损坏的第一编号之前,还包括:
对于所述第一文件索引目录中的任一编号,如果所述任一编号对应的CS文件名与CI文件名不相同,则在所述任一编号对应的存储位置处的文件属性信息中,分别存储所述CS文件名与所述CI文件名,如果所述任一编号对应的CS文件名与CI文件名相同,则在所述任一编号对应的存储位置处的文件属性信息中,存储所述CS文件名或所述CI文件名;
所述确定所述文件属性信息中包括的第一文件名,包括:
如果所述文件属性信息中包括CS文件名与CI文件名,则当所述第一文件索引目录为CS文件索引目录时,确定所述文件属性信息中包括的CS文件名为第一文件名,当所述第一文件索引目录为CI文件索引目录时,确定所述文件属性信息中包括的CI文件名为第一文件名;
如果所述文件属性信息中包括CS文件名或CI文件名,则确定所述文件属性信息中包括的CS文件名或CI文件名为第一文件名。
9.一种存储设备,其特征在于,所述存储设备包括处理器和存储介质,所述存储介质包括多个数据块,每个数据块分配有一个编号,其中:
所述处理器,用于遍历第一文件索引目录记录的A类文件名与数据块的编号的对应关系,确定对应的文件名发生损坏的第一编号;
所述处理器,用于根据第二文件索引目录记录的A类文件名与数据块的编号的对应关系,确定所述第一编号对应的第一文件名;其中,所述第一文件索引目录为CS文件索引目录,所述第二文件索引目录为CI文件索引目录,所述A类文件名为CS文件名,或者,所述第一文件索引目录为CI文件索引目录,所述第二文件索引目录为CS文件索引目录,所述A类文件名为CI文件名;所述CS文件索引目录应用于网络文件***NFS协议下的文件查询,所述CI文件索引目录应用于通用网络文件***CIFS协议下的文件查询;
所述处理器,用于将所述第一文件名与所述第一编号,添加至所述第一文件索引目录记录的A类文件名与数据块的编号的对应关系中。
10.根据权利要求9所述的存储设备,其特征在于,所述CI文件索引目录不能应用于NFS协议下的文件查询,所述CS文件索引目录不能应用于CIFS协议下的文件查询。
11.根据权利要求9所述的存储设备,其特征在于,所述第二文件索引目录还记录有B类文件名与数据块的编号的对应关系,所述第二文件索引目录记录的A类文件名与数据块的编号的对应关系为A类文件名与数据块的目标编号的对应关系;其中,所述目标编号对应的存储位置所存储的文件的A类文件名与B类文件名不相同,如果所述A类文件名为CS文件名,则所述B类文件名为CI文件名,如果所述A类文件名为CI文件名,则所述B类文件名为CS文件名;
所述处理器,用于:
根据第二文件索引目录记录的A类文件名与数据块的目标编号的对应关系、以及B类文件名与数据块的编号的对应关系,确定所述第一编号对应的第一文件名。
12.根据权利要求11所述的存储设备,其特征在于,所述处理器,用于:
如果所述目标编号中包括所述第一编号,则在所述第二文件索引目录记录的A类文件名与数据块的目标编号的对应关系中,确定所述第一编号对应的A类文件名为第一文件名,如果所述目标编号中不包括所述第一编号,则在所述第二文件索引目录记录的B类文件名与数据块的编号的对应关系中,确定所述第一编号对应的B类文件名为第一文件名。
13.根据权利要求9所述的存储设备,其特征在于,所述处理器,用于:
获取存储的所有文件对应的文件属性信息中包括的A类文件名;
遍历第一文件索引目录记录的A类文件名与数据块的编号的对应关系,查找获取到的每个A类文件名对应的编号,并将所述第一文件索引目录中未被查找到的第一编号,确定为对应的文件名发生损坏的编号。
14.一种存储设备,其特征在于,所述存储设备包括处理器和存储介质,所述存储介质包括多个数据块,每个数据块分配有一个编号,其中:
所述处理器,用于遍历第一文件索引目录记录的文件名与数据块的编号的对应关系,确定对应的文件名发生损坏的第一编号;其中,所述第一文件索引目录为CS文件索引目录或C1文件索引目录,所述CS文件索引目录应用于网络文件***NFS协议下的文件查询,所述CI文件索引目录应用于通用网络文件***CIFS协议下的文件查询;
所述处理器,用于在所述第一编号对应的存储位置处获取存储的文件属性信息,确定所述文件属性信息中包括的第一文件名;
所述处理器,用于将所述第一文件名与所述第一编号,添加至所述第一文件索引目录记录的文件名与数据块的编号的对应关系中。
15.根据权利要求14所述的存储设备,其特征在于,所述处理器,用于:
获取存储的所有文件对应的文件属性信息中包括的文件名;
遍历第一文件索引目录记录的文件名与数据块的编号的对应关系,查找获取到的每个文件名对应的编号,并将所述第一文件索引目录中未被查找到的第一编号,确定为对应的文件名发生损坏的编号。
16.根据权利要求14所述的存储设备,其特征在于,所述处理器,还用于:
对于所述第一文件索引目录中的任一编号,如果所述任一编号对应的CS文件名与CI文件名不相同,则在所述任一编号对应的存储位置处的文件属性信息中,分别存储所述CS文件名与所述CI文件名,如果所述任一编号对应的CS文件名与CI文件名相同,则在所述任一编号对应的存储位置处的文件属性信息中,存储所述CS文件名或所述CI文件名;
所述处理器,用于:
如果所述文件属性信息中包括CS文件名与CI文件名,则当所述第一文件索引目录为CS文件索引目录时,确定所述文件属性信息中包括的CS文件名为第一文件名,当所述第一文件索引目录为CI文件索引目录时,确定所述文件属性信息中包括的CI文件名为第一文件名;
如果所述文件属性信息中包括CS文件名或CI文件名,则确定所述文件属性信息中包括的CS文件名或CI文件名为第一文件名。
17.一种恢复文件索引目录的装置,其特征在于,所述装置应用于存储设备中,所述存储设备包括处理器和存储介质,所述存储介质包括多个数据块,其中,每个数据块分配有一个编号,所述装置包括:
确定模块,用于遍历第一文件索引目录记录的A类文件名与数据块的编号的对应关系,确定对应的文件名发生损坏的第一编号;根据第二文件索引目录记录的A类文件名与数据块的编号的对应关系,确定所述第一编号对应的第一文件名;其中,所述第一文件索引目录为CS文件索引目录,所述第二文件索引目录为CI文件索引目录,所述A类文件名为CS文件名,或者,所述第一文件索引目录为CI文件索引目录,所述第二文件索引目录为CS文件索引目录,所述A类文件名为CI文件名;所述CS文件索引目录应用于网络文件***NFS协议下的文件查询,所述CI文件索引目录应用于通用网络文件***CIFS协议下的文件查询;
添加模块,用于将所述第一文件名与所述第一编号,添加至所述第一文件索引目录记录的A类文件名与数据块的编号的对应关系中。
18.根据权利要求17所述的装置,其特征在于,所述CI文件索引目录不能应用于NFS协议下的文件查询,所述CS文件索引目录不能应用于CIFS协议下的文件查询。
19.根据权利要求17所述装置,其特征在于,所述第二文件索引目录还记录有B类文件名与数据块的编号的对应关系,所述第二文件索引目录记录的A类文件名与数据块的编号的对应关系为A类文件名与数据块的目标编号的对应关系;其中,所述目标编号对应的存储位置所存储的文件的A类文件名与B类文件名不相同,如果所述A类文件名为CS文件名,则所述B类文件名为CI文件名,如果所述A类文件名为CI文件名,则所述B类文件名为CS文件名;
所述确定模块,用于:
根据第二文件索引目录记录的A类文件名与数据块的目标编号的对应关系、以及B类文件名与数据块的编号的对应关系,确定所述第一编号对应的第一文件名。
20.根据权利要求19所述的装置,其特征在于,所述确定模块,用于:
如果所述目标编号中包括所述第一编号,则在所述第二文件索引目录记录的A类文件名与数据块的目标编号的对应关系中,确定所述第一编号对应的A类文件名为第一文件名,如果所述目标编号中不包括所述第一编号,则在所述第二文件索引目录记录的B类文件名与数据块的编号的对应关系中,确定所述第一编号对应的B类文件名为第一文件名。
21.根据权利要求17所述的装置,其特征在于,所述确定模块,用于:
获取存储的所有文件对应的文件属性信息中包括的A类文件名;
遍历第一文件索引目录记录的A类文件名与数据块的编号的对应关系,查找获取到的每个A类文件名对应的编号,并将所述第一文件索引目录中未被查找到的第一编号,确定为对应的文件名发生损坏的编号。
22.一种恢复文件索引目录的装置,其特征在于,所述装置应用于存储设备中,所述存储设备包括处理器和存储介质,所述存储介质包括多个数据块,其中,每个数据块分配有一个编号,所述装置包括:
确定模块,用于遍历第一文件索引目录记录的文件名与数据块的编号的对应关系,确定对应的文件名发生损坏的第一编号;其中,所述第一文件索引目录为CS文件索引目录或C1文件索引目录,所述CS文件索引目录应用于网络文件***NFS协议下的文件查询,所述CI文件索引目录应用于通用网络文件***CIFS协议下的文件查询;在所述第一编号对应的存储位置处获取存储的文件属性信息,确定所述文件属性信息中包括的第一文件名;
添加模块,用于将所述第一文件名与所述第一编号,添加至所述第一文件索引目录记录的文件名与数据块的编号的对应关系中。
23.根据权利要求22所述的装置,其特征在于,所述确定模块,用于:
获取存储的所有文件对应的文件属性信息中包括的文件名;
遍历第一文件索引目录记录的文件名与数据块的编号的对应关系,查找获取到的每个文件名对应的编号,并将所述第一文件索引目录中未被查找到的第一编号,确定为对应的文件名发生损坏的编号。
24.根据权利要求22所述的装置,其特征在于,所述装置还包括:
存储模块,用于:
对于所述第一文件索引目录中的任一编号,如果所述任一编号对应的CS文件名与CI文件名不相同,则在所述任一编号对应的存储位置处的文件属性信息中,分别存储所述CS文件名与所述CI文件名,如果所述任一编号对应的CS文件名与CI文件名相同,则在所述任一编号对应的存储位置处的文件属性信息中,存储所述CS文件名或所述CI文件名;
所述确定模块,用于:
如果所述文件属性信息中包括CS文件名与CI文件名,则当所述第一文件索引目录为CS文件索引目录时,确定所述文件属性信息中包括的CS文件名为第一文件名,当所述第一文件索引目录为CI文件索引目录时,确定所述文件属性信息中包括的CI文件名为第一文件名;
如果所述文件属性信息中包括CS文件名或CI文件名,则确定所述文件属性信息中包括的CS文件名或CI文件名为第一文件名。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611030948.7A CN106528830B (zh) | 2016-11-16 | 2016-11-16 | 一种恢复文件索引目录的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611030948.7A CN106528830B (zh) | 2016-11-16 | 2016-11-16 | 一种恢复文件索引目录的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106528830A true CN106528830A (zh) | 2017-03-22 |
CN106528830B CN106528830B (zh) | 2019-05-10 |
Family
ID=58356004
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611030948.7A Active CN106528830B (zh) | 2016-11-16 | 2016-11-16 | 一种恢复文件索引目录的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106528830B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108809514A (zh) * | 2018-04-23 | 2018-11-13 | 华为技术有限公司 | 一种数据传输方法及相关设备 |
CN109491966A (zh) * | 2018-10-22 | 2019-03-19 | 郑州云海信息技术有限公司 | 一种文件查找方法及相关装置 |
CN110908840A (zh) * | 2019-12-02 | 2020-03-24 | 杭州安恒信息技术股份有限公司 | 一种还原bak备份文件的方法、装置、设备及存储介质 |
CN112698976A (zh) * | 2020-12-24 | 2021-04-23 | 北京浪潮数据技术有限公司 | 一种元数据修复方法、装置、设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1805049A (zh) * | 2005-11-22 | 2006-07-19 | 武汉国光通信有限公司 | 一种嵌入式***中非易失性存储器的数据存取方法 |
CN102103597A (zh) * | 2009-12-17 | 2011-06-22 | 上海威乾视频技术有限公司 | Dsp嵌入式flash文件存储*** |
US20130046736A1 (en) * | 2011-08-16 | 2013-02-21 | Mstar Semiconductor, Inc. | Recovering method and device for linux using fat file system |
CN105005611A (zh) * | 2015-07-10 | 2015-10-28 | 中国海洋大学 | 一种文件管理***及文件管理方法 |
-
2016
- 2016-11-16 CN CN201611030948.7A patent/CN106528830B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1805049A (zh) * | 2005-11-22 | 2006-07-19 | 武汉国光通信有限公司 | 一种嵌入式***中非易失性存储器的数据存取方法 |
CN102103597A (zh) * | 2009-12-17 | 2011-06-22 | 上海威乾视频技术有限公司 | Dsp嵌入式flash文件存储*** |
US20130046736A1 (en) * | 2011-08-16 | 2013-02-21 | Mstar Semiconductor, Inc. | Recovering method and device for linux using fat file system |
CN105005611A (zh) * | 2015-07-10 | 2015-10-28 | 中国海洋大学 | 一种文件管理***及文件管理方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108809514A (zh) * | 2018-04-23 | 2018-11-13 | 华为技术有限公司 | 一种数据传输方法及相关设备 |
CN108809514B (zh) * | 2018-04-23 | 2021-01-12 | 华为技术有限公司 | 一种数据传输方法及相关设备 |
US11476977B2 (en) | 2018-04-23 | 2022-10-18 | Huawei Technologies Co., Ltd. | Data transmission method and related device |
CN109491966A (zh) * | 2018-10-22 | 2019-03-19 | 郑州云海信息技术有限公司 | 一种文件查找方法及相关装置 |
CN110908840A (zh) * | 2019-12-02 | 2020-03-24 | 杭州安恒信息技术股份有限公司 | 一种还原bak备份文件的方法、装置、设备及存储介质 |
CN112698976A (zh) * | 2020-12-24 | 2021-04-23 | 北京浪潮数据技术有限公司 | 一种元数据修复方法、装置、设备及介质 |
CN112698976B (zh) * | 2020-12-24 | 2023-12-22 | 北京浪潮数据技术有限公司 | 一种元数据修复方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN106528830B (zh) | 2019-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8176061B2 (en) | Tracking digital assets on a distributed network | |
US8423581B2 (en) | Proxy support for special subtree entries in a directory information tree using attribute rules | |
CN105701096A (zh) | 索引生成方法、数据查询方法、装置及*** | |
CN106528830A (zh) | 一种恢复文件索引目录的方法和装置 | |
CN104199750B (zh) | 一种linux***的文件恢复方法及装置 | |
US20100312749A1 (en) | Scalable lookup service for distributed database | |
CN104516974B (zh) | 一种文件***目录项的管理方法及装置 | |
CN105719329B (zh) | 记账凭证生成方法和*** | |
US10795960B2 (en) | Managing bookmarks within a collaborative application | |
CN105677904B (zh) | 基于分布式文件***的小文件存储方法及装置 | |
CN103049355B (zh) | 一种数据库***恢复方法及设备 | |
CN107015985A (zh) | 一种数据存储与获取方法及装置 | |
CN109889588B (zh) | 文件获取方法、装置、计算机设备和存储介质 | |
CN106484820A (zh) | 一种重命名方法、访问方法及装置 | |
CN107147748A (zh) | 文件上传方法和装置 | |
CN109947759A (zh) | 一种数据索引建立方法、索引检索方法及装置 | |
CN109299234A (zh) | 一种信息查询方法、装置及计算机可读存储介质 | |
CN103927252A (zh) | 一种跨组件日志记录方法、装置及*** | |
CN106559556A (zh) | 一种通信处理方法、装置 | |
US20140297953A1 (en) | Removable Storage Device Identity and Configuration Information | |
US9626378B2 (en) | Method for handling requests in a storage system and a storage node for a storage system | |
CN108920610B (zh) | 一种小说索引方法及设备 | |
CN110334065A (zh) | 一种文件处理方法和*** | |
CN106559554A (zh) | 一种通信处理方法、装置 | |
US10169351B2 (en) | Merging directory information from a user directory to a common directory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |