文件访问的方法、装置及系统的制作方法

文档序号:7812247阅读:108来源:国知局
文件访问的方法、装置及系统的制作方法
【专利摘要】本发明公开了一种文件访问的方法、装置及系统,属于存储领域。该方法包括:客户端在通过第一数据节点访问第一文件时,获取该第一文件的文件信息。目录节点在该客户端通过第一数据节点访问该第一文件时,如果检测到该第一数据节点出现故障,生成切换指示信息。该目录节点向客户端发送切换指示信息。客户端根据该切换指示信息,向该第二数据节点发送恢复指令,该恢复指令包括第一文件的文件信息。该第二数据节点根据该第一文件的文件信息对该第一文件进行恢复。客户端通过所述第二数据节点访问所述第一文件。本发明解决了系统负荷较大的问题,实现了减小系统负荷的效果,本发明用于分布式系统中文件的访问。
【专利说明】文件访问的方法、装置及系统

【技术领域】
[0001]本发明涉及存储领域,特别涉及一种文件访问的方法、装置及系统。

【背景技术】
[0002]随着网络通信技术的发展,分布式系统得到了广泛的应用。分布式系统是支持分布式处理的软件系统,可以在由通信网络互联的多个数据节点上执行任务,该分布式系统包括:目录节点和数据节点,每个数据节点都能够访问该分布式系统内所有资源,该目录节点能够对各个数据节点的信息进行管理。
[0003]在分布式系统中,当客户端通过数据节点访问文件时,该数据节点会将该文件的文件信息备份到磁盘或者其他数据节点上,该文件信息包括文件打开状态信息和锁信息。此时如果该数据节点发生了故障,那么目录节点就会向该客户端指定其他数据节点中未出现故障的数据节点,客户端触发该未出现故障的数据节点获取磁盘或者其他数据节点上存储的文件信息,该未出现故障的数据节点通过向磁盘发送磁盘I/O (Input/Output,输入/输出)请求或向其他数据节点发送网络通信I/O请求获取相应的文件信息,该未出现故障的数据节点根据该文件信息进行数据的恢复,并继续向客户端提供文件的访问,避免业务中断。
[0004]现有技术中,为了支持访问文件时数据文件的恢复,将文件信息写在磁盘或者其他数据节点上,但是,文件信息无论写在磁盘还是写在其他数据节点上,都占用了分布式系统中的磁盘空间或系统总体内存,并且进行故障恢复的数据节点与磁盘或其他数据节点通信时,需要使用大量的I/o请求,因此系统负荷较大。


【发明内容】

[0005]为了解决系统负荷较大的问题,本发明实施例提供了一种文件访问的方法。所述技术方案如下:
[0006]第一方面,提供一种文件访问方法,包括:
[0007]客户端通过第一数据节点访问第一文件,获取所述第一文件的文件信息;
[0008]目录节点检测到所述第一数据节点出现故障,向所述客户端发送切换指示信息,所述切换指示信息用于指示所述客户端通知第二数据节点进行所述第一文件的恢复;
[0009]所述客户端根据所述切换指示信息,向所述第二数据节点发送恢复指令,所述恢复指令包括所述第一文件的文件信息;
[0010]所述第二数据节点根据所述第一文件的文件信息恢复所述第一文件;
[0011]所述客户端通过所述第二数据节点访问所述第一文件。
[0012]结合第一方面,在第一种可实现方式中,所述第一文件的文件信息包括:锁信息及文件打开状态信息,所述恢复指令包括:句柄恢复指令和锁信息恢复指令,所述句柄恢复指令包括所述文件打开状态信息,所述锁信息恢复指令包括所述第一文件的锁信息;
[0013]所述客户端根据所述切换指示信息,向所述第二数据节点发送恢复指令,包括:
[0014]所述客户端根据所述切换指示信息,向所述第二数据节点分别发送所述句柄恢复指令和所述锁信息恢复指令;
[0015]所述第二数据节点根据所述第一文件的文件信息进行所述第一文件的恢复,包括:
[0016]所述第二数据节点根据所述文件打开状态信息重建所述第一文件的文件句柄;
[0017]所述第二数据节点根据所述第一文件的锁信息重建所述第一文件的锁信息。
[0018]结合第一方面或第一种可实现方式,在第二种可实现方式中,在所述目录节点检测到所述第一数据节点出现故障,向所述客户端发送切换指示信息之前,所述方法还包括:
[0019]所述目录节点生成第一访问条目信息,所述第一访问条目信息用于指示所述第一文件待修复;
[0020]在所述客户端根据所述切换指示信息,向所述第二数据节点发送恢复指令之后,所述方法还包括:
[0021 ] 所述第二数据节点向所述目录节点发送访问条目更新信息,所述访问条目更新信息指示对所述第一访问条目信息进行更新;
[0022]所述目录节点根据所述访问条目更新信息更新所述第一访问条目信息得到第二访问条目信息,所述第二访问条目信息用于指示所述第一文件由所述第二数据节点恢复。
[0023]第二方面,提供一种文件访问方法,包括:
[0024]客户端通过第一数据节点访问第一文件,获取所述第一文件的文件信息;
[0025]所述客户端接收目录节点发送的切换指示信息,所述切换指示信息是所述目录节点在检测到所述第一数据节点出现故障时生成的,所述切换指示信息用于指示所述客户端通知第二数据节点进行所述第一文件的恢复;
[0026]所述客户端根据所述切换指示信息,向所述第二数据节点发送恢复指令,所述恢复指令包括所述第一文件的文件信息,以便于所述第二数据节点根据所述第一文件的文件信息进行所述第一文件的恢复。
[0027]结合第二方面,在第一种可实现方式中,所述第一文件的文件信息包括:锁信息及文件打开状态信息,所述恢复指令包括:句柄恢复指令和锁信息恢复指令,所述句柄恢复指令包括所述文件打开状态信息,所述锁信息恢复指令包括所述第一文件的锁信息;
[0028]所述客户端根据所述切换指示信息,向所述第二数据节点发送恢复指令,包括:
[0029]所述客户端根据所述切换指示信息,向所述第二数据节点分别发送所述句柄恢复指令和所述锁信息恢复指令,以便于所述第二数据节点根据所述文件打开状态信息重建所述第一文件的文件句柄,根据所述第一文件的锁信息重建所述第一文件的锁信息。
[0030]第三方面,提供一种文件访问方法,包括:
[0031]第二数据节点接收客户端发送的恢复指令,所述恢复指令是所述客户端在接收目录节点发送的切换指示信息后生成的,所述切换指示信息是所述目录节点在检测到所述第一数据节点出现故障时生成的,所述切换指示信息用于指示所述客户端通知第二数据节点进行所述第一文件的恢复,所述恢复指令包括所述第一文件的文件信息;
[0032]所述第二数据节点根据所述第一文件的文件信息进行所述第一文件的恢复。
[0033]结合第三方面,在第一种可实现方式中,在所述第二数据节点根据所述第一文件的文件信息进行所述第一文件的恢复之前,所述方法还包括:
[0034]所述第二数据节点向所述目录节点发送访问条目更新信息,所述访问条目更新信息指示所述目录节点对第一访问条目信息进行更新,以便于所述目录节点根据所述访问条目更新信息更新所述第一访问条目信息得到第二访问条目信息;
[0035]其中,所述第一访问条目信息是在所述目录节点检测到所述第一数据节点出现故障时生成的,用于指示所述第一文件待修复,所述第二访问条目信息用于指示所述第一文件由所述第二数据节点恢复。
[0036]结合第三方面或第一种可实现方式,在第二种可实现方式中,所述第一文件的文件信息包括:锁信息及文件打开状态信息,所述恢复指令包括:句柄恢复指令和锁信息恢复指令,所述句柄恢复指令包括所述文件打开状态信息,所述锁信息恢复指令包括所述第一文件的锁信息;
[0037]所述第二数据节点根据所述第一文件的文件信息进行所述第一文件的恢复,包括:
[0038]所述第二数据节点根据所述客户端发送的恢复指令中的句柄恢复指令重建所述第一文件的文件句柄;
[0039]所述第二数据节点根据所述客户端发送的恢复指令中的锁信息恢复指令重建所述第一文件的锁信息。
[0040]第四方面,提供一种文件访问方法,包括:
[0041]目录节点在客户端通过第一数据节点访问第一文件时,如果检测到所述第一数据节点出现故障,生成切换指示信息,所述切换指示信息用于指示所述客户端通知第二数据节点进行所述第一文件的恢复;
[0042]所述目录节点向客户端发送所述切换指示信息,以便于所述客户端根据所述切换指示信息向所述第二数据节点发送恢复指令,所述恢复指令包括所述第一文件的文件信息,所述恢复指令用于指示所述第二数据节点根据所述第一文件的文件信息进行所述第一文件的恢复。
[0043]结合第四方面,在第一种可实现方式中,在所述目录节点生成切换指示信息之后,所述方法还包括:
[0044]所述目录节点生成第一访问条目信息,所述第一访问条目信息用于指示所述第一文件待修复;
[0045]在所述目录节点向客户端发送所述切换指示信息之后,所述方法还包括:
[0046]所述目录节点接收所述第二数据节点发送的访问条目更新信息,所述访问条目更新信息指示所述目录节点对所述第一访问条目信息进行更新;
[0047]所述目录节点根据所述访问条目更新信息更新所述第一访问条目信息得到第二访问条目信息,所述第二访问条目信息用于指示所述第一文件由所述第二数据节点恢复。
[0048]第五方面,提供一种文件访问系统,包括:
[0049]客户端,目录节点和第二数据节点,
[0050]所述客户端,用于通过第一数据节点访问第一文件,获取所述第一文件的文件信息;
[0051]所述目录节点,用于检测到所述第一数据节点出现故障,向所述客户端发送切换指示信息,所述切换指示信息用于指示所述客户端通知第二数据节点进行所述第一文件的恢复;
[0052]所述客户端还用于根据所述切换指示信息,向所述第二数据节点发送恢复指令,所述恢复指令包括所述第一文件的文件信息;
[0053]所述第二数据节点,用于根据所述第一文件的文件信息进行所述第一文件的恢复;
[0054]所述客户端,还用于通过所述第二数据节点访问所述第一文件。
[0055]结合第五方面,在第一种可实现方式中,所述第一文件的文件信息包括:锁信息及文件打开状态信息,所述恢复指令包括:句柄恢复指令和锁信息恢复指令,所述句柄恢复指令包括所述文件打开状态信息,所述锁信息恢复指令包括所述第一文件的锁信息;
[0056]所述客户端具体用于根据所述切换指示信息,向所述第二数据节点分别发送所述句柄恢复指令和所述锁信息恢复指令;
[0057]所述第二数据节点具体用于:
[0058]根据所述文件打开状态信息重建所述第一文件的文件句柄;
[0059]根据所述第一文件的锁信息重建所述第一文件的锁信息。
[0060]结合第五方面或第一种可实现方式,在第二种可实现方式中,所述目录节点还用于生成第一访问条目信息,所述第一访问条目信息用于指示所述第一文件待修复;
[0061]所述第二数据节点还用于向所述目录节点发送访问条目更新信息,所述访问条目更新信息指示对所述第一访问条目信息进行更新;
[0062]所述目录节点还用于根据所述访问条目更新信息更新所述第一访问条目信息得到第二访问条目信息,所述第二访问条目信息用于指示所述第一文件由所述第二数据节点恢复。
[0063]第六方面,提供一种文件访问装置,包括:
[0064]获取单元,用于通过第一数据节点访问第一文件,获取所述第一文件的文件信息;
[0065]接收单元,用于接收目录节点发送的切换指示信息,所述切换指示信息是所述目录节点在检测到所述第一数据节点出现故障时生成的,所述切换指示信息用于指示所述客户端通知第二数据节点进行所述第一文件的恢复;
[0066]发送单元,用于根据所述切换指示信息,向所述第二数据节点发送恢复指令,所述恢复指令包括所述第一文件的文件信息,以便于所述第二数据节点根据所述第一文件的文件信息进行所述第一文件的恢复。
[0067]结合第六方面,在第一种可实现方式中,所述第一文件的文件信息包括:锁信息及文件打开状态信息,所述恢复指令包括:句柄恢复指令和锁信息恢复指令,所述句柄恢复指令包括所述文件打开状态信息,所述锁信息恢复指令包括所述第一文件的锁信息;
[0068]所述发送单元包括:
[0069]发送模块,用于根据所述切换指示信息,向所述第二数据节点分别发送所述句柄恢复指令和所述锁信息恢复指令,以便于所述第二数据节点根据所述文件打开状态信息重建所述第一文件的文件句柄,根据所述第一文件的锁信息重建所述第一文件的锁信息。
[0070]第七方面,提供一种文件访问装置,包括:
[0071]接收单元,用于接收客户端发送的恢复指令,所述恢复指令是所述客户端在接收目录节点发送的切换指示信息后生成的,所述切换指示信息是所述目录节点在检测到所述第一数据节点出现故障时生成的,所述切换指示信息用于指示所述客户端通知第二数据节点进行所述第一文件的恢复,所述恢复指令包括所述第一文件的文件信息;
[0072]恢复单元,用于根据所述第一文件的文件信息进行所述第一文件的恢复。
[0073]结合第七方面,在第一种可实现方式中,所述装置还包括:
[0074]发送单元,用于向所述目录节点发送访问条目更新信息,所述访问条目更新信息指示所述目录节点对第一访问条目信息进行更新,以便于所述目录节点根据所述访问条目更新信息更新所述第一访问条目信息得到第二访问条目信息;
[0075]其中,所述第一访问条目信息是在所述目录节点检测到所述第一数据节点出现故障时生成的,用于指示所述第一文件待修复,所述第二访问条目信息用于指示所述第一文件由所述第二数据节点恢复。
[0076]结合第七方面或第一种可实现方式,在第二种可实现方式中,所述第一文件的文件信息包括:锁信息及文件打开状态信息,所述恢复指令包括:句柄恢复指令和锁信息恢复指令,所述句柄恢复指令包括所述文件打开状态信息,所述锁信息恢复指令包括所述第一文件的锁信息;
[0077]所述恢复单元包括:
[0078]第一重建模块,用于根据所述客户端发送的恢复指令中的句柄恢复指令重建所述第一文件的文件句柄;
[0079]第二重建模块,用于根据所述客户端发送的恢复指令中的锁信息恢复指令重建所述第一文件的锁信息。
[0080]第八方面,提供一种文件访问装置,包括:
[0081]第一生成单元,用于在客户端通过第一数据节点访问第一文件时,如果检测到所述第一数据节点出现故障,生成切换指示信息,所述切换指示信息用于指示所述客户端通知第二数据节点进行所述第一文件的恢复;
[0082]发送单元,用于向客户端发送所述切换指示信息,以便于所述客户端根据所述切换指示信息向所述第二数据节点发送恢复指令,所述恢复指令包括所述第一文件的文件信息,所述恢复指令用于指示所述第二数据节点根据所述第一文件的文件信息进行所述第一文件的恢复。
[0083]结合第八方面,在第一种可实现方式中,所述装置还包括:
[0084]第二生成单元,用于生成第一访问条目信息,所述第一访问条目信息用于指示所述第一文件待修复;
[0085]接收单元,用于接收所述第二数据节点发送的访问条目更新信息,所述访问条目更新信息指示所述目录节点对所述第一访问条目信息进行更新;
[0086]更新单元,用于根据所述访问条目更新信息更新所述第一访问条目信息得到第二访问条目信息,所述第二访问条目信息用于指示所述第一文件由所述第二数据节点恢复。
[0087]本发明提供了一种文件访问的方法、装置及系统,由于本发明通过客户端记录第一文件的文件信息,并发送到第二数据节点,由第二数据节点根据该文件信息完成对第一文件的恢复,无需将第一文件的文件信息写在磁盘或者其他数据节点上,减少了对分布式系统中的磁盘空间或系统总体内存的占用,并且第二数据节点无需通过向磁盘或其他数据节点发送I/o请求进行通信,因此减小了系统负荷。

【专利附图】

【附图说明】
[0088]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0089]图1是本发明实施例提供的文件访问方法所涉及的一种通信网络的环境结构示意图;
[0090]图2是本发明实施例提供的一种文件访问方法的方法流程图;
[0091]图3是本发明实施例提供的另一种文件访问方法的方法流程图;
[0092]图4是本发明实施例提供的又一种文件访问方法的方法流程图;
[0093]图5是本发明实施例提供的再一种文件访问方法的方法流程图;
[0094]图6是本发明另一实施例提供的一种文件访问方法的方法流程图;
[0095]图7是本发明另一实施例提供的一种访问第二文件的方法流程图;
[0096]图8是本发明另一实施例提供的一种恢复第一文件的方法流程图;
[0097]图9是本发明实施例提供的一种文件访问系统的结构示意图;
[0098]图10是本发明实施例提供的一种文件访问装置的结构示意图;
[0099]图11是本发明实施例提供的一种发送恢复指令装置的结构示意图;
[0100]图12是本发明实施例提供另一种文件访问装置的结构示意图;
[0101]图13是本发明实施例提供的第一文件访问装置的结构示意图;
[0102]图14是本发明实施例提供又一种文件访问装置的结构示意图;
[0103]图15是本发明实施例提供再一种文件访问装置的结构示意图;
[0104]图16是本发明另一实施例提供一种文件访问装置的结构示意图;
[0105]图17是本发明另一实施例提供另一种文件访问装置的结构示意图;
[0106]图18是本发明另一实施例提供又一种文件访问装置的结构示意图;
[0107]图19是本发明另一实施例提供再一种文件访问装置的结构示意图;
[0108]图20是本发明又一实施例提供一种文件访问装置的结构示意图;
[0109]图21是本发明又一实施例提供另一种文件访问装置的结构示意图。

【具体实施方式】
[0110]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
[0111]请参考图1,其示出了本发明实施例提供的文件访问方法所涉及的一种通信网络的环境结构示意图。该通信网络涉及分布式系统00和多个客户端01,其中,该分布式系统00可以包括:一个目录节点001和多个数据节点002。其中,目录节点001能够对各个数据节点002的信息进行管理,每个数据节点002都能够访问分布式系统00内所有资源,客户端01通过数据节点访问分布式系统00内的资源。示例的,如图1,客户端01包括客户端011、客户端012和客户端013。数据节点002包括数据节点A、数据节点B和数据节点C,则客户端011、客户端012和客户端013中的任意一个可以通过数据节点A、数据节点B和数据节点C中的任意一个数据节点访问该分布式系统00内的所有资源。
[0112]图2是本发明实施例提供的一种文件访问方法的方法流程图,该方法包括:
[0113]步骤201、客户端通过第一数据节点访问第一文件,获取第一文件的文件信息。
[0114]步骤202、目录节点检测到第一数据节点出现故障,向客户端发送切换指示信息。
[0115]其中,该切换指示信息用于指示客户端通知第二数据节点进行第一文件的恢复。
[0116]步骤203、客户端根据切换指示信息,向第二数据节点发送恢复指令。
[0117]具体的,该恢复指令包括第一文件的文件信息。
[0118]步骤204、第二数据节点根据第一文件的文件信息恢复所述第一文件。
[0119]步骤205、所述客户端通过所述第二数据节点访问所述第一文件。
[0120]综上所述,由于本发明实施例提供的文件访问的方法中,客户端记录第一文件的文件信息,并发送到第二数据节点,由第二数据节点根据该文件信息完成对第一文件的恢复,无需将第一文件的文件信息写在磁盘或者其他数据节点上,减少了对分布式系统中的磁盘空间或系统总体内存的占用,并且第二数据节点无需通过向磁盘或其他数据节点发送I/o请求进行通信,因此减小了系统负荷。
[0121]具体的,该第一文件的文件信息包括:锁信息及文件打开状态信息,该恢复指令包括:句柄恢复指令和锁信息恢复指令,该句柄恢复指令包括该文件打开状态信息,该锁信息恢复指令包括该第一文件的锁信息。
[0122]其中,步骤203包括:客户端根据切换指示信息,向第二数据节点分别发送句柄恢复指令和锁信息恢复指令。
[0123]具体的,步骤204包括:第二数据节点根据文件打开状态信息重建第一文件的文件句柄;第二数据节点根据第一文件的锁信息重建第一文件的锁信息。
[0124]需要说明的是,在步骤202之前,该方法还包括:
[0125]目录节点生成第一访问条目信息,该第一访问条目信息用于指示第一文件待修复。
[0126]在步骤203之后,该方法还包括:
[0127]第二数据节点向目录节点发送访问条目更新信息,该访问条目更新信息指示所述目录节点对第一访问条目信息进行更新;目录节点根据访问条目更新信息更新第一访问条目信息得到第二访问条目信息,该第二访问条目信息用于指示第一文件由第二数据节点恢复。
[0128]综上所述,由于本发明实施例提供的文件访问的方法中,客户端记录第一文件的文件信息,并发送到第二数据节点,由第二数据节点根据该文件信息完成对第一文件的恢复,无需将第一文件的文件信息写在磁盘或者其他数据节点上,减少了对分布式系统中的磁盘空间或系统总体内存的占用,并且第二数据节点无需通过向磁盘或其他数据节点发送I/o请求进行通信,因此减小了系统负荷。
[0129]图3是本发明实施例提供的另一种文件访问方法的方法流程图,该方法包括:
[0130]步骤301、客户端通过第一数据节点访问第一文件,获取第一文件的文件信息。
[0131]步骤302、客户端接收目录节点发送的切换指示信息。
[0132]其中,该切换指示信息是目录节点在检测到第一数据节点出现故障时生成的,该切换指示信息用于指示客户端通知第二数据节点进行第一文件的恢复。
[0133]步骤303、客户端根据切换指示信息,向第二数据节点发送恢复指令,以便于第二数据节点根据第一文件的文件信息进行第一文件的恢复。
[0134]需要说明的是,该恢复指令包括第一文件的文件信息。
[0135]综上所述,由于本发明实施例提供的文件访问的方法中,客户端记录第一文件的文件信息,并发送到第二数据节点,由第二数据节点根据该文件信息完成对第一文件的恢复,无需将第一文件的文件信息写在磁盘或者其他数据节点上,减少了对分布式系统中的磁盘空间或系统总体内存的占用,并且第二数据节点无需通过向磁盘或其他数据节点发送I/o请求进行通信,因此减小了系统负荷。
[0136]其中,该第一文件的文件信息包括:锁信息及文件打开状态信息,恢复指令包括:句柄恢复指令和锁信息恢复指令,句柄恢复指令包括文件打开状态信息,锁信息恢复指令包括第一文件的锁信息。
[0137]具体的,步骤303包括:
[0138]客户端根据切换指示信息,向第二数据节点分别发送句柄恢复指令和锁信息恢复指令,以便于第二数据节点根据文件打开状态信息重建第一文件的文件句柄,根据第一文件的锁信息重建第一文件的锁信息。
[0139]综上所述,由于本发明实施例提供的文件访问的方法中,客户端记录第一文件的文件信息,并发送到第二数据节点,由第二数据节点根据该文件信息完成对第一文件的恢复,无需将第一文件的文件信息写在磁盘或者其他数据节点上,减少了对分布式系统中的磁盘空间或系统总体内存的占用,并且第二数据节点无需通过向磁盘或其他数据节点发送I/o请求进行通信,因此减小了系统负荷。
[0140]图4是本发明实施例提供的又一种文件访问方法的方法流程图,该方法包括:
[0141]步骤401、第二数据节点接收客户端发送的恢复指令。
[0142]具体的,该恢复指令是客户端在接收目录节点发送的切换指示信息后生成的,该切换指示信息是目录节点在检测到第一数据节点出现故障时生成的,该切换指示信息用于指示客户端通知第二数据节点进行第一文件的恢复,该恢复指令包括第一文件的文件信肩、O
[0143]步骤402、第二数据节点根据第一文件的文件信息进行第一文件的恢复。
[0144]综上所述,由于本发明实施例提供的文件访问的方法中,客户端记录第一文件的文件信息,并发送到第二数据节点,由第二数据节点根据该文件信息完成对第一文件的恢复,无需将第一文件的文件信息写在磁盘或者其他数据节点上,减少了对分布式系统中的磁盘空间或系统总体内存的占用,并且第二数据节点无需通过向磁盘或其他数据节点发送I/o请求进行通信,因此减小了系统负荷。
[0145]需要说明的是,在步骤402之前,该方法还包括:
[0146]第二数据节点向目录节点发送访问条目更新信息,该访问条目更新信息指示目录节点对第一访问条目信息进行更新,以便于目录节点根据访问条目更新信息更新第一访问条目信息得到第二访问条目信息。
[0147]其中,该第一访问条目信息是在目录节点检测到第一数据节点出现故障时生成的,用于指示第一文件待修复,该第二访问条目信息用于指示第一文件由第二数据节点恢复。
[0148]具体的,该第一文件的文件信息包括:锁信息及文件打开状态信息,恢复指令包括:句柄恢复指令和锁信息恢复指令,句柄恢复指令包括文件打开状态信息,锁信息恢复指令包括第一文件的锁信息。
[0149]需要说明的是,步骤402,包括:
[0150]第二数据节点根据客户端发送的恢复指令中的句柄恢复指令重建第一文件的文件句柄;第二数据节点根据客户端发送的恢复指令中的锁信息恢复指令重建第一文件的锁信息。
[0151]综上所述,由于本发明实施例提供的文件访问的方法中,客户端记录第一文件的文件信息,并发送到第二数据节点,由第二数据节点根据该文件信息完成对第一文件的恢复,无需将第一文件的文件信息写在磁盘或者其他数据节点上,减少了对分布式系统中的磁盘空间或系统总体内存的占用,并且第二数据节点无需通过向磁盘或其他数据节点发送I/o请求进行通信,因此减小了系统负荷。
[0152]图5是本发明实施例提供的再一种文件访问方法的方法流程图,该方法包括:
[0153]步骤501、目录节点在客户端通过第一数据节点访问第一文件时,如果检测到第一数据节点出现故障,生成切换指示信息。
[0154]其中,该切换指示信息用于指示客户端通知第二数据节点进行第一文件的恢复。
[0155]步骤502、目录节点向客户端发送切换指示信息,以便于客户端根据切换指示信息向第二数据节点发送恢复指令。
[0156]具体的,该恢复指令包括第一文件的文件信息,该恢复指令用于指示第二数据节点根据第一文件的文件信息进行第一文件的恢复。
[0157]综上所述,由于本发明实施例提供的文件访问的方法中,客户端记录第一文件的文件信息,并发送到第二数据节点,由第二数据节点根据该文件信息完成对第一文件的恢复,无需将第一文件的文件信息写在磁盘或者其他数据节点上,减少了对分布式系统中的磁盘空间或系统总体内存的占用,并且第二数据节点无需通过向磁盘或其他数据节点发送I/o请求进行通信,因此减小了系统负荷。
[0158]具体的,在步骤501之后,该方法还包括:
[0159]目录节点生成第一访问条目信息,该第一访问条目信息用于指示第一文件待修复。
[0160]需要说明的是,在步骤502之后,该方法还包括:目录节点接收第二数据节点发送的访问条目更新信息,该访问条目更新信息指示目录节点对第一访问条目信息进行更新;目录节点根据访问条目更新信息更新第一访问条目信息得到第二访问条目信息,该第二访问条目信息用于指示第一文件由第二数据节点恢复。
[0161]综上所述,由于本发明实施例提供的文件访问的方法中,客户端记录第一文件的文件信息,并发送到第二数据节点,由第二数据节点根据该文件信息完成对第一文件的恢复,无需将第一文件的文件信息写在磁盘或者其他数据节点上,减少了对分布式系统中的磁盘空间或系统总体内存的占用,并且第二数据节点无需通过向磁盘或其他数据节点发送I/o请求进行通信,因此减小了系统负荷。
[0162]图6是本发明另一实施例提供的一种文件访问方法的方法流程图,用于如图1所示的通信网络,本发明实施例假设进行文件访问的客户端为客户端A,该方法包括:
[0163]步骤601、客户端A对第二文件进行访问。
[0164]需要说明的是,该客户端A可以通过分布式系统内的任一数据节点对该第二文件进行访问,该分布式系统可以包括一个目录节点和多个数据节点。本发明实施例假设客户端A在初始时刻通过第三数据节点访问第二文件,具体的,如图7所示,步骤601可以包括:
[0165]步骤6011、客户端A向第三数据节点发送访问请求。执行步骤6012。
[0166]其中,该访问请求用于指示该客户端A访问第二文件,该访问请求可以包括第二文件的标识。
[0167]步骤6012、第三数据节点向目录节点发送访问状态查询请求。执行步骤6013。
[0168]需要说明的是,该访问状态查询请求用于指示该目录节点查询第二文件是否被缓存。
[0169]步骤6013、目录节点根据该访问状态查询请求,检测该第二文件是否已经被缓存。若是,执行步骤6014。若否,执行步骤6019。
[0170]具体的,当客户端通过特定的数据节点访问任一文件时,该文件可以在该特定数据节点进行缓存。当该特定的数据节点访问并缓存该文件时,目录节点会生成该特定数据节点对应的访问条目信息,该特定数据节点对应的访问条目信息用于记录客户端访问的文件由该特定的数据节点缓存,即客户端、该特定的数据节点与被访问的文件的对应关系。目录节点可以通过检测各个数据节点对应的访问条目信息来确定该数据节点上是否缓存有该文件,因此,在本发明实施例中,目录节点可以根据第二文件的标识去检测各个数据节点对应的访问条目信息,当各个数据节点对应的访问条目信息中存在该第二文件的标识所对应的访问条目信息,则可以从该第二文件的标识所对应的访问条目信息中获取与第二文件存在对应关系的数据节点,相应地确定该数据节点上缓存有第二文件;当各个数据节点对应的访问条目信息中不存在该第二文件的标识所对应的访问条目信息,则确定该第二文件未被缓存。
[0171]步骤6014、当目录节点检测到该第二文件已经被第四数据节点缓存,生成访问状态查询响应。执行步骤6015。
[0172]需要说明的是,在该第四数据节点访问第二文件时,会对第二文件进行实时缓存,相应的,该目录节点会生成第三访问条目信息,该第三访问条目信息用于记录第二文件由第四数据节点缓存,即记录该第四数据节点与第二文件的对应关系,以便于目录节点根据该第三访问条目信息检测该第二文件是否被缓存,从而生成访问状态查询响应。特别的,第三访问条目信息还可以记录客户端、特定的数据节点与被访问的文件的对应关系,在本发明实施例中,即记录了客户端A、第四数据节点与第二文件的对应关系。示例的,该第三访问条目信息可以为:“file2-DataSerVer4:normal”,即第二文件-第四数据节点:正常,表示第二文件由该第四数据节点正常访问并缓存。如果访问结束,则第四数据节点中,相应的缓存被释放,目录节点会删除第三访问条目信息。
[0173]由于当前目录节点检测到第二文件被第四数据节点缓存,则生成访问状态查询响应,该访问状态查询响应用于指示客户端通过第四数据节点访问第二文件。
[0174]步骤6015、向第三数据节点发送状态查询响应。执行步骤6016。
[0175]步骤6016、第三数据节点根据状态查询响应生成特定错误码。执行步骤6017。
[0176]需要说明的是,该第三数据节点根据状态查询响应生成特定错误码,是为了该第四数据节点对该第二文件进行缓存后,指示客户端A通过第四数据节点进行第二文件的访问,这样一来,仅允许通过该第四数据节点对该第二文件进行访问,避免其他数据节点来访问该第二文件所引起的缓存过程,减少不同数据节点对同一文件的重复缓存,因此,减小了对系统内存的占用,降低了系统负荷。
[0177]步骤6017、第三数据节点向客户端A发送该特定错误码。执行步骤6018。
[0178]步骤6018、客户端A根据该特定错误码,通过第四数据节点访问该第二文件。
[0179]需要说明的是,客户端A在通过该第四数据节点进行第二文件访问时,第四数据节点可以在该目录节点上增加一个该第二文件对应的访问条目信息,该访问条目信息可以为:“file2-DataServer4_ClientA:normal”,即第二文件_第四数据节点_客户端A-正常,表示客户端A通过该第四数据节点对该第二文件进行正常访问并缓存。
[0180]步骤6019、客户端A通过第三数据节点访问第二文件。
[0181]当该目录节点检测第二文件没有被缓存,则表明当前没有数据节点访问并缓存过该第二文件,因此可以直接通过第三数据节点进行第二文件的访问和缓存。在通过该第三数据节点进行第二文件访问时,可以在该目录节点上增加一个第二文件对应的访问条目信息,该访问条目信息可以为:“file2-DataServer3_ClientA:normal ”,第二文件-第三数据节点-客户端A,表示客户端A通过该第三数据节点对该第二文件进行正常访问并缓存。
[0182]步骤602、客户端A通过第一数据节点访问第一文件。
[0183]需要说明的是,该客户端A可以通过分布式系统内的任一数据节点对该第一文件进行访问,本发明实施例假设客户端A通过第一数据节点进行第一文件的访问,当客户端A通过其他数据节点进行第一文件的访问过程,与第一数据节点进行第一文件的访问的过程相同,本发明实施例对此不做赘述。
[0184]具体的,客户端A可以向第一数据节点发送请求信息,该请求信息用于请求第一文件的信息,该第一文件的信息包括第一文件的内容和第一文件的文件信息,该第一文件的文件信息可以包括:锁信息及文件打开状态信息。该锁信息用于在该第一数据节点已缓存该第一文件的信息时,避免其他数据节点对该文件的信息进行缓存,防止多个数据节点同时访问并缓存同一文件造成系统文件错误。该文件打开状态信息用于标识文件的状态,示例的,文件的状态可以为只读和读写等状态。第一数据节点根据该请求信息,在分布式系统中获取第一文件的信息,并发送给客户端A。
[0185]步骤603、客户端A在通过第一数据节点访问第一文件时,获取该第一文件的文件信息。
[0186]客户端A在获取第一文件的信息后,可以从第一文件的信息中提取该第一文件的文件信息,并保存在客户端A。
[0187]步骤604、该目录节点在检测到该第一数据节点出现故障时,生成切换指示信息。
[0188]示例的,目录节点可以周期性地检测到该第一数据节点是否出现故障,具体的,该目录节点检测该第一数据节点出现故障的过程可以为:该目录节点每隔预设时间间隔向该第一数据节点发送检测信息,该预设时间间隔可以为5s (秒),第一数据节点在接收该检测信息后,向该目录节点发送检测响应信息,以指示该第一数据节点未出现故障。如果在预设的时间段内该目录节点未收到该第一数据节点发送的检测响应信息,则该目录节点判断该第一数据节点出现故障,该时间段可以为一个以上的预设时间间隔,如5s-10s。
[0189]需要说明的是,在客户端A通过该第一数据节点进行第一文件的访问时,该目录节点上可以增加一个该第一文件对应的访问条目信息,该访问条目信息用于指示客户端A通过第一数据节点访问第一文件,即记录了客户端A、第一数据节点和第一文件的对应关系,因此,在第一数据节点发生故障后,目录节点可以在未出现故障的数据节点中确定一个数据节点,并通知该客户端A通过该数据节点进行故障切换。本发明实施例假设该目录节点确定的数据节点为第二数据节点,则目录节点通过切换指示信息来指示所述客户端A通知第二数据节点进行所述第一文件的恢复,在第一文件恢复之后再进行第一文件的访问。
[0190]步骤605、该目录节点生成第一访问条目信息。
[0191]其中,该第一访问条目信息用于指示该客户端A通过第一数据节点访问的第一文件需要修复,即记录了客户端A、第一数据节点和第一文件的对应关系,该第一访问条目信息表示仅允许目录节点选定的数据节点对该第一文件进行恢复操作,防止其他数据节点来访问该第一文件导致的系统文件错误,本发明实施例假设该目录节点选定的数据节点为第二数据节点,示例的,该第一访问条目信息可以为Zfilel-DataServerl-ClientA:recovery”,第一文件-第一数据节点_客户端A:恢复,表示客户端A通过该第一数据节点对该第一文件进行访问并缓存出现了故障,该第一文件处于恢复状态。
[0192]步骤606、目录节点向该客户端A发送切换指示信息。
[0193]该切换指示信息可以包含第二数据节点的标识,以便于客户端A根据该第二数据节点的标识确定该第二数据节点。
[0194]步骤607、客户端A根据该切换指示信息,与第二数据节点进行第一文件的恢复。
[0195]实际应用中,客户端A根据该切换指示信息,向该第二数据节点发送恢复指令,该恢复指令可以包括:恢复指示信息、网络连接重建指令、句柄恢复指令和锁信息恢复指令,第二数据节点根据该恢复指令进行第一文件的恢复。如图8所示,客户端A与第二数据节点进行第一文件的恢复过程具体包括:
[0196]步骤6071、客户端A向第二数据节点发送恢复指示信息。
[0197]该恢复指示信息触发第二数据节点进行第一文件的恢复。
[0198]步骤6072、客户端A向第二数据节点发送网络连接重建指令。
[0199]该网络连接重建指令指示第二数据节点进行网络连接的重建。
[0200]步骤6073、第二数据节点向客户端A发送网络连接重建响应。
[0201]第二数据节点根据客户端A发送的网络连接重建指令,对网络连接进行重建,生成网络连接重建响应。当客户端A接收到该网络连接重建响应时,客户端A和第二数据节点的网络连接重建成功,该网络连接用于传输恢复指令中所携带的数据,如句柄恢复指令和锁信息恢复指令。
[0202]步骤6074、客户端A向第二数据节点发送句柄恢复指令。
[0203]该句柄恢复指令指示第二数据节点进行第一文件句柄的恢复,该句柄恢复指令是通过步骤6073建立的网络连接发送的,该句柄恢复指令包括该文件打开状态信息。
[0204]步骤6076、第二数据节点向客户端A发送句柄恢复响应。
[0205]第二数据节点根据客户端A发送的句柄恢复指令,对该第一文件的句柄进行恢复,需要说明的是,句柄(handle)是一种特殊的智能指针,用来标识应用程序中的对象的不同的内存地址,应用程序能够通过句柄访问相应的对象的信息,则通过第一文件的句柄可以访问到第一文件的相应信息。第二数据节点需要对第一文件的句柄进行恢复,才能实现在第一数据节点出现故障前第一文件的相应的信息的访问,因此第二数据节点根据句柄恢复指令中的文件打开状态信息可以将第一文件的句柄恢复至第一数据节点出现故障前的状态,实现第一文件的句柄的恢复,相应地生成句柄恢复响应,并通过步骤6073建立的网络连接发送至客户端A。
[0206]步骤6076、客户端A向第二数据节点发送锁信息恢复指令。
[0207]该锁信息恢复指令指示第二数据节点进行第一文件锁信息的恢复,该锁信息恢复指令是通过步骤6073建立的网络连接发送的,该锁信息恢复指令包括该第一文件的锁信肩、O
[0208]步骤6077、第二数据节点向客户端A发送锁信息恢复响应。
[0209]第二数据节点根据锁信息恢复指令中的第一文件的锁信息,对该第一文件的锁信息进行恢复,将第一文件的锁信息恢复至第一数据节点出现故障前的状态,生成锁信息恢复响应并通过步骤6073建立的网络连接发送至客户端A。
[0210]需要说明的是,在步骤6072之前,第二数据节点还可以向该目录节点发送访问条目更新信息,用于指示目录节点跟新第一访问条目信息,该目录节点根据该访问条目更新信息,更新第一访问条目信息得到第二访问条目信息。
[0211]该第二访问条目信息记录了客户端A、第二数据节点和第一文件的对应关系,主要用于指示该第一文件由该第二数据节点恢复。具体的,第一访问条目信息“filel-DataServerl-ClientA:recovery”更新后变为第二访问条目信息“filel-DataServer2_ClientA:normal”,即,第一文件-第一数据节点-客户端A:恢复,变为,第一文件-第二数据节点-客户端A:正常,表示客户端A通过第一数据节点对第一文件访问并缓存出现故障并修复后,变为客户端A通过第二数据节点对第一文件正常访问并缓存。在更新操作成功后即可进行后续的恢复操作。
[0212]特别的,更新条目信息是为了在该第一数据节点出现故障时,仅允许目录节点指定的数据节点,即第二数据节点对该第一文件进行恢复操作,防止此时其他数据节点来访问该第一文件,避免系统文件错误。
[0213]综上所述,由于本发明实施例提供的文件访问的方法中,客户端记录第一文件的文件信息,并发送到第二数据节点,由第二数据节点根据该文件信息完成对第一文件的恢复,无需将第一文件的文件信息写在磁盘或者其他数据节点上,减少了对分布式系统中的磁盘空间或系统总体内存的占用,并且第二数据节点无需通过向磁盘或其他数据节点发送I/o请求进行通信,因此减小了系统负荷。
[0214]如图9所示,本发明实施例提供一种文件访问系统90,该文件访问系统90可以参考图1中所示的通信网络,包括:
[0215]客户端901,目录节点902和第二数据节点903。
[0216]客户端901,用于通过第一数据节点访问第一文件,获取第一文件的文件信息。
[0217]目录节点902,用于检测到第一数据节点出现故障,向客户端发送切换指示信息,该切换指示信息用于指示客户端通知第二数据节点进行第一文件的恢复。
[0218]客户端901还用于根据切换指示信息,向第二数据节点发送恢复指令,该恢复指令包括第一文件的文件信息。
[0219]第二数据节点903,用于根据第一文件的文件信息进行第一文件的恢复。
[0220]客户端901,还用于通过所述第二数据节点访问所述第一文件。
[0221]综上所述,由于本发明实施例提供的文件访问的系统中,客户端记录第一文件的文件信息,并发送到第二数据节点,由第二数据节点根据该文件信息完成对第一文件的恢复,无需将第一文件的文件信息写在磁盘或者其他数据节点上,减少了对分布式系统中的磁盘空间或系统总体内存的占用,并且第二数据节点无需通过向磁盘或其他数据节点发送I/o请求进行通信,因此减小了系统负荷。
[0222]具体的,该第一文件的文件信息包括:锁信息及文件打开状态信息,该恢复指令包括:句柄恢复指令和锁信息恢复指令,句柄恢复指令包括文件打开状态信息,锁信息恢复指令包括第一文件的锁信息。
[0223]需要说明的是,客户端901具体用于根据切换指示信息,向第二数据节点分别发送句柄恢复指令和锁信息恢复指令。
[0224]其中,第二数据节点903具体用于:
[0225]根据文件打开状态信息重建第一文件的文件句柄;根据第一文件的锁信息重建第一文件的锁信息。
[0226]示例的,目录节点902还用于生成第一访问条目信息,该第一访问条目信息用于指示第一文件待修复。
[0227]需要说明的是,第二数据节点903还用于向目录节点发送访问条目更新信息,访问条目更新信息指示所述目录节点对第一访问条目信息进行更新。
[0228]目录节点902还用于根据访问条目更新信息更新第一访问条目信息得到第二访问条目信息,第二访问条目信息用于指示第一文件由第二数据节点恢复。
[0229]综上所述,由于本发明实施例提供的文件访问的系统中,客户端记录第一文件的文件信息,并发送到第二数据节点,由第二数据节点根据该文件信息完成对第一文件的恢复,无需将第一文件的文件信息写在磁盘或者其他数据节点上,减少了对分布式系统中的磁盘空间或系统总体内存的占用,并且第二数据节点无需通过向磁盘或其他数据节点发送I/O请求进行通信,因此减小了系统负荷。
[0230]本发明实施例提供一种文件访问装置100,如图10所示,该文件访问装置可以为客户端,该文件访问装置包括:获取单元1001,接收单元1002和发送单元1003。
[0231]获取单元1001,用于通过第一数据节点访问第一文件,获取第一文件的文件信息。
[0232]接收单元1002,用于接收目录节点发送的切换指示信息,该切换指示信息是目录节点在检测到第一数据节点出现故障时生成的,该切换指示信息用于指示客户端通知第二数据节点进行第一文件的恢复。
[0233]发送单元1003,用于根据切换指示信息,向第二数据节点发送恢复指令,恢复指令包括第一文件的文件信息,以便于第二数据节点根据第一文件的文件信息进行第一文件的恢复。
[0234]综上所述,由于本发明实施例提供的文件访问的装置中,客户端记录第一文件的文件信息,并发送到第二数据节点,由第二数据节点根据该文件信息完成对第一文件的恢复,无需将第一文件的文件信息写在磁盘或者其他数据节点上,减少了对分布式系统中的磁盘空间或系统总体内存的占用,并且第二数据节点无需通过向磁盘或其他数据节点发送I/o请求进行通信,因此减小了系统负荷。
[0235]需要说明的是,该第一文件的文件信息包括:锁信息及文件打开状态信息,该恢复指令包括:句柄恢复指令和锁信息恢复指令,句柄恢复指令包括文件打开状态信息,锁信息恢复指令包括第一文件的锁信息。
[0236]其中,如图11所示,发送单元1003包括:
[0237]发送模块10031,用于根据切换指示信息,向第二数据节点分别发送句柄恢复指令和锁信息恢复指令,以便于第二数据节点根据文件打开状态信息重建第一文件的文件句柄,根据第一文件的锁信息重建第一文件的锁信息。
[0238]综上所述,由于本发明实施例提供的文件访问的装置中,客户端记录第一文件的文件信息,并发送到第二数据节点,由第二数据节点根据该文件信息完成对第一文件的恢复,无需将第一文件的文件信息写在磁盘或者其他数据节点上,减少了对分布式系统中的磁盘空间或系统总体内存的占用,并且第二数据节点无需通过向磁盘或其他数据节点发送I/O请求进行通信,因此减小了系统负荷。
[0239]本发明实施例提供另一种文件访问装置120,如图12所示,该文件访问装置可以为第二数据节点,该文件访问装置包括:接收单元1201和恢复单元1202。
[0240]接收单元1201,用于接收客户端发送的恢复指令,该恢复指令是客户端在接收目录节点发送的切换指示信息后生成的,该切换指示信息是目录节点在检测到第一数据节点出现故障时生成的,该切换指示信息用于指示客户端通知第二数据节点进行第一文件的恢复,该恢复指令包括第一文件的文件信息。
[0241]恢复单元1202,用于根据第一文件的文件信息进行第一文件的恢复。
[0242]综上所述,由于本发明实施例提供的文件访问的装置中,客户端记录第一文件的文件信息,并发送到第二数据节点,由第二数据节点根据该文件信息完成对第一文件的恢复,无需将第一文件的文件信息写在磁盘或者其他数据节点上,减少了对分布式系统中的磁盘空间或系统总体内存的占用,并且第二数据节点无需通过向磁盘或其他数据节点发送I/o请求进行通信,因此减小了系统负荷。
[0243]需要说明的是,该第一文件的文件信息包括:锁信息及文件打开状态信息,该恢复指令包括:句柄恢复指令和锁信息恢复指令,该句柄恢复指令包括文件打开状态信息,该锁信息恢复指令包括第一文件的锁信息。
[0244]具体的,如图13所示,恢复单元1202包括:
[0245]第一重建模块12021,用于根据客户端发送的恢复指令中的句柄恢复指令重建第一文件的文件句柄。
[0246]第二重建模块12022,用于根据客户端发送的恢复指令中的锁信息恢复指令重建第一文件的锁信息。
[0247]综上所述,由于本发明实施例提供的文件访问的装置中,客户端记录第一文件的文件信息,并发送到第二数据节点,由第二数据节点根据该文件信息完成对第一文件的恢复,无需将第一文件的文件信息写在磁盘或者其他数据节点上,减少了对分布式系统中的磁盘空间或系统总体内存的占用,并且第二数据节点无需通过向磁盘或其他数据节点发送I/O请求进行通信,因此减小了系统负荷。
[0248]本发明实施例提供又一种文件访问装置120,如图14所示,该文件访问装置可以为第二数据节点,该文件访问装置包括:接收单元1201,恢复单元1202和发送单元1203。
[0249]接收单元1201,用于接收客户端发送的恢复指令,该恢复指令是客户端在接收目录节点发送的切换指示信息后生成的,该切换指示信息是目录节点在检测到第一数据节点出现故障时生成的,该切换指示信息用于指示客户端通知第二数据节点进行第一文件的恢复,该恢复指令包括第一文件的文件信息。
[0250]恢复单元1202,用于根据第一文件的文件信息进行第一文件的恢复。
[0251]发送单元1203,用于向目录节点发送访问条目更新信息,访问条目更新信息指示目录节点对第一访问条目信息进行更新,以便于目录节点根据访问条目更新信息更新第一访问条目信息得到第二访问条目信息。
[0252]其中,该第一访问条目信息是在目录节点检测到第一数据节点出现故障时生成的,用于指示第一文件待修复,该第二访问条目信息用于指示第一文件由第二数据节点恢复。
[0253]需要说明的是,该第一文件的文件信息包括:锁信息及文件打开状态信息,该恢复指令包括:句柄恢复指令和锁信息恢复指令,该句柄恢复指令包括文件打开状态信息,该锁信息恢复指令包括第一文件的锁信息。
[0254]综上所述,由于本发明实施例提供的文件访问的装置中,客户端记录第一文件的文件信息,并发送到第二数据节点,由第二数据节点根据该文件信息完成对第一文件的恢复,无需将第一文件的文件信息写在磁盘或者其他数据节点上,减少了对分布式系统中的磁盘空间或系统总体内存的占用,并且第二数据节点无需通过向磁盘或其他数据节点发送I/O请求进行通信,因此减小了系统负荷。
[0255]本发明实施例提供再一种文件访问装置150,如图15所示,该文件访问装置可以为目录节点,该文件访问装置包括:第一生成单元1501和发送单元1502。
[0256]第一生成单元1501,用于在客户端通过第一数据节点访问第一文件时,如果检测到第一数据节点出现故障,生成切换指示信息,该切换指示信息用于指示客户端通知第二数据节点进行第一文件的恢复。
[0257]发送单元1502,用于向客户端发送切换指示信息,以便于客户端根据切换指示信息向第二数据节点发送恢复指令,该恢复指令包括第一文件的文件信息,该恢复指令用于指示第二数据节点根据第一文件的文件信息进行第一文件的恢复。
[0258]综上所述,由于本发明实施例提供的文件访问的装置中,客户端记录第一文件的文件信息,并发送到第二数据节点,由第二数据节点根据该文件信息完成对第一文件的恢复,无需将第一文件的文件信息写在磁盘或者其他数据节点上,减少了对分布式系统中的磁盘空间或系统总体内存的占用,并且第二数据节点无需通过向磁盘或其他数据节点发送I/O请求进行通信,因此减小了系统负荷。
[0259]本发明另一实施例提供一种文件访问装置150,如图16所示,该文件访问装置可以为目录节点,该文件访问装置包括:第一生成单元1501,发送单元1502,第二生成单元1503,接收单元1504和更新单元1505。
[0260]第一生成单元1501,用于在客户端通过第一数据节点访问第一文件时,如果检测到第一数据节点出现故障,生成切换指示信息,该切换指示信息用于指示客户端通知第二数据节点进行第一文件的恢复。
[0261]发送单元1502,用于向客户端发送切换指示信息,以便于客户端根据切换指示信息向第二数据节点发送恢复指令,该恢复指令包括第一文件的文件信息,该恢复指令用于指示第二数据节点根据第一文件的文件信息进行第一文件的恢复。
[0262]第二生成单元1503,用于生成第一访问条目信息,该第一访问条目信息用于指示第一文件待修复。
[0263]接收单元1504,用于接收第二数据节点发送的访问条目更新信息,该访问条目更新信息指示目录节点对第一访问条目信息进行更新。
[0264]更新单元1505,用于根据访问条目更新信息更新第一访问条目信息得到第二访问条目信息,该第二访问条目信息用于指示第一文件由第二数据节点恢复。
[0265]综上所述,由于本发明实施例提供的文件访问的装置中,客户端记录第一文件的文件信息,并发送到第二数据节点,由第二数据节点根据该文件信息完成对第一文件的恢复,无需将第一文件的文件信息写在磁盘或者其他数据节点上,减少了对分布式系统中的磁盘空间或系统总体内存的占用,并且第二数据节点无需通过向磁盘或其他数据节点发送I/O请求进行通信,因此减小了系统负荷。
[0266]本发明另一实施例提供另一种文件访问装置170,如图17所示,该文件访问装置可以为客户端,该文件访问装置包括:处理器1701,接收机1702和发送机1703。
[0267]处理器1701,用于通过第一数据节点访问第一文件,获取第一文件的文件信息。
[0268]接收机1702,用于接收目录节点发送的切换指示信息,该切换指示信息是目录节点在检测到第一数据节点出现故障时生成的,该切换指示信息用于指示客户端通知第二数据节点进行第一文件的恢复。
[0269]发送机1703,用于根据切换指示信息,向第二数据节点发送恢复指令,恢复指令包括第一文件的文件信息,以便于第二数据节点根据第一文件的文件信息进行第一文件的恢复。
[0270]综上所述,由于本发明实施例提供的文件访问装置中,客户端记录第一文件的文件信息,并由发送机发送到第二数据节点,由处理器根据该文件信息完成对该第一文件的恢复,无需将该第一文件的文件信息写在磁盘或者其他数据节点上,减少了对分布式系统中的磁盘空间或系统总体内存的占用,并且第二数据节点无需通过向磁盘或其他数据节点发送I/O请求进行通信,因此减小了系统负荷。
[0271]需要说明的是,该第一文件的文件信息包括:锁信息及文件打开状态信息,该恢复指令包括:句柄恢复指令和锁信息恢复指令,该句柄恢复指令包括文件打开状态信息,该锁信息恢复指令包括第一文件的锁信息。
[0272]该发送机1703还用于根据切换指示信息,向第二数据节点分别发送句柄恢复指令和锁信息恢复指令,以便于第二数据节点根据文件打开状态信息重建第一文件的文件句柄,根据第一文件的锁信息重建第一文件的锁信息。
[0273]综上所述,由于本发明实施例提供的文件访问装置中,客户端记录第一文件的文件信息,并由发送机发送到第二数据节点,由处理器根据该文件信息完成对该第一文件的恢复,无需将该第一文件的文件信息写在磁盘或者其他数据节点上,减少了对分布式系统中的磁盘空间或系统总体内存的占用,并且第二数据节点无需通过向磁盘或其他数据节点发送I/o请求进行通信,因此减小了系统负荷。
[0274]本发明另一实施例提供又一种文件访问装置180,如图18所示,该文件访问装置可以为第二数据节点,该文件访问装置包括:接收机1801和处理器1802。
[0275]接收机1801,用于接收客户端发送的恢复指令,该恢复指令是客户端在接收目录节点发送的切换指示信息后生成的,该切换指示信息是目录节点在检测到第一数据节点出现故障时生成的,该切换指示信息用于指示客户端通知第二数据节点进行第一文件的恢复,该恢复指令包括第一文件的文件信息。
[0276]处理器1802,用于根据第一文件的文件信息进行第一文件的恢复。
[0277]综上所述,由于本发明实施例提供的文件访问装置中,客户端记录第一文件的文件信息,并由发送机发送到第二数据节点,由处理器根据该文件信息完成对该第一文件的恢复,无需将该第一文件的文件信息写在磁盘或者其他数据节点上,减少了对分布式系统中的磁盘空间或系统总体内存的占用,并且第二数据节点无需通过向磁盘或其他数据节点发送I/o请求进行通信,因此减小了系统负荷。
[0278]需要说明的是,该第一文件的文件信息包括:锁信息及文件打开状态信息,该恢复指令包括:句柄恢复指令和锁信息恢复指令,该句柄恢复指令包括文件打开状态信息,该锁信息恢复指令包括第一文件的锁信息。
[0279]该处理器1802还用于根据客户端发送的恢复指令中的句柄恢复指令重建第一文件的文件句柄。
[0280]该处理器1802用于根据客户端发送的恢复指令中的锁信息恢复指令重建第一文件的锁信息。
[0281]综上所述,由于本发明实施例提供的文件访问装置中,客户端记录第一文件的文件信息,并由发送机发送到第二数据节点,由处理器根据该文件信息完成对该第一文件的恢复,无需将该第一文件的文件信息写在磁盘或者其他数据节点上,减少了对分布式系统中的磁盘空间或系统总体内存的占用,并且第二数据节点无需通过向磁盘或其他数据节点发送I/o请求进行通信,因此减小了系统负荷。
[0282]本发明另一实施例提供再一种文件访问装置180,如图19所示,该文件访问装置可以为第二数据节点,该文件访问装置包括:接收机1801,处理器1802和发送机1803。
[0283]接收机1801,用于接收客户端发送的恢复指令,该恢复指令是客户端在接收目录节点发送的切换指示信息后生成的,该切换指示信息是目录节点在检测到第一数据节点出现故障时生成的,该切换指示信息用于指示客户端通知第二数据节点进行第一文件的恢复,该恢复指令包括第一文件的文件信息。
[0284]处理器1802,用于根据第一文件的文件信息进行第一文件的恢复。
[0285]发送机1803,用于向目录节点发送访问条目更新信息,访问条目更新信息指示目录节点对第一访问条目信息进行更新,以便于目录节点根据访问条目更新信息更新第一访问条目信息得到第二访问条目信息。
[0286]其中,该第一访问条目信息是在目录节点检测到第一数据节点出现故障时生成的,用于指示第一文件待修复,该第二访问条目信息用于指示第一文件由第二数据节点恢复。
[0287]需要说明的是,该第一文件的文件信息包括:锁信息及文件打开状态信息,该恢复指令包括:句柄恢复指令和锁信息恢复指令,该句柄恢复指令包括文件打开状态信息,该锁信息恢复指令包括第一文件的锁信息。
[0288]综上所述,由于本发明实施例提供的文件访问装置中,客户端记录第一文件的文件信息,并由发送机发送到第二数据节点,由处理器根据该文件信息完成对该第一文件的恢复,无需将该第一文件的文件信息写在磁盘或者其他数据节点上,减少了对分布式系统中的磁盘空间或系统总体内存的占用,并且第二数据节点无需通过向磁盘或其他数据节点发送I/O请求进行通信,因此减小了系统负荷。
[0289]本发明又一实施例提供一种文件访问装置200,如图20所示,该文件访问装置可以为目录节点,该文件访问装置包括:处理器2001和发送机2002。
[0290]处理器2001,用于在客户端通过第一数据节点访问第一文件时,如果检测到第一数据节点出现故障,生成切换指示信息,该切换指示信息用于指示客户端通知第二数据节点进行第一文件的恢复。
[0291]发送机2002,用于向客户端发送切换指示信息,以便于客户端根据切换指示信息向第二数据节点发送恢复指令,该恢复指令包括第一文件的文件信息,该恢复指令用于指示第二数据节点根据第一文件的文件信息进行第一文件的恢复。
[0292]综上所述,由于本发明实施例提供的文件访问装置中,客户端记录第一文件的文件信息,并由发送机发送到第二数据节点,由处理器根据该文件信息完成对该第一文件的恢复,无需将该第一文件的文件信息写在磁盘或者其他数据节点上,减少了对分布式系统中的磁盘空间或系统总体内存的占用,并且第二数据节点无需通过向磁盘或其他数据节点发送I/O请求进行通信,因此减小了系统负荷。
[0293]本发明又一实施例提供另一种文件访问装置200,如图21所示,该文件访问装置可以为目录节点,该文件访问装置包括:处理器2001,发送机2002和接收机2003。
[0294]处理器2001,用于在客户端通过第一数据节点访问第一文件时,如果检测到第一数据节点出现故障,生成切换指示信息,该切换指示信息用于指示客户端通知第二数据节点进行第一文件的恢复。
[0295]发送机2002,用于向客户端发送切换指示信息,以便于客户端根据切换指示信息向第二数据节点发送恢复指令,该恢复指令包括第一文件的文件信息,该恢复指令用于指示第二数据节点根据第一文件的文件信息进行第一文件的恢复。
[0296]该处理器2001还用于生成第一访问条目信息,该第一访问条目信息用于指示第一文件待修复。
[0297]接收机2003,用于接收第二数据节点发送的访问条目更新信息,该访问条目更新信息指示目录节点对第一访问条目信息进行更新。
[0298]该处理器2001还用于根据访问条目更新信息更新第一访问条目信息得到第二访问条目信息,该第二访问条目信息用于指示第一文件由第二数据节点恢复。
[0299]综上所述,由于本发明实施例提供的文件访问装置中,客户端记录第一文件的文件信息,并由发送机发送到第二数据节点,由处理器根据该文件信息完成对该第一文件的恢复,无需将该第一文件的文件信息写在磁盘或者其他数据节点上,减少了对分布式系统中的磁盘空间或系统总体内存的占用,并且第二数据节点无需通过向磁盘或其他数据节点发送I/O请求进行通信,因此减小了系统负荷。
[0300]本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0301 ] 以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种文件访问方法,其特征在于,包括: 客户端通过第一数据节点访问第一文件,获取所述第一文件的文件信息; 目录节点检测到所述第一数据节点出现故障,向所述客户端发送切换指示信息,所述切换指示信息用于指示所述客户端通知第二数据节点进行所述第一文件的恢复; 所述客户端根据所述切换指示信息,向所述第二数据节点发送恢复指令,所述恢复指令包括所述第一文件的文件信息; 所述第二数据节点根据所述第一文件的文件信息恢复所述第一文件; 所述客户端通过所述第二数据节点访问所述第一文件。
2.根据权利要求1所述的方法,其特征在于,所述第一文件的文件信息包括:锁信息及文件打开状态信息,所述恢复指令包括:句柄恢复指令和锁信息恢复指令,所述句柄恢复指令包括所述文件打开状态信息,所述锁信息恢复指令包括所述第一文件的锁信息; 所述客户端根据所述切换指示信息,向所述第二数据节点发送恢复指令,包括: 所述客户端根据所述切换指示信息,向所述第二数据节点分别发送所述句柄恢复指令和所述锁信息恢复指令; 所述第二数据节点根据所述第一文件的文件信息进行所述第一文件的恢复,包括: 所述第二数据节点根据所述文件打开状态信息重建所述第一文件的文件句柄; 所述第二数据节点根据所述第一文件的锁信息重建所述第一文件的锁信息。
3.根据权利要求1或2所述的方法,其特征在于,在所述目录节点检测到所述第一数据节点出现故障,向所述客户端发送切换指示信息之前,所述方法还包括: 所述目录节点生成第一访问条目信息,所述第一访问条目信息用于指示所述第一文件待修复; 在所述客户端根据所述切换指示信息,向所述第二数据节点发送恢复指令之后,所述方法还包括: 所述第二数据节点向所述目录节点发送访问条目更新信息,所述访问条目更新信息指示对所述第一访问条目信息进行更新; 所述目录节点根据所述访问条目更新信息更新所述第一访问条目信息得到第二访问条目信息,所述第二访问条目信息用于指示所述第一文件由所述第二数据节点恢复。
4.一种文件访问方法,其特征在于,包括: 客户端通过第一数据节点访问第一文件,获取所述第一文件的文件信息; 所述客户端接收目录节点发送的切换指示信息,所述切换指示信息是所述目录节点在检测到所述第一数据节点出现故障时生成的,所述切换指示信息用于指示所述客户端通知第二数据节点进行所述第一文件的恢复; 所述客户端根据所述切换指示信息,向所述第二数据节点发送恢复指令,所述恢复指令包括所述第一文件的文件信息,以便于所述第二数据节点根据所述第一文件的文件信息进行所述第一文件的恢复。
5.根据权利要求4所述的方法,其特征在于,所述第一文件的文件信息包括:锁信息及文件打开状态信息,所述恢复指令包括:句柄恢复指令和锁信息恢复指令,所述句柄恢复指令包括所述文件打开状态信息,所述锁信息恢复指令包括所述第一文件的锁信息; 所述客户端根据所述切换指示信息,向所述第二数据节点发送恢复指令,包括: 所述客户端根据所述切换指示信息,向所述第二数据节点分别发送所述句柄恢复指令和所述锁信息恢复指令,以便于所述第二数据节点根据所述文件打开状态信息重建所述第一文件的文件句柄,根据所述第一文件的锁信息重建所述第一文件的锁信息。
6.一种文件访问方法,其特征在于,包括: 第二数据节点接收客户端发送的恢复指令,所述恢复指令是所述客户端在接收目录节点发送的切换指示信息后生成的,所述切换指示信息是所述目录节点在检测到所述第一数据节点出现故障时生成的,所述切换指示信息用于指示所述客户端通知第二数据节点进行所述第一文件的恢复,所述恢复指令包括所述第一文件的文件信息; 所述第二数据节点根据所述第一文件的文件信息进行所述第一文件的恢复。
7.根据权利要求6所述的方法,其特征在于,在所述第二数据节点根据所述第一文件的文件信息进行所述第一文件的恢复之前,所述方法还包括: 所述第二数据节点向所述目录节点发送访问条目更新信息,所述访问条目更新信息指示所述目录节点对第一访问条目信息进行更新,以便于所述目录节点根据所述访问条目更新信息更新所述第一访问条目信息得到第二访问条目信息; 其中,所述第一访问条目信息是在所述目录节点检测到所述第一数据节点出现故障时生成的,用于指示所述第一文件待修复,所述第二访问条目信息用于指示所述第一文件由所述第二数据节点恢复。
8.根据权利要求6或7所述的方法,其特征在于,所述第一文件的文件信息包括:锁信息及文件打开状态信息,所述恢复指令包括:句柄恢复指令和锁信息恢复指令,所述句柄恢复指令包括所述文件打开状态信息,所述锁信息恢复指令包括所述第一文件的锁信息; 所述第二数据节点根据所述第一文件的文件信息进行所述第一文件的恢复,包括: 所述第二数据节点根据所述客户端发送的恢复指令中的句柄恢复指令重建所述第一文件的文件句柄; 所述第二数据节点根据所述客户端发送的恢复指令中的锁信息恢复指令重建所述第一文件的锁信息。
9.一种文件访问方法,其特征在于,包括: 目录节点在客户端通过第一数据节点访问第一文件时,如果检测到所述第一数据节点出现故障,生成切换指示信息,所述切换指示信息用于指示所述客户端通知第二数据节点进行所述第一文件的恢复; 所述目录节点向客户端发送所述切换指示信息,以便于所述客户端根据所述切换指示信息向所述第二数据节点发送恢复指令,所述恢复指令包括所述第一文件的文件信息,所述恢复指令用于指示所述第二数据节点根据所述第一文件的文件信息进行所述第一文件的恢复。
10.根据权利要求9所述的方法,其特征在于,在所述目录节点生成切换指示信息之后,所述方法还包括: 所述目录节点生成第一访问条目信息,所述第一访问条目信息用于指示所述第一文件待修复; 在所述目录节点向客户端发送所述切换指示信息之后,所述方法还包括: 所述目录节点接收所述第二数据节点发送的访问条目更新信息,所述访问条目更新信息指示所述目录节点对所述第一访问条目信息进行更新; 所述目录节点根据所述访问条目更新信息更新所述第一访问条目信息得到第二访问条目信息,所述第二访问条目信息用于指示所述第一文件由所述第二数据节点恢复。
11.一种文件访问系统,其特征在于,包括: 客户端,目录节点和第二数据节点, 所述客户端,用于通过第一数据节点访问第一文件,获取所述第一文件的文件信息;所述目录节点,用于检测到所述第一数据节点出现故障,向所述客户端发送切换指示信息,所述切换指示信息用于指示所述客户端通知第二数据节点进行所述第一文件的恢复; 所述客户端还用于根据所述切换指示信息,向所述第二数据节点发送恢复指令,所述恢复指令包括所述第一文件的文件信息; 所述第二数据节点,用于根据所述第一文件的文件信息进行所述第一文件的恢复; 所述客户端,还用于通过所述第二数据节点访问所述第一文件。
12.根据权利要求11所述的系统,其特征在于,所述第一文件的文件信息包括:锁信息及文件打开状态信息,所述恢复指令包括:句柄恢复指令和锁信息恢复指令,所述句柄恢复指令包括所述文件打开状态信息,所述锁信息恢复指令包括所述第一文件的锁信息; 所述客户端具体用于根据所述切换指示信息,向所述第二数据节点分别发送所述句柄恢复指令和所述锁信息恢复指令; 所述第二数据节点具体用于: 根据所述文件打开状态信息重建所述第一文件的文件句柄; 根据所述第一文件的锁信息重建所述第一文件的锁信息。
13.根据权利要求11或12所述的系统,其特征在于, 所述目录节点还用于生成第一访问条目信息,所述第一访问条目信息用于指示所述第一文件待修复; 所述第二数据节点还用于向所述目录节点发送访问条目更新信息,所述访问条目更新信息指示对所述第一访问条目信息进行更新; 所述目录节点还用于根据所述访问条目更新信息更新所述第一访问条目信息得到第二访问条目信息,所述第二访问条目信息用于指示所述第一文件由所述第二数据节点恢复。
14.一种文件访问装置,其特征在于,包括: 获取单元,用于通过第一数据节点访问第一文件,获取所述第一文件的文件信息; 接收单元,用于接收目录节点发送的切换指示信息,所述切换指示信息是所述目录节点在检测到所述第一数据节点出现故障时生成的,所述切换指示信息用于指示所述客户端通知第二数据节点进行所述第一文件的恢复; 发送单元,用于根据所述切换指示信息,向所述第二数据节点发送恢复指令,所述恢复指令包括所述第一文件的文件信息,以便于所述第二数据节点根据所述第一文件的文件信息进行所述第一文件的恢复。
15.根据权利要求14所述的装置,其特征在于,所述第一文件的文件信息包括:锁信息及文件打开状态信息,所述恢复指令包括:句柄恢复指令和锁信息恢复指令,所述句柄恢复指令包括所述文件打开状态信息,所述锁信息恢复指令包括所述第一文件的锁信息; 所述发送单元包括: 发送模块,用于根据所述切换指示信息,向所述第二数据节点分别发送所述句柄恢复指令和所述锁信息恢复指令,以便于所述第二数据节点根据所述文件打开状态信息重建所述第一文件的文件句柄,根据所述第一文件的锁信息重建所述第一文件的锁信息。
16.一种文件访问装置,其特征在于,包括: 接收单元,用于接收客户端发送的恢复指令,所述恢复指令是所述客户端在接收目录节点发送的切换指示信息后生成的,所述切换指示信息是所述目录节点在检测到所述第一数据节点出现故障时生成的,所述切换指示信息用于指示所述客户端通知第二数据节点进行所述第一文件的恢复,所述恢复指令包括所述第一文件的文件信息; 恢复单元,用于根据所述第一文件的文件信息进行所述第一文件的恢复。
17.根据权利要求16所述的装置,其特征在于,所述装置还包括: 发送单元,用于向所述目录节点发送访问条目更新信息,所述访问条目更新信息指示所述目录节点对第一访问条目信息进行更新,以便于所述目录节点根据所述访问条目更新信息更新所述第一访问条目信息得到第二访问条目信息; 其中,所述第一访问条目信息是在所述目录节点检测到所述第一数据节点出现故障时生成的,用于指示所述第一文件待修复,所述第二访问条目信息用于指示所述第一文件由所述第二数据节点恢复。
18.根据权利要求16或17所述的装置,其特征在于,所述第一文件的文件信息包括:锁信息及文件打开状态信息,所述恢复指令包括:句柄恢复指令和锁信息恢复指令,所述句柄恢复指令包括所述文件打开状态信息,所述锁信息恢复指令包括所述第一文件的锁信息; 所述恢复单元包括: 第一重建模块,用于根据所述客户端发送的恢复指令中的句柄恢复指令重建所述第一文件的文件句柄; 第二重建模块,用于根据所述客户端发送的恢复指令中的锁信息恢复指令重建所述第一文件的锁信息。
19.一种文件访问装置,其特征在于,包括: 第一生成单元,用于在客户端通过第一数据节点访问第一文件时,如果检测到所述第一数据节点出现故障,生成切换指示信息,所述切换指示信息用于指示所述客户端通知第二数据节点进行所述第一文件的恢复; 发送单元,用于向客户端发送所述切换指示信息,以便于所述客户端根据所述切换指示信息向所述第二数据节点发送恢复指令,所述恢复指令包括所述第一文件的文件信息,所述恢复指令用于指示所述第二数据节点根据所述第一文件的文件信息进行所述第一文件的恢复。
20.根据权利要求19所述的装置,其特征在于,所述装置还包括: 第二生成单元,用于生成第一访问条目信息,所述第一访问条目信息用于指示所述第一文件待修复; 接收单元,用于接收所述第二数据节点发送的访问条目更新信息,所述访问条目更新信息指示所述目录节点对所述第一访问条目信息进行更新; 更新单元,用于根据所述访问条目更新信息更新所述第一访问条目信息得到第二访问条目信息,所述第二访问条目信息用于指示所述第一文件由所述第二数据节点恢复。
【文档编号】H04L29/08GK104239425SQ201410421369
【公开日】2014年12月24日 申请日期:2014年8月25日 优先权日:2014年8月25日
【发明者】马草飞 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1