CN101135994B - 一种划分缓存空间的方法和装置以及缓存控制器 - Google Patents
一种划分缓存空间的方法和装置以及缓存控制器 Download PDFInfo
- Publication number
- CN101135994B CN101135994B CN2007101215212A CN200710121521A CN101135994B CN 101135994 B CN101135994 B CN 101135994B CN 2007101215212 A CN2007101215212 A CN 2007101215212A CN 200710121521 A CN200710121521 A CN 200710121521A CN 101135994 B CN101135994 B CN 101135994B
- Authority
- CN
- China
- Prior art keywords
- disk array
- cache
- cache space
- space
- flowing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种划分缓存空间的方法和装置以及一种缓存控制器。本发明方法包括:统计设定时间段内各个磁盘阵列的访问流量;根据该时间段内各个磁盘阵列的访问流量,划分对应于各个磁盘阵列的各部分缓存(Cache)空间,其中,访问流量大的磁盘阵列划分的Cache空间大。本发明装置包括主机处理器和缓存控制器。本发明提出的缓存控制器包括:信息获取单元和Cache空间划分单元。本发明能够提高对网络存储控制***的访问效率。
Description
技术领域
本发明涉及网络存储技术,特别是涉及一种划分缓存(Cache)空间的方法和装置以及缓存控制器。
背景技术
随着信息技术的高速发展,目前出现了能够提供数据存储业务的网络存储控制***。图1是网络存储控制***的结构示意图。参见图1,网络存储控制***中主要包括磁盘阵列(本文所指的磁盘阵列包括实际存储数据的磁盘和对磁盘进行控制的磁盘控制器),和执行读写操作的主机处理器。另外,由于主机处理器的工作频率远大于磁盘阵列的工作频率,因此,为了提高数据读写的效率,网络存储控制***中还包括工作频率介于主机处理器和磁盘阵列之间的缓存控制器和Cache。
在网络存储控制***中,磁盘阵列的数量众多。为了保证不同磁盘阵列的读写数据不会发生混乱,目前,通常会对Cache的存储空间进行划分,使得每一个磁盘阵列均有对应的Cache空间,这样,一个磁盘阵列的读写数据均缓存在该磁盘阵列对应的Cache空间中,保证了不同磁盘阵列读写数据的顺利进行。
在现有技术中,对Cache空间进行划分的方法为:在***初始化时,根据磁盘阵列的数量,将完整的Cache空间平均地划分为各个磁盘阵列对应的各部分Cache空间。图2是在现有技术中划分Cache空间的示意图。参见图2,比如,有3个磁盘阵列,那么,现有技术将完整的Cache空间均分成A1的Cache空间、A2的Cache空间和A3的Cache空间三部分。
由以上描述可以看出,在现有技术中,***在初始化时将Cache空间均分后,各个磁盘阵列对应的Cache空间的大小就固定了,这样,无论在后续业务进行过程中对一个磁盘阵列的读写数据量如何变化,***提供给该磁盘阵列的Cache空间的大小始终固定不变。这样,则往往导致网络存储控制***的访问效率低下。比如,参见图2,磁盘阵列A3的读写数据量较大为100KB,A3的Cache空间无法满足磁盘阵列A3的数据存储需求,而磁盘阵列A2的读写数据量较小为5KB,A2的Cache空间存在大量剩余的空闲空间,却无法供给磁盘阵列A3使用,这样,则降低了***整体的读写速度以及对磁盘阵列的数据的命中率,导致网络存储控制***的访问效率低下,大大降低了***的性能。
发明内容
有鉴于此,本发明的一个目的在于提供一种划分缓存空间的方法,本发明的另一个目的在于提供一种缓存控制器,本发明的再一个目的在于提供一种划分缓存空间的装置,以便于提高对网络存储控制***的访问效率。
为了达到上述目的,本发明的技术方案是这样实现的:
一种划分缓存空间的方法,应用于存储控制***中,所述存储控制***包括用以处理外部读写请求的主机处理器和位于主机处理器与缓存之间的缓存控制器,所述存储控制***中的缓存至少被划分成两个缓存空间,每一个缓存空间至少对应一个磁盘阵列,所述磁盘阵列至少包括一个磁盘,该方法包括:
统计设定时间段内各个磁盘阵列的数据读写请求的数量或数据读写的数据量,得到该时间段内各个磁盘阵列的访问流量;
根据该时间段内各个磁盘阵列的访问流量,通过周期性触发或者特定***事件触发或者随机性触发的方式划分对应于各个磁盘阵列的各部分Cache 空间,其中,访问流量大的磁盘阵列划分的Cache空间大。
一种缓存控制器,应用于存储控制***中,所述存储控制***包括用以处理外部读写请求的主机处理器和位于主机处理器与缓存之间的缓存控制器,所述存储控制***中的缓存至少被划分成两个缓存空间,每一个缓存空间至少对应一个磁盘阵列,所述磁盘阵列至少包括一个磁盘,包括:
信息获取单元,用于统计设定时间段内各个磁盘阵列的数据读写请求的数量或数据读写的数据量,获取各个磁盘阵列的访问流量的信息,并提供给Cache空间划分单元;
Cache空间划分单元,用于根据各个磁盘阵列的访问流量的信息,通过周期性触发或者特定***事件触发或者随机性触发的方式划分对应于各个磁盘阵列的各部分Cache空间,其中,访问流量大的磁盘阵列划分的Cache空间大。
一种划分缓存空间的装置,应用于存储控制***中,所述存储控制***包括用以处理外部读写请求的主机处理器和位于主机处理器与缓存之间的缓存控制器,所述存储控制***中的缓存至少被划分成两个缓存空间,每一个缓存空间至少对应一个磁盘阵列,所述磁盘阵列至少包括一个磁盘,包括主机处理器和本发明提供的缓存控制器。
由此可见,在本发明中,能够根据各个磁盘阵列的访问流量来设置对应于各个磁盘阵列的Cache空间,保证每个磁盘阵列都有适合的Cache空间来存储其对应的数据,既避免出现空间不足的情况,也避免出现空间过剩的情况,因此能够提高***整体的读写速度以及对各个磁盘阵列的数据的命中率,从而提高了网络存储控制***的访问效率,优化了***的性能。
较佳地,在本发明中,能够每隔一个定时周期长度进行一次Cache空间的划分,从而能够动态地根据各个磁盘阵列对存储空间的实际要求来动态地调整各个磁盘阵列的Cache空间,进一步提高了网络存储控制***的访问效率,进一步优化了***的性能。
附图说明
图1是网络存储控制***的结构示意图。
图2是在现有技术中划分Cache空间的示意图。
图3是在本发明一个实施例中划分Cache空间的流程图。
图4是在本发明一个实施例中当磁盘阵列A1的访问流量为10KB、磁盘阵列A2的访问流量为5KB以及磁盘阵列A3的访问流量为100KB时所划分的Cache空间的示意图。
图5是在本发明一个实施例中缓存控制器内部的结构示意图。
图6是在本发明一个实施例中Cache空间划分单元的一种具体结构示意图。
图7是在本发明一个实施例中Cache空间划分单元的另一种具体结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图及具体实施例对本发明作进一步地详细描述。
本发明提出了一种划分Cache空间的方法。该方法应用于存储控制***中,该存储控制***中的缓存至少被划分成两个缓存空间,每一个缓存空间至少对应一个磁盘阵列,且每个磁盘阵列至少包括一个磁盘。在该方法中,统计在设定时间段内各个磁盘阵列的访问流量;根据该时间段内各个磁盘阵列的访问流量,划分对应于各个磁盘阵列的各部分Cache空间。
图3是在本发明一个实施例中划分Cache空间的流程图。参见图3,在本发明一个实施例中,划分Cache空间的过程具体包括以下步骤:
步骤301:预先设置定时周期长度。
这里,设置定时周期长度是为了在后续过程中,能够每隔一个定时周期长度触发一次重新划分Cache空间的过程,保证划分的Cache空间能够根据各个磁盘阵列的访问流量的变化而动态改变。显然这里的周期性的触发方式仅仅是一个较佳的例子,根据实际的需要采用特定***事件触发,或者随机性触发都是可以选择的实施方式。
步骤302:在***初始化时,划分对应于各个磁盘阵列的各部分Cache空间。
本步骤的实现过程包括但不限于以下两种方式:
方式一、按照现有技术划分Cache空间的方式。
在***初始化时,由于无法得知后续业务进行过程中每个磁盘阵列的实际流量大小,因此,也无法确定适合于各个磁盘阵列的Cache空间的大小。这样,在本步骤中,则可以直接利用现有技术划分Cache空间的方式,即按照磁盘阵列的个数,将完整的Cache空间均分为对应于各个磁盘阵列的各部分Cache空间。如图2所示,比如,有3个磁盘阵列,则在本步骤中,可以将完整的Cache空间均分成A1的Cache空间、A2的Cache空间和A3的Cache空间。
方式二、按照预测的各磁盘阵列的访问流量进行划分。
在***初始化时,虽然无法得知后续业务进行过程中每个磁盘阵列的实际流量大小,但是,可以根据各个磁盘阵列将要存储的数据的类型,来预测各磁盘阵列的访问流量的比例,然后,根据预测的该比例将完整的Cache空间均分为对应于各个磁盘阵列的各部分Cache空间。
步骤303:初始化计时器。
这里,所述的初始化计时器是指使计时器从0开始计时。
步骤304:监测计时器所计数值是否到达预先设置的定时周期长度,如果是,则执行步骤306,否则,执行步骤305。
步骤305:统计从各个磁盘阵列中读取数据的数据量以及向各个磁盘阵列写入数据的数据量,返回步骤304。
比如,如图1所示,有3个磁盘阵列,每当对一个磁盘阵列如磁盘阵列A1进行一次写操作或读操作时,均将该操作所对应的数据量与之前累计的该磁盘阵列A1的数据量进行累加。
步骤306:根据当前统计得到的读取数据的数据量以及写入数据的数据量,得到各个磁盘阵列的访问流量。
执行到本步骤,对于每一个磁盘阵列,是将在定时周期长度内统计得到的向该磁盘阵列写入的数据量与从该磁盘阵列读取的数据量进行累加,这样,则得到了该磁盘阵列的访问流量。
需要说明的是,在上述步骤305和306中,是同时对读取的数据量和写入的数据量进行统计,并根据读取的数据量和写入的数据量之和来确定每一个磁盘阵列的访问流量。在实际的业务实现中,也可以只对读取的数据量和写入的数据量两者中的一个进行统计,也就是说,在步骤305中,可以仅统计从各个磁盘阵列中读取数据的数据量或者写入数据的数据量,相应地,在步骤306中,则均根据当前统计得到的读取数据的数据量或者写入数据的数据量,得到各个磁盘阵列的访问流量。
另外,也可以不根据读写的数据量来确定各个磁盘阵列的访问流量,而根据接收到的数据写入请求的数量和/或数据读取请求的数量来确定。这样,步骤305则可以替换为:统计所接收到的对各个磁盘阵列的数据写入请求的数量和/或数据读取请求的数量,返回步骤304。相应地,步骤306则可以替换为:根据当前统计得到的数据写入请求的数量和/或数据读取请求的数量,得到各个磁盘阵列的访问流量。也就是说,直接将数据写入请求的数量和/或数据读取请求的数量视为磁盘阵列的访问流量。
步骤307:确定各个磁盘阵列的访问流量的比例,记为比例1。
这里,参见图1,比如有3个磁盘阵列,当前统计出的磁盘阵列A1的访问流量为10KB,磁盘阵列A2的访问流量为5KB,磁盘阵列A3的访问流量为100KB,那么,本步骤中所确定的比例1则为10∶5∶100=2∶1∶20。
步骤308:设置每个磁盘阵列对应的加权值。
在实际的业务实现中,每个磁盘阵列所存储的数据不同,而不同数据对Cache空间的需求不同。比如,当不同磁盘阵列中存储的数据的类型不同时,如磁盘阵列1存储视频类型的数据,磁盘阵列2存储图片类型的数据,那么,由于视频类型的数据会被连续读取,因此,对Cache空间需求较大,而图片类型的数据只会被随机读取,因此,对Cache空间需求较小,这样,在本步骤中,则可以根据磁盘阵列所存储数据的类型来设置该磁盘阵列对应的加权值的大小,即数据连续性强的数据类型,则加权值较大。
另外,当不同磁盘阵列中存储的数据的重要性不同时,对Cache空间需求也不同,这样,在本步骤中,则可以根据磁盘阵列所存储数据的重要性来设置该磁盘阵列对应的加权值的大小,即数据重要性高的,则加权值较大。
当然,也可以同时考虑磁盘阵列所存储数据的类型和重要性,来设置磁盘阵列对应的加权值。
步骤309:将比例1中对应每个磁盘阵列的比例值乘以该磁盘阵列对应的加权值,得到一个新的比例,记为比例2。
比如,对于磁盘阵列A1、A2和A3,其对应的加权值分别为40%、30%和50%,那么,本步骤的计算过程为:比例2=(2×40%)∶(1×30%)∶(20×50%)=8∶3∶100。
步骤310:按照比例2将完整的Cache空间划分为对应于各个磁盘阵列的各部分Cache空间。
比如,参见图4,对于磁盘阵列A1、A2和A3,按照本步骤的过程划分Cache空间后,磁盘阵列A1、A2和A3所占用的Cache空间大小的比例则为8∶3∶100。
需要说明的是,本步骤310的过程可以是在每次统计出各个磁盘阵列的访问流量后,就立即执行。较佳地,本步骤310的过程可以不在每次统计出各个磁盘阵列的访问流量后立即执行,而是对于任意一个磁盘阵列,在接收到对该磁盘阵列进行读写操作的请求时,再根据当前最新得到的比例2为该磁盘阵列划分对应的Cache空间。
上述步骤307至步骤310的过程是按照比例2来划分Cache空间。在实际的业务实现过程中,也可以直接按照各磁盘阵列的访问流量的比例即比例1来划分Cache空间,此时,在执行完上述步骤307后,则无需执行步骤308和步骤309,并且,在执行步骤310时,是根据比例1将完整的Cache空间划分为对应于各个磁盘阵列的各部分Cache空间。
还需要说明的是,为了保证每次划分的Cache空间不至于太多或太少,使其更加符合实际业务需求,本发明实施例可以预先为每一个磁盘阵列设定对应的空间大小范围,比如,磁盘阵列1对应的空间大小范围为1KB~6KB,这样,在上述图3所示流程中,在统计出每一个磁盘阵列的访问流量之后,并在划分每一个磁盘阵列对应的Cache空间之前,还可以进一步包括:根据划分Cache空间所使用的比例值,判断将要为每一个磁盘阵列划分的Cache空间的大小是否在预先设定的该磁盘阵列对应的空间大小范围之内,如果是,则继续划分该磁盘阵列对应的Cache空间,否则,保持该磁盘阵列原有的Cache空间大小。
另外,为了最大程度地保证***的每秒输入输出流量(IOPS)性能,在上述图3所示流程中,在统计出各个磁盘阵列的访问流量之后,并在划分对应于各个磁盘阵列的各部分Cache空间之前,还可以进一步包括:
根据各个磁盘阵列在未执行所述划分处理之前的命中率以及流量等参数(参数的选择与性能计算标准有关)计算得到第一性能值;根据划分Cache空间所使用的比例值确定各个磁盘阵列将要划分的Cache空间,根据各个磁盘阵列将要划分的Cache空间预估各个磁盘阵列的命中率,根据预估命中率以及当前的流量等参数计算得到第二性能值;判断第二性能值是否大于第一性能值,如果是,则继续执行所述的划分对应于各个磁盘阵列的各部分Cache空间的步骤,否则,保持各个磁盘阵列原有的Cache空间大小。
比如,在统计出各个磁盘阵列的访问流量之后,磁盘阵列A1、A2和A3的流量分别为10K IOPS、5K IOPS和100K IOPS,在未执行所述划分Cache空间的处理之前,磁盘阵列A1、A2和A3分别对应的Cache空间大小相同,此时,磁盘阵列A1、A2和A3分别对应的命中率为40%、50%和30%,这样,则可以得到,第一性能值为10K×40%+5K×50%+100K×30%=36.5K IOPS。按照本发明实施例的方法划分Cache空间,磁盘阵列A3对应的Cache空间将大于磁盘阵列A1对应的Cache空间,磁盘阵列A1对应的Cache空间将大于磁盘阵列A2对应的Cache空间,因此,磁盘阵列A3对应的命中率值将增大,如预估得到的磁盘阵列A1、A2和A3命中率值分别为30%、40%和50%,那么,则可以得到,第二性能值为10K×30%+5K×40%+100K×50%=55K IOPS,由于55K IOPS大于36.5K IOPS,因此,证明按照本发明实施例方法划分Cache空间后,能够带来***性能的提升,因此,可以继续执行后续的划分对应于各个磁盘阵列的各部分Cache空间的处理,否则不执行划分,保持原来的比例。上述对命中率的预估一般来说可以基于多次划分过程的统计。参数的选取是灵活的,比如说,可以选择实际数据流量的大小代替IOPS,也可以一起使用,各设权重;本领域技术人员可以根据实际需求灵活调整。
还需要说明的是,图3所示的本发明实施例是一个动态分配Cache空间的过程。在每次为磁盘阵列分配对应的Cache空间时,如果均将完整的Cache空间重新初始化并完全重新划分,则会使得每个磁盘阵列对应的Cache空间地址完全不固定,从而对磁盘阵列的读写造成不便。因此,一种较佳的处理方式为:在***初始化为各个磁盘阵列分配对应的Cache空间后,后续过程中每次需要为一个磁盘阵列重新分配对应的Cache空间时,均在该磁盘阵列当前已对应的Cache空间的基础上,进行相应的Cache空间的增加或减少。
在本发明实施例中,对对应于一个磁盘阵列的Cache空间进行相应的Cache空间的增加或减少的处理可以利用本申请人提出的发明名称为“分配缓存空间的方法和装置以及缓存控制器”,申请日为2007年9月3日,申请号为200710121301.X的申请文件中记载的Cache管理对象的方式来实现。也就是说,利用完整Cache空间中各段地址连续的空闲空间组成各个Cache管理对象(无论空闲空间对应于哪个磁盘阵列,均执行组成Cache管理对象的处理),通过预先设置的空闲空间链表连接各个Cache管理对象;在为每一个磁盘阵列划分对应的Cache空间时,如果根据其当前已对应的Cache空间确定需要增加Cache空间,则从空闲空间链表中取出对应该增加的Cache空间大小的Cache管理对象,并分配给该磁盘阵列;如果根据其当前已对应的Cache空间确定需要减少Cache空间,则从其当前已对应的Cache空间中回收该需要减少的Cache空间,并将回收的Cache空间组成Cache管理对象后连接到空闲空间链表中。
其中,在执行从空闲空间链表中取出对应需增加的Cache空间大小的Cache管理对象时,如果空闲空间链表中没有一个或多个Cache管理对象指示的Cache空间的大小正好满足该需增加的Cache空间大小,那么,则需要对Cache管理对象进行拆分和重组的处理,具体的实现过程可参见上述发明名称为“分配缓存空间的方法和装置以及缓存控制器”,申请日为2007年9月3日,申请号为200710121301.X的申请文件。
其中,在执行从磁盘阵列当前已对应的Cache空间中回收需要减少的Cache空间时,一种具体的实现方式为:检测该磁盘阵列当前已对应的Cache空间中是否存在空闲的、满足所述需要减少的Cache空间大小的Cache空间,如果是,则直接从该磁盘阵列当前已对应的Cache空间中回收所述需要减少的Cache空间,否则,等待该磁盘阵列当前已对应的Cache空间中释放满足所述需要减少的Cache空间大小的Cache空间后,回收所述需要减少的Cache空间。
步骤311:将已统计出的各磁盘阵列的访问流量全部清零,返回步骤303。
在图3所示流程中,是定期执行统计各磁盘阵列的访问流量和分配各个磁盘阵列对应的Cache空间的处理,在实际的业务实现中,也可以利用触发方式来执行,比如,管理人员确定需要进行调整Cache空间时,触发上述统计各磁盘阵列的访问流量和分配各个磁盘阵列对应的Cache空间的处理。
另外,本发明还提出了一种缓存控制器,应用于存储控制***中,所述存储控制***中的缓存至少被划分成两个缓存空间,每一个缓存空间至少对应一个磁盘阵列,所述磁盘阵列至少包括一个磁盘。图5是在本发明一个实施例中缓存控制器内部的结构示意图。参见图5,在本发明一个实施例中,缓存控制器包括:
信息获取单元,用于获取各个磁盘阵列的访问流量的信息,并提供给Cache空间划分单元;
Cache空间划分单元,用于根据各个磁盘阵列的访问流量的信息,划分对应于各个磁盘阵列的各部分Cache空间。
具体地,Cache空间划分单元可以仅利用统计出的各磁盘阵列的访问流量的比例来划分Cache空间。此时,参见图6所示,Cache空间划分单元包括:
流量比例确定子单元,用于确定各个磁盘阵列的访问流量的比例;
划分执行子单元,用于将完整的Cache空间按照流量比例确定子单元所确定的比例划分为对应于各个磁盘阵列的各部分Cache空间。
具体地,Cache空间划分单元还可以利用统计出的各磁盘阵列的访问流量的比例以及命中率来划分Cache空间。此时,参见图7所示,Cache空间划分单元包括:
加权值设置子单元,用于为每一个磁盘阵列设置对应的加权值;
流量比例确定子单元,用于确定各个磁盘阵列的访问流量的第一比例,将第一比例中对应每个磁盘阵列的比例值乘以加权值设置子单元设置的该磁盘阵列的加权值,得到第二比例;
划分执行子单元,用于将完整的Cache空间按照流量比例确定子单元所得到的第二比例划分为对应于各个磁盘阵列的各部分Cache空间。
参见图6和图7,较佳地,对于任意一个磁盘阵列,缓存控制器可以在接收到对该磁盘阵列进行读写操作的请求时,再为该磁盘阵列划分对应的Cache空间,其实现包括:
所述信息获取单元进一步接收主机处理器发来的对一个磁盘阵列的读写操作请求,将该读写操作请求发送至所述划分执行子单元;
所述划分执行子单元在接收到对一个磁盘阵列的读写操作请求后,执行为该磁盘阵列划分对应的Cache空间的处理。
为了保证每次划分的Cache空间不至于太多或太少,使其更加符合实际业务需求,在缓存控制器中,所述Cache空间划分单元可以进一步包括:
空间检测执行子单元,用于根据流量比例确定子单元最终得到的比例值,检测将要为每一个磁盘阵列划分的Cache空间的大小是否在预先设定的该磁盘阵列对应的空间大小范围之内,如果是,则将用于触发后续划分Cache空间的允许执行通知发送至所述Cache空间划分单元,否则,将用于禁止后续划分Cache空间的禁止执行通知发送至所述Cache空间划分单元。
为了最大程度地保证***的IOPS性能,在缓存控制器中,所述Cache空间划分单元进一步包括:
性能检测执行子单元,用于根据各个磁盘阵列在未执行所述划分之前的Cache空间,得到各个磁盘阵列的命中率,将在未执行所述划分之前,各个磁盘阵列的Cache空间分别乘以得到的各个磁盘阵列的命中率,得到第一性能值;根据流量比例确定子单元最终得到的比例值,确定各个磁盘阵列将要划分的Cache空间,根据各个磁盘阵列将要划分的Cache空间确定各个磁盘阵列的命中率,将各个磁盘阵列将要划分的Cache空间分别乘以确定的各个磁盘阵列的命中率,得到第二性能值;判断第二性能值是否大于第一性能值,如果是,则将用于触发后续划分Cache空间的允许执行通知发送至所述Cache空间划分单元,否则,将用于禁止后续划分Cache空间的禁止执行通知发送至所述Cache空间划分单元。
另外,本发明还提出了一种分配缓存空间的装置,应用于存储控制***中,所述存储控制***中的缓存至少被划分成两个缓存空间,每一个缓存空间至少对应一个磁盘阵列,所述磁盘阵列至少包括一个磁盘。该装置包括缓存控制器和主机处理器,其中,主机处理器用于将统计的各个磁盘阵列的访问流量上报给缓存控制器;缓存控制器的内部结构和功能可以利用上述本发明实施例中描述的缓存控制器来实现。
总之,以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (18)
1.一种划分缓存空间的方法,应用于存储控制***中,所述存储控制***包括用以处理外部读写请求的主机处理器和位于主机处理器与缓存之间的缓存控制器,所述存储控制***中的缓存至少被划分成两个缓存空间,每一个缓存空间至少对应一个磁盘阵列,所述磁盘阵列至少包括一个磁盘,其特征在于,该方法包括:
统计设定时间段内各个磁盘阵列的数据读写请求的数量或数据读写的数据量,得到该时间段内各个磁盘阵列的访问流量;
根据该时间段内各个磁盘阵列的访问流量,通过周期性触发或者特定***事件触发或者随机性触发的方式划分对应于各个磁盘阵列的各部分Cache空间,其中,访问流量大的磁盘阵列划分的Cache空间大。
2.根据权利要求1所述的方法,其特征在于,所述统计设定时间段内各个磁盘阵列的数据读写请求的数量或数据读写的数据量,得到该时间段内各个磁盘阵列的访问流量的步骤包括:
统计在一个设定时间长度内,对各个磁盘阵列的数据写入请求的数量和/或数据读取请求的数量,根据统计的该数据写入请求的数量和/或数据读取请求的数量,得到各个磁盘阵列的访问流量;
或者,统计在一个设定时间长度内,向各个磁盘阵列写入数据的数据量和/或从各个磁盘阵列中读取数据的数据量,根据统计的所述写入数据的数据量和/或所述读取数据的数据量,得到各个磁盘阵列的访问流量。
3.根据权利要求1所述的方法,其特征在于,在业务进行过程中,每当计时到达预先设置的定时周期长度时,执行所述划分的步骤。
4.根据权利要求1、2或3所述的方法,其特征在于,所述划分对应于各个磁盘阵列的各部分Cache空间的步骤包括:
确定各个磁盘阵列的访问流量的比例,按照所确定的比例将完整的Cache空间划分为对应于各个磁盘阵列的各部分Cache空间;
或者,确定各个磁盘阵列的访问流量的第一比例,将第一比例中对应每个磁盘阵列的比例值乘以设置的该磁盘阵列的加权值,得到第二比例,按照第二比例将完整的Cache空间划分为对应于各个磁盘阵列的各部分Cache空间。
5.根据权利要求4所述的方法,其特征在于,每个磁盘阵列的加权值根据该磁盘阵列所存储的数据的类型和/或该磁盘阵列所存储的数据的重要性进行设置。
6.根据权利要求4所述的方法,其特征在于,在统计出每一个磁盘阵列的访问流量之后,并在划分每一个磁盘阵列对应的Cache空间之前,进一步包括:根据划分Cache空间所使用的比例值,判断将要为每一个磁盘阵列划分的Cache空间的大小是否在预先设定的该磁盘阵列对应的空间大小范围之内,如果是,则继续划分该磁盘阵列对应的Cache空间,否则,保持该磁盘阵列原有的Cache空间大小。
7.根据权利要求4所述的方法,其特征在于,在统计出各个磁盘阵列的访问流量之后,并在划分对应于各个磁盘阵列的各部分Cache空间之前,进一步包括:
根据各个磁盘阵列在未执行所述划分处理之前的参数计算得到第一性能值;根据各个磁盘阵列将要划分的Cache空间预估划分后的参数,根据预估的参数计算得到第二性能值;判断第二性能值是否大于第一性能值,如果是,则继续执行所述的划分对应于各个磁盘阵列的各部分Cache空间的步骤,否则,保持各个磁盘阵列原有的Cache空间大小;其中,根据性能计算标准选择所述参数。
8.根据权利要求7所述的方法,其特征在于,根据各个磁盘阵列在未执行所述划分处理之前的命中率以及每秒输入输出流量IOPS得到第一性能值;根据各个磁盘阵列将要划分的Cache空间预估各个磁盘阵列的命中率,根据预估命中率以及所述IOPS计算得到第二性能值。
9.根据权利要求1所述的方法,其特征在于,该方法进一步包括:在***初始化时,按照平均划分原则或按照预测的各磁盘阵列的访问流量的比例,将完整的Cache空间划分为对应于各个磁盘阵列的各部分Cache空间;并且,利用完整Cache空间中所有地址连续的空闲空间组成各个Cache管理对象,通过预先设置的空闲空间链表连接各个Cache管理对象;
所述划分对应于各个磁盘阵列的各部分Cache空间的步骤包括:在为每一个磁盘阵列划分对应的Cache空间时,如果根据该磁盘阵列当前已对应的Cache空间确定需要增加Cache空间,则从空闲空间链表中取出对应该增加的Cache空间大小的Cache管理对象,并分配给该磁盘阵列;如果根据该磁盘阵列当前已对应的Cache空间确定需要减少Cache空间,则从该磁盘阵列当前已对应的Cache空间中回收该需要减少的Cache空间,并将回收的Cache空间组成Cache管理对象后连接到空闲空间链表中。
10.根据权利要求1或9所述的方法,其特征在于,在接收到对一个磁盘阵列进行读写操作的请求时,执行为该磁盘阵列划分对应的Cache空间的处理。
11.根据权利要求9所述的方法,其特征在于,所述从该磁盘阵列当前已对应的Cache空间中回收该需要减少的Cache空间的步骤包括:检测该磁盘阵列当前已对应的Cache空间中是否存在空闲的、满足所述需要减少的Cache空间大小的Cache空间,如果是,则直接从该磁盘阵列当前已对应的Cache空间中回收所述需要减少的Cache空间,否则,等待该磁盘阵列当前已对应的Cache空间中释放满足所述需要减少的Cache空间大小的Cache空间后,回收所述需要减少的Cache空间。
12.一种缓存控制器,应用于存储控制***中,所述存储控制***包括用以处理外部读写请求的主机处理器和位于主机处理器与缓存之间的缓存控制器,所述存储控制***中的缓存至少被划分成两个缓存空间,每一个缓存空间至少对应一个磁盘阵列,所述磁盘阵列至少包括一个磁盘,其特征在于,包括:
信息获取单元,用于统计设定时间段内各个磁盘阵列的数据读写请求的数量或数据读写的数据量,获取各个磁盘阵列的访问流量的信息,并提供给Cache空间划分单元;
Cache空间划分单元,用于根据各个磁盘阵列的访问流量的信息,通过周期性触发或者特定***事件触发或者随机性触发的方式划分对应于各个磁盘阵列的各部分Cache空间,其中,访问流量大的磁盘阵列划分的Cache空间大。
13.根据权利要求12所述的缓存控制器,其特征在于,所述Cache空间划分单元包括:
流量比例确定子单元,用于确定各个磁盘阵列的访问流量的比例;
划分执行子单元,用于将完整的Cache空间按照流量比例确定子单元所确定的比例划分为对应于各个磁盘阵列的各部分Cache空间。
14.根据权利要求12所述的缓存控制器,其特征在于,所述Cache空间划分单元包括:
加权值设置子单元,用于为每一个磁盘阵列设置对应的加权值;
流量比例确定子单元,用于确定各个磁盘阵列的访问流量的第一比例,将第一比例中对应每个磁盘阵列的比例值乘以加权值设置子单元设置的该磁盘阵列的加权值,得到第二比例;
划分执行子单元,用于将完整的Cache空间按照流量比例确定子单元所得到的第二比例划分为对应于各个磁盘阵列的各部分Cache空间。
15.根据权利要求13或14所述的缓存控制器,其特征在于,所述信息获取单元进一步接收外部的主机处理器发来的对一个磁盘阵列的读写操作请求,将该读写操作请求发送至所述划分执行子单元;
所述划分执行子单元在接收到对一个磁盘阵列的读写操作请求后,执行为该磁盘阵列划分对应的Cache空间的处理。
16.根据权利要求13或14所述的缓存控制器,其特征在于,所述Cache空间划分单元进一步包括:
空间检测执行子单元,用于根据流量比例确定子单元最终得到的比例值,检测将要为每一个磁盘阵列划分的Cache空间的大小是否在预先设定的该磁盘阵列对应的空间大小范围之内,如果是,则将用于触发后续划分Cache空间的允许执行通知发送至所述Cache空间划分单元,否则,将用于禁止后续划分Cache空间的禁止执行通知发送至所述Cache空间划分单元。
17.根据权利要求13或14所述的缓存控制器,其特征在于,所述Cache空间划分单元进一步包括:
性能检测执行子单元,用于根据各个磁盘阵列在未执行所述划分之前的Cache空间,得到各个磁盘阵列在未执行所述划分之前的命中率,将在未执行所述划分之前,各个磁盘阵列的每秒输入输出流量IOPS分别乘以得到的各个磁盘阵列在未执行所述划分之前的命中率,得到第一性能值;根据流量比例确定子单元最终得到的比例值,确定各个磁盘阵列将要划分的Cache空间,根据各个磁盘阵列将要划分的Cache空间预估各个磁盘阵列的命中率,将各个磁盘阵列的所述IOPS分别乘以预估的各个磁盘阵列的命中率,得到第二性能值;判断第二性能值是否大于第一性能值,如果是,则将用于触发后续划分Cache空间的允许执行通知发送至所述Cache空间划分单元,否则,将用于禁止后续划分Cache空间的禁止执行通知发送至所述Cache空间划分单元。
18.一种划分缓存空间的装置,应用于存储控制***中,所述存储控制***包括用以处理外部读写请求的主机处理器和位于主机处理器与缓存之间的缓存控制器,所述存储控制***中的缓存至少被划分成两个缓存空间,每一个缓存空间至少对应一个磁盘阵列,所述磁盘阵列至少包括一个磁盘,其特征在于,包括主机处理器和如权利要求12至17中任意一项所述的缓存控制器,所述主机处理器用于将统计的各个磁盘阵列的访问流量上报给所述缓存控制器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007101215212A CN101135994B (zh) | 2007-09-07 | 2007-09-07 | 一种划分缓存空间的方法和装置以及缓存控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007101215212A CN101135994B (zh) | 2007-09-07 | 2007-09-07 | 一种划分缓存空间的方法和装置以及缓存控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101135994A CN101135994A (zh) | 2008-03-05 |
CN101135994B true CN101135994B (zh) | 2010-06-23 |
Family
ID=39160101
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007101215212A Expired - Fee Related CN101135994B (zh) | 2007-09-07 | 2007-09-07 | 一种划分缓存空间的方法和装置以及缓存控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101135994B (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101566933B (zh) * | 2009-06-11 | 2012-07-04 | 成都市华为赛门铁克科技有限公司 | 一种配置缓存的方法、装置和电子设备及数据读写装置 |
CN101610477B (zh) * | 2009-07-13 | 2012-09-05 | 中兴通讯股份有限公司 | 多媒体消息业务的处理***和方法 |
CN101957800A (zh) * | 2010-06-12 | 2011-01-26 | 福建星网锐捷网络有限公司 | 多通道缓存分配方法及装置 |
CN102096556B (zh) * | 2010-12-03 | 2013-11-06 | 华为数字技术(成都)有限公司 | 拷贝数据的方法、读取数据的方法和装置及*** |
CN102508619B (zh) | 2011-11-21 | 2014-09-17 | 华为数字技术(成都)有限公司 | 存储***服务质量控制方法、***和存储*** |
CN102436356B (zh) * | 2011-12-12 | 2014-12-24 | 华为数字技术(成都)有限公司 | 写页面空间分配方法和装置 |
WO2013097246A1 (zh) * | 2011-12-31 | 2013-07-04 | 华为技术有限公司 | 高速缓冲存储器控制方法、装置和*** |
CN102929788B (zh) * | 2012-09-14 | 2015-07-22 | 浪潮(北京)电子信息产业有限公司 | 一种存储***及存储空间回收的方法 |
CN102883143B (zh) * | 2012-09-21 | 2016-06-08 | 浙江宇视科技有限公司 | 一种调整raid阵列缓存的方法 |
CN104679589A (zh) * | 2013-11-27 | 2015-06-03 | 中兴通讯股份有限公司 | ***资源均衡调整方法及装置 |
CN103731505A (zh) * | 2014-01-17 | 2014-04-16 | 中国联合网络通信集团有限公司 | 一种数据分布式存储方法及*** |
CN103929608B (zh) * | 2014-04-16 | 2017-06-16 | 浙江宇视科技有限公司 | 一种动态分配缓存容量的方法以及装置 |
US9612970B2 (en) * | 2014-07-17 | 2017-04-04 | Qualcomm Incorporated | Method and apparatus for flexible cache partitioning by sets and ways into component caches |
CN104133642B (zh) * | 2014-07-29 | 2018-07-13 | 浙江宇视科技有限公司 | SSD Cache填充方法及装置 |
CN104407986B (zh) * | 2014-10-27 | 2018-03-13 | 华为技术有限公司 | 在存储设备中配置缓存的方法、装置及控制器 |
CN106027642A (zh) * | 2016-05-19 | 2016-10-12 | 乐视控股(北京)有限公司 | 用于确定cdn节点磁盘数量的方法及*** |
CN106201921A (zh) * | 2016-07-18 | 2016-12-07 | 浪潮(北京)电子信息产业有限公司 | 一种缓存分区容量的调整方法及装置 |
CN109284308A (zh) * | 2018-10-08 | 2019-01-29 | 郑州云海信息技术有限公司 | 一种基于mcs存储***快速创建缓存池的方法 |
CN110557432B (zh) * | 2019-07-26 | 2022-04-26 | 苏州浪潮智能科技有限公司 | 一种缓存池均衡优化方法、***、终端及存储介质 |
CN111026677B (zh) * | 2019-10-31 | 2022-02-18 | 苏州浪潮智能科技有限公司 | 一种基于ema算法的缓存分配方法、***、终端及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1601489A (zh) * | 2003-09-25 | 2005-03-30 | 国际商业机器公司 | 利用共享专用高速缓存减少高速缓存失误率的方法和*** |
CN1798094A (zh) * | 2004-12-23 | 2006-07-05 | 华为技术有限公司 | 一种使用缓存区的方法 |
-
2007
- 2007-09-07 CN CN2007101215212A patent/CN101135994B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1601489A (zh) * | 2003-09-25 | 2005-03-30 | 国际商业机器公司 | 利用共享专用高速缓存减少高速缓存失误率的方法和*** |
CN1798094A (zh) * | 2004-12-23 | 2006-07-05 | 华为技术有限公司 | 一种使用缓存区的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101135994A (zh) | 2008-03-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101135994B (zh) | 一种划分缓存空间的方法和装置以及缓存控制器 | |
WO2021120789A1 (zh) | 数据写入方法、装置及存储服务器和计算机可读存储介质 | |
US8909887B1 (en) | Selective defragmentation based on IO hot spots | |
CN101105772B (zh) | 控制计算机可读存储器的方法和管理数据单元的装置 | |
CN106469029B (zh) | 数据分层存储处理方法、装置和存储设备 | |
CN101221534B (zh) | 用于控制计算机可读存储器的方法和*** | |
WO2018019119A1 (zh) | 一种面向连续数据存储的动态局部并行数据布局方法及装置 | |
CN103106152B (zh) | 基于层次存储介质的数据调度方法 | |
CN103795781B (zh) | 一种基于文件预测的分布式缓存方法 | |
US20110252215A1 (en) | Computer memory with dynamic cell density | |
Puttaswamy et al. | Frugal storage for cloud file systems | |
US11093410B2 (en) | Cache management method, storage system and computer program product | |
CN103914398B (zh) | 用以管理具有实体地址空间的存储器使用率的方法及装置 | |
JP2011060119A5 (zh) | ||
CN103229136B (zh) | 磁盘阵列刷盘方法及磁盘阵列刷盘装置 | |
CN102111448A (zh) | 分布式哈希表dht存储***的数据预取方法、节点和*** | |
CN107391391A (zh) | 在固态硬盘的ftl实现数据拷贝的方法、***及固态硬盘 | |
US20100100757A1 (en) | Power estimating method and computer system | |
CN103167036A (zh) | 基于分布式多级缓存***的栅格数据存取方法 | |
CN107408018A (zh) | 用于在固态驱动器中适应垃圾收集资源分配的机制 | |
CN111737168A (zh) | 一种缓存***、缓存处理方法、装置、设备及介质 | |
CN109164976A (zh) | 利用写缓存优化存储设备性能 | |
CN103631537A (zh) | 一种虚拟磁盘的管理方法及装置 | |
CN102567225A (zh) | 一种管理***内存的方法及装置 | |
CN101783814A (zh) | 海量存储***的元数据存储方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Patentee after: Xinhua three Technology Co., Ltd. Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base Patentee before: Huasan Communication Technology Co., Ltd. |
|
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100623 Termination date: 20200907 |