访问服务器磁盘的方法、装置及系统的制作方法

文档序号:9750498阅读:458来源:国知局
访问服务器磁盘的方法、装置及系统的制作方法
【技术领域】
[0001]本发明涉及互联网技术领域,尤其涉及一种访问服务器磁盘的方法、装置及系统。
【背景技术】
[0002]企业内网中常常存在多个终端向服务器请求同一资源的情况。例如,员工电脑向服务器请求更新病毒库,或者请求获取监控配置信息。现有技术中,终端请求的数据资源通常存储在服务器的磁盘上,不同终端分别与服务器建立连接,访问服务器磁盘,读取需要的数据资源。
[0003]由于每个终端都是独立向服务器发起磁盘访问请求的,因此服务器磁盘的读写压力十分巨大。为降低服务器磁盘的读写压力,人们对现有的访问方式进行了改进:服务器将终端需要的数据资源缓存在服务器内存中,当终端请求数据资源时,服务器从内存中读取该数据资源并返回给终端。这种方式能够有效降低终端访问服务器磁盘的次数。但是从服务器内存中读取数据资源的方式也存在一定的问题:服务器内存无法对数据进行永久保存,当服务器清理内存后终端请求的数据资源不再存在。按照现有的实现方式,终端还是需要访问服务器磁盘读取。这就会导致大量终端会在一瞬间同时访问服务器磁盘,对服务器磁盘造成更大的冲击。

【发明内容】

[0004]本发明提供了一种访问服务器磁盘的方法、装置及系统,能够解决大量终端同时访问服务器磁盘的问题。
[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]本发明提供的访问服务器磁盘的方法、装置及系统,能够在终端需要请求服务器侧的数据内容时,首先使终端访问服务器内存,如果服务器内存中保存有该数据内容,则月艮务器将数据内容返回给终端;如果服务器内存中没有存储该数据内容,则终端访问服务器磁盘。在访问服务器磁盘前,终端首先要向服务器请求加锁,终端只有在加锁后才能访问服务器磁盘,否则等待服务器对其他终端解锁后再请求加锁。本发明能够通过加锁程度限制访问服务器磁盘的终端数量,在同一时刻上仅允许一个终端访问服务器磁盘。与现有技术相比,无论访问服务器磁盘的终端数量有多少,在同一时刻上请求调用服务器磁盘I/O口的终端数量都不会超过一个,因此本发明能够有效消除大量终端同时访问对服务器磁盘造成的冲击。
[0031]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的【具体实施方式】。
【附图说明】
[0032]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0033]图1示出了本发明实施例提供的第一种访问服务器磁盘的方法流程图;
[0034]图2示出了本发明实施例提供的第二种访问服务器磁盘的方法流程图;
[0035]图3示出了本发明实施例提供的第三种访问服务器磁盘的方法流程图;
[0036]图4示出了本发明实施例提供的第四种访问服务器磁盘的方法流程图;
[0037]图5示出了本发明实施例提供的第一种访问服务器磁盘的装置的组成框图;
[0038]图6示出了本发明实施例提供的第二种访问服务器磁盘的装置的组成框图;
[0039]图7示出了本发明实施例提供的第三种访问服务器磁盘的装置的组成框图;
[0040]图8示出了本发明实施例提供的一种访问服务器磁盘的系统示意图。
【具体实施方式】
[0041]下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0042]本发明实施例提供了一种访问服务器磁盘的方法,该方法应用于终端侧。如图1所示,该方法包括:
[0043 ] 11、访问服务器内存,读取数据内容。
[0044]当终端需要向服务器请求某个数据内容时(例如要更新的病毒库),终端向服务器发起传输控制协议(Transmiss1n Control Protocol,简称TCP)连接,经过三次握手后,月艮务器与终端之间完成TCP连接的建立,终端向服务器发送携带数据内容标识的数据请求。月艮务器在内存查找对应该内容标识的数据内容,如果缓存有该数据内容,则服务器将查找到的数据内容返回给终端。如果没有缓存该数据内容,则终端执行步骤102,请求加锁并访问服务器磁盘。
[0045]本实施例中,如果服务器没有缓存相应的数据内容,服务器可以基于TCP连接向终端发送一个通知,告知终端服务器内存中没有存储该数据内容,终端根据该通知启动执行步骤102。或者服务器也可以不向终端服务器通知,终端在发起数据请求之后的预设时长内没有接收到数据内容,则自动执行步骤102。
[0046]102、若服务器内存没有保存数据内容,则向服务器请求加锁。
[0047]服务器侧部署有一套加锁程序,该程序用于对访问服务器磁盘的终端进行加锁,只有被加锁的终端才能够访问服务器磁盘,而没有被加锁的终端(例如等待加锁的终端)则无法访问服务器磁盘。本实施例中,服务器的加锁程序在同一时刻上仅允许一个终端访问服务器磁盘。由此可以有效防止大量终端同时访问服务器磁盘。
[0048]在本实施例的一种实现方式中,加锁程序为自旋锁程序。自旋锁提供了一种对资源进行互斥使用的机制,即在任何时刻,最多只能允许一个保持者访问资源,也就说,在任何时刻最多只能有一个执行单元获得加锁。
[0049 ] 103、若服务器未对其他终端加锁,则在加锁后访问服务器磁盘,读取数据内容。
[0050]如果加锁程序空闲,即当前没有其他终端加锁访问服务器磁盘,则服务器执行加锁程序对请求加锁的终端进行加锁。在完成加锁后,终端被允许访问服务器磁盘,向从中读取对应内容标识的数据内容。
[0051]104、若服务器已对其他终端加锁,则等待其他终端解锁后再次向服务器请求加锁。
[0052]如果加锁程序被占用,即当前存在其他终端使用加锁服务访问服务器磁盘,则月艮务器不对终端的加锁请求进行响应。在未接收到加锁响应之前,终端处于持续等待的状态,等待服务器对其他终端进行解锁后响应该终端的加锁请求。
[0053]当加锁的其他终端完成对服务器磁盘的访问后,服务器对其进行解锁,解锁后加锁程序空闲,服务器对等待加锁的终端进行加锁,以使加锁后的终端访问服务器磁盘。
[0054]当有多个终端等待加锁时,服务器可以按照请求加锁的先后顺序对各个终端的加锁请求进行响应,也可以按照终端的优先级高低或者打分高低进行加锁响应。其中,打分是指终端侧给出的针对业务的打分,使用者可以根据自身的业务需求对数据请求进行打分,分数越高代表业务越紧急。终端在上报数据请求时将分数一同发送给服务器。
[0055]本发明实施例提供的访问服务器磁盘的方法,
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1