一种缓存负载均衡方法和装置与流程

文档序号:29437742发布日期:2022-03-30 09:22阅读:62来源:国知局
一种缓存负载均衡方法和装置与流程

1.本发明涉及数据存储技术领域,特别是涉及一种缓存负载均衡方法和装置。


背景技术:

2.目前的缓存系统的特点是每一个缓存设备(例如固态盘)都通过一个固定的ip和端口对外服务,并且独占一个线程。可以认为每一个缓存设备都有一个独立的服务实例。客户端若需要从缓存设备中获得数据,需要以大文件块为单位进行读取,导致整个大文件块的读写访问都是位于这一个服务实例上。另外,不同客户端对该大文件块的访问一定是串行的,同一个客户端对该大文件块的访问也是串行的。
3.另外,目前的缓存系统没有在不同缓存设备之间进行数据迁移的方法,使得出现一些缓存设备存储有大量热点数据,而一些缓存设备存储有少量的热点数据的情况。这进一步使得存储有大量热点数据的缓存设备经常被客户端的数据读取请求命中,又由于对于数据的访问是串行的,导致缓存设备的负载较大,甚至超出了该缓存设备的最大负载,使得该缓存设备的性能严重下降,进一步降低该缓存设备所在的缓存系统的整体性能。而存储有少量的热点数据的缓存设备,在大部分时间处于“空闲”状态,即该缓存设备被客户端的数据读取请求命中的概率极小,严重浪费该缓存设备的资源。由此可以看出,现有的缓存系统中不同缓存设备在实际运行过程中所承受的负载不均衡,导致负载高的缓存设备的性能严重下降,负载低的缓存设备的资源被严重浪费,使得缓存系统的整体性能不仅没有得到充分发挥,还会出现性能下降的情况。


技术实现要素:

4.本发明实施例的目的在于提供一种缓存负载均衡方法和装置,以实现在不同缓存设备之间可以进行数据迁移,使得不同缓存设备在实际运行过程中所承受的负载较为均衡,进一步使得缓存系统的整体性能可以得到充分发挥。具体技术方案如下:
5.第一方面,一种缓存负载均衡方法,包括:
6.获得第一缓存磁盘组的第一负载参数和第二缓存磁盘组的第二负载参数;
7.当所述第一负载参数大于所述第二负载参数时,根据所述第一负载参数和所述第二负载参数的差距,确定所要迁移的文件块组的第一数量;
8.根据所述第一数量,将所述第一缓存磁盘组中保存的至少部分文件块组迁移至所述第二缓存磁盘组。
9.结合第一方面,在某些可选的实施方式中,所述第一负载参数和所述第二负载参数均为存储容量参数,或,所述第一负载参数和所述第二负载参数均为带宽参数。
10.结合第一方面,在某些可选的实施方式中,缓存设备中包括多个缓存磁盘组,所述多个缓存磁盘组包括所述第一缓存磁盘组和第二缓存磁盘组,所述第一缓存磁盘组为所述多个缓存磁盘组中负载参数最大的缓存磁盘组,所述第二磁盘缓存组为所述多个缓存磁盘组中负载参数最小的缓存磁盘组。
11.可选的,在某些可选的实施方式中,所述当所述第一负载参数大于所述第二负载参数时,根据所述第一负载参数和所述第二负载参数的差距,确定所要迁移的文件块组的第一数量,包括:
12.当所述第一负载参数大于所述第二负载参数且所述第一负载参数和所述第二负载参数的差距大于预设差距时,根据所述第一负载参数和所述第二负载参数的差距,确定所要迁移的文件块组的第一数量。
13.结合第一方面,在某些可选的实施方式中,所述根据所述第一负载参数和所述第二负载参数的差距,确定所要迁移的文件块组的第一数量,包括:
14.根据所述第一负载参数和所述第二负载参数的差距,并根据所述第一缓存磁盘组的第一总负载容量和所述第二缓存磁盘组的第二总负载容量,确定所要迁移的文件块组的第一数量。
15.结合上个实施方式,在某些可选的实施方式中,所述根据所述第一负载参数和所述第二负载参数的差距,并根据所述第一缓存磁盘组的第一总负载容量和所述第二缓存磁盘组的第二总负载容量,确定所要迁移的文件块组的第一数量,包括:
16.根据公式:
17.计算获得所要迁移的文件块组的第一数量x,其中,所述n1是所述第一总负载容量,所述u1是所述第一总负载容量的已使用量,所述n2是所述第二总负载容量,所述u2是所述第二总负载容量的已使用量。
18.可选的,在某些可选的实施方式中,所述根据所述第一负载参数和所述第二负载参数的差距,并根据所述第一缓存磁盘组的第一总负载容量和所述第二缓存磁盘组的第二总负载容量,确定所要迁移的文件块组的第一数量,包括:
19.根据公式:
20.计算获得所要迁移的文件块组的第一数量x,其中,所述n1是所述第一总负载容量,所述u1是所述第一总负载容量的已使用量,所述n2是所述第二总负载容量,所述u2是所述第二总负载容量的已使用量,所述p是预设比例。
21.结合第一方面,在某些可选的实施方式中,所述根据所述第一数量,将所述第一缓存磁盘组中保存的至少部分文件块组迁移至所述第二缓存磁盘组,包括:
22.判断所述第一数量是否大于预设数量,如果是,则将所述第一缓存磁盘组中保存的所述预设数量的文件块组迁移至所述第二缓存磁盘组,否则,将所述第一缓存磁盘组中保存的所述第一数量的文件块组迁移至所述第二缓存磁盘组。
23.结合上一个实施方式,在某些可选的实施方式中,所述将所述第一缓存磁盘组中保存的所述预设数量的文件块组迁移至所述第二缓存磁盘组,包括:在非缓存性磁盘组中查找所述第一缓存磁盘组中保存的所述预设数量的文件块组;将查找到的所述预设数量的文件块组保存至所述第二缓存磁盘组;将所述第一缓存磁盘组中保存的所述预设数量的文件块组删除;
24.和/或,
25.所述将所述第一缓存磁盘组中保存的所述第一数量的文件块组迁移至所述第二
缓存磁盘组,包括:在非缓存性磁盘组中查找所述第一缓存磁盘组中保存的所述第一数量的文件块组;将查找到的所述第一数量的文件块组保存至所述第二缓存磁盘组;将所述第一缓存磁盘组中保存的所述第一数量的文件块组删除。
26.第二方面,一种缓存负载均衡装置,包括:负载参数获得单元、第一数量确定单元和迁移单元;
27.所述负载参数获得单元,被配置为执行获得第一缓存磁盘组的第一负载参数和第二缓存磁盘组的第二负载参数;
28.所述第一数量确定单元,被配置为执行当所述第一负载参数大于所述第二负载参数时,根据所述第一负载参数和所述第二负载参数的差距,确定所要迁移的文件块组的第一数量;
29.所述迁移单元,被配置为执行根据所述第一数量,将所述第一缓存磁盘组中保存的至少部分文件块组迁移至所述第二缓存磁盘组。
30.本发明实施例提供的一种缓存负载均衡方法和装置,通过获得第一缓存磁盘组的第一负载参数和第二缓存磁盘组的第二负载参数;当所述第一负载参数大于所述第二负载参数时,根据所述第一负载参数和所述第二负载参数的差距,确定所要迁移的文件块组的第一数量;根据所述第一数量,将所述第一缓存磁盘组中保存的至少部分文件块组迁移至所述第二缓存磁盘组。结合第一方面,在某些可选的实施方式中,所述第一负载参数和所述第二负载参数均为存储容量参数,或,所述第一负载参数和所述第二负载参数均为带宽参数。由此可以看出,本发明可以实现在不同缓存设备之间可以进行数据迁移,使得不同缓存设备在实际运行过程中所承受的负载较为均衡,进一步使得缓存系统的整体性能可以得到充分发挥。当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。
附图说明
31.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
32.图1为本发明提供的客户端向缓存设备请求热点数据的一种流程图;
33.图2为本发明提供的客户端向缓存设备请求热点数据的另一种流程图;
34.图3为本发明提供的一种缓存负载均衡方法的流程图;
35.图4为本发明提供的一种缓存负载均衡装置的结构示意图;
36.图5为本发明提供的一种设备的结构示意图。
具体实施方式
37.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
38.由于在实际的系统中,有些数据是经常被访问的数据,这些经常被访问的数据可以称之为热点数据。对于热点数据,目前通常是将热点数据存入到缓存系统中的缓存设备,缓存设备具有较高的数据读写速度,可以为其它设备或系统快速提供数据,以提高其它设备或系统获取数据的速度。
39.具体的,带有缓存系统的存储系统可以包括:客户端设备、数据服务器、缓存服务器、缓存设备、索引服务器和非缓存设备,其中,缓存设备可以为内存、固态存储盘等具有较高的数据读写速度的存储设备。非缓存设备可以为机械存储盘等不为缓存设备的存储设备。非缓存设备的数据读写速度一般低于缓存设备,例如机械存储盘的读写速度一般低于内存和固态存储盘。其中,缓存系统可以包括:缓存服务器和缓存设备。
40.客户端设备可以为计算机、手机、平板电脑、可穿戴设备等各种电子设备。
41.数据服务器可以和客户端设备通过sdk(软件开发工具包,softwaredevelopmentkit)进行通信。
42.缓存服务器中可以保存有缓存设备中保存的数据的索引信息,当数据以数据块为单位进行存储时,缓存服务器中保存的索引信息可以为:(file_id,block_id)=》(disk_id,block_id)。其中,(file_id,block_id)中的file_id为文件id,(file_id,block_id)中的block_id为数据块id。(disk_id,block_id)中的disk_id为缓存设备的磁盘id,(disk_id,block_id)中的block_id为磁盘块id。
43.其中,一个磁盘块的存储空间与一个完整的数据块的数据量相同。
44.通过上述的索引信息就可以确定各文件的各数据块是否存储在缓存设备中以及存储在缓存设备的哪一个磁盘的哪一个磁盘块中。
45.与缓存服务器类似,索引服务器中可以保存有非缓存设备中保存的数据的索引信息,当数据以数据块为单位进行存储时,索引服务器中保存的索引信息可以为:(file_id,block_id)=》(disk_id,block_id)。其中,(file_id,block_id)中的file_id为文件id,(file_id,block_id)中的block_id为数据块id。(disk_id,block_id)中的disk_id为非缓存设备的磁盘id,(disk_id,block_id)中的block_id为磁盘块id。
46.通过上述的索引信息就可以确定各文件的各数据块是否存储在非缓存设备中以及存储在非缓存设备的哪一个磁盘的哪一个磁盘块中。
47.为方便理解,下面将带有缓存系统的存储系统的一种数据读取流程公开如下:
48.当客户端设备所请求读取的数据在缓存设备中有保存时,数据读取流程如图1所示,包括:
49.s1、客户端设备向数据服务器发送数据访问请求;
50.s2、数据服务器将数据访问请求发送到缓存服务器中;
51.s3、缓存服务器确定客户端设备所请求的数据是否保存在缓存设备中,如果是,则执行s4;
52.s4、缓存服务器将客户端设备所请求的数据在缓存设备中的保存地址发送到数据服务器;
53.s5、数据服务器在接收到缓存服务器返回的保存地址后,从缓存设备的该保存地址获得客户端设备所请求的数据;
54.s6、数据服务器将客户端设备所请求的数据返回给客户端设备。
55.当客户端设备所请求读取的数据没有在缓存设备中有保存时,数据读取流程如图2所示,包括:
56.s1、客户端设备向数据服务器发送数据访问请求;
57.s2、数据服务器将数据访问请求发送到缓存服务器中;
58.s3、缓存服务器确定客户端设备所请求的数据是否保存在缓存设备中,如果没有保存在缓存设备中,执行步骤s7;
59.s7、缓存服务器将客户端设备所请求的数据未保存在缓存设备中的通知发送到数据服务器;
60.s8、数据服务器在接收到缓存服务器返回的客户端设备所请求的数据未保存在缓存设备中的通知后,数据服务器向索引服务器发送上述数据访问请求;
61.s9、索引服务器将客户端设备所请求的数据在非缓存设备中的保存地址发送到数据服务器;
62.s10、数据服务器在接收到索引服务器返回的保存地址后,从非缓存设备的该保存地址获得客户端设备所请求的数据;
63.s11、数据服务器将客户端设备所请求的数据返回给客户端设备。
64.经本发明人研究发现,在上述处理流程下,当客户端向缓存系统请求数据时,只要所请求的数据为已经缓存在缓存系统中的热点数据,缓存系统就会将客户端所请求的数据返回给客户端。当客户端持续请求访问的热点数据都大量集中在一个磁盘上时,由于磁盘输入/输出性能有限,以及网卡的网络带宽限制会导致热点数据的输出受到限制,严重影响磁盘的数据传输性能,进而降低缓存系统快速提供热点数据的能力,为解决上述问题,本发明人提供了如下方案。
65.如图3所示,本发明提供了一种缓存负载均衡方法,可以包括:
66.s100、获得第一缓存磁盘组的第一负载参数和第二缓存磁盘组的第二负载参数;
67.应理解,本发明方法的执行主体可以是与第一缓存磁盘组和第二缓存磁盘组均通信连接的设备,例如可以是缓存服务器,本发明对此不做限制。
68.应理解,本文所说的缓存设备中可以包括多个缓存磁盘组,所述多个缓存磁盘组可以包括所述第一缓存磁盘组和第二缓存磁盘组,所述第一缓存磁盘组可以为所述多个缓存磁盘组中负载参数最大的缓存磁盘组,所述第二磁盘缓存组可以为所述多个缓存磁盘组中负载参数最小的缓存磁盘组。
69.可选的,第一缓存磁盘组和第二缓存磁盘组可以是预先划分好的缓存磁盘组。例如,可以将一个缓存设备所包括的多个缓存磁盘划分为多个缓存磁盘组,一个缓存磁盘组可以包括至少一个缓存磁盘。在这种方式下,可以对需存入缓存磁盘组的缓存数据也进行数据分组。目前的数据处理方式一般是以一个完整的数据文件为对象,将被确定为热点数据的整个数据文件存储在缓存设备中,或,将一个完整的数据文件拆分成多个很小的文件块,并将被确定为热点数据的文件块存储在缓存设备中,上述这两种方式均没有对数据进行分组。本发明提供的方法可以将上述多个很小的文件块划分成多个文件块组,其中一个文件块组包括多个文件块。被划分为同一个文件块组的文件块可以存储在同一个缓存设备中,例如可以存储在同一个缓存设备中的同一个缓存磁盘组中。
70.第一缓存磁盘组与第二缓存磁盘组可以连接同一个缓存服务器,也可以分别连接
不同的缓存服务器,本发明对此不做限制。
71.应理解,缓存磁盘组的作用是存储缓存数据,并且在客户端需要访问缓存数据时,向客户端提供缓存数据的读取服务。所以,对于缓存磁盘组而言,一般是希望一个缓存磁盘组的存储容量越大越好,向客户端提供缓存数据的速度越快越好。即在实际工程中更加关注其存储能力和带宽这两项指标,上述存储能力可以指的是缓存磁盘组的当前可用存储容量,带宽可以指的缓存磁盘组向客户端提供缓存数据的速度,本发明对此不做限制。
72.可选的,所述第一负载参数和所述第二负载参数可以均为存储容量参数,或,所述第一负载参数和所述第二负载参数可以均为带宽参数。可选的,所述存储容量参数可以包括:存储容量使用占比、存储容量使用量、存储容量未使用占比、存储容量未使用量中的至少一个,所述带宽参数可以包括:带宽使用占比、带宽使用量、带宽未使用占比、带宽未使用量中的至少一个。
73.可选的,第一负载参数和第二负载参数均是用以描述第一缓存磁盘组和第二缓存磁盘组的存储能力的参数,或,是用以描述第一缓存磁盘组和第二缓存磁盘组的数据读取速度的参数。
74.可选的,第一负载参数和第二负载参数可以保持参数类型一致。例如,若第一负载参数是存储容量使用占比,则第二负载参数也可以是存储容量使用占比;若第一负载参数是带宽使用占比,则第二负载参数也可以是带宽使用占比。若第一负载参数是多个参数的组合,则第二负载参数也可以是上述多个参数的组合,本发明对此不做限制。
75.应理解,第一负载参数和第二负载参数应保持参数类型一致,使得第一负载参数和第二负载参数具有可比性。进一步使得后续进行数据迁移时,比较第一负载参数和第二负载参数的差距的步骤得出的结果更加具有参考价值,本发明对此不做限制。
76.s200、当所述第一负载参数大于所述第二负载参数时,根据所述第一负载参数和所述第二负载参数的差距,确定所要迁移的文件块组的第一数量;
77.应理解,若第一负载参数和第二负载参数均是存储容量参数,则通过比较第一负载参数和第二负载参数,可以得到第一缓存磁盘组和第二缓存磁盘组中谁的当前存储能力较大,谁的当前存储能力较小,以便于后续将当前存储能力较小的缓存磁盘组的部分缓存数据迁移至当前存储能力较大的缓存磁盘组中,从而均衡第一缓存磁盘组和第二缓存磁盘组中的缓存数据,同时也均衡了第一缓存磁盘组和第二缓存磁盘组的当前存储能力。
78.应理解,若第一负载参数和第二负载参数均是带宽参数,则通过比较第一负载参数和第二负载参数,可以得到第一缓存磁盘组和第二缓存磁盘组中谁的当前可用带宽较大,谁的当前可用带宽较小,以便于后续将当前可用带宽较小的缓存磁盘组的部分缓存数据迁移至当前可用带宽较大的缓存磁盘组中,从而均衡第一缓存磁盘组和第二缓存磁盘组中的缓存数据,同时也均衡了第一缓存磁盘组和第二缓存磁盘组的带宽。
79.可选的,第一负载参数和第二负载参数也可以均是存储容量参数和带宽参数的组合,即综合参考存储容量参数和带宽参数来确定将谁的缓存数据迁移至谁当中。这种方式下,所得的迁移结果更加合理。即从当前存储能力和带宽这两个方面来看,第一缓存磁盘组和第二缓存磁盘组的缓存数据更加均衡,本发明对此不做限制。
80.可选的,所述步骤s200,可以包括:
81.当所述第一负载参数大于所述第二负载参数且所述第一负载参数和所述第二负
载参数的差距大于预设差距时,根据所述第一负载参数和所述第二负载参数的差距,确定所要迁移的文件块组的第一数量。
82.应理解,本发明可以实现均衡第一缓存磁盘组与第二缓存磁盘组中的数据,但若第一负载参数与第二负载参数的差距不是很大,则可以不用均衡第一缓存磁盘组与第二缓存磁盘组中的缓存数据。所以,可以提前设定预设差距,若第一负载参数与第二负载参数的差距大于预设差距,则可以确定所要迁移的文件块组的第一数量,否则可以结束本次过程,以执行其他过程,本发明对其它过程不做限制。
83.应理解,当所述第一负载参数大于所述第二负载参数且所述第一负载参数和所述第二负载参数的差距大于预设差距时,说明可以将第一缓存磁盘组和第二缓存磁盘组中的一个缓存磁盘组中的部分缓存数据迁移至另一个缓存磁盘组,但具体迁移多少缓存数据才能使得第一缓存磁盘组和第二缓存磁盘组的数据比较均衡,还需要进一步确定,即需要确定所要迁移的文件块组的第一数量。
84.可选的,第一数量可以表征的是所要迁移的文件块组所包括的文件块的数量,本发明对此不做限制。
85.可选的,所述的第一负载参数和第二负载参数的差距,可以是这两项参数的数值之间的差的绝对值,本发明对此不做限制。
86.可选的,所述步骤s200中的根据所述第一负载参数和所述第二负载参数的差距,确定所要迁移的文件块组的第一数量,可以包括:
87.根据所述第一负载参数和所述第二负载参数的差距,并根据所述第一缓存磁盘组的第一总负载容量和所述第二缓存磁盘组的第二总负载容量,确定所要迁移的文件块组的第一数量。
88.应理解,对于任何一个缓存磁盘组而言,在划分好缓存磁盘分组后,其可以存储的最大数据量,也就是其总负载容量可以是固定不变的。所以第一总负载容量和第二负载总容量可以是在划分好相应缓存磁盘分组后就已经得到的参数,并且缓存服务器可以不单单仅获得第一总负载容量和第二总负载容量,还可以获得该缓存服务器通信连接的其它缓存设备的缓存磁盘组的总负载容量。当然,也可以在获得第一负载参数时,一起获得第一总负载容量,或者,先获得第一负载参数再获得第一总负载容量,或者先获得第一总负载容量再获得第一负载参数,本发明对上述获得第一负载参数和获得第一总负载容量的先后顺序不做限制,对于获得第二负载参数和获得第二总负载容量的先后顺序也不做限制。
89.应理解,第一总负载容量可以在一定程度上说明第一缓存磁盘组的存储能力。第二总负载容量也可以在一定程度上说明第二缓存磁盘组的存储能力。根据第一缓存磁盘组和第二缓存磁盘组的存储能力,确定所要迁移的文件块组的第一数量,比较科学,能合理均衡第一缓存磁盘组和第二缓存磁盘组的缓存数据。
90.可选的,所述根据所述第一负载参数和所述第二负载参数的差距,并根据所述第一缓存磁盘组的第一总负载容量和所述第二缓存磁盘组的第二总负载容量,确定所要迁移的文件块组的第一数量,可以包括:
91.根据公式:计算获得所要迁移的文件块组的第一数量x,其中,所述n1是所述第一总负载容量,所述u1是所述第一总负载容量的已使用量,所述n2是
所述第二总负载容量,所述u2是所述第二总负载容量的已使用量。
92.应理解,通过上述公式计算第一数量仅是一种可选的实施方式,任何基于上述公式做适当改动的实施方式或者任何根据第一总负载容量和第二总负载容量计算获得第一数量的实施方式均属于本发明的保护范围,本发明对此不做限制。
93.可选的,通过上述公式计算得到第一数量可以是所要迁移的文件块组所包括的文件块的总量,即所要迁移的文件块的全部。后续步骤可以将所要迁移的文件块全部进行迁移,可以是一次迁移全部,也可以是分多个批次迁移,本发明对此不做限制。
94.下面将提供分多个批次迁移所要的迁移的文件块组的实施方式:可选的,所述根据所述第一负载参数和所述第二负载参数的差距,并根据所述第一缓存磁盘组的第一总负载容量和所述第二缓存磁盘组的第二总负载容量,确定所要迁移的文件块组的第一数量,可以包括:
95.根据公式:计算获得所要迁移的文件块组的第一数量x,其中,所述n1是所述第一总负载容量,所述u1是所述第一总负载容量的已使用量,所述n2是所述第二总负载容量,所述u2是所述第二总负载容量的已使用量,所述p是预设比例。
96.应理解,该实施方式下的第一数量可以是分多个批次迁移所要的迁移的文件块组的过程中,单次可以迁移的文件块的数量。即通过预设比例来计算每次迁移的文件块的数量,该预设比例可以根据实际需要进行设定,本发明对此不做限制。
97.可选的,预设比例的取值范围可以为从0%至100%的范围中,本发明对此不做限制。
98.应理解,通过分多个批次迁移所要迁移的文件块组,可以避免因迁移文件块组的过程长时间持续占用通信资源,导致其他过程的通信长时间受阻,严重影响其他过程的进程,比较合理。例如,执行本发明方法的设备可以在执行一次迁移文件块组的一部分文件块的过程后,先执行至少一次其他过程(非迁移文件块组的过程),再返回来执行下一次迁移该文件块组的一部分文件块的过程,如此反复执行,本发明对其它过程不做限制。
99.应理解,通过分多个批次迁移所要迁移的文件块组可以有两种方案:
100.第一种、上述n1、u1、n2和u2等参数在迁移完所要迁移的文件块组的全部文件块之前,不会更新,会一直保持不变。即在多个批次当中,每次迁移的文件块的数量可以是一样的。
101.第二种、在多个批次当中,每次迁移完成后,上述n1、u1、n2和u2等参数均会更新,即上述n1、u1、n2和u2等参数在每次计算第一数量时,均与之前的值不同。所以,每次迁移前计算得到的第一数量也可能是不相同的。这种方式可以避免迁移“过头”,即随着每次迁移完成,第一缓存磁盘组存储的缓存数据的数量与第二缓存磁盘组中存储的缓存数据的数量之间差距也在逐渐减少,这时可以逐渐降低每次迁移的文件块的数量,即第一数量可以呈现逐渐减小的趋势。
102.s300、根据所述第一数量,将所述第一缓存磁盘组中保存的至少部分文件块组迁移至所述第二缓存磁盘组。
103.应理解,第一数量一般小于第一缓存磁盘组中保存的文件块的数量,所以无论是将数量为第一数量的文件块组全部迁移至第二缓存磁盘组,还是将数量为第一数量的文件
块组的部分文件块迁移至第二缓存磁盘组,均可以理解为将所述第一缓存磁盘组中保存的至少部分文件块组迁移至所述第二缓存磁盘组。
104.可选的,本发明实现的是均衡第一缓存磁盘组和第二缓存磁盘组的缓存数据。所以一般不会出现第一数量大于或等于第一缓存磁盘组中保存的文件块的数量,否则,把第一缓存磁盘组中保存的第一数量的文件块组迁移至第二缓存磁盘组后,可能导致第一缓存磁盘组所缓存的缓存数据为空,没有起到均衡第一缓存磁盘组和第二缓存磁盘组的缓存数据的效果。
105.可选的,所述步骤s300,可以包括:
106.判断所述第一数量是否大于预设数量,如果是,则将所述第一缓存磁盘组中保存的所述预设数量的文件块组迁移至所述第二缓存磁盘组,否则,将所述第一缓存磁盘组中保存的所述第一数量的文件块组迁移至所述第二缓存磁盘组。
107.应理解,由于对文件块组进行迁移,涉及到后续步骤的从非缓存性磁盘组中查找所述第一缓存磁盘组中保存的所述第一数量的文件块组;将查找到的所述第一数量的文件块组保存至所述第二缓存磁盘组;将所述第一缓存磁盘组中保存的所述第一数量的文件块组删除。其中,从非缓存性磁盘组中查找并获得第一数量的文件块组的速度,受非缓存性磁盘组的数据读取性能和通信带宽的限制;将第一数量的文件块组保存至第二缓存磁盘组的速度,受第二缓存磁盘组的数据写入性能和通信带宽的限制。所以可以为每一次迁移,设定一个上限,即本文所说的预设数量。
108.应理解,该预设数量可以是通过实验测定得到的数值,本发明对此不做限制。
109.可选的,当本次计算得到的第一数量大于或等于预设数量时,则确定本次迁移的文件块组包括的文件块的数量为预设数量,否则确定本次迁移的文件块组包括的文件块的数量为第一数量,本发明对此不做限制。
110.可选的,所述将所述第一缓存磁盘组中保存的所述预设数量的文件块组迁移至所述第二缓存磁盘组,可以包括:在非缓存性磁盘组中查找所述第一缓存磁盘组中保存的所述预设数量的文件块组;将查找到的所述预设数量的文件块组保存至所述第二缓存磁盘组;将所述第一缓存磁盘组中保存的所述预设数量的文件块组删除;
111.和/或,
112.所述将所述第一缓存磁盘组中保存的所述第一数量的文件块组迁移至所述第二缓存磁盘组,包括:在非缓存性磁盘组中查找所述第一缓存磁盘组中保存的所述第一数量的文件块组;将查找到的所述第一数量的文件块组保存至所述第二缓存磁盘组;将所述第一缓存磁盘组中保存的所述第一数量的文件块组删除。
113.如图4所示,本发明提供了一种缓存负载均衡装置,包括:负载参数获得单元100、第一数量确定单元200和迁移单元300;
114.所述负载参数获得单元100,被配置为执行获得第一缓存磁盘组的第一负载参数和第二缓存磁盘组的第二负载参数;
115.所述第一数量确定单元200,被配置为执行当所述第一负载参数大于所述第二负载参数时,根据所述第一负载参数和所述第二负载参数的差距,确定所要迁移的文件块组的第一数量;
116.所述迁移单元300,被配置为执行根据所述第一数量,将所述第一缓存磁盘组中保
存的至少部分文件块组迁移至所述第二缓存磁盘组。
117.可选的,在某些可选的实施方式中,所述第一数量确定单元200,包括:第一子单元;
118.所述第一子单元,被配置为执行当所述第一负载参数大于所述第二负载参数且所述第一负载参数和所述第二负载参数的差距大于预设差距时,根据所述第一负载参数和所述第二负载参数的差距,确定所要迁移的文件块组的第一数量。
119.可选的,在某些可选的实施方式中,所述第一数量确定单元200,包括:第二子单元;
120.所述第二子单元,被配置为执行根据所述第一负载参数和所述第二负载参数的差距,并根据所述第一缓存磁盘组的第一总负载容量和所述第二缓存磁盘组的第二总负载容量,确定所要迁移的文件块组的第一数量。
121.可选的,在某些可选的实施方式中,所述第二子单元,包括:第三子单元;
122.所述第三子单元,被配置为执行根据公式:
123.计算获得所要迁移的文件块组的第一数量x,其中,所述n1是所述第一总负载容量,所述u1是所述第一总负载容量的已使用量,所述n2是所述第二总负载容量,所述u2是所述第二总负载容量的已使用量,所述p是预设比例。
124.可选的,在某些可选的实施方式中,所述迁移单元300,包括:第四子单元、第五子单元和第六子单元;
125.所述第四子单元,被配置为执行判断所述第一数量是否大于预设数量,如果是,则触发所述第五子单元,否则,触发所述第六子单元;
126.所述第五子单元,被配置为执行将所述第一缓存磁盘组中保存的所述预设数量的文件块组迁移至所述第二缓存磁盘组;
127.所述第六子单元,被配置为执行将所述第一缓存磁盘组中保存的所述第一数量的文件块组迁移至所述第二缓存磁盘组。
128.可选的,在某些可选的实施方式中,所述第五子单元,包括:第一查找子单元、第一保存子单元和第一删除子单元;
129.所述第一查找子单元,被配置为执行在非缓存性磁盘组中查找所述第一缓存磁盘组中保存的所述预设数量的文件块组;
130.所述第一保存子单元,被配置为执行将查找到的所述预设数量的文件块组保存至所述第二缓存磁盘组;
131.所述第一删除子单元,被配置为执行将所述第一缓存磁盘组中保存的所述预设数量的文件块组删除;
132.和/或,
133.所述第六子单元,包括:第二查找子单元、第二保存子单元和第二删除子单元;
134.所述第二查找子单元,被配置为执行在非缓存性磁盘组中查找所述第一缓存磁盘组中保存的所述第一数量的文件块组;
135.所述第二保存子单元,被配置为执行将查找到的所述第一数量的文件块组保存至所述第二缓存磁盘组;
136.所述第二删除子单元,被配置为执行将所述第一缓存磁盘组中保存的所述第一数量的文件块组删除。
137.所述缓存负载均衡装置包括处理器和存储器,上述负载参数获得单元100、第一数量确定单元200和迁移单元300等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
138.处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数以实现在不同缓存设备之间可以进行数据迁移,使得不同缓存设备在实际运行过程中所承受的负载较为均衡,进一步使得缓存系统的整体性能可以得到充分发挥。
139.本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现所述缓存负载均衡方法。
140.本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述缓存负载均衡方法。
141.如图5所示,本发明实施例提供了一种设备70,设备70包括至少一个处理器701、以及与处理器701连接的至少一个存储器702、总线703;其中,处理器701、存储器702通过总线703完成相互间的通信;处理器701用于调用存储器702中的程序指令,以执行上述的缓存负载均衡方法。本文中的设备可以是服务器、pc、pad、手机等。
142.本技术还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有上述的缓存负载均衡方法包括的步骤的程序。
143.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
144.在一个典型的配置中,设备包括一个或多个处理器(cpu)、存储器和总线。设备还可以包括输入/输出接口、网络接口等。
145.存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram),存储器包括至少一个存储芯片。存储器是计算机可读介质的示例。
146.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
147.本领域技术人员应明白,本技术的实施例可提供为方法、系统或计算机程序产品。
因此,本技术可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
148.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
149.本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
150.以上仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1