一种CDN边缘节点文件的存储方法及装置与流程

文档序号:13164068阅读:468来源:国知局
一种CDN边缘节点文件的存储方法及装置与流程

本发明涉及文件存储技术领域,更具体的,涉及一种cdn边缘节点文件的存储方法及装置。



背景技术:

cdn的全称是contentdeliverynetwork,即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置节点服务器,构成在现有的互联网基础之上的一层智能虚拟网络,cdn系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决internet网络拥挤的状况,提高用户访问网站的响应速度。

cdn由于其优越性被广泛应用于视频存储技术领域,视频cdn主要由中心节点与边缘节点两部分构成。在视频cdn网络中,中心节点主要由全局负载均衡器构成,全局负载均衡器通过预先定义好的策略,将当前最接近用户的边缘节点地址提供给用户。同时,全局负载均衡器还与其他边缘节点保持通信,收集各节点信息,确保不会将用户调度到不可用或不健康的边缘节点。边缘节点是一种离用户最近的高速缓存服务器。

通过全局负载均衡器控制,用户的请求被指向离他最近的节点,节点中的高速缓存服务器就像与用户处在同一局域网,能够更快的响应用户的请求。为了更快更全面的响应用户的请求,需要边缘节点服务器容量更大且稳定。

目前边缘节点文件存储技术中,分别将所有sata数据盘和ssd数据盘组建一个raid5,数据全部存储在sata盘组建的raid5中;然后将所有ssd数据盘组建一个raid5,数据全部存储在ssd盘组建的raid5中。

在以上方法中,存在技术缺陷:使用raid5后,当一块大容量硬盘发生故障,替换故障盘后,rebuild时间长达几天,rebuild期间如果继续发生硬盘故障,整个raid5数据都将丢失,造成故障恢复周期长的问题。



技术实现要素:

有鉴于此,本发明提供了一种cdn边缘节点文件的存储方法及装置,文件分布式存储在边缘节点中的每个硬盘中,使边缘节点容量最大化,提高边缘节点服务器存在故障盘后的服务能力和故障恢复能力。

具体技术方案如下:

一种cdn边缘节点文件的存储方法,包括:

获取支持nonraid模式的raid卡,并通过所述raid卡使硬盘组与边缘节点服务器相连;

对所述硬盘组进行初始化,得到所述硬盘组中每个硬盘的硬盘名;

依据一致性哈希算法计算所述硬盘组中每个硬盘的硬盘名和每个待存储文件的文件名的哈希值,并根据每个所述硬盘的硬盘名和每个所述待存储文件的文件名的哈希值以及预设规则,分别将每个所述待存储文件存储到相应的所述硬盘中。

优选的,所述对所述硬盘组进行初始化,得到所述硬盘组中每个硬盘的硬盘名,包括:

对所述硬盘组中的各个硬盘进行识别,分别确定各个所述硬盘的设备符名称和类型,所述硬盘类型为sata硬盘或ssd硬盘;

分别对各个所述硬盘进行格式化分区;

根据所述硬盘组中硬盘的数量,建立硬盘序列;

根据对各个所述硬盘的遍历顺序,分别将各个所述硬盘挂载到所述硬盘序列中,并分别将每个所述硬盘的序列值作为相应硬盘的硬盘名。

优选的,所述依据一致性哈希算法计算所述硬盘组中每个硬盘的硬盘名和每个待存储文件的文件名的哈希值,并根据每个所述硬盘的硬盘名和每个所述待存储文件的文件名的哈希值以及预设规则,分别将每个所述待存储文件存储到相应的所述硬盘中,包括:

依据一致性哈希算法,对各个存储空间未满的所述硬盘的硬盘名进行哈希,计算出每个存储空间未满的所述硬盘的硬盘名的哈希值,根据每个存储空间未满的所述硬盘的硬盘名的哈希值,各个存储空间未满的所述硬盘构成一个哈希环,得到每个存储空间未满的所述硬盘在所述哈希环上的位置;

依据一致性哈希算法,对各个所述待存储文件的文件名进行哈希,计算出每个所述待存储文件的文件名的哈希值;

根据每个所述待存储文件的文件名与每个所述硬盘的硬盘名的哈希值,将每个待存储文件存储到所述哈希环上的相应硬盘中,使每个所述待存储文件的文件名的哈希值与相应存储硬盘的硬盘名的哈希值的差值最小,且每个所述待存储文件的文件名的哈希值小于对应存储硬盘的硬盘名的哈希值。

优选的,所述硬盘组为sata硬盘组,在所述分别将每个所述待存储文件存储到相应的所述硬盘中之后,所述方法还包括:

在预设时间段内,确定在sata硬盘组中已存储的文件中的多个热点文件;

依据一致性哈希算法计算每个所述热点文件的文件名的哈希值和ssd硬盘组中每个ssd硬盘的硬盘名的哈希值,并根据每个所述热点文件的文件名的哈希值和每个所述ssd硬盘的硬盘名的哈希值以及预设规则,分别将每个所述热点文件转存到相应的所述ssd硬盘中。

优选的,所述在预设时间段内,确定在sata硬盘组中已存储的文件中的多个热点文件,包括:

在预设时间段内,统计所述sata硬盘组中存储的每个文件的访问频次;

按访问频次由高到低对所述sata硬盘组中存储的各个文件进行排序;

将所述排序中预设比例的高访问频次的文件确定为热点文件。

优选的,所述依据一致性哈希算法计算每个所述热点文件的文件名的哈希值和ssd硬盘组中每个ssd硬盘的硬盘名的哈希值,并根据每个所述热点文件的文件名的哈希值和每个所述ssd硬盘的硬盘名的哈希值以及预设规则,分别将每个所述热点文件转存到相应的所述ssd硬盘中,包括:

依据一致性哈希算法,对各个存储空间未满的所述ssd硬盘的硬盘名进行哈希,计算出每个存储空间未满的所述ssd硬盘的硬盘名的哈希值,根据每个存储空间未满的所述ssd硬盘的硬盘名的哈希值,各个存储空间未满的所述ssd硬盘构成一个哈希环,得到每个存储空间未满的所述ssd硬盘在所述哈希环上的位置;

依据一致性哈希算法,对各个所述热点文件的文件名进行哈希,计算出每个所述热点文件的文件名的哈希值;

根据每个所述热点文件的文件名与每个ssd硬盘的硬盘名的哈希值,将每个所述热点文件转存到所述哈希环上的相应ssd硬盘中,使每个所述热点文件的文件名的哈希值与相应存储ssd硬盘的硬盘名的哈希值的差值最小,且每个所述热点文件的文件名的哈希值小于对应存储ssd硬盘的硬盘名的哈希值。

优选的,所述方法还包括:

当在相应的哈希环中不存在大于待存储文件的文件名的哈希值或热点文件的文件名的哈希值的硬盘时,将所述待存储文件或所述热点文件存储在相应哈希环中的起始硬盘上。

一种cdn边缘节点文件的存储装置,包括:

获取单元,用于获取支持nonraid模式的raid卡,并通过所述raid卡使硬盘组与边缘节点服务器相连;

初始化单元,用于对所述硬盘组进行初始化,得到所述硬盘组中每个硬盘的硬盘名;

第一存储单元,用于依据一致性哈希算法计算所述硬盘组中每个硬盘的硬盘名和每个待存储文件的文件名的哈希值,并根据每个所述硬盘的硬盘名和每个所述待存储文件的文件名的哈希值以及预设规则,分别将每个所述待存储文件存储到相应的所述硬盘中。

优选的,所述初始化单元包括:

识别子单元,用于对所述硬盘组中的各个硬盘进行识别,分别确定各个所述硬盘的设备符名称和类型,所述硬盘类型为sata硬盘或ssd硬盘;

格式化分区子单元,用于分别对各个所述硬盘进行格式化分区;

建立子单元,用于根据所述硬盘组中硬盘的数量,建立硬盘序列;

挂载子单元,用于根据对各个所述硬盘的遍历顺序,分别将各个所述硬盘挂载到所述硬盘序列中,并分别将每个所述硬盘的序列值作为相应硬盘的硬盘名。

优选的,所述第一存储单元包括:

第一计算子单元,用于依据一致性哈希算法,对各个存储空间未满的所述硬盘的硬盘名进行哈希,计算出每个存储空间未满的所述硬盘的硬盘名的哈希值,根据每个存储空间未满的所述硬盘的硬盘名的哈希值,各个存储空间未满的所述硬盘构成一个哈希环,得到每个存储空间未满的所述硬盘在所述哈希环上的位置;

第二计算子单元,用于依据一致性哈希算法,对各个所述待存储文件的文件名进行哈希,计算出每个所述待存储文件的文件名的哈希值;

第一存储子单元,用于根据每个所述待存储文件的文件名与每个所述硬盘的硬盘名的哈希值,将每个待存储文件存储到所述哈希环上的相应硬盘中,使每个所述待存储文件的文件名的哈希值与相应存储硬盘的硬盘名的哈希值的差值最小,且每个所述待存储文件的文件名的哈希值小于对应存储硬盘的硬盘名的哈希值。

优选的,所述硬盘组为sata硬盘组,所述装置还包括:

确定单元,用于在预设时间段内,确定在sata硬盘组中已存储的文件中的多个热点文件;

第二存储单元,用于依据一致性哈希算法计算每个所述热点文件的文件名的哈希值和ssd硬盘组中每个ssd硬盘的硬盘名的哈希值,并根据每个所述热点文件的文件名的哈希值和每个所述ssd硬盘的硬盘名的哈希值以及预设规则,分别将每个所述热点文件转存到相应的所述ssd硬盘中。

优选的,所述确定单元包括:

统计子单元,用于在预设时间段内,统计所述sata硬盘组中存储的每个文件的访问频次;

排序子单元,用于按访问频次由高到低对所述sata硬盘组中存储的各个文件进行排序;

确定子单元,用于将所述排序中预设比例的高访问频次的文件确定为热点文件。

优选的,所述第二存储单元包括:

第三计算子单元,用于依据一致性哈希算法,对各个存储空间未满的所述ssd硬盘的硬盘名进行哈希,计算出每个存储空间未满的所述ssd硬盘的硬盘名的哈希值,根据每个存储空间未满的所述ssd硬盘的硬盘名的哈希值,各个存储空间未满的所述ssd硬盘构成一个哈希环,得到每个存储空间未满的所述ssd硬盘在所述哈希环上的位置;

第四计算子单元,用于依据一致性哈希算法,对各个所述热点文件的文件名进行哈希,计算出每个所述热点文件的文件名的哈希值;

第二存储子单元,用于根据每个所述热点文件的文件名与每个ssd硬盘的硬盘名的哈希值,将每个所述热点文件转存到所述哈希环上的相应ssd硬盘中,使每个所述热点文件的文件名的哈希值与相应存储ssd硬盘的硬盘名的哈希值的差值最小,且每个所述热点文件的文件名的哈希值小于对应存储ssd硬盘的硬盘名的哈希值。

优选的,所述装置还包括:

第三存储单元,用于当在相应的哈希环中不存在大于待存储文件的文件名的哈希值或热点文件的文件名的哈希值的硬盘时,将所述待存储文件或所述热点文件存储在相应哈希环中的起始硬盘上。

优选的,所述装置还包括:

第三存储单元,用于当在相应的哈希环中不存在大于待存储文件的文件名的哈希值或热点文件的文件名的哈希值的硬盘时,将所述待存储文件或所述热点文件存储在相应哈希环中的起始硬盘上。

相对于现有技术,本发明的有益效果如下:

本发明提供的cdn边缘节点文件的存储方法及装置,选用支持nonraid模式的raid卡,每块硬盘处于独立运行的状态,避免了现有技术中组建raid5需要一块硬盘做冗余盘,提高了边缘节点服务器的最大容量,覆盖了更多的文件,减少回源请求,提高了用户体验;本发明根据每个所述硬盘的硬盘名和每个所述待存储文件的文件名的哈希值以及预设规则,分别将每个所述待存储文件存储到相应的所述硬盘中,保证待存储文件均匀的存储在各个硬盘中,由于不需要一块硬盘做冗余盘,每个硬盘独立存在并存储文件,即使出现两块及两块以上的故障盘,也不会导致整个服务器不可用,且更换故障盘时,只需重新同步该边缘节点服务器属于该故障盘的数据,大幅缩短了故障时间,提高了系统的稳定性。

附图说明

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

图1为本发明实施例公开的一种cdn边缘节点文件的存储方法流程图;

图2为本发明实施例公开的另一种cdn边缘节点文件的存储方法流程图;

图3为本发明实施例公开的又一种cdn边缘节点文件的存储方法流程图;

图4为本发明实施例公开的再一种cdn边缘节点文件的存储方法流程图;

图5为本发明实施例公开的一种cdn边缘节点文件的存储装置结构示意图;

图6为本发明实施例公开的另一种cdn边缘节点文件的存储装置结构示意图。

具体实施方式

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

请参阅图1,本实施例公开了一种cdn边缘节点文件的存储方法,具体包括以下步骤:

s101:获取支持nonraid模式的raid卡,并通过所述raid卡使硬盘组与边缘节点服务器相连;

nonraid模式为不使用raid模式,每块硬盘为一个逻辑盘,没有数据块分条。

选用支持nonraid模式的raid卡,每块硬盘处于独立运行状态,避免了现有技术中组建raid5需要一块硬盘做冗余盘,所有硬盘都可以存储文件,提高了边缘节点服务器的最大容量,增加了边缘节点服务器的有效文件量,覆盖了更多的文件,当边缘节点服务器中发生硬盘故障时,调度系统进行故障冗余,把原本访问故障盘的请求调度到其他边缘节点,减少回源请求,提高了用户体验。

边缘节点服务器中的硬盘通过数据线统一连接raid卡,raid卡再与边缘节点服务器的主板相连接。

优选的,所述硬盘组为sata硬盘组。

sata硬盘组包括多个sata硬盘,sata(serialata)口的硬盘又叫串口硬盘,sata硬盘采用串行连接方式,串行ata总线使用嵌入式时钟信号,具备了更强的纠错能力,与以往的硬盘相比其最大的区别在于能对传输指令进行检查,如果发现错误会自动矫正,这在很大程度上提高了数据传输的可靠性。串行接口还具有结构简单、支持热插拔的优点。

s102:对所述硬盘组进行初始化,得到所述硬盘组中每个硬盘的硬盘名;

具体的,s102的执行过程如下:

对所述硬盘组中的各个硬盘进行识别,分别确定各个所述硬盘的设备符名称和类型,所述硬盘类型为sata硬盘或ssd硬盘;

设备符名称表征每个所述硬盘的标识,windows下的设备是以"\device\[设备名]”形式命名的。例如:磁盘分区的c盘,d盘的设备符名称就分别为"\device\harddiskvolume1"、"\device\harddiskvolume2"。

分别对各个所述硬盘进行格式化分区;

格式化分区是指对硬盘中的分区(partition)进行初始化的一种操作,这种操作导致现有的硬盘中所有的文件被清除,使存储系统更加稳定。格式化分区是对硬盘组进行初始化的必要步骤,不进行格式化区分,硬盘组中的硬盘不能被使用。

根据所述硬盘组中硬盘的数量,建立硬盘序列;

根据对各个所述硬盘遍历顺序,分别将各个所述硬盘挂载到所述硬盘序列中,并分别将每个所述硬盘的序列值作为相应硬盘的硬盘名。

具体的,通过smartctl命令识别硬盘是sata硬盘还是ssd硬盘。

假设有12块硬盘,硬盘序列为data1,data2,…,data12。

每个硬盘在服务器中都有各自的设备符名称,为了便于哈希值计算,根据对各个所述硬盘的遍历顺序,建立每个硬盘的设备符名称与硬盘序列中序列值的映射关系,即遍历的第一个硬盘对应的序列值为data1,遍历的第二个硬盘对应的序列值为data2,以此类推。分别将各个所述硬盘挂载到所述硬盘序列中,也就是说,经过挂载后,每个硬盘都对应一个序列值,并将序列值作为硬盘名,例如,遍历的第一个硬盘的硬盘名为data1。

本实施例自动初始化硬盘,自动识别硬盘的设备符名称、类型,以及每类硬盘的数量,将基于人工手动配置raid过程变为了自动发现并完成初始化,节省了人力与时间,提高了初始化操作的灵活性。

s103:依据一致性哈希算法计算所述硬盘组中每个硬盘的硬盘名和每个待存储文件的文件名的哈希值,并根据每个所述硬盘的硬盘名和每个所述待存储文件的文件名的哈希值以及预设规则,分别将每个所述待存储文件存储到相应的所述硬盘中。

具体的,请参阅图2,s103的执行过程如下:

s201:依据一致性哈希算法,对各个存储空间未满的所述硬盘的硬盘名进行哈希,计算出每个存储空间未满的所述硬盘的硬盘名的哈希值,根据每个存储空间未满的所述硬盘的硬盘名的哈希值,各个存储空间未满的所述硬盘构成一个哈希环,得到每个存储空间未满的所述硬盘在所述哈希环上的位置;

s202:依据一致性哈希算法,对各个所述待存储文件的文件名进行哈希,计算出每个所述待存储文件的文件名的哈希值;

s203:根据每个所述待存储文件的文件名与每个所述硬盘的硬盘名的哈希值,将每个待存储文件存储到所述哈希环上的相应硬盘中,使每个所述待存储文件的文件名的哈希值与相应存储硬盘的硬盘名的哈希值的差值最小,且每个所述待存储文件的文件名的哈希值小于对应存储硬盘的硬盘名的哈希值。

可以理解的是,每个硬盘上会存储多个文件,其中,文件可以为任意类型的文件,例如,音频文件、视频文件等。直到磁盘空间为零,也就是说,在存储文件时,只将文件存储在存储空间未满的硬盘中。

每个硬盘都有各自的硬盘名,例如,data1,data2,等等,每个待存储文件也有各自预先设定好的文件名,例如,file1,file2,等等。

依据一致性哈希算法,对各个存储空间未满的所述硬盘的硬盘名进行哈希,计算出每个存储空间未满的所述硬盘的硬盘名的哈希值,例如,data1的哈希值为node_hashcode,根据每个存储空间未满的所述硬盘的硬盘名的哈希值,各个存储空间未满的所述硬盘构成一个哈希环,得到每个存储空间未满的所述硬盘在所述哈希环上的位置,然后,依据一致性哈希算法,对各个所述待存储文件的文件名进行哈希,计算出每个所述待存储文件的文件名的哈希值,例如file1的哈希值为key_hashcode。这样,每个硬盘的硬盘名的哈希值与每个待存储文件的文件名的哈希值为相同类型的值,便于根据预设规则将待存储文件均匀的存储在各个硬盘中。

根据每个所述硬盘和每个所述待存储文件的哈希值以及预设规则,分别将每个所述待存储文件存储到相应的所述硬盘中。具体的,所述预设规则为:

每个所述待存储文件的文件名的哈希值与相应存储硬盘的硬盘名的哈希值的差值最小,且每个所述待存储文件的文件名的哈希值小于对应存储硬盘的硬盘名的哈希值。

例如:当每个待存储文件的文件名的哈希值分别为1,5,9,每个硬盘的硬盘名的哈希值分别为2,6,10。那就将1对应的待存储文件存储在2对应的硬盘中,5对应的待存储文件存储在6对应的硬盘中,9对应的待存储文件存储在10对应的硬盘中。

所述待存储文件的文件名的哈希值小于对应存储位置的硬盘的硬盘名的哈希值的目的在于保证待存储文件在哈希环上的顺时针存储,避免同时有一个以上待存储文件的文件名的哈希值与同一个硬盘的硬盘名的哈希值的差值都最小,且一个待存储文件的文件名的哈希值大于该硬盘的硬盘名的哈希值,另一个待存储文件的文件名的哈希值小于该硬盘的硬盘名的哈希值时,两个文件都存储到该硬盘的情况,保证待存储文件的均匀存储。

需要说明的是,当不存在key_hashcode≤node_hashcode,那么,文件file1对应的存储硬盘为data1,data1为哈希环中的起始硬盘。

本实施例提供的cdn边缘节点文件的存储方法,选用支持nonraid模式的raid卡,每块硬盘处于独立运行的状态,避免了现有技术中组建raid5需要一块硬盘做冗余盘,提高了边缘节点服务器的最大容量,覆盖了更多的文件,减少回源请求,提高了用户体验;本实施例根据每个所述硬盘的硬盘名和每个所述待存储文件的文件名的哈希值以及预设规则,分别将每个所述待存储文件存储到相应的所述硬盘中,保证待存储文件均匀的存储在各个硬盘中,由于本实施例不需要一块硬盘做冗余盘,每个硬盘独立存在并存储文件,即使出现两块以上的故障盘,也不会导致整个服务器不可用,且更换故障盘时,只需重新同步该边缘节点服务器属于该故障盘的数据,大幅缩短了故障时间,提高了系统的稳定性。

ssd硬盘组包括多个ssd硬盘,ssd硬盘(solidstatedrives,固态硬盘)用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元(flash芯片、dram芯片)组成。ssd硬盘的性能远高于sata硬盘。

由于ssd硬盘的性能远高于sata硬盘,为了降低sata硬盘的压力,提高ssd硬盘的使用率,将访问度较高的热点文件转存到ssd硬盘中。在图1对应的实施例的基础上,请参阅图3,本实施例公开了另一种cdn边缘节点文件的存储方法,具体包括:

s301:获取支持nonraid模式的raid卡,并通过所述raid卡使sata硬盘组和ssd硬盘组与边缘节点服务器相连;

s302:对所述sata硬盘组和所述ssd硬盘组进行初始化,得到所述sata硬盘组和所述ssd硬盘组中每个硬盘的硬盘名;

s303:依据一致性哈希算法计算所述每个sata硬盘的硬盘名和每个待存储文件的文件名的哈希值,并根据每个所述sata硬盘的硬盘名和每个所述待存储文件的文件名的哈希值以及预设规则,分别将每个所述待存储文件存储到相应的所述sata硬盘中;

s304:在预设时间段内,确定在所述sata硬盘组中已存储的文件中的多个热点文件;

具体的,s304的执行过程如下:

在预设时间段内,统计所述sata硬盘组中存储的每个文件的访问频次;

按访问频次由高到低对所述sata硬盘组中存储的各个文件进行排序;

将所述排序中预设比例的高访问频次的文件确定为热点文件。

需要说明的是,预设时间段和预设比例,可以根据实际情况预先进行设定,例如,预设时间段可以为1小时,预设比例可以为50%。

s305:依据一致性哈希算法计算每个所述热点文件的文件名的哈希值和ssd硬盘组中每个ssd硬盘的硬盘名的哈希值,并根据每个所述热点文件的文件名的哈希值和每个所述ssd硬盘的硬盘名的哈希值以及预设规则,分别将每个所述热点文件转存到相应的所述ssd硬盘中。具体的,请参阅图4,s305的执行过程如下:

s401:依据一致性哈希算法,对各个存储空间未满的所述ssd硬盘的硬盘名进行哈希,计算出每个存储空间未满的所述ssd硬盘的硬盘名的哈希值,根据每个存储空间未满的所述ssd硬盘的硬盘名的哈希值,各个存储空间未满的所述ssd硬盘构成一个哈希环,得到每个存储空间未满的所述ssd硬盘在所述哈希环上的位置;

s402:依据一致性哈希算法,对各个所述热点文件的文件名进行哈希,计算出每个所述热点文件的文件名的哈希值;

s403:根据每个所述热点文件的文件名与每个ssd硬盘的硬盘名的哈希值,将每个所述热点文件转存到所述哈希环上的相应ssd硬盘中,使每个所述热点文件的文件名的哈希值与相应存储ssd硬盘的硬盘名的哈希值的差值最小,且每个所述热点文件的文件名的哈希值小于对应存储ssd硬盘的硬盘名的哈希值。

具体的,s305的具体执行原理与上述实施例中s103的执行原理相同。s305的相关解释说明参阅上述对s103的解释说明,在此不再赘述。

当在ssd硬盘组的哈希环中不存在大于热点文件的文件名的哈希值的硬盘时,将所述热点文件存储在ssd硬盘组哈希环中的起始硬盘上。

本实施例提供的cdn边缘节点文件的存储方法,确定sata硬盘组中存储的多个热点文件,并依据一致性哈希算法计算每个所述热点文件的文件名的哈希值和ssd硬盘组中每个ssd硬盘的硬盘名的哈希值,并根据每个所述热点文件的文件名的哈希值和每个所述ssd硬盘的硬盘名的哈希值以及预设规则,分别将每个所述热点文件转存到相应的所述ssd硬盘中,降低sata硬盘的压力,提高ssd硬盘的使用率,每个ssd盘独立存在并存储文件,即使出现两块及两块以上的故障盘,也不会导致整个服务器不可用,且更换故障盘时,只需重新同步该边缘节点服务器属于该故障盘的数据,大幅缩短了故障时间,提高了系统的稳定性。

基于上述实施例公开的一种cdn边缘节点文件的存储方法,请参阅图5,本实施例对应公开了一种cdn边缘节点文件的存储装置,包括:

获取单元101,用于获取支持nonraid模式的raid卡,并通过所述raid卡使硬盘组与边缘节点服务器相连;

初始化单元102,用于对所述硬盘组进行初始化,得到所述硬盘组中每个硬盘的硬盘名;

具体的,所述初始化单元102包括:

识别子单元,用于对所述硬盘组中的各个硬盘进行识别,分别确定各个所述硬盘的设备符名称和类型,所述硬盘类型为sata硬盘或ssd硬盘;

格式化分区子单元,用于分别对各个所述硬盘进行格式化分区;

建立子单元,用于根据所述硬盘组中硬盘的数量,建立硬盘序列;

挂载子单元,用于根据对各个所述硬盘的遍历顺序,分别将各个所述硬盘挂载到所述硬盘序列中,并分别将每个所述硬盘的序列值作为相应硬盘的硬盘名。

第一存储单元103,用于依据一致性哈希算法计算所述硬盘组中每个硬盘的硬盘名和每个待存储文件的文件名的哈希值,并根据每个所述硬盘的硬盘名和每个所述待存储文件的文件名的哈希值以及预设规则,分别将每个所述待存储文件存储到相应的所述硬盘中;

具体的,所述第一存储单元103包括:

第一计算子单元,用于依据一致性哈希算法,对各个存储空间未满的所述硬盘的硬盘名进行哈希,计算出每个存储空间未满的所述硬盘的硬盘名的哈希值,根据每个存储空间未满的所述硬盘的硬盘名的哈希值,各个存储空间未满的所述硬盘构成一个哈希环,得到每个存储空间未满的所述硬盘在所述哈希环上的位置;

第二计算子单元,用于依据一致性哈希算法,对各个所述待存储文件的文件名进行哈希,计算出每个所述待存储文件的文件名的哈希值;

第一存储子单元,用于根据每个所述待存储文件的文件名与每个所述硬盘的硬盘名的哈希值,将每个待存储文件存储到所述哈希环上的相应硬盘中,使每个所述待存储文件的文件名的哈希值与相应存储硬盘的硬盘名的哈希值的差值最小,且每个所述待存储文件的文件名的哈希值小于对应存储硬盘的硬盘名的哈希值。

本实施例提供的cdn边缘节点文件的存储装置,选用支持nonraid模式的raid卡,每块硬盘处于独立运行的状态,避免了现有技术中组建raid5需要一块硬盘做冗余盘,提高了边缘节点服务器的最大容量,覆盖了更多的文件,减少回源请求,提高了用户体验;本实施例根据每个所述硬盘的硬盘名和每个所述待存储文件的文件名的哈希值以及预设规则,分别将每个所述待存储文件存储到相应的所述硬盘中,保证待存储文件均匀的存储在各个硬盘中,由于本实施例不需要一块硬盘做冗余盘,每个硬盘独立存在并存储文件,即使出现两块以上的故障盘,也不会导致整个服务器不可用,且更换故障盘时,只需重新同步该边缘节点服务器属于该故障盘的数据,大幅缩短了故障时间,提高了系统的稳定性。

请参阅图6,本实施例公开了另一种cdn边缘节点文件的存储装置,包括:

获取单元201,用于获取支持nonraid模式的raid卡,并通过所述raid卡使sata硬盘组和ssd硬盘组与边缘节点服务器相连;

初始化单元202,用于对所述sata硬盘组和所述ssd硬盘组进行初始化,得到所述硬盘组中每个所述ssd硬盘的硬盘名;

第一存储单元203,用于依据一致性哈希算法计算所述硬盘组中每个sata硬盘的硬盘名和每个待存储文件的文件名的哈希值,并根据每个所述sata硬盘的硬盘名和每个所述待存储文件的文件名的哈希值以及预设规则,分别将每个所述待存储文件存储到相应的所述sata硬盘中;

确定单元204,用于在预设时间段内,确定在所述sata硬盘组中已存储的文件中的多个热点文件;

具体的,所述确定单元204包括:

统计子单元,用于在预设时间段内,统计所述sata硬盘组中存储的每个文件的访问频次;

排序子单元,用于按访问频次由高到低对所述sata硬盘组中存储的各个文件进行排序;

确定子单元,用于将所述排序中预设比例的高访问频次的文件确定为热点文件。

第二存储单元205,用于依据一致性哈希算法计算每个所述热点文件的文件名的哈希值和ssd硬盘组中每个ssd硬盘的硬盘名的哈希值,并根据每个所述热点文件的文件名的哈希值和每个所述ssd硬盘的硬盘名的哈希值以及预设规则,分别将每个所述热点文件转存到相应的所述ssd硬盘中。

具体的,所述第二存储单元205包括:

第三计算子单元,用于依据一致性哈希算法,对各个存储空间未满的所述ssd硬盘的硬盘名进行哈希,计算出每个存储空间未满的所述ssd硬盘的硬盘名的哈希值,根据每个存储空间未满的所述ssd硬盘的硬盘名的哈希值,各个存储空间未满的所述ssd硬盘构成一个哈希环,得到每个存储空间未满的所述ssd硬盘在所述哈希环上的位置;

第四计算子单元,用于依据一致性哈希算法,对各个所述热点文件的文件名进行哈希,计算出每个所述热点文件的文件名的哈希值;

第二存储子单元,用于根据每个所述热点文件的文件名与每个ssd硬盘的硬盘名的哈希值,将每个所述热点文件转存到所述哈希环上的相应ssd硬盘中,使每个所述热点文件的文件名的哈希值与相应存储ssd硬盘的硬盘名的哈希值的差值最小,且每个所述热点文件的文件名的哈希值小于对应存储ssd硬盘的硬盘名的哈希值。

需要说明的是,所述cdn边缘节点文件的存储装置还包括:

第三存储单元,用于当在相应的哈希环中不存在大于待存储文件的文件名的哈希值或热点文件的文件名的哈希值的硬盘时,将所述待存储文件或所述热点文件存储在相应哈希环中的起始硬盘上。

本实施例提供的cdn边缘节点文件的存储装置,确定sata硬盘组中存储的多个热点文件,并根据每个所述热点文件的文件名的哈希值和每个所述ssd硬盘的硬盘名的哈希值以及预设规则,分别将每个所述热点文件转存到相应的所述ssd硬盘中,降低sata硬盘的压力,提高ssd硬盘的使用率,每个ssd盘独立存在并存储文件,即使出现两块及两块以上的故障盘,也不会导致整个服务器不可用,且更换故障盘时,只需重新同步该边缘节点服务器属于该故障盘的数据,大幅缩短了故障时间,提高了系统的稳定性。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

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

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