一种磁盘的确定方法及装置与流程

文档序号:14155057阅读:122来源:国知局

本发明涉及通信领域,更具体的说,涉及一种磁盘的确定方法及装置。



背景技术:

内容分发网络cdn服务器中包括多块磁盘,这些磁盘中保存有大量的视频文件。其中,cdn服务器是为视频业务提供服务的视频cdn服务器。

当这些磁盘中的一个或多个磁盘发生损坏时,此时需要将损坏的磁盘更换为新的磁盘,而新的磁盘是格式化之后就进行使用。因此,新的磁盘上并没有存有视频文件,当cdn服务器根据一致性哈希算法将用户请求定位到新的磁盘上时,由于新的磁盘上并没有存储有视频文件,此时cdn服务器会指定该新的磁盘进行回源操作,以得到与用户请求相对应的视频文件。其中,回源是指从另一台服务器中下载与用户请求相对应的视频文件。

由于一块磁盘中存储的视频文件的数量较多,一般多达几十亿个视频文件,当磁盘损坏时,针对损坏的磁盘的每个用户请求,均需要进行回源操作,进而造成回源量较大,由于回源会占用较多的网络资源,进而会造成网络堵塞问题。



技术实现要素:

有鉴于此,本发明提供一种磁盘的确定方法及装置,以解决当磁盘损坏时,针对损坏的磁盘的每个用户请求,均需要进行回源操作,会造成回源量较大,进而占用较多的网络资源造成网络堵塞的问题。

为解决上述技术问题,本发明采用了如下技术方案:

一种磁盘的确定方法,其特征在于,包括:

接收获取文件的请求;

判断为所述请求提供服务的服务磁盘中是否保存有所述请求对应的文件;其中,所述服务磁盘为损坏磁盘进行修复和挂载后的磁盘;

若所述服务磁盘中未保存有所述文件,确定上一次处理所述请求的历史服务磁盘;

若所述历史服务磁盘中保存有所述文件,将所述历史服务磁盘作为响应所述请求的磁盘。

优选地,若所述服务磁盘中保存有所述文件时,还包括:

将所述服务磁盘作为响应所述请求的磁盘。

优选地,将所述历史服务磁盘作为响应所述请求的磁盘之后,还包括:

将所述历史服务磁盘中保存的所述文件保存到所述服务磁盘中。

优选地,若所述历史服务磁盘中未保存有所述文件时,还包括:

从包含有所述文件的服务器中获取所述文件;

将所述文件保存到所述服务磁盘中;

将所述服务磁盘作为响应所述请求的磁盘。

优选地,确定上一次处理所述请求的历史服务磁盘之前,还包括:

实时读取所述服务磁盘的新文件的增加速度和所述服务磁盘的剩余存储空间百分比;其中,所述新文件为新保存到所述服务磁盘中的文件;

当所述新文件的增加速度不小于第一预设数值,和/或所述剩余存储空间百分比不小于第二预设数值,执行确定所述上一次处理所述请求的历史服务磁盘的步骤。

优选地,

所述服务磁盘为内容分发网络cdn服务器中包括所述服务磁盘在内的所有能够正常使用的磁盘进行一致性哈希算法确定的磁盘;

所述历史服务磁盘为所述cdn服务器中包括所述服务磁盘之外的所有能够正常使用的磁盘进行一致性哈希算法确定的磁盘。

一种磁盘的确定装置,包括:

请求接收模块,用于接收获取文件的请求;

判断模块,用于判断为所述请求提供服务的服务磁盘中是否保存有所述请求对应的文件;其中,所述服务磁盘为损坏磁盘进行修复和挂载后的磁盘;

第一确定模块,用于若所述服务磁盘中未保存有所述文件,确定上一次处理所述请求的历史服务磁盘;

第二确定模块,用于若所述历史服务磁盘中保存有所述文件,将所述历史服务磁盘作为响应所述请求的磁盘。

优选地,还包括:

第三确定模块,用于若所述服务磁盘中保存有所述文件时,将所述服务磁盘作为响应所述请求的磁盘。

优选地,还包括:

第一保存模块,用于所述第二确定模块将所述历史服务磁盘作为响应所述请求的磁盘后,将所述历史服务磁盘中保存的所述文件保存到所述服务磁盘中。

优选地,还包括:

获取模块,用于若所述历史服务磁盘中未保存有所述文件时,从包含有所述文件的服务器中获取所述文件;

第二保存模块,用于将所述文件保存到所述服务磁盘中;

第三确定模块,用于将所述服务磁盘作为响应所述请求的磁盘。

优选地,还包括:

读取模块,用于实时读取所述服务磁盘的新文件的增加速度和所述服务磁盘的剩余存储空间百分比;其中,所述新文件为新保存到所述服务磁盘中的文件;

所述第一确定模块,还用于当所述新文件的增加速度不小于第一预设数值,和/或所述剩余存储空间百分比不小于第二预设数值,确定所述上一次处理所述请求的历史服务磁盘。

优选地,

所述服务磁盘为内容分发网络cdn服务器中包括所述服务磁盘在内的所有能够正常使用的磁盘进行一致性哈希算法确定的磁盘;

所述历史服务磁盘为所述cdn服务器中包括所述服务磁盘之外的所有能够正常使用的磁盘进行一致性哈希算法确定的磁盘。

相较于现有技术,本发明具有以下有益效果:

本发明提供了一种磁盘的确定方法及装置,本发明中若历史服务磁盘中保存有获取文件的请求对应的文件,将历史服务磁盘作为响应请求的磁盘,此时就不需要使用服务磁盘进行回源操作,进而不会占用网络资源,减少网络堵塞。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明提供的一种磁盘的确定方法的方法流程图;

图2为本发明提供的另一种磁盘的确定方法的方法流程图;

图3为本发明提供的一种磁盘的确定装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供了一种磁盘的确定方法,其中,该确定方法应用于cdn服务器。其中,cdn服务器为视频业务提供服务的视频cdn服务器。

参照图1,该确定方法可以包括:

s11、接收获取文件的请求;

其中,文件可以是视频文件,也可以是其他类型的文件,如请求一个文章等。当该文件为视频文件时,该请求为获取一个视频文件。

具体的,当用户在使用视频软件观看视频时,如果用户想要观看一个成龙演的电影,此时通过点击视频软件上的该电影的图标,此时cdn服务器会接收到该请求。该请求表征用户想要获取一个视频文件的具体视频内容。

s12、判断为所述请求提供服务的服务磁盘中是否保存有所述请求对应的文件;若为所述请求提供服务的服务磁盘中未保存有所述请求对应的文件,执行步骤s13,若为所述请求提供服务的服务磁盘中保存有所述请求对应的文件,执行步骤s15。

其中,所述服务磁盘为损坏磁盘进行修复和挂载后的磁盘。

具体的,当为请求提供服务的服务磁盘为损坏后进行修复和挂载后的磁盘时,查看服务磁盘中是否保存有所述请求对应的文件。需要说明的是,此时服务磁盘可能是一个无损坏的磁盘,也可能是一个损坏后进行修复且挂载后的磁盘。其中,挂载是指为磁盘分配一个盘符。损坏后进行修复及挂载是指当一个磁盘损坏后,当重新使用这块磁盘时,需要对这块磁盘进行修复,修复完成后,将该磁盘挂载到服务器中,这块磁盘就可以正常使用。其中,修复可以是格式化操作。本实施例中,服务磁盘为损坏后进行修复和挂载后的磁盘。

其中,所述服务磁盘为内容分发网络cdn服务器中包括所述服务磁盘在内的所有能够正常使用的磁盘进行一致性哈希算法确定的磁盘。则确定服务磁盘的过程可以包括:

确定请求对应的服务磁盘时,可以采用一致性哈希算法。其中,一致性哈希算法是一种文件定位方法,通过一致性哈希算法,可以得到所需的视频文件存储在哪个磁盘中。进而能够根据一致性哈希算法,找到为用户请求提供服务的服务磁盘。

具体的,假设需要将x个文件存储在y个磁盘中,则首先可以使用消息摘要算法第五版md5算法计算出每个磁盘的哈希值,并将每个磁盘的哈希值映射到一个圆上的一个位置中,然后采用md5算法计算出每个文件的哈希值,将每个文件的哈希值映射到一个圆上的一个位置中,最后分析每个文件,从文件映射到圆上的位置开始顺时针查找,将文件保存到找到的第一个磁盘中。

上面介绍了一致性哈希算法,将用户请求获取的文件和cdn服务器中的磁盘进行一致性哈希计算,就能够确定出应该存储该文件的服务磁盘。

s13、确定上一次处理所述请求的历史服务磁盘;

若服务磁盘中未保存有视频文件,此时去确定上一次处理所述请求的历史服务磁盘。具体的,在服务磁盘进行修复和挂载的过程中,当接收到一个请求,并且通过一致性哈希算法确定该请求应该是服务磁盘进行服务,但是由于服务磁盘不能够正常工作,此时会去重新确定一个磁盘来为用户服务,即使用历史服务磁盘为用户服务。

具体的,所述历史服务磁盘为所述cdn服务器中包括所述服务磁盘之外的所有能够正常使用的磁盘进行一致性哈希算法确定的磁盘。

其中,确定历史服务磁盘的过程是:

以除去服务磁盘之外的所有磁盘为基础,采用一致性哈希算法计算该请求对应的历史服务磁盘,需要说明的是,服务器以前可能接收到该请求,也可能没有接收到该请求,所以需要确认下是否有对应该请求对应的历史服务磁盘。

s14、若所述历史服务磁盘中保存有所述文件,将所述历史服务磁盘作为响应所述请求的磁盘。

具体的,若确定了历史服务磁盘后,该历史服务磁盘中保存有该文件,此时将历史服务磁盘作为响应请求的磁盘。具体的,历史服务磁盘为用户提供视频文件的内容。

可选的,在本实施例的基础上,将所述历史服务磁盘作为响应所述请求的磁盘之后,还包括:

将历史服务磁盘中保存的文件保存到服务磁盘中。

具体的,将视频文件保存到服务磁盘中的预设文件夹下。其中,文件是指用户请求的该文件。

本步骤中,将视频文件保存到服务磁盘后,当再次接收到相同的请求时,就可以使用服务磁盘为用户提供视频文件,不再需要确定上一次处理该请求的历史服务磁盘,使确定响应请求的磁盘的过程更简单。

s15、将服务磁盘作为响应请求的磁盘。

具体的,服务磁盘为用户提供视频文件的内容。用户可以直接从服务磁盘上下载该视频文件。

需要说明的是,服务磁盘在被修复和挂载的时候,其他磁盘中可能接收到服务磁盘对应的请求,此时会将请求对应的视频文件保存在自身中,而在服务磁盘被使用一段时间后,由于接收到对应的请求,以及获取了请求对应的视频文件,所以服务磁盘中会保存有一部分的视频文件。

本实施例中,若历史服务磁盘中保存有获取文件的请求对应的文件,将历史服务磁盘作为响应请求的磁盘,此时就不需要使用服务磁盘进行回源操作,进而不会占用网络资源,减少网络堵塞。

并且,将该文件保存到服务磁盘中,进而再次接收到该请求时,可以直接使用服务磁盘为用户服务,简化服务流程。

为了本领域的技术人员能够更加清楚的明白本申请,现举例介绍。

以下具体实现中,假设服务器一共有x块磁盘,损坏一块磁盘后还剩(x-1)块磁盘。

当某服务器某损坏磁盘(记为磁盘n)损坏后进行修复和挂载之后,有新的请求到达这台视频cdn服务器时,服务器执行以下流程:

1.按照x块磁盘进行一致性哈希计算,找到请求对应的文件预分配的磁盘,若文件所在磁盘为n,则执行步骤2;

2.查看磁盘n中是否存储有此文件,若存储有此文件,则使用磁盘n为此请求服务,结束;若不存储有此文件,则执行步骤3;

3.按照(x-1)块磁盘进行哈希计算(计算中将磁盘n去除;这种计算方式即是认为在磁盘n尚未修复时,请求应该分配到哪个磁盘);若计算结果为磁盘m,查看磁盘m是否存储有此文件;

4.若磁盘m存储有此文件,则使用磁盘m为此条请求服务,同时将磁盘m上的此文件按照拷贝至磁盘n,结束;若磁盘m不存有此文件,则仍然使用磁盘n为此条请求服务,并进行回源,结束。

可选的,在图1对应的实施例的基础上,若历史服务磁盘中未保存有文件时,还包括:

从包含有文件的服务器中获取文件,将文件保存到服务磁盘中,并将服务磁盘作为响应用户请求的磁盘。

具体的,若历史服务磁盘中未保存有文件时,说明安装有服务磁盘和历史服务磁盘的服务器中并没有存在该请求对应的文件,此时需要去其他的服务器中查找该文件。

其中,本实施例中的服务器为边缘节点,边缘节点需要逐级向上级节点请求此文件,直到找到存储该文件对应的服务器为止,此时,将该文件保存到服务磁盘中。

需要说明的是,从包含有文件的服务器中获取文件,将文件保存到服务磁盘中,即为回源操作。

本实施例中,当包含有历史服务磁盘的服务器没有保存有请求对应的文件时,需要向其他服务器请求获得该文件,进而才能够为用户提供文件。

可选的,在上述任一实施例的基础上,确定上一次处理所述请求的历史服务磁盘之前,还包括:

s23、实时读取所述服务磁盘的新文件的增加速度和所述服务磁盘的剩余存储空间百分比;当新文件的增加速度不小于第一预设数值,和/或者服务磁盘的剩余存储空间百分比不小于第二预设数值,说明该服务磁盘上面保存的视频文件的数量较少,此时可以执行步骤s24;当新文件的增加速度小于第一预设数值,和/或者服务磁盘的剩余存储空间百分比小于第二预设数值,说明该服务磁盘上面保存的视频文件的数量较多,若历史服务磁盘中未保存有文件时,此时可以执行步骤s27。

其中,所述新文件为新保存到所述服务磁盘中的文件。具体的,由于服务磁盘被修复和挂载完成后,会不断为不同的请求进行服务,由于服务磁盘中保存的文件较少,进而当用户请求的文件没保存在服务磁盘中时,就会从其他历史服务磁盘或者是服务器中获取用户请求的文件,并保存到服务磁盘中,这些文件即为新文件。由于从其他历史服务磁盘或者是服务器中获取用户请求的文件不断被保存到服务磁盘中,进而新文件的增加速度和剩余存储空间百分比就会不断变化。

s27、从包含有所述文件的服务器中获取所述文件,并将所述文件保存到所述服务磁盘中;

具体的,当服务磁盘的新文件增加速度小于第一预设数值,或者服务磁盘的剩余存储空间百分比小于第二预设数值,说明服务磁盘上面已经保存了一定数量的视频文件,此时当服务磁盘中没有保存有请求的文件时,可以使服务磁盘进行回源操作,从其他服务器中得到视频文件。此时,由于服务磁盘上面已经保存了一定数量的视频文件,所以服务磁盘对应的回源操作也不会特别多,不会占用特别多的网络资源。

需要说明的是,本实施例中的其他步骤,均在上述实施例中进行了说明,请参照上述实施例中的相应内容,在此不再赘述。

本实施例中,通过判断服务磁盘的新文件的增加速度是否小于第一预设数值,和/或者判断服务磁盘的剩余存储空间百分比是否小于第二预设数值,来执行不同的操作,能够尽量减少回源操作,同时更快捷的处理用户请求,进而不会占用网络资源,减少网络堵塞以及提高服务质量。

可选的,在上述磁盘的确定方法的实施例的基础上,本发明的另一实施例中提供了一种磁盘的确定装置,参照图3,包括:

请求接收模块101,用于接收获取文件的请求;

判断模块102,用于判断为所述请求提供服务的服务磁盘中是否保存有所述请求对应的文件;其中,所述服务磁盘为损坏磁盘进行修复和挂载后的磁盘;

第一确定模块103,用于若所述服务磁盘中未保存有所述文件,确定上一次处理所述请求的历史服务磁盘;

第二确定模块104,用于若所述历史服务磁盘中保存有所述文件,将所述历史服务磁盘作为响应所述请求的磁盘。

进一步,还包括:

第三确定模块,用于若所述服务磁盘中保存有所述文件时,将所述服务磁盘作为响应所述请求的磁盘。

进一步,还包括:

第一保存模块,用于所述第二确定模块将所述历史服务磁盘作为响应所述请求的磁盘后,将所述历史服务磁盘中保存的所述文件保存到所述服务磁盘中。

进一步,所述服务磁盘为内容分发网络cdn服务器中包括所述服务磁盘在内的所有能够正常使用的磁盘进行一致性哈希算法确定的磁盘;

所述历史服务磁盘为所述cdn服务器中包括所述服务磁盘之外的所有能够正常使用的磁盘进行一致性哈希算法确定的磁盘。

本实施例中,若历史服务磁盘中保存有获取文件的请求对应的文件,将历史服务磁盘作为响应请求的磁盘,此时就不需要使用服务磁盘进行回源操作,进而不会占用网络资源,减少网络堵塞。

并且,将该文件保存到服务磁盘中,进而再次接收到该请求时,可以直接使用服务磁盘为用户服务,简化服务流程。

需要说明的是,本实施例中的各个模块的工作过程,请参照上述实施例中的相应说明,在此不再赘述。

可选的,在上述磁盘的确定装置的实施例的基础上,还包括:

获取模块,用于若所述历史服务磁盘中未保存有所述文件时,从包含有所述文件的服务器中获取所述文件;

第二保存模块,用于将所述文件保存到所述服务磁盘中;

第三确定模块,用于将所述服务磁盘作为响应所述请求的磁盘。

本实施例中,当包含有历史服务磁盘的服务器没有保存有请求对应的文件时,需要向其他服务器请求获得该文件,进而才能够为用户提供文件。

需要说明的是,本实施例中的各个模块的工作过程,请参照上述实施例中的相应说明,在此不再赘述。

可选的,在上述任一磁盘的确定装置的实施例的基础上,还包括:

读取模块,用于实时读取所述服务磁盘的新文件的增加速度和所述服务磁盘的剩余存储空间百分比;其中,所述新文件为新保存到所述服务磁盘中的文件;

所述第一确定模块,还用于当所述新文件的增加速度不小于第一预设数值,和/或所述剩余存储空间百分比不小于第二预设数值,确定所述上一次处理所述请求的历史服务磁盘。

本实施例中,通过判断服务磁盘的新文件的增加速度是否小于第一预设数值,和/或者判断服务磁盘的剩余存储空间百分比是否小于第二预设数值,来执行不同的操作,能够尽量减少回源操作,同时更快捷的处理用户请求,进而不会占用网络资源,减少网络堵塞以及提高服务质量。

需要说明的是,本实施例中的各个模块的工作过程,请参照上述实施例中的相应说明,在此不再赘述。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1