CN108733753B - 一种文件读取方法及应用实体 - Google Patents

一种文件读取方法及应用实体 Download PDF

Info

Publication number
CN108733753B
CN108733753B CN201810315489.XA CN201810315489A CN108733753B CN 108733753 B CN108733753 B CN 108733753B CN 201810315489 A CN201810315489 A CN 201810315489A CN 108733753 B CN108733753 B CN 108733753B
Authority
CN
China
Prior art keywords
file
application entity
destination
file system
destination 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
Application number
CN201810315489.XA
Other languages
English (en)
Other versions
CN108733753A (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.)
Wangsu Science and Technology Co Ltd
Original Assignee
Wangsu Science and Technology 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 Wangsu Science and Technology Co Ltd filed Critical Wangsu Science and Technology Co Ltd
Priority to CN201810315489.XA priority Critical patent/CN108733753B/zh
Priority to PCT/CN2018/086179 priority patent/WO2019196157A1/zh
Priority to US16/306,934 priority patent/US20210224231A1/en
Priority to EP18815932.1A priority patent/EP3594820A4/en
Publication of CN108733753A publication Critical patent/CN108733753A/zh
Application granted granted Critical
Publication of CN108733753B publication Critical patent/CN108733753B/zh
Active 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • 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/17Details of further file system functions
    • G06F16/1734Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • 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
    • 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/13File access structures, e.g. distributed indices
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Library & Information Science (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种文件读取方法及应用实体,用于提供文件读取效率,其中方法包括:应用实体向文件系统发送读取请求;应用实体在接收到文件系统返回的第一错误应答时,确定目的文件的文件来源,并从文件来源获取目的文件;应用实体向文件系统发送写入请求;写入请求用于指示文件系统根据替换存储路径重新存储目的文件。应用实体在收到第一错误应答后,文件系统重新存储目的文件,并且由于损坏的存储空间已被占用,因此文件系统不会将重新存储的目的文件存入损坏的存储空间。当应用实体再次向文件系统发送读取请求时,文件系统便可从替换存储路径打开并读取目的文件,从而提高了文件读取速率。

Description

一种文件读取方法及应用实体
技术领域
本发明涉及数据存储技术领域,尤其涉及一种文件读取方法及应用实体。
背景技术
缓存指的是将需要频繁访问的网络内容存放在离用户较近、访问速度更快的系统的磁盘中,以提高内容访问速度的一种技术。
然而,由于缓存文件需要频繁的写入和读取,保存缓存文件的磁盘经常高负载运作,使得磁盘磁道损坏的情况经常发生。若从损坏的磁道读取文件,会由于其中的部分文件内容错误,导致无法读取这些文件,影响存储文件的读取效率,不利于提高用户体验。而且,当缓存文件不能读取时,文件系统会默认多次尝试重复从磁盘读取该缓存文件,进而使磁盘的负载情况更加恶化,使存储文件的读取效率进一步下降。
发明内容
本发明提供一种文件读取方法及应用实体,用以提高文件的读取效率。
第一方面,本发明实施例提供一种文件读取方法,应用于包括应用实体和文件系统的存储设备,所述方法包括:
所述应用实体向所述文件系统发送读取请求;所述读取请求包括目的文件的存储路径;所述读取请求用于指示所述文件系统根据所述目的文件的存储路径打开并读取所述目的文件;
所述应用实体在接收到所述文件系统返回的第一错误应答时,确定所述目的文件的文件来源,并从所述文件来源获取所述目的文件;所述第一错误应答为所述文件系统读取所述目的文件失败时返回所述应用实体的;
所述应用实体向所述文件系统发送写入请求;所述写入请求包括所述目的文件和所述目的文件的替换存储路径;所述写入请求用于指示所述文件系统根据所述替换存储路径重新存储所述目的文件。
应用实体向文件系统发送读取请求后,文件系统会根据读取请求中的目的文件的存储路径打开并读取目的文件,在文件系统读取目的文件失败时,说明存储目的文件的存储空间损坏,文件系统会向应用实体返回第一错误应答。应用实体在收到第一错误应答后,从目的文件的文件来源获取目的文件,并将目的文件和替换存储路径发给文件系统,文件系统重新存储目的文件,并且由于损坏的存储空间已被占用,因此文件系统不会将重新存储的目的文件存入损坏的存储空间。当应用实体再次向文件系统发送读取请求以读取该目的文件时,文件系统便可从替换存储路径打开并读取目的文件,而不会重复读取损坏的存储空间中的目的文件,从而提高了文件读取速率。
可选的,所述应用实体包括路径集合;所述路径集合包括若干个已存储文件的文件标识,以及各已存储文件的存储路径;
所述应用实体向所述文件系统发送读取请求之前,还包括:
所述应用实体根据所述目的文件的文件标识确定在所述路径集合中对应的存储路径;
所述应用实体向所述文件系统发送写入请求之后,还包括:
所述应用实体在所述路径集合中保存所述目的文件的文件标识与所述替换存储路径之间的对应关系。
应用实体会在路径集合中保存其所存储的各文件的存储路径,在读取已存储的目的文件时,从路径集合中确定目的文件的文件标识所对应的存储路径,并将该存储路径通过读取请求发送给文件系统,使得文件系统可以根据该存储路径打开并读取目的文件。在重新写入目的文件后,应用系统也会将目的文件的文件标识与替换存储路径之间的对应关系保存至路径集合,在下一次读取该目的文件时,便可以获取替换存储路径读取到重新保存的目的文件。
可选的,所述文件系统包括与所述目的文件对应的一级目录,以及坏道文件目录;
所述应用实体向所述文件系统发送写入请求之前,还包括:
所述应用实体向所述文件系统发送迁移指令;所述迁移指令包括所述目的文件的文件标识、所述目的文件对应的一级目录标识以及所述坏道文件目录标识,用于指示所述文件系统删除所述目的文件与所述一级目录的对应关系,以及建立所述目的文件与所述坏道文件目录的对应关系。
文件系统是根据目的文件的存储路径所指向的一级目录打开并读取目的文件的。在重新存储目的文件后,应用实体通过迁移指令,将重新存储的目的文件的替换路径指向原先的一级目录,而把已经损坏了的原目的文件的存储路径指向坏道文件目录,在下一次向文件系统发送包括该目的文件的该存储路径的读取请求时,文件系统便无法打开已经无法读取了的目的文件。
可选的,所述应用实体在所述路径集合中保存所述目的文件与所述替换存储路径之间的对应关系之前,所述方法还包括:
所述应用实体重命名所述路径集合中的所述目的文件的文件标识。
应用实体将路径集合中已经损坏的目的文件重命名,在下一次读取目的文件时,由于已经损坏的目的文件被重命名,应用实体根据目的文件的文件标识从路径集合中所确定的将是重新存储的目的文件及其所对应的替换存储路径。
可选的,还包括:
所述应用实体在接收到所述文件系统返回的第二错误应答时,保存所述目的文件的存储路径到日志文件中;所述第二错误应答是所述文件系统打开所述目的文件失败时返回所述应用实体的。
文件系统需先打开目的文件,才能够读取到目的文件。在文件系统打开目的文件失败时,会向应用实体返回第二错误应答。应用实体在收到第二错误应答后,便可以确认目的文件无法打开,从而将目的文件的存储路径记录到日志文件中,以供运维人员进行检测。
第二方面,本发明实施例提供一种应用实体,应用于存储设备中,所述存储设备包括所述应用实体和文件系统,所述应用实体包括:
收发单元,用于向所述文件系统发送读取请求;所述读取请求包括目的文件的存储路径;所述读取请求用于指示所述文件系统根据所述目的文件的存储路径打开并读取所述目的文件;
处理单元,用于在所述收发单元接收到所述文件系统返回的第一错误应答时,确定所述目的文件的文件来源,并从所述文件来源获取所述目的文件;所述第一错误应答为所述文件系统读取所述目的文件失败时返回所述应用实体的;
所述处理单元,还用于通过所述收发单元向所述文件系统发送写入请求;所述写入请求包括所述目的文件和所述目的文件的替换存储路径;所述写入请求用于指示所述文件系统根据所述替换存储路径重新存储所述目的文件。
可选的,所述处理单元包括路径集合;所述路径集合包括若干个已存储文件的文件标识,以及各已存储文件的存储路径;
所述处理单元,还用于:
根据所述目的文件的文件标识确定在所述路径集合中对应的存储路径;
所述处理单元,还用于:
在所述路径集合中保存所述目的文件的文件标识与所述替换存储路径之间的对应关系。
可选的,所述文件系统包括与所述目的文件对应的一级目录,以及坏道文件目录;
所述处理单元,还用于:
通过所述收发单元向所述文件系统发送迁移指令;所述迁移指令包括所述目的文件的文件标识、所述目的文件对应的一级目录标识以及所述坏道文件目录标识,用于指示所述文件系统删除所述目的文件与所述一级目录的对应关系,以及建立所述目的文件与所述坏道文件目录的对应关系。
可选的,所述处理单元还用于:
重命名所述路径集合中的所述目的文件的文件标识。
可选的,所述处理单元还用于:
在所述收发单元接收到所述文件系统返回的第二错误应答时,保存所述目的文件的存储路径到日志文件中;所述第二错误应答是所述文件系统打开所述目的文件失败时返回所述应用实体的。
第三方面,本发明实施例提供一种存储设备,包括文件系统和如第二方面任一项所述的应用实体。
第四方面,本发明实施例提供一种计算机可读存储介质应用于包括应用实体和文件系统的计算机,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机中的应用实体和文件系统执行如第一方面任一项所述的方法。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为存储设备中应用实体、文件系统和磁盘逻辑关系示意图;
图2为本发明实施例提供的一种文件读取方法流程示意图;
图3为本发明实施例提供的一种可行的文件读取方法流程释义图之一;
图4为本发明实施例提供的一种可行的文件读取方法流程释义图之二;
图5为本发明实施例提供的一种应用实体结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
为了提高存储文件的读取效率,本发明实施例提供了一种文件读取方法。其中,存储文件存储与存储设备中,存储设备可以是网络服务器、个人电脑、移动终端等具有文件存储与读取功能的电子设备。在存储设备中,应用实体需要通过文件系统以实现文件的存储和读取。图1为存储设备中应用实体、文件系统和磁盘逻辑关系示意图,如图1所示,应用实体1可以向文件系统2进行交互,由文件系统2从磁盘3进行直接管理。通常,应用实体1,又称应用层,可以为用户提供应用服务。文件系统2,是操作系统中专门负责管理和存储文件信息的系统,一般不可随意更改。在现有技术中,应用实体1读取磁盘3中的文件时,向文件系统2发送读取请求,文件系统2收到读取请求后,打开并读取磁盘3中的文件,在文件系统2无法打开或读取磁盘3中的文件时,其会尝试多次打开或读取操作,从而增加了磁盘3的负载。
基于图1所示的存储设备,本发明实施例提供一种文件读取方法。图2为本发明实施例提供的一种文件读取方法流程示意图,如图2所示,包括以下步骤:
S201:应用实体向文件系统发送读取请求;读取请求包括目的文件的存储路径;读取请求用于指示文件系统根据目的文件的存储路径打开并读取目的文件。
S202:应用实体在接收到文件系统返回的第一错误应答时,确定目的文件的文件来源,并从文件来源获取目的文件;第一错误应答为文件系统读取目的文件失败时返回应用实体的。
S203:应用实体向文件系统发送写入请求;写入请求包括目的文件和目的文件的替换存储路径;写入请求用于指示文件系统根据替换存储路径重新存储目的文件。
在S201中,目的文件的存储路径是应用实体在存储目的文件时保存下来的。可选的,应用实体包括路径集合;路径集合包括若干个已存储文件的文件标识,以及各已存储文件的存储路径。应用实体在向文件系统发送读取请求之前,先根据目的文件的文件标识确定在路径集合中对应的存储路径。之后,应用实体可以将该存储路径通过读取请求发送给文件系统,使得文件系统可以根据该存储路径打开并读取目的文件。
在获取了目的文件的存储路径后,生成读取请求并发送给文件系统。一般情况下,读取请求包括open请求和io请求,应用实体先向文件系统发送open请求,open请求包括目的文件的存储路径,用于指示文件系统打开目的文件,文件系统成功打开目的文件后,会向应用实体返回目的文件的文件描述符,应用实体再向文件系统发送io请求,io请求包括目的文件的文件描述符,指示文件系统读取目的文件。
在S202中,若文件系统未成功读取目的文件,会向应用实体返回第一错误应答,一般可以是EIO(错误I/O)消息。EIO消息是一种现有的消息类型,读取文件内容的时候,如果正好落在磁道坏道上,文件系统将返回文件错误,即EIO错误。例如,运维人员会通过一些监控程序(Control Program,cp程序)对磁盘中的文件进行检测,cp程序会对磁盘中的文件进行拷贝,在目的文件不能读取时,cp程序便会收到文件系统层的EIO消息。在本发明实施例中,应用实体同样可以在文件系统无法读取目的文件时收到文件系统返回的第一错误应答。
应用实体在接收到文件系统返回的第一错误应答时,可以根据第一错误应答确定此时的目的文件已经无法读取。可选的,应用实体在收到第一错误应答时,可以判断连续收到该目的文件对应的第一错误应答的次数N是否超过预设阈值,若是,则确认存储该目的文件的磁道损坏,N大于等于1。其中,预设阈值可以根据实际应用情况设置,本申请对此不多作限制。应用实体进而会确定该目的文件的文件来源,并从文件来源获取目的文件。在本发明实施例中,目的文件既可以是其它设备发送给存储设备的,也可以是存储设备自己生成的。若目的文件是其它设备发送给存储设备的,则存储设备向文件来源发送请求消息,使得文件来源将目的文件重新发送给存储设备。若目的文件是存储设备自己生成的,则存储设备回源系统日志,并再次生成目的文件。
在S203中,应用实体从文件来源再次获取目的文件后,通过写入请求将再次获取的目的文件和目的文件的替换存储路径发送给文件系统,文件系统会根据替换存储路径再次存储目的文件。可选的,应用实体向文件系统发送写入请求之后,还会在路径集合中保存目的文件的文件标识与替换存储路径之间的对应关系。在重新写入目的文件后,应用系统也会将目的文件的文件标识与替换存储路径之间的对应关系保存至路径集合,在下一次读取该目的文件时,便可以获取替换存储路径,从而读取到重新保存的目的文件。
应用实体向文件系统发送读取请求后,文件系统会根据读取请求中的目的文件的存储路径打开并读取目的文件,在文件系统读取目的文件失败时,说明存储目的文件的存储空间损坏,文件系统会向应用实体返回第一错误应答。应用实体在收到第一错误应答后,从目的文件的文件来源获取目的文件,并将目的文件和替换存储路径发给文件系统,文件系统重新存储目的文件,并且由于损坏的存储空间已被占用,因此文件系统不会将重新存储的目的文件存入损坏的存储空间。当应用实体再次向文件系统发送读取请求以读取该目的文件时,文件系统便可从替换存储路径打开并读取目的文件,而不会重复读取损坏的存储空间中的目的文件,从而提高了文件读取速率。
在文件系统中,包括多个文件目录,每一个文件的存储路径都会有一个与之对应的一级目录。文件系统在打开目的文件时,会先确定目的文件对应的一级目录,并在一级目录中通过多个分级找到与该目的文件对应的文件描述符。可选的,文件系统还包括至少一个坏道文件目录,应用实体向文件系统发送写入请求之前,还包括:应用实体向文件系统发送迁移指令;迁移指令包括目的文件的文件标识、目的文件对应的一级目录标识以及坏道文件目录标识。文件系统在收到该迁移标识之后,会删除目的文件与一级目录的对应关系,使得目的文件的存储路径不再指向该一级目录。同时,文件系统还会建立目的文件与坏道文件目录的对应关系,使得目的文件的存储路径指向坏道文件目录。当再次以该目的文件的原存储路径向文件系统发送读取请求时,文件系统便无法通过一级目录找到该目的文件的文件描述符,进而无法打开目的文件。而以该目的文件的替换存储路径向文件系统发送读取请求时,却可以正常获取再次存储的目的文件的文件描述符,从而打开再次存储的目的文件。
当应用实体将再次存储的目的文件和替换存储路径保存至路径集合中时,会导致路径集合中保存有两个相同文件标识与两个不同的存储路径之间的对应关系,为下一次读取目的文件带来不便。可选的,应用实体在路径集合中保存目的文件与替换存储路径之间的对应关系之前,先重命名路径集合中的目的文件的文件标识。而重新存储的目的文件可以继续使用原有的文件标识,不会影响后续的操作过程。应用实体将路径集合中已经损坏的目的文件重命名,在下一次读取目的文件时,由于已经损坏的目的文件被重命名,应用实体根据目的文件的文件标识从路径集合中所确定的将是重新存储的目的文件及其所对应的替换存储路径。
由上述论述可知,文件系统需先打开目的文件,才能读取目的文件。文件系统在无法打开目的文件时,文件系统会返回第二错误应答,一般可以是ENOENT应答。正常磁盘被格式化后,打开文件需要在磁盘中查找该文件的索引,索引文件可简单认为是文件路径,当索引文件的信息正好在磁道坏道中,打开文件时系统将返回文件不存在,即ENOENT应答。然而,对于应用实体而言,在收到第二错误应答时,只能确定文件系统没有打开目的文件,并不能确定是由于磁道损坏还是文件丢失导致。因此,可选的,应用实体在接收到文件系统返回的第二错误应答时,保存目的文件的存储路径到日志文件中。应用实体在无法确认磁道是否损坏的情况下将目的文件的存储路径记录到日志文件中,以供运维人员对其进行检测。
在本发明实施例中,无法读取的文件会一直占用损坏了的磁道且不会去访问,从而达到了隔离坏磁道的目的。但是由于实际业务中,单个文件可能达到GB级别,随着业务持续运行,被占用的存储空间会越来越多。可选的,在磁盘具有自我修复功能的情况下,还可以定期清理损坏了的磁道中的文件,从而触发磁盘的自我修复机制,使磁盘释放备用空间弥补已经损坏了的磁道的存储空间。
为了更具体地说明本发明实施例提供的文件读取方法,本发明实施例提供一种具体可行的实现方式。图3为本发明实施例提供的一种可行的文件读取方法流程释义图之一,应用实体可以通过图3所示的方法确定目的文件所占存储空间是否损坏。如图3所示,包括以下步骤:
S301:应用实体确定路径集合中目标文件—文件A的存储路径。
S302:应用实体向文件系统发送open请求,open请求中携带文件A的存储路径。
S303:文件系统根据文件A的存储路径打开磁盘中的文件A。若成功打开,则执行S306;若打开失败,则执行S304。
S304:文件系统打开文件A失败时,文件系统向应用实体发送ENOENT应答。
S305:应用实体在收到ENOENT应答后,将文件A的存储路径记录到日志文件中,以供运维人员检测。
S306:文件系统成功打开文件A时,文件系统向应用实体发送文件A的文件描述符。
S307:应用实体向文件系统发送io请求,io请求中包括文件A的文件描述符。
S308:文件系统在收到io请求后,根据文件A的文件描述符从磁盘中读取文件A。若读取成功,则执行S309;若读取失败,则执行S310。
S309:文件系统读取文件A成功时,将文件A发送给应用实体。
S310:文件系统读取文件A失败时,向应用实体返回EIO消息。应用实体接收到EIO消息后,便可以确定存储文件A的存储空间已经损坏。
应用实体在确定存储文件A的存储空间已损坏后,可以继续执行如图4所示的方法流程,图4为本发明实施例提供的一种可行的文件读取方法流程释义图之二,通过图4所示的方法流程可以将已损坏的存储空间隔离,提高文件读取效率。如图4所示,包括以下步骤:
S401:应用实体将路径集合中的文件A重命名为文件a。
S402:应用实体向文件系统发送迁移指令,迁移指令中包括文件A的标识、文件A对应的一级目录标识、以及坏道文件目录标识。
S403:文件系统根据迁移指令,删除文件系统中文件A与一级目录的对应关系,同时建立文件A与坏道文件目录的对应关系。
S404:应用实体从文件A的文件来源重新获取文件A。
S405:应用实体向文件系统发送写入请求,将重新获取的文件A以及替换存储路径发送给文件系统。
S406:文件系统根据替换存储路径重新在磁盘中存储文件A。
在图3和图4所提供的文件读取方法中,应用实体向文件系统发送读取请求后,文件系统会根据读取请求中文件A的存储路径打开并读取目的文件,在文件系统读取目的文件失败时,说明存储文件A的存储空间损坏,文件系统会向应用实体返回第一错误应答。应用实体在收到第一错误应答后,从文件A的文件来源获取文件A,并将文件A和替换存储路径发给文件系统,文件系统重新存储文件A,并且由于损坏的存储空间已被占用,因此文件系统不会将重新存储的文件A存入损坏的存储空间。当应用实体再次向文件系统发送读取请求以读取文件A时,文件系统便可从替换存储路径打开并读取目的文件,而不会重复读取损坏的存储空间中的文件A,从而提高了文件读取速率。
基于相同的技术构思,本发明实施例还提供一种应用实体,应用于存储设备中,所述存储设备包括所述应用实体和文件系统,该应用实体可以执行上述任一实施例所公开的存储文件读取方法。图5为本发明实施例提供的一种应用实体结构示意图,如图5所示,应用实体500包括:收发单元501和处理单元502,其中:
收发单元501,用于向文件系统发送读取请求;读取请求包括目的文件的存储路径;读取请求用于指示文件系统根据目的文件的存储路径打开并读取目的文件;
处理单元502,用于在收发单元501接收到文件系统返回的第一错误应答时,确定目的文件的文件来源,并从文件来源获取目的文件;第一错误应答为文件系统读取目的文件失败时返回应用实体的;
处理单元502,还用于通过收发单元501向文件系统发送写入请求;写入请求包括目的文件和目的文件的替换存储路径;写入请求用于指示文件系统根据替换存储路径重新存储目的文件。
可选的,处理单元502包括路径集合;路径集合包括若干个已存储文件的文件标识,以及各已存储文件的存储路径;
处理单元502,还用于:
根据目的文件的文件标识确定在路径集合中对应的存储路径;
处理单元502,还用于:
在路径集合中保存目的文件的文件标识与替换存储路径之间的对应关系。
可选的,文件系统包括与目的文件对应的一级目录,以及坏道文件目录;
处理单元502,还用于:
通过收发单元501向文件系统发送迁移指令;迁移指令包括目的文件的文件标识、目的文件对应的一级目录标识以及坏道文件目录标识,用于指示文件系统删除目的文件与一级目录的对应关系,以及建立目的文件与坏道文件目录的对应关系。
可选的,处理单元502还用于:
重命名路径集合中的目的文件的文件标识。
可选的,处理单元502还用于:
在收发单元501接收到文件系统返回的第二错误应答时,保存目的文件的存储路径到日志文件中;第二错误应答是文件系统打开目的文件失败时返回应用实体的。
应理解,以上各个单元的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。
基于相同的技术构思,本发明实施例提供一种存储设备,包括文件系统和如第二方面任一项所述的应用实体,应用实体在读取存储文件的过程中,执行上述任一实施例所提供的文件读取方法。
基于相同的技术构思,本发明实施例提供一种计算机可读存储介质应用于包括应用实体和文件系统的计算机,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机中的应用实体和文件系统执行上述任一实施例所提供的文件读取方法。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (12)

1.一种文件读取方法,其特征在于,应用于包括应用实体和文件系统的存储设备;所述方法包括:
所述应用实体向所述文件系统发送读取请求;所述读取请求包括目的文件的存储路径;所述读取请求用于指示所述文件系统根据所述目的文件的存储路径打开并读取所述目的文件;
所述应用实体在接收到所述文件系统返回的第一错误应答时,确定所述目的文件的文件来源,并从所述文件来源获取所述目的文件;所述第一错误应答为所述文件系统读取所述目的文件失败时返回所述应用实体的;
所述应用实体向所述文件系统发送写入请求;所述写入请求包括所述目的文件和所述目的文件的替换存储路径;所述写入请求用于指示所述文件系统根据所述替换存储路径重新存储所述目的文件;
其中,所述目的文件的存储路径和所述目的文件的替换存储路径位于磁盘的不同磁道,在所述磁盘具有自我修复功能的情况下,定期清理所述目的文件的存储路径所位于的磁道中的文件。
2.如权利要求1所述的方法,其特征在于,所述应用实体包括路径集合;所述路径集合包括若干个已存储文件的文件标识,以及各已存储文件的存储路径;
所述应用实体向所述文件系统发送读取请求之前,还包括:
所述应用实体根据所述目的文件的文件标识确定在所述路径集合中对应的存储路径;
所述应用实体向所述文件系统发送写入请求之后,还包括:
所述应用实体在所述路径集合中保存所述目的文件的文件标识与所述替换存储路径之间的对应关系。
3.如权利要求2所述的方法,其特征在于,所述文件系统包括与所述目的文件对应的一级目录,以及坏道文件目录;
所述应用实体向所述文件系统发送写入请求之前,还包括:
所述应用实体向所述文件系统发送迁移指令;所述迁移指令包括所述目的文件的文件标识、所述目的文件对应的一级目录标识以及所述坏道文件目录标识,用于指示所述文件系统删除所述目的文件与所述一级目录的对应关系,以及建立所述目的文件与所述坏道文件目录的对应关系。
4.如权利要求2所述的方法,其特征在于,所述应用实体在所述路径集合中保存所述目的文件与所述替换存储路径之间的对应关系之前,所述方法还包括:
所述应用实体重命名所述路径集合中的所述目的文件的文件标识。
5.如权利要求1至4任一项所述的方法,其特征在于,还包括:
所述应用实体在接收到所述文件系统返回的第二错误应答时,保存所述目的文件的存储路径到日志文件中;所述第二错误应答是所述文件系统打开所述目的文件失败时返回所述应用实体的。
6.一种应用实体,其特征在于,应用于存储设备中,所述存储设备包括所述应用实体和文件系统;所述应用实体包括:
收发单元,用于向所述文件系统发送读取请求;所述读取请求包括目的文件的存储路径;所述读取请求用于指示所述文件系统根据所述目的文件的存储路径打开并读取所述目的文件;
处理单元,用于在所述收发单元接收到所述文件系统返回的第一错误应答时,确定所述目的文件的文件来源,并从所述文件来源获取所述目的文件;所述第一错误应答为所述文件系统读取所述目的文件失败时返回所述应用实体的;
所述处理单元,还用于通过所述收发单元向所述文件系统发送写入请求;所述写入请求包括所述目的文件和所述目的文件的替换存储路径;所述写入请求用于指示所述文件系统根据所述替换存储路径重新存储所述目的文件;
其中,所述目的文件的存储路径和所述目的文件的替换存储路径位于磁盘的不同磁道,在所述磁盘具有自我修复功能的情况下,定期清理所述目的文件的存储路径所位于的磁道中的文件。
7.如权利要求6所述的应用实体,其特征在于,所述处理单元包括路径集合;所述路径集合包括若干个已存储文件的文件标识,以及各已存储文件的存储路径;
所述处理单元,还用于:
根据所述目的文件的文件标识确定在所述路径集合中对应的存储路径;
所述处理单元,还用于:
在所述路径集合中保存所述目的文件的文件标识与所述替换存储路径之间的对应关系。
8.如权利要求7所述的应用实体,其特征在于,所述文件系统包括与所述目的文件对应的一级目录,以及坏道文件目录;
所述处理单元,还用于:
通过所述收发单元向所述文件系统发送迁移指令;所述迁移指令包括所述目的文件的文件标识、所述目的文件对应的一级目录标识以及所述坏道文件目录标识,用于指示所述文件系统删除所述目的文件与所述一级目录的对应关系,以及建立所述目的文件与所述坏道文件目录的对应关系。
9.如权利要求7所述的应用实体,其特征在于,所述处理单元还用于:
重命名所述路径集合中的所述目的文件的文件标识。
10.如权利要求6至9任一项所述的应用实体,其特征在于,所述处理单元还用于:
在所述收发单元接收到所述文件系统返回的第二错误应答时,保存所述目的文件的存储路径到日志文件中;所述第二错误应答是所述文件系统打开所述目的文件失败时返回所述应用实体的。
11.一种存储设备,其特征在于,包括文件系统和如权利要求6至10任一项所述的应用实体。
12.一种计算机可读存储介质,其特征在于,应用于包括应用实体和文件系统的计算机,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机中的应用实体和文件系统执行权利要求1至5任一项所述的方法。
CN201810315489.XA 2018-04-10 2018-04-10 一种文件读取方法及应用实体 Active CN108733753B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201810315489.XA CN108733753B (zh) 2018-04-10 2018-04-10 一种文件读取方法及应用实体
PCT/CN2018/086179 WO2019196157A1 (zh) 2018-04-10 2018-05-09 一种文件读取方法及应用实体
US16/306,934 US20210224231A1 (en) 2018-04-10 2018-05-09 A file reading method and an application entity
EP18815932.1A EP3594820A4 (en) 2018-04-10 2018-05-09 FILE READING PROCEDURE AND APPLICATION UNIT

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810315489.XA CN108733753B (zh) 2018-04-10 2018-04-10 一种文件读取方法及应用实体

Publications (2)

Publication Number Publication Date
CN108733753A CN108733753A (zh) 2018-11-02
CN108733753B true CN108733753B (zh) 2021-08-03

Family

ID=63941332

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810315489.XA Active CN108733753B (zh) 2018-04-10 2018-04-10 一种文件读取方法及应用实体

Country Status (4)

Country Link
US (1) US20210224231A1 (zh)
EP (1) EP3594820A4 (zh)
CN (1) CN108733753B (zh)
WO (1) WO2019196157A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12001402B2 (en) * 2021-08-02 2024-06-04 Dell Products L.P. Dynamically selecting an application to open a file

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101216850A (zh) * 2008-01-11 2008-07-09 清华大学 文件系统访问记录的动态采集方法
CN105975358A (zh) * 2016-05-03 2016-09-28 深圳市杉岩数据技术有限公司 一种基于scsi设备的容错方法及系统
CN107423425A (zh) * 2017-08-02 2017-12-01 德比软件(上海)有限公司 一种对k/v格式的数据快速存储和查询方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7281032B2 (en) * 2000-06-30 2007-10-09 Hitachi, Ltd. File sharing system with data mirroring by storage systems
US7007047B2 (en) * 2002-03-29 2006-02-28 Panasas, Inc. Internally consistent file system image in distributed object-based data storage
US7904756B2 (en) * 2007-10-19 2011-03-08 Oracle International Corporation Repair planning engine for data corruptions
CN101436151B (zh) * 2008-12-01 2012-01-11 成都索贝数码科技股份有限公司 基于文件系统的数据实时备份方法及其系统
CN102880522B (zh) * 2012-09-21 2014-12-31 中国人民解放军国防科学技术大学 面向硬件故障的系统关键文件故障纠正方法及装置
CN102902604B (zh) * 2012-09-28 2016-06-29 北京奇虎科技有限公司 一种用于修复文件的方法和装置
CN104216908A (zh) * 2013-06-03 2014-12-17 上海普华诚信信息技术有限公司 互联网数据管理系统及其读写方法
JP2015179326A (ja) * 2014-03-18 2015-10-08 株式会社東芝 データ転送装置、データ転送方法およびコンピュータプログラム
CN105630900A (zh) * 2015-12-18 2016-06-01 浪潮(北京)电子信息产业有限公司 一种数据存储方法与系统
CN106919474A (zh) * 2015-12-28 2017-07-04 中移(苏州)软件技术有限公司 一种缓存数据保护方法和装置
US10684924B2 (en) * 2016-02-18 2020-06-16 Commvault Systems, Inc. Data restoration operations based on network path information
CN105808161A (zh) * 2016-02-26 2016-07-27 四川效率源信息安全技术股份有限公司 一种硬盘坏道数据的读取方法
CN106874029B (zh) * 2016-12-30 2021-02-02 深圳市广和通无线股份有限公司 镜像文件加载方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101216850A (zh) * 2008-01-11 2008-07-09 清华大学 文件系统访问记录的动态采集方法
CN105975358A (zh) * 2016-05-03 2016-09-28 深圳市杉岩数据技术有限公司 一种基于scsi设备的容错方法及系统
CN107423425A (zh) * 2017-08-02 2017-12-01 德比软件(上海)有限公司 一种对k/v格式的数据快速存储和查询方法

Also Published As

Publication number Publication date
CN108733753A (zh) 2018-11-02
EP3594820A4 (en) 2020-08-05
EP3594820A1 (en) 2020-01-15
US20210224231A1 (en) 2021-07-22
WO2019196157A1 (zh) 2019-10-17

Similar Documents

Publication Publication Date Title
CN102929750B (zh) 非易失性介质肮脏区段跟踪
US20150213100A1 (en) Data synchronization method and system
JP2004334574A (ja) ストレージの運用管理プログラム、運用管理方法及び管理計算機
CN103037004A (zh) 云存储系统操作的实现方法和装置
CN103647804B (zh) 一种存储单元的数据处理方法、设备及系统
CN111240892B (zh) 数据备份方法及装置
US20090024768A1 (en) Connection management program, connection management method and information processing apparatus
CN104714864A (zh) 一种计算机数据智能备份方法
US20060156030A1 (en) Data processing system and method
CN110162429A (zh) 系统修复方法、服务器及存储介质
CN108255576A (zh) 虚拟机热迁移异常处理方法、装置和存储介质
CN110147203A (zh) 一种文件管理方法、装置、电子设备及存储介质
CN106294387A (zh) 数据迁移方法和装置
CN105354102B (zh) 一种文件系统维护和修复的方法和装置
CN113687790A (zh) 数据重构方法、装置、设备及存储介质
CN111143113A (zh) 复制元数据的方法、电子设备和计算机程序产品
CN113495883A (zh) 一种针对数据库的数据存储方法及装置
CN108733753B (zh) 一种文件读取方法及应用实体
CN109189326B (zh) 分布式集群的管理方法和装置
CN103544254B (zh) 一种数据管理方法及装置
CN106055372A (zh) 一种卸载应用程序的方法和装置
CN107133334B (zh) 基于高带宽存储系统的数据同步方法
US20120151005A1 (en) Image file download method
CN115543225B (zh) 数据处理方法、系统、装置、计算机存储介质及电子设备
CN115981559A (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