资源访问方法及装置制造方法

文档序号:7782297阅读:181来源:国知局
资源访问方法及装置制造方法
【专利摘要】本发明实施例提供了资源访问方法及装置。该方法包括服务器接收与所述服务器连接的第一客户端发送的第一资源访问请求,所述第一资源访问请求中包含待访问的资源的信息;服务器确定资源处于未被访问的状态后,允许第一客户端访问所述资源;若第一客户端满足预设的资源委托条件,则服务器将资源委托给所述第一客户端,以供与服务器连接的第二客户端直接在第一客户端上访问该资源;服务器将资源的状态更新为委托状态,并记录第一客户端的访问地址。通过本发明实施例提供的技术方案,可以降低服务器的负荷,且资源访问变成客户端之间的通信,减少服务器和客户端之间带宽的占用,从而提高了资源访问的效率。
【专利说明】资源访问方法及装置
【技术领域】
[0001 ] 本发明实施例涉及无线通信【技术领域】,尤其涉及一种资源访问方法及装置。
【背景技术】
[0002]存储系统包括服务器和客户端,客户端一般可以为存储设备。客户端(存储设备)可以通过标准协议来访问服务器,服务器响应客户端的资源访问请求,用以支持客户端(存储设备)对资源的存储、备份等服务。
[0003]例如:网络附加存储(Network Attached Storage,简称为NAS)技术是一种基于标准网络协议的存储技术,它可以为网络中的Windows/Linux/Mac OS等各种不同操作系统的计算机提供文件共享和数据备份的存储。目前NAS采用的标准协议包括在Windows环境下使用的服务器信息块(Server Message Block,简称为SMB)协议,和Linux/Unix环境下使用的(Net File System,简称为NFS)协议。
[0004]通常,一个服务器下可能管辖多个客户端,可能会同时为几十、甚至几百个客户端提供访问服务。当多个客户端需要服务器上的某一个资源时,则该多个客户端都需要到该服务器上去访问该资源,且该资源可能会被多个客户端重复地到服务器上进行访问,这样,服务器的负荷比较大,且会占用服务器和客户端之间的大量带宽,导致资源访问的效率比较低。

【发明内容】

[0005]本发明实施例提供一种资源访问方法及装置。
[0006]本发明实施例的第一方面提供一种资源访问方法,包括:
[0007]服务器接收与所述服务器连接的第一客户端发送的第一资源访问请求,所述第一资源访问请求中包含待访问的资源的信息;
[0008]所述服务器确定所述资源处于未被访问的状态后,允许所述第一客户端访问所述资源;
[0009]若所述第一客户端满足预设的资源委托条件,则所述服务器将所述资源委托给所述第一客户端,以供与所述服务器连接的第二客户端直接在所述第一客户端上访问所述资源;所述服务器将所述资源的状态更新为委托状态,并记录所述第一客户端的访问地址。
[0010]本发明实施例的第二方面提供另一种资源访问方法,包括:
[0011]与服务器连接的第一客户端向所述服务器发送第一资源访问请求,所述第一资源访问请求中包含待访问的资源的信息;
[0012]所述第一客户端在所述服务器上访问所述资源,并接受所述服务器对所述资源的委托,以供与所述服务器连接的第二客户端直接在所述第一客户端上访问所述资源;
[0013]其中,所述资源是所述服务器在确定所述资源处于未被访问的状态,且确定所述第一客户端满足预设的资源委托条件后,委托给所述第一客户端的。
[0014]本发明实施例的第三方面提供一种服务器,包括:[0015]接收模块,用于接收与所述服务器连接的第一客户端发送的第一资源访问请求,所述第一资源访问请求中包含待访问的资源的信息;
[0016]处理模块,用于确定所述资源处于未被访问的状态后,允许所述第一客户端访问所述资源;
[0017]所述处理模块还用于,若所述第一客户端满足预设的资源委托条件,则将所述资源委托给所述第一客户端,以供与所述服务器连接的第二客户端直接在所述第一客户端上访问所述资源;并将所述资源的状态更新为委托状态,并记录所述第一客户端的访问地址。
[0018]本发明实施例的第四方面提供一种第一客户端,包括:
[0019]发送模块,用于向所述服务器发送第一资源访问请求,所述第一资源访问请求中包含待访问的资源的信息;
[0020]处理模块,用于在所述服务器上访问所述资源,并接受所述服务器对所述资源的委托,以供与所述服务器连接的第二客户端直接在所述第一客户端上访问所述资源;
[0021]其中,所述资源是所述服务器在确定所述资源处于未被访问的状态,且确定所述第一客户端满足预设的资源委托条件后,委托给所述第一客户端的。
[0022]本发明实施例的第五方面提供一种资源访问系统,包括上述的服务器,以及客户端。
[0023]本发明实施例提供的资源访问方法及装置,通过将服务器上的资源委托给客户端,使得其他客户端可以从委托资源的客户端获取该资源,解决了相关技术中,资源必须从服务器上获取导致服务器的负荷比较大,且占用服务器和客户端之间比较大的带宽的问题,使得客户端可以从其他客户端上访问资源,从而在一定程度降低了服务器的负荷,在一定程度上提高了资源访问的效率。
【专利附图】

【附图说明】
[0024]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0025]图1为本发明实施例提供的资源访问方法流程图;
[0026]图2为本发明另一实施例提供的资源访问方法流程图;
[0027]图3为本发明再一实施例提供的资源访问方法示意图;
[0028]图4为本发明实施例资源访问方法的信令图;
[0029]图5为本发明实施例服务器结构示意图;
[0030]图6为本发明实施例第一客户端结构示意图。
【具体实施方式】
[0031]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。[0032]图1为本发明实施例提供的资源访问方法流程图,该方法适用于存储系统中的服务器,例如:NAS存储服务器。本实施例的方法可以包括:
[0033]步骤101,服务器接收与所述服务器连接的第一客户端发送的第一资源访问请求,所述第一资源访问请求中包含待访问的资源的信息;
[0034]步骤103,所述服务器确定所述资源处于未被访问的状态后,允许所述第一客户端访问所述资源;
[0035]步骤105,若所述第一客户端满足预设的资源委托条件,则所述服务器将所述资源委托给所述第一客户端,以供与所述服务器连接的第二客户端直接在所述第一客户端上访问所述资源;所述服务器将所述资源的状态更新为委托状态,并记录所述第一客户端的访问地址。
[0036]本方法实施例中,服务器接收到与其连接的第一客户端发送的针对待访问的资源的访问请求后,服务器确定该资源没有被其他客户端访问即待访问的资源处于未被访问的状态,则服务器响应第一客户端的资源访问,允许第一客户端访问该待访问资源,所述访问包括读取和/或写入。
[0037]本方法实施例中,若服务器判断获知第一客户端满足预设的资源委托条件,则月艮务器不但允许该第一客户端访问该资源,而且还将该资源委托给第一客户端,以供与服务器连接的第二客户端直接在第一客户端上访问资源。资源委托给第一客户端后,当一个服务器连接的多个客户端需要访问该服务器的同一个资源时,可以从已经被委托该资源的第一客户端上访问,不需要访问服务器,解决了现有技术中多个客户端均需要到服务器上访问一个资源,导致服务器的负荷比较大,且占用服务器和客户之间大量带宽,导致资源访问的效率比较低的问题。并且,服务器将资源委托给第一客户端,可以使得第二客户端在第一客户端上访问资源,这样可以降低服务器的负荷,且资源访问变成客户端之间的通信,减少服务器和客户端之间带宽的占用,从而提高了资源访问的效率。
[0038]在上述实施例中,服务器可以根据获取到的第一客户端对应的处理能力信息和业务状态信息,判断第一客户端是否满足预设的资源委托条件。处理能力信息例如包括第一客户端的存储器的大小以及中央处理器的频率等,业务状态信息包括繁忙、空闲等。
[0039]在本发明实施例中,客户端可以不进行区域的划分。在这种情况下,服务器下的其他客户端均可以在委托资源的客户端上访问资源。例如,服务器A下连接有客户端Cl、客户端C2、客户端C3,客户端C4,客户端Cl向服务器A发送访问其上资源SI的请求,服务器A收到该请求之后,确定该资源SI没有被其他客户端访问,且确定客户端Cl满足预设的资源委托条件,这时,服务器A将资源SI委托给客户端Cl,以允许其他客户端(客户端C2、C3、C4)在客户端Cl上访问资源SI。
[0040]在本发明实施例中,客户端也可以按照区域进行划分。在服务器将该资源委托给第一客户端之后,服务器接收第二客户端发送的第二资源访问请求,所述第二资源访问请求中包含的待访问的资源的信息与上述第一资源访问请求中的待访问的资源信息相同。服务器根据第二客户端和第一客户端是否处于同一个区域内,分为如下两种情况:
[0041]当位于同一个区域内时,服务器可以向该第二客户端发送携带有该第一客户端的访问地址的消息,即将访问请求重定向到第一客户端上。该第二客户端根据访问地址向第一客户端发送用于访问该资源的请求,第一客户端允许第二客户端访问被委托的资源。具体地,第一客户端和第二客户端位于同一个区域内时,服务器将携带有第一客户端的IP地址发送给第二客户端,第二客户端接收到该IP地址后,根据该IP地址,向该第一客户端发送访问该资源的请求,并在该第一客户端上访问资源。
[0042]当客户端按照区域进行划分时,客户端可以访问位于同一区域的其他客户端上被服务器委托的资源。例如:客户端Cl和客户端C2位于区域R1,客户端C3和C4位于区域R2。当资源SI被服务器委托给客户端Cl,客户端C2可以根据获取到的客户端Cl的IP地址,向客户端Cl发送访问该资源的请求,然后在客户端Cl上访问资源SI。在实施中,处于同一个区域的客户端到服务器之间的网络质量可能是不相同的,例如:客户端Cl和客户端C2位于区域R1,客户端C3和C4位于区域R2。客户端Cl到服务器之间的网络质量优于客户端C2到服务器之间的网络质量,且客户端Cl和客户端C2之间的网络质量比较好。在该场景下,当客户端Cl和客户端C2都需要访问服务器的某一资源时,客户端Cl向服务器发送访问请求,该服务器将该资源委托给客户端Cl,客户端C2就不需要在服务器上访问资源了,而是可以在客户端Cl上访问资源,这样,客户端C2就可以通过网络质量比较好的通路(C2到Cl)获取到了资源,提高了资源的访问效率。
[0043]当第一客户端和第二客户端处于不同区域时,服务器可以按照不同的方式进行后续处理,例如:
[0044]方式一,可以向该第一客户端发送用于指示撤销该资源的委托的消息。
[0045]需要说明的是,方式一可以无条件执行,或者在如下条件下执行:该服务器确定出将该资源委托给该第一客户端的类型为写入;和/或,该服务器确定出该第二客户端请求访问该资源的类型为写入。
[0046]当无条件执行时,即收到位于不同区域的第二客户端的请求,可以直接向第一客户端发送用于指示撤销该资源的委托的消息,这样的话,资源委托始终在一个区域内实现,不会出现不同区域的客户端针对同一个资源的请求。当满足上述条件时,进行资源委托的撤回,可以保持数据的一致性。例如:当资源在以写入的委托方式委托给第一客户端时,第一客户端可能将数据写入该资源(该资源可能被修改),但是服务器上存储的资源是未修改的资源,如果服务器将该资源再次委托给其他客户端(例如:第二客户端)可能会导致资源的不一致。本实施例的方法为撤销在第一客户端上的资源委托,这样的话,避免了该情况导致的资源不一致。服务器接收到第一客户端反馈的已撤销委托的消息后,允许第二客户端访问所述资源。
[0047]进一步地,若第二客户端满足预设的资源委托条件,则服务器将资源委托给第二客户端,将资源的状态更新为委托状态,并记录第二客户端的访问地址。
[0048]方式二,在服务器将资源委托给第一客户端的类型为读取,且该第二客户端请求访问该资源的类型为读取时,该服务器将资源以读取的类型委托给该第二客户端,用于与第二客户端处于同一区域的第三客户端在第二客户端上以读取的类型访问该资源。
[0049]采用方式二,可以实现在多个不同区域进行资源的委托,提高了委托的效率。且由于委托类型和访问类型均为读取,读取的方式不会对资源进行修改,所以不存在数据一致性的问题。
[0050]优选地,服务器可以根据获取到的第一客户端的处理能力和业务的状态,确定该客户端满足第一预设的资源委托条件。比较优的,该业务的状态可以包括繁忙和空闲。在实施中,处理能力可以通过中央处理器(Central Processing Unit,简称为CPU)和存储器的参数来表征,例如:中央处理器的速度和存储器的大小,繁忙和空闲可以通过预设条件来判断,例如:中央处理器的负荷超过预设值和/或存储器占用的比例超过预设值为繁忙,反之为空闲,需要说明的是,上述参数仅仅用于说明,并不构成对本发明技术方案的限制。
[0051]可选地,客户端可以通过标准协议与服务器进行协商,客户端可以将该客户端所处的的区域的信息、处理能力以及业务的状态(繁忙、空闲)发送给服务器。
[0052]在上述实施例中,服务器确定出请求的资源已经被访问和/或该第一客户端不满足资源委托条件,则服务器可以允许第一客户端在服务器上访问资源。
[0053]可选地,在发生以下情况之一时,服务器可以撤销对第一客户端的资源委托:
[0054]情况一、服务器接收到第一客户端用于指示第一客户端的业务处于繁忙状态的消息。服务器和第一客户端之间可以设置周期的同步控制信号,这样,服务器可以获知第一客户端的业务处于繁忙状态。比较优的,繁忙状态可以通过预设条件来判断,例如:中央处理器的负荷超过预设值和/或存储器占用的比例超过预设值为繁忙。
[0055]情况二、服务器接收到第一客户端发送的用于将资源进行失效处理的请求。
[0056]情况三、服务器确定资源的委托时长超出预设的时长。
[0057]情况四、服务器确定第一客户端处于故障状态。在该方式中,服务器和第一客户端之间可以设置周期的同步控制信号,这样,服务器可以通过轮询的方式,确定该第一客户端是否处于故障状态。
[0058]优选地,服务器允许该第一客户端在该服务器上访问该资源可以包括:服务器允许该客户端读取该服务器上的该资源;和/或,该服务器允许该客户端将数据写入该服务器上的该资源。
[0059]图2为本发明另一实施例提供的资源访问方法流程图,本实施例的方法适用于客户端。本实施例是从客户端的角度描述资源访问方法,如图2所示,该方法包括:
[0060]步骤201,与服务器连接的第一客户端向所述服务器发送第一资源访问请求,所述第一资源访问请求中包含待访问的资源的信息;
[0061]步骤203,所述第一客户端在所述服务器上访问所述资源,并接受所述服务器对所述资源的委托,以供与所述服务器连接的第二客户端直接在所述第一客户端上访问所述资源;
[0062]其中,所述资源是服务器在确定资源处于未被访问的状态,且确定第一客户端满足预设的资源委托条件后,委托给第一客户端的。
[0063]在本发明实施例中,第一客户端向服务器发送请求,该请求用于在该服务器上访问资源,然后当服务器确定出该资源没有被其他客户端访问,且该第一客户端满足资源委托条件时,第一客户端在服务器上访问该资源,且接受该服务器对该资源的委托,以供与服务器连接的其他客户端在第一客户端上访问该资源。这样,当一个服务器下的多个客户端需要访问该服务器的同一个资源时,可以从已经被委托该资源的第一客户端上访问,不需要访问服务器,解决了现有技术中多个客户端均需要到服务器上访问一个资源,导致服务器的负荷比较大,且占用服务器和客户之间大量带宽,导致资源访问的效率比较低的问题。并且,服务器将资源委托给第一客户端,可以使得第二客户端在第一客户端上访问资源,这样可以降低服务器的负荷,且资源访问变成客户端之间的通信,减少服务器和客户端之间带宽的占用,从而提高了资源访问的效率。
[0064]在本发明实施例中,客户端可以不进行区域的划分。在这种情况下,服务器下的其他客户端均可以在委托资源的客户端上访问资源。
[0065]在本发明实施例中,客户端也可以进行区域划分。在第一客户端在服务器上访问资源,且接受服务器对该资源的委托后,根据第二客户端和该第一客户端是否处于同一个区域内,分为如下两种情况:
[0066]当第一客户端和第二客户端处于同一个区域内时,第一客户端接收第二客户端发送的用于访问该资源的请求。其中,第二客户端发送的请求是在接收到服务器发送的携带有第一客户端的访问地址的消息之后发送的,携带有第一客户端的访问地址的消息是服务器接收到第二客户端发送的用于访问该资源的请求,并确定该资源被委托给第一客户端之后发送的。第一客户端允许第二客户端在第一客户端上访问该资源。进一步地,第一客户端允许第二客户端访问该资源,若第二客户端满足预设的资源委托条件,则第一客户端可以将资源继续委托给第二客户端,以供同一个区域内的其他客户端直接在第二客户端上访问该资源;第一客户端同时要记录第二客户端的访问地址。
[0067]当第一客户端和第二客户端处于不同区域时,第一客户端接收服务器发送的用于指示撤销该资源的委托的消息。其中,该消息可以是服务器在接收到第二客户端发送的用于访问该资源的请求之后发送的。
[0068]可选地,第一客户端接收委托之后,还可以将该资源委托给其他客户端,所以在第一客户端接收该服务器发送的用于指示撤销该资源的委托的消息之后,还包括:
[0069]第一客户端判断该资源是否被委托给了与处于同一个区域内的其他客户端例如
第二客户端;
[0070]如果判断结果为是,则第一客户端向第二客户端发送用于指示撤销所述资源的委托的消息;
[0071]如果判断结果为否,且该资源的委托类型为读取时,则第一客户端将存储的该资源进行失效处理;
[0072]如果判断结果为否,且该资源的委托类型为写入时,则第一客户端将脏数据写入服务器中。其中,所述脏数据是第一客户端根据使用该资源得到的数据确定的。
[0073]第一客户端向服务器发送用于指示第一客户端已撤销委托的消息,触发服务器响应第二客户端发送的用于访问该资源的请求。
[0074]在本实施例中,客户端在接受服务器对资源的委托之后,还可以将该资源委托给其他客户端,实现资源的再次委托。
[0075]优选地,服务器根据获取到的第一客户端对应的处理能力信息和业务状态信息,判断第一客户端是否满足资源委托条件。比较优的,该业务的状态可以包括繁忙和空闲。处理能力可以通过中央处理器(Central Processing Unit,简称为CPU)和存储器的参数来表征,例如:中央处理器的速度和存储器的大小,繁忙和空闲可以通过预设条件来判断,例如:中央处理器的负荷超过预设值和/或存储器占用的比例超过预设值为繁忙,反之为空闲,需要说明的是,上述参数仅仅用于说明,并不构成对本发明技术方案的限制。
[0076]下面通过具体的实施例,对图1和图2所示方法实施例的技术方案进行详细说明。图3为本发明再一实施例提供的资源访问方法示意图。[0077]本优选实施例提供了一种资源访问方法,本优选实施例结合了上述实施例及其优选实施方式,本实施例的场景如下:一台存储设备(上述实施例中的NAS存储服务器)为两个区域的四台客户端提供NAS共享服务,假如每个区域分别有两台客户端,并且这两个区域中的客户端和NAS存储服务器之间通信的的网络质量不相同(例如=Client Al与NAS存储服务器之间通信的网络质量与Client A2与NAS存储服务器之间通信的网络质量是不相同的),在该两个区域的同一个区域内部的设备之间的网络质量比较好(例如=Client Al与Client A2之间通信的网络质量优于Client Al和Client A2分别与NAS存储服务器通信的网络质量)。该方法包括如下:
[0078]步骤S301,当区域A下的Client Al客户端期望访问NAS存储服务器时,它首先通过标准协议和NAS存储服务器进行协商。此时,Client Al将自身的区域信息,自身的能力值、自身业务状态(繁忙或者空闲)发送给NAS存储服务器。
[0079]步骤S302,NAS存储服务器在和Client Al协商并且认证通过完成之后,记录该客户端Client Al的信息,并允许该客户端Client Al访问存储资源。
[0080]步骤S303,Client Al在获得访问资格之后,开始请求NAS存储服务器上的共享资源,例如对文件的读取或写入的请求。
[0081]步骤S304,NAS存储服务器针对Client Al的访问的资源,进行判决,决定其访问方式。
[0082]首先,判断该资源是否被其他客户端进行访问。
[0083]根据是否被其他客户端访问,分为如下两种情况进行处理:
[0084]情况一:如果没有被其他客户端访问,可以再判断Client Al的处理能力、繁忙程度是否达到能够进行资源委托的程度,如果没有达到,则仅仅允许该客户端Client Al从NAS存储服务器访问该资源(获取该资源的数据);如果能够达到委托标准,则不仅允许该客户端Client Al首次从NAS存储服务器访问资源,并将该资源存储到本地(该客户端Client Al),还可以在NAS存储服务器上记录该资源的委托信息,即将该资源委托给该客户端Client Al,以便后续该区域(与Client Al处于同一区域)的其他客户端需要访问该资源的时候,能够在该客户端Client Al上访问资源。
[0085]情况二:如果在检查该资源是否被其他客户端进行访问时,发现该资源已经委托给其他客户端,这时,又分为两种情况处理:一种情况是,当前占有该待分配资源的客户端(该待分配资源被委托给该客户端)和请求该待分配资源的客户端在同一个区域内,那么,服务端可以返回委托客户端(待分配资源被委托给的客户端,例如,在本实施例中,如果该资源被委托给了 Client A2,则该委托客户端为Client A2)的地址(例如,可以为IP地址),来重定向该请求(用于访问该资源的请求),即请求客户端(例如,在本实施例中,Client Al请求访问该资源,如果该资源被委托给了 Client A2,该请求客户端为Client Al)重新发送请求给委托客户端(Client A2),由委托客户端来响应这个请求,不再占用NAS存储服务器的资源。另外一种情况是,当前占有该资源的委托的客户端和该请求的客户端不在一个区域内,这种情况下可以进行委托召回(撤销资源的委托)的处理。
[0086]步骤S305,以Client Al为例,当客户端Client Al请求访问的资源,被其他区域客户端委托占用时,可以进行召回委托的处理。
[0087]需要说明的是,为了防止破坏数据的一致性,在处理完召回委托之后,服务端响应Client Al客户端的请求。
[0088]当进行召回处理时,服务端首先向持有资源委托的客户端发送召回委托请求,当客户端接收到该召回请求之后,该客户端首先检查该资源是否被其再次委托给了其他客户端,如果委托了,则重复上述步骤,再次向下一级委托的客户端发送召回请求,如果没有委托给新的客户端,则该客户端挂起该资源,暂停对业务对该资源的请求,进行相应的处理,具体地,可以根据委托类型为读取和/或委托类型为写入,分别进行优化处理。例如委托类型为读取的情况,可以仅仅将该客户端使用的缓存资源失效,对于委托类型为写入的情况,可以将操作该资源之后缓存的脏数据刷新到授予该委托的服务器(服务端)上,然后再将该客户端的缓存资源失效,这样,在该操作之后的关于该资源的访问请求均需要重新到服务端上进行。当持有资源委托的客户端完成上述响应与召回请求的处理之后,给服务端发送确认委托被召回消息,当服务端接收到该确认委托被召回消息之后,服务端可以继续响应新的客户端对这个资源的请求,此时,服务端可能对需要同时处理区域A和区域B的客户端针对同一个资源的请求,这是的资源一致性可以通过锁机制来保证。
[0089]步骤S306,当客户端从NAS存储服务器访问资源之后,可以根据步骤S304中,服务端是否授予该客户端对该资源的委托进行处理。
[0090]如果没有授予,则客户端可以根据应用需求对访问的资源进行处理。
[0091]如果授予了委托,则客户端可以将这些缓存的资源纳入其委托管理机制中。对于这种处于委托管理机制中的缓存,可以定义其相应的缓存策略,缓存时间等,当委托及需要失效这些缓存时,还需要主动向服务器发送委托失效请求,以告诉服务端,该客户端不再持有这些资源的委托。这样,服务端又可以将这些资源委托授予到其他客户端上。
[0092]步骤S307,当该客户端获得了这些资源的委托权之后,这些客户端可以临时行使NAS存储服务器响应资源访问请求的能力,帮助NAS存储服务器处理委托机所属区域内,其他客户端对这些共享资源的请求。这样既可以减少NAS存储服务器的业务压力,也可以节省网络带宽。此外,当该区域内有能力更强的客户端来访问该资源时,可以将资源的委托再次授予这些能力更强的客户端,这样,也可以释放获取资源的委托权的客户端的压力。
[0093]步骤S308,NAS存储服务器在向客户端授予委托的时候,可以根据客户端请求数据的方式为委托类型为读和委托类型为写,分别进行处理。对于委托类型为读的情况,可以同时授予多个客户端;对于委托类型为写的情况,一个时刻只能有一个客户端独占获得。被授予委托的客户端和NAS存储服务器之间,会有周期的同步控制信号,目的是服务端通过轮询的方式,检查委托机的状态,如果委托及出现业务繁忙的情况,则可以召回委托,并重新分配给业务较为空闲的客户端,以便于整个系统业务的动态负载均衡,如果委托机出现故障,可以通过超时机制,强制回收授予该客户端的委托,在这种情况下,如果故障的委托机制是写委托类型,并且存在授予资源缓存的脏数据,则可能会造成部分数据丢失。
[0094]图4为本发明实施例资源访问方法的信令图,如图4所示,该方法包括:
[0095]步骤S401,Client Al获取到委托。
[0096]步骤S402,同一个区域的Client A2可以访问Client Al。
[0097]步骤S403,其他区域客户端Client BI请求访问资源。
[0098]步骤S404,服务器发现该资源被委托给了 Client Al,撤销该资源委托。
[0099]步骤S405,Client Al刷新后的资源写入服务器,并对缓存的资源进行无效处理,给客户端返回撤销委托的信息。
[0100]步骤S406,服务器接收到撤销委托的消息之后,响应Client BI的请求。
[0101]需要说明的是,本实施例中客户端的能力和业务状态如表1所示,资源及委托及的委托方式如表2所示。
[0102]表1
[0103]
【权利要求】
1.一种资源访问方法,其特征在于,包括: 服务器接收与所述服务器连接的第一客户端发送的第一资源访问请求,所述第一资源访问请求中包含待访问的资源的信息; 所述服务器确定所述资源处于未被访问的状态后,允许所述第一客户端访问所述资源; 若所述第一客户端满足预设的资源委托条件,则所述服务器将所述资源委托给所述第一客户端,以供与所述服务器连接的第二客户端直接在所述第一客户端上访问所述资源;所述服务器将所述资源的状态更新为委托状态,并记录所述第一客户端的访问地址。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括: 所述服务器接收所述第二客户端发送的第二资源访问请求,所述第二资源访问请求中包含的待访问的资源的信息与所述第一资源访问请求中的待访问的资源信息相同; 若所述第一客户端和所述第二客户端处于同一个区域,则所述服务器向所述第二客户端发送携带有所述第一客户端的访问地址的消息; 若所述第一客户端和所述第二客户端处于不同区域,则所述服务器向所述第一客户端发送指示撤销资源委托的消息; 所述服务器接收到所述第一客户端反馈的已撤销委托的消息后,允许所述第二客户端访问所述资源; 若所述第二客户端满足预设的资源委托条件,则所述服务器将所述资源委托给所述第二客户端,将所述资源的状态更新为委托状态,并记录所述第二客户端的访问地址。
3.根据权利要求1或2所述的方法,其特征在于,所述服务器根据获取到的所述第一客户端对应的处理能力信息和业务状态信息,判断所述第一客户端是否满足所述资源委托条件。
4.根据权利要求1或2所述的方法,其特征在于,在所述服务器接收所述第一资源访问请求之后,还包括: 所述服务器确定所述资源处于被访问的状态和/或所述第一客户端不满足所述资源委托条件,则允许所述第一客户端在所述服务器上访问所述资源。
5.根据权利要求1或2所述的方法,其特征在于,所述方法还包括: 在以下情况之一时,所述服务器向所述第一客户端发送指示撤销资源委托的消息:所述服务器接收到所述第一客户端发送的用于指示所述第一客户端的业务的状态为繁忙的消息; 所述服务器接收到所述第一客户端发送的用于将所述资源进行失效处理的请求; 所述服务器确定所述资源的委托时长超出预设时长; 所述服务器确定所述第一客户端处于故障状态。
6.一种资源访问方法,其特征在于,包括: 与服务器连接的第一客户端向所述服务器发送第一资源访问请求,所述第一资源访问请求中包含待访问的资源的信息; 所述第一客户端在所述服务器上访问所述资源,并接受所述服务器对所述资源的委托,以供与所述服务器连接的第二客户端直接在所述第一客户端上访问所述资源; 其中,所述资源是所述服务器在确定所述资源处于未被访问的状态,且确定所述第一客户端满足预设的资源委托条件后,委托给所述第一客户端的。
7.根据权利要求6所述的方法,其特征在于,所述第一客户端在所述服务器上访问所述资源,并接受所述服务器对所述资源的委托之后,还包括: 接收所述第二客户端发送的用于访问所述资源的请求,并允许所述第二客户端访问所述资源,所述第二客户端与所述第一客户端处于同一个区域; 或 接收所述服务器发送的用于指示撤销所述资源的委托的消息。
8.根据权利要求7所述的方法,其特征在于,还包括: 若所述第二客户端满足预设的资源委托条件,则所述第一客户端将所述资源委托给所述第二客户端,以供同一个区域内的其他客户端直接在所述第二客户端上访问所述资源;所述第一客户端记录所述第二客户端的访问地址。
9.根据权利要求8所述的方法,其特征在于,所述接收所述服务器发送的用于指示撤销所述资源的委托的消息之后,还包括: 所述第一客户端判断所述资源是否委托给了处于同一个区域内的所述第二客户端; 若判断结果为是,则所述第一客户端向所述第二客户端发送用于指示撤销所述资源的委托的消息; 若判断结果为否,且所述资源的委托类型为读取时,则所述第一客户端将存储的所述资源进行失效处理; 若判断结果为否,且所述资源的委托类型为写入时,则所述第一客户端将所述资源对应的脏数据写入所述服务器中; 所述第一客户端向所述服务器发送已撤销委托的消息。
10.根据权利要求6至8中任一项所述的方法,其特征在于,所述服务器根据获取到的所述第一客户端对应的处理能力信息和业务状态信息,判断所述第一客户端是否满足所述资源委托条件。
11.一种服务器,其特征在于,包括: 接收模块,用于接收与所述服务器连接的第一客户端发送的第一资源访问请求,所述第一资源访问请求中包含待访问的资源的信息; 处理模块,用于确定所述资源处于未被访问的状态后,允许所述第一客户端访问所述资源; 所述处理模块还用于,若所述第一客户端满足预设的资源委托条件,则将所述资源委托给所述第一客户端,以供与所述服务器连接的第二客户端直接在所述第一客户端上访问所述资源;并将所述资源的状态更新为委托状态,并记录所述第一客户端的访问地址。
12.根据权利要求11所述的服务器,其特征在于: 所述接收模块还用于,接收所述第二客户端发送的第二资源访问请求,所述第二资源访问请求中包含的待访问的资源的信息与所述第一资源访问请求中的待访问的资源信息相同; 相应地,所述处理模块还用于, 若所述第一客户端和所述第二客户端处于同一个区域,则向所述第二客户端发送携带有所述第一客户端的访问地址的消息;若所述第一客户端和所述第二客户端处于不同区域,则向所述第一客户端发送指示撤销资源委托的消息; 接收到所述第一客户端反馈的已撤销委托的消息后,允许所述第二客户端访问所述资源; 若所述第二客户端满足预设的资源委托条件,则将所述资源委托给所述第二客户端,将所述资源的状态更新为委托状态,并记录所述第二客户端的访问地址。
13.根据权利要求11或12所述的服务器,其特征在于,所述处理模块根据获取到的所述第一客户端对应的处理能力信息和业务状态信息,判断所述第一客户端是否满足所述资源委托条件。
14.一种第一客户端,与服务器连接,其特征在于,包括: 发送模块,用于向所述服务器发送第一资源访问请求,所述第一资源访问请求中包含待访问的资源的信息; 处理模块,用于在所述服务器上访问所述资源,并接受所述服务器对所述资源的委托,以供与所述服务器连接的第二客户端直接在所述第一客户端上访问所述资源; 其中,所述资源是所述服务器在确定所述资源处于未被访问的状态,且确定所述第一客户端满足预设的资源委托条件后,委托给所述第一客户端的。
15.根据权利要求14所述的第一客户端,其特征在于: 所述处理模块还用于,接收所述第二客户端发送的用于访问所述资源的请求,并允许所述第二客户端访问所述资源,所述第二客户端与所述第一客户端处于同一个区域;或,接收所述服务器发送的用于指示撤销所述资源的委托的消息。
16.根据权利要求15所述的第一客户端,其特征在于,还包括: 委托模块,用于若所述第二客户端满足预设的资源委托条件,则将所述资源委托给所述第二客户端,以供同一个区域内的其他客户端直接在所述第二客户端上访问所述资源;同时记录所述第二客户端的访问地址。
17.根据权利要求16所述的第一客户端,其特征在于: 所述处理模块还用于,在接收所述服务器发送的用于指示撤销所述资源的委托的消息之后,判断所述资源是否委托给了处于同一个区域内的所述第二客户端; 若判断结果为是,则向所述第二客户端发送用于指示撤销所述资源的委托的消息; 若判断结果为否,且所述资源的委托类型为读取时,则将存储的所述资源进行失效处理; 若判断结果为否,且所述资源的委托类型为写入时,则将所述资源对应的脏数据写入所述服务器中; 向所述服务器发送已撤销委托的消息。
18.一种资源访问系统,其特征包括,如权利要求11至13任一所述的服务器,以及如权利要求14至17任一所述的客户端。
【文档编号】H04L29/08GK103701899SQ201310732951
【公开日】2014年4月2日 申请日期:2013年12月26日 优先权日:2013年12月26日
【发明者】马草飞 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1