CN110865768A - 写缓存资源分配方法、装置、设备以及存储介质 - Google Patents
写缓存资源分配方法、装置、设备以及存储介质 Download PDFInfo
- Publication number
- CN110865768A CN110865768A CN201810979022.5A CN201810979022A CN110865768A CN 110865768 A CN110865768 A CN 110865768A CN 201810979022 A CN201810979022 A CN 201810979022A CN 110865768 A CN110865768 A CN 110865768A
- Authority
- CN
- China
- Prior art keywords
- write cache
- raid group
- write
- quota
- return rate
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开一种写缓存资源分配方法、装置、设备以及计算机可读存储介质,该方法包括:获取预设时间内多个RAID组中的每个RAID组的即将淘汰区域的页面被命中的IO次数、每次IO的写延迟代价参数值以及所述每个RAID组的写缓存的配额;计算所述每个RAID组的写缓存投入回报率;根据所述写缓存投入回报率,对所述每个RAID组的所述写缓存的配额进行动态迁移。本申请实施例通过写时延代价参数和其他性能观测值计算出RAID组的写缓存投入回报率,进而对写缓存的配额进行动态迁移;自适应主机业务空间局部性实时发生变化,磁盘利用率高,实现用户业务目标最大化。
Description
技术领域
本申请实施例涉及通信技术领域,尤其涉及一种写缓存资源分配方法、装置、设备以及计算机可读存储介质。
背景技术
在存储设备的设计中,各厂家或研究单位都会使用非易失性内存(包括利用镜像技术实现的非易失能力)作为写缓存,以此来提高某些场景下系统的写性能(高吞吐量、低时延)。
现有技术存在的问题是,不同主机IO或主机LUN(Logical Unit Number,逻辑单元号)上的业务本身的重要程度不同的话,单纯的提高磁阵总体吞吐量没有将用户价值发挥到最大化。
发明内容
有鉴于此,本申请实施例的目的在于提供一种写缓存资源分配方法、装置、设备以及计算机可读存储介质,以解决现有技术存在不同主机IO或主机LUN(Logical UnitNumber,逻辑单元号)上的业务本身的重要程度不同的话,单纯的提高磁阵总体吞吐量没有将用户价值发挥到最大化的问题。
本申请实施例解决上述技术问题所采用的技术方案如下:
根据本申请实施例的一个方面,提供的一种写缓存资源分配方法,所述方法包括:
获取预设时间内多个RAID组中的每个RAID组的即将淘汰区域的页面被命中的IO次数、每次IO的写延迟代价参数值以及所述每个RAID组的写缓存的配额;
根据所述被命中的IO次数、所述每次IO的写延迟代价参数值以及所述写缓存的配额计算所述每个RAID组的写缓存投入回报率;
根据所述写缓存投入回报率,对所述每个RAID组的所述写缓存的配额进行动态迁移。
根据本申请实施例的另一个方面,提供的一种写缓存资源分配装置,所述装置包括获取模块、计算模块以及迁移模块;
所述获取模块,用于获取预设时间内多个RAID组中的每个RAID组的即将淘汰区域的页面被命中的IO次数、每次IO的写延迟代价参数值以及所述每个RAID组的写缓存的配额;
所述计算模块,用于根据所述被命中的IO次数、所述每次IO的写延迟代价参数值以及所述写缓存的配额计算所述每个RAID组的写缓存投入回报率;
所述迁移模块,用于根据所述写缓存投入回报率,对所述每个RAID组的所述写缓存的配额进行动态迁移。
根据本申请实施例的另一个方面,提供的一种写缓存资源分配设备,所述设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的写缓存资源分配程序,所述写缓存资源分配程序被所述处理器执行时实现上述的写缓资源分配方法的步骤。
根据本申请实施例的另一个方面,提供的一种计算机可读存储介质,所述计算机可读存储介质上存储有写缓存资源分配程序,所述写缓存资源分配程序被处理器执行时实现上述的写缓存资源分配方法的步骤。
本申请实施例的写缓存资源分配方法、装置、设备以及计算机可读存储介质,通过写时延代价参数和其他性能观测值计算出RAID组的写缓存投入回报率,进而对写缓存的配额进行动态迁移;自适应主机业务空间局部性实时发生变化,磁盘利用率高,实现用户业务目标最大化。
附图说明
图1为单RAID组模型下写缓存工作原理结构示意图;
图2为理想状态下单RAID组性能最大化时的模型结构示意图;
图3为二个RAID组场景下写缓存配额模型结构示意图;
图4本申请第一实施例的写缓存资源分配方法流程示意图;
图5为本申请第二实施例的写缓存资源分配设备结构示意图;
图6为本申请第三实施例的写缓存资源分配装置结构示意图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本申请所要解决的技术问题、技术方案及有益效果更加清楚、明白,以下结合附图和实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
第一实施例
在阐述本实施例之前,以下结合图1-图3对相关的背景知识及现有技术存在的问题进行说明:
目前公开的专利和文献多是对读缓存的研究,有关写缓存的资料较少,而这些现有技术在面对“多RAID(Redundant Arrays of Independent Disks,磁盘阵列)组共享写缓存”问题上都没有做到自适应和结合用户业务模型优化,对各种场景下的写性能最大化的考虑也不够全面。
如图1所示,单RAID组模型下写缓存工作的过程如下:
在写穿(Write Through)模式下(11线条),用户数据直接下发到RAID组,RAID组将数据固化到磁盘后反馈用户写入成功。
在写回模式下,用户数据先写入缓存(形成脏页面,21线条),立即给用户反馈成功,同时以异步的方式将脏数据不断刷盘(22线条),将脏页面转换成干净页面,以形成动态平衡。
为了便于讨论,定义以下指标:
P:为用户业务流入速率,单位为IO每秒,该指标表示假设存储设备的处理速度为无限快,业务每秒可写入存储设备的数据量;
F:为RAID组的处理能力,单位为IO每秒,该指标表示当向RAID组持续写入离散随机数据时的吞吐量;
C:为RAID组当前占有的写缓存块(页面)容量,单位为Kbyte;
G(C):是以C为自变量的函数,该函数的值表示以C为缓存容量时RAID组上用户实际感受到的性能吞吐量,单位为IO每秒;
M(C):是以C为自变量的函数,该函数的值表示以C为缓存容量时RAID组中通过缓存能力每秒节省IO个数(比如对同一LBA的两次写入,写穿模式需要操作两次磁盘,写回方式由于写命中的存在只需要操作一次),数学上M(C)=G(C)-F。
在实际业务中可能含有顺序写入和随机写入两种成份,对于顺序写入如果RAID栈层面做的比较好,只需要很少的写缓存,即可将顺序写性能提升到理论极限。因此对于业务中顺序写入成份的性能优化,可直接按RAID组物理磁盘个数n直接以预留定量的方式分配即可,根据经验要想使顺序写入性能达到RAID组理论极限,只需要分配4MB*n的缓存即可,而存储产品在规划时都会照顾到缓存和支持磁盘最大个数之间的比例,做到缓存容量远远大于4MB*Nmax,其中Nmax为存储产品最大支持的硬盘数量。
对于业务流中的随机部分,当这部分随机成份的时间和空间局部性很好时,写缓存就有机会利用这种特性来提升存储设备对外的写性能。为了简化问题的阐述,后文假定以上提出的P、F、C、G(C)、H(C)都是剔除了业务中的顺序成份后剩下的随机部分的统计值,比如一个用户以10000IOps速率写入,随机成份占10%,那么我们上面的参数P就等于10000*10%=1000IOps。利用好随机成份的时间、空间局部性是提高存储设备整体性能的关键。这一点以业界的存储产品来看,在磁盘成本相同的情况下,各厂家产品的顺序写性能基本持平,都可以达到所有物理盘同时旋转时的理论最大性能,而且不需要为此投入更多的缓存。但对于随机业务(均匀分布、R1分布等)有一定时间局部性的模型。
如图2所示,为理想状态下性能单RAID组性能最大化时的模型。当存储设备达到稳态时,会形成磁盘持续刷盘,G(C)=F(C)+M(C)的状态。流入的IO通过两种途径被消化掉:一种是和刷盘保持平衡,刷盘产生多少干净页面就由等量的新写入的脏页面消耗掉;另一种是新写入的IO命中了已有的脏数据,或者与已有脏数据相邻,这时候会出现IO合并,就好比用户向存储设备写入了二笔IO,但存储设备只需要向RAID组提交一次IO即可。M(C)正是写回模式比写穿模式可以提高写性能的原因。
下面引入多RAID组共存的场景,为了简化问题假设环境中存在2个RAID组,如图3所示。它们各自对应的5个参数分别设为:
RAID组1:P1,F1,C1,G1(C),M1(C);
RAID组2:P2,F2,C2,G2(C),M2(C)。
其中C1+C2小于等于系统的总写缓存大小,G1(C1)+G2(C2)是存储设备对外提供的实际输出性能。
在面对以上问题,存在一种解决方案,利用侦测M值增量计算出RAID组中哪一个最值得增加写缓存配额,哪一个最不值得增加其写缓存配额,然后动态的将少量写页面资源配额从“最不值得的”移动到“最值得的”。
但是该方案存在的问题是,如果不同主机IO或主机LUN上的业务本身的重要程度不同的话,单纯的提高磁阵总体吞吐量没有将用户价值发挥到最大化。常见的应用比如:文件系统的元数据卷比数据卷更重要、虚机的操作日志卷比普通业务卷更重要等等。如果能将这部分业务重要程度的因素也考虑进去,存储将给用户提供更好的体验。
如图4所示,本申请第一实施例提供一种写缓存资源分配方法,所述方法包括:
步骤S11:获取预设时间内多个磁盘阵列RAID组中的每个RAID组的即将淘汰区域的页面被命中的输入输出IO次数、每次IO的写延迟代价参数值以及所述每个RAID组的写缓存的配额。
在本实施例中,所述即将淘汰区域是所述每个RAID组的写缓存的一部分。一般地,每个RAID组的写缓存分为两部分,一部分为正常普通写缓存,另一部分为即将淘汰区域写缓存。即将淘汰区域占用每个RAID组的写缓存的比例,可由用户对该参数进行配置。
在本实施例中,写延迟代价参数(可以是按卷配置或协议中增加字段),可以用s表示代价程度,s的取值范围可以是(0,100),这个参数表示业务的请求存在写延迟的代价是多大。同样的,可由用户对每次IO或LUN的写延迟代价参数进行配置。通过用户配置的写延时代价参数对写缓存配额在不同RAID组间实现取舍,可实现用户业务目标最大化的效果。
在一种实施方式中,所述获取预设时间内多个RAID组中的每个RAID组的即将淘汰区域的页面被命中的IO次数、每次IO的写延迟代价参数值以及所述每个RAID组的写缓存的配额,之前还包括:
配置所述即将淘汰区域占用所述每个RAID组的写缓存的比例。
在该实施方式中,所述获取预设时间内多个RAID组中的每个RAID组的即将淘汰区域的页面被命中的IO次数、每次IO的写延迟代价参数值以及所述每个RAID组的写缓存的配额,之前还包括:
根据所述即将淘汰区域占用所述每个RAID组的写缓存的比例、页面的访问时间信息,确定所述即将淘汰区域的页面是否被命中。
作为示例地,假设用户配置的即将淘汰区域占用每个RAID组的写缓存的比例为1%,RAID组上最近一次页面写入的时间为T1,当前刚刚被刷盘的页面的写入的时间为T2,若页面的被访问时间为T。如果T<(T1-T2)*1%+T2,则说明命中了即将淘汰区域的页面。
在另一种实施方式中,所述获取预设时间内多个RAID组中的每个RAID组的即将淘汰区域的页面被命中的IO次数、每次IO的写延迟代价参数值以及所述每个RAID组的写缓存的配额,之前还包括:
配置所述每次IO的写延迟代价参数值。
步骤S12:根据所述被命中的IO次数、所述每次IO的写延迟代价参数值以及所述写缓存的配额计算所述每个RAID组的写缓存投入回报率。
在本实施例中,所述根据所述被命中的IO次数、所述每次IO的写延迟代价参数值以及所述写缓存的配额计算所述每个RAID组的写缓存投入回报率包括:
计算所述被命中的IO次数和所述每次IO的写延迟代价参数值的乘积;
将所述乘积除以所述写缓存的配额,得到所述每个RAID组的写缓存投入回报率。
具体地,所述每个RAID组的写缓存投入回报率K的计算公式如下:K=s*△M/C,其中s为每次IO的写延迟代价参数值,△M为被命中的IO次数,C为每个RAID组的写缓存的配额。
步骤S13:根据所述写缓存投入回报率,对所述每个RAID组的所述写缓存的配额进行动态迁移。
在本实施例中,所述根据所述写缓存投入回报率,对所述每个RAID组的所述写缓存的配额进行动态迁移包括:
确定写缓存投入回报率最大的RAID组和写缓存投入回报率最小的RAID组;
将所述写缓存投入回报率最小的RAID组中第二预设配额迁移到所述写缓存投入回报率最大的RAID组。
作为示例地,在确定每个RAID组的写缓存投入回报率K之后,对待进行动态迁移的RAID组按照K值从大到小的顺序进行排序,确定出K值最大的RAID组和K值最小的RAID组;然后从K值最小的RAID组向K值最大的RAID组迁移一定量的写缓存页面配额,例如:迁移1MB的写缓存页面配额,也可根据实测效果进行调整;以上述方式周期性的不断对不同RAID组间的配额进行调整,即可达到最佳对外输出性能。
在一种实施方式中,所述根据所述写缓存投入回报率,对所述每个RAID组的所述写缓存的配额进行动态迁移,之前还包括:
筛选出所述多个RAID组中的写缓存的配额大于第一预设配额的RAID组。
在该实施方式中,为了保证顺序写入最大性能,对待进行动态迁移的RAID组按照K值从大到小的顺序进行排序之后,需要对RAID组现有写页面配额是否已经低于最小允许值进行判断,最小允许值可以为N*4MB,其中N为RAID组物理磁盘个数。若某个RAID组当前的额度已经达到最小允许值,那么这个RAID组的配额只能增加不能再被减少,所以如果遇到K值最小的RAID组已经达到最小允许值,则从其他RAID组中选取K值第二小的作为配额被转移对象,同样需要考虑最小允许值,依次类推。
为了更好地阐述写缓存资源分配过程,以下对上述K值统计方法的理论依据进行说明:
主导思想是首先通过数学方法找到K值与哪些因素有关,结合每IO的“写延迟代价参数”(可以是按卷配置或协议中增加字段),用s表示代价程度,为方便讨论令s的取值范围是(0,100),这个参数表示业务的请求如果存在写延迟代价是多大,然后通过一些合理的近似,使得K值计算公式中所需的数据可通过工程的方法在系统运行中以较低的代价获得。
首先设表示K是在某一给定C值下s*G(C)对C的偏导数,这个值越大说明投入等量的C值即可使s*G(C)有较大的提升。但这个是难以在存储产品系统中轻易获取到的,如果要利用曲线拟合方法需要采集很长一段时间内的多个点,做曲线拟合后再求导才行,将导致这种技术难以在工程产品中应用,所以必须对进行合理近似,使得该值可以通过其他易于监测的数值计算出来。
进一步根据偏导定义得到,K(C)=(s*M(C+△C)–s*M(C))/△C。
对于M(C+△C)从物理意义上理解,实际上可以分解成两部分,一部分是命中了(或发生IO合并)的页面属于C配额中,另一部分是命中了的页面发生在△C这部分配额中。由于在某个RAID组中,随机脏数据是以LRU(Least Recently Used,最近最少使用)链表形式维护的,系统总是优先对一个RAID组中最无价值的那部分脏页面进行刷盘。那么我们不妨将当前某个RAID组的当前状态的脏数据C理解成两部分,C=C1+C2。
其中,C1为99%C,C2为1%C,分类上根据LRU链表认为C2为即将被刷盘的脏页面的总和,不难理解如果当前的缓存容量从C1+C2缩减为C1,那么C2这部分页面就应该已经被刷盘了,所以我们可以统计命中了C2这部分脏页面的IO次数,假设单位时间内统计到命中了C2这部分的IO次数为△M(C2),那么可得如下数学关系:
M(C)=M(C1+C2)=M(C1)+△M(C2),因为C2可近似认为就是上式中的△C,将这个关系代入上面K值的计算公式得:
K(C1)=(s*M(C1+C2)–s*M(C1))/C2=s*△M(C2)/C2=s*△M(1%C)/(1%C)。
式中1%是用户可配置的经验值,只要在不同RAID组间选取相同的比例,即可计算出具有可比性的K值来,而式中的s*△M(1%C)的物理意义是命中了“即将被刷盘”的页面的次数,而这个次数完全可以通过很小的代价统计到,统计方法如下。
设RAID组中刚刚被写入的页面的写入时间为T1,当前刚刚被刷盘的页面的写入时间为T2。K值刷新周期为1s,那么可认为在1s时间窗内,如果发现某次写入操作发生了命中,则判断其命中的页面的上次访问时间T和T1、T2的关系,若T<(T1-T2)*1%+T2则说明命中了“即将被刷盘”的页面,对RAID组上的s*△M(1%C)计数器中计数器进行自加带有s权重的累加操作,即如果某IO命中了“即将被刷盘”的页面,那么就将该IO对应的“写延迟代价”累加到s*△M(1%C)计数器中。这种近似方法虽然无法准确的度量出K值解析解中的每个变量的值,但是可以通过近似的方法直接将s*△M(1%C)作为一个整体观测出来。在1s统计窗口结束时,根据公式K=s*△M/(1%C)可以计算出每个RAID组的K值,因为每个卷的计算公式中分母中都存在相同的1%,完全可以全部扩大100被将其抵消,直接假设K=s*△M/C即可进行对比。
接下来从计算出的不同RAID组的K值中找到最大的和最小的RAID组,从K值最小的组向K值最大的组迁移一定量的写缓存页面配额,根据经验值,该值选取1MB为宜,也可根据实测效果进行调整。以此方法周期性的不断对不同RAID组间的配额进行调整,即可达到最佳对外输出性能。
另外,这里还需要考虑一种特殊情况,在计算过K值进行排序之后,先要判断一个RAID组现有写页面配额是否已经低于最小允许值(即上文提到的通过N*4MB计算出的为了保证顺序写入最大性能而必须保证的最小额度)。若某个RAID组当前的额度已经达到允许的最小值,那么这个RAID组的配额只能增加不能再被减少,所以如果遇到K值最小的RAID组已经达到配额下限,则从其他RAID组中选取K值第二小的作为配额被转移对象,同样需要考虑配额下限,以此类推。
本申请实施例的写缓存资源分配方法,通过写时延代价参数和其他性能观测值计算出RAID组的写缓存投入回报率,进而对写缓存的配额进行动态迁移;自适应主机业务空间局部性实时发生变化,磁盘利用率高,实现用户业务目标最大化。
第二实施例
如图5所示,本申请第二实施例提供一种写缓存资源分配设备,所述设备包括:存储器21、处理器22及存储在所述存储器21上并可在所述处理器22上运行的写缓存资源分配程序,所述写缓存资源分配程序被所述处理器22执行时,用于实现以下所述的写缓存资源分配方法的步骤:
获取预设时间内多个磁盘阵列RAID组中的每个RAID组的即将淘汰区域的页面被命中的输入输出IO次数、每次IO的写延迟代价参数值以及所述每个RAID组的写缓存的配额;
根据所述被命中的IO次数、所述每次IO的写延迟代价参数值以及所述写缓存的配额计算所述每个RAID组的写缓存投入回报率;
根据所述写缓存投入回报率,对所述每个RAID组的所述写缓存的配额进行动态迁移。
所述写缓存资源分配程序被所述处理器22执行时,还用于实现以下所述的写缓存资源分配方法的步骤:
配置所述即将淘汰区域占用所述每个RAID组的写缓存的比例。
所述写缓存资源分配程序被所述处理器22执行时,还用于实现以下所述的写缓存资源分配方法的步骤:
根据所述即将淘汰区域占用所述每个RAID组的写缓存的比例、页面的访问时间信息,确定所述即将淘汰区域的页面是否被命中。
所述写缓存资源分配程序被所述处理器22执行时,还用于实现以下所述的写缓存资源分配方法的步骤:
配置所述每次IO的写延迟代价参数值。
所述写缓存资源分配程序被所述处理器22执行时,还用于实现以下所述的写缓存资源分配方法的步骤:
计算所述被命中的IO次数和所述每次IO的写延迟代价参数值的乘积;
将所述乘积除以所述写缓存的配额,得到所述每个RAID组的写缓存投入回报率。
所述写缓存资源分配程序被所述处理器22执行时,还用于实现以下所述的写缓存资源分配方法的步骤:
筛选出所述多个RAID组中的写缓存的配额大于第一预设配额的RAID组。
所述写缓存资源分配程序被所述处理器22执行时,还用于实现以下所述的写缓存资源分配方法的步骤:
确定写缓存投入回报率最大的RAID组和写缓存投入回报率最小的RAID组;
将所述写缓存投入回报率最小的RAID组中第二预设配额迁移到所述写缓存投入回报率最大的RAID组。
本申请实施例的写缓存资源分配设备,通过写时延代价参数和其他性能观测值计算出RAID组的写缓存投入回报率,进而对写缓存的配额进行动态迁移;自适应主机业务空间局部性实时发生变化,磁盘利用率高,实现用户业务目标最大化。
第三实施例
如图6所示,本申请第三实施例提供一种写缓存资源分配装置,所述装置包括获取模块31、计算模块32以及迁移模块33;
所述获取模块31,用于获取预设时间内多个RAID组中的每个RAID组的即将淘汰区域的页面被命中的IO次数、每次IO的写延迟代价参数值以及所述每个RAID组的写缓存的配额。
在本实施例中,所述即将淘汰区域是所述每个RAID组的写缓存的一部分。一般地,每个RAID组的写缓存分为两部分,一部分为正常普通写缓存,另一部分为即将淘汰区域写缓存。即将淘汰区域占用每个RAID组的写缓存的比例,可由用户对该参数进行配置。
在本实施例中,写延迟代价参数(可以是按卷配置或协议中增加字段),可以用s表示代价程度,s的取值范围可以是(0,100),这个参数表示业务的请求存在写延迟的代价是多大。同样的,可由用户对每次IO或LUN的写延迟代价参数进行配置。通过用户配置的写延时代价参数对写缓存配额在不同RAID组间实现取舍,可实现用户业务目标最大化的效果。
所述计算模块32,用于根据所述被命中的IO次数、所述每次IO的写延迟代价参数值以及所述写缓存的配额计算所述每个RAID组的写缓存投入回报率。
在本实施例中,所述根据所述被命中的IO次数、所述每次IO的写延迟代价参数值以及所述写缓存的配额计算所述每个RAID组的写缓存投入回报率包括:
计算所述被命中的IO次数和所述每次IO的写延迟代价参数值的乘积;
将所述乘积除以所述写缓存的配额,得到所述每个RAID组的写缓存投入回报率。
具体地,所述每个RAID组的写缓存投入回报率K的计算公式如下:K=s*△M/C,其中s为每次IO的写延迟代价参数值,△M为被命中的IO次数,C为每个RAID组的写缓存的配额。
所述迁移模块33,用于根据所述写缓存投入回报率,对所述每个RAID组的所述写缓存的配额进行动态迁移。
在本实施例中,所述根据所述写缓存投入回报率,对所述每个RAID组的所述写缓存的配额进行动态迁移包括:
确定写缓存投入回报率最大的RAID组和写缓存投入回报率最小的RAID组;
将所述写缓存投入回报率最小的RAID组中第二预设配额迁移到所述写缓存投入回报率最大的RAID组。
作为示例地,在确定每个RAID组的写缓存投入回报率K之后,对待进行动态迁移的RAID组按照K值从大到小的顺序进行排序,确定出K值最大的RAID组和K值最小的RAID组;然后从K值最小的RAID组向K值最大的RAID组迁移一定量的写缓存页面配额,例如:迁移1MB的写缓存页面配额,也可根据实测效果进行调整;以上述方式周期性的不断对不同RAID组间的配额进行调整,即可达到最佳对外输出性能。
本申请实施例的写缓存资源分配装置,通过写时延代价参数和其他性能观测值计算出RAID组的写缓存投入回报率,进而对写缓存的配额进行动态迁移;自适应主机业务空间局部性实时发生变化,磁盘利用率高,实现用户业务目标最大化。
第四实施例
本申请第四实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有写缓存资源分配程序,所述写缓存资源分配程序被处理器执行时用于实现第一实施例所述的写缓存资源分配方法的步骤。
需要说明的是,本实施例的计算机可读存储介质,与第一实施例的方法属于同一构思,其具体实现过程详细见方法实施例,且方法实施例中的技术特征在本实施例中均对应适用,这里不再赘述。
本申请实施例的计算机可读存储介质,通过写时延代价参数和其他性能观测值计算出RAID组的写缓存投入回报率,进而对写缓存的配额进行动态迁移;自适应主机业务空间局部性实时发生变化,磁盘利用率高,实现用户业务目标最大化。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
以上参照附图说明了本申请的优选实施例,并非因此局限本申请的权利范围。本领域技术人员不脱离本申请的范围和实质内所作的任何修改、等同替换和改进,均应在本申请的权利范围之内。
Claims (10)
1.一种写缓存资源分配方法,所述方法包括:
获取预设时间内多个磁盘阵列RAID组中的每个RAID组的即将淘汰区域的页面被命中的输入输出IO次数、每次IO的写延迟代价参数值以及所述每个RAID组的写缓存的配额;
根据所述被命中的IO次数、所述每次IO的写延迟代价参数值以及所述写缓存的配额计算所述每个RAID组的写缓存投入回报率;
根据所述写缓存投入回报率,对所述每个RAID组的所述写缓存的配额进行动态迁移。
2.根据权利要求1所述的方法,其特征在于,所述获取预设时间内多个RAID组中的每个RAID组的即将淘汰区域的页面被命中的IO次数、每次IO的写延迟代价参数值以及所述每个RAID组的写缓存的配额,之前还包括:
配置所述即将淘汰区域占用所述每个RAID组的写缓存的比例。
3.根据权利要求2所述的方法,其特征在于,所述获取预设时间内多个RAID组中的每个RAID组的即将淘汰区域的页面被命中的IO次数、每次IO的写延迟代价参数值以及所述每个RAID组的写缓存的配额,之前还包括:
根据所述即将淘汰区域占用所述每个RAID组的写缓存的比例、页面的访问时间信息,确定所述即将淘汰区域的页面是否被命中。
4.根据权利要求1所述的方法,其特征在于,所述获取预设时间内多个RAID组中的每个RAID组的即将淘汰区域的页面被命中的IO次数、每次IO的写延迟代价参数值以及所述每个RAID组的写缓存的配额,之前还包括:
配置所述每次IO的写延迟代价参数值。
5.根据权利要求1所述的方法,其特征在于,所述根据所述被命中的IO次数、所述每次IO的写延迟代价参数值以及所述写缓存的配额计算所述每个RAID组的写缓存投入回报率包括:
计算所述被命中的IO次数和所述每次IO的写延迟代价参数值的乘积;
将所述乘积除以所述写缓存的配额,得到所述每个RAID组的写缓存投入回报率。
6.根据权利要求1所述的方法,其特征在于,所述根据所述写缓存投入回报率,对所述每个RAID组的所述写缓存的配额进行动态迁移,之前还包括:
筛选出所述多个RAID组中的写缓存的配额大于第一预设配额的RAID组。
7.根据权利要求1所述的方法,其特征在于,所述根据所述写缓存投入回报率,对所述每个RAID组的所述写缓存的配额进行动态迁移包括:
确定写缓存投入回报率最大的RAID组和写缓存投入回报率最小的RAID组;
将所述写缓存投入回报率最小的RAID组中第二预设配额迁移到所述写缓存投入回报率最大的RAID组。
8.一种写缓存资源分配装置,其特征在于,所述装置包括获取模块、计算模块以及迁移模块;
所述获取模块,用于获取预设时间内多个RAID组中的每个RAID组的即将淘汰区域的页面被命中的IO次数、每次IO的写延迟代价参数值以及所述每个RAID组的写缓存的配额;
所述计算模块,用于根据所述被命中的IO次数、所述每次IO的写延迟代价参数值以及所述写缓存的配额计算所述每个RAID组的写缓存投入回报率;
所述迁移模块,用于根据所述写缓存投入回报率,对所述每个RAID组的所述写缓存的配额进行动态迁移。
9.一种写缓存资源分配设备,其特征在于,所述设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的写缓存资源分配程序,所述写缓存资源分配程序被所述处理器执行时实现如权利要求1至7中任一项所述的写缓存资源分配方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有写缓存资源分配程序,所述写缓存资源分配程序被处理器执行时实现如权利要求1至7中任一项所述的写缓存资源分配方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810979022.5A CN110865768B (zh) | 2018-08-27 | 2018-08-27 | 写缓存资源分配方法、装置、设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810979022.5A CN110865768B (zh) | 2018-08-27 | 2018-08-27 | 写缓存资源分配方法、装置、设备以及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110865768A true CN110865768A (zh) | 2020-03-06 |
CN110865768B CN110865768B (zh) | 2022-03-04 |
Family
ID=69650839
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810979022.5A Active CN110865768B (zh) | 2018-08-27 | 2018-08-27 | 写缓存资源分配方法、装置、设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110865768B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113742381A (zh) * | 2021-08-30 | 2021-12-03 | 欧电云信息科技(江苏)有限公司 | 缓存获取方法、设备和计算机可读介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100205252A1 (en) * | 2009-02-10 | 2010-08-12 | International Business Machines Corporation | Optimizing Migration Policy During Live Virtual Memory Migration |
CN106569728A (zh) * | 2015-10-09 | 2017-04-19 | 中兴通讯股份有限公司 | 多磁盘阵列raid共享写缓存的处理方法及装置 |
-
2018
- 2018-08-27 CN CN201810979022.5A patent/CN110865768B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100205252A1 (en) * | 2009-02-10 | 2010-08-12 | International Business Machines Corporation | Optimizing Migration Policy During Live Virtual Memory Migration |
CN106569728A (zh) * | 2015-10-09 | 2017-04-19 | 中兴通讯股份有限公司 | 多磁盘阵列raid共享写缓存的处理方法及装置 |
Non-Patent Citations (1)
Title |
---|
LINJUN MEI等: "A Write-Through Cache Method to Improve Small Write Performance of SSD-Based RAID", 《IEEE》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113742381A (zh) * | 2021-08-30 | 2021-12-03 | 欧电云信息科技(江苏)有限公司 | 缓存获取方法、设备和计算机可读介质 |
CN113742381B (zh) * | 2021-08-30 | 2023-07-25 | 欧电云信息科技(江苏)有限公司 | 缓存获取方法、设备和计算机可读介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110865768B (zh) | 2022-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10853139B2 (en) | Dynamic workload management based on predictive modeling and recommendation engine for storage systems | |
US10534542B2 (en) | Dynamic core allocation for consistent performance in a non-preemptive scheduling environment | |
US20200034067A1 (en) | Storage system and data control method | |
CN102255962B (zh) | 一种分布式存储方法、装置和系统 | |
US11861204B2 (en) | Storage system, memory management method, and management node | |
EP2645259B1 (en) | Method, device and system for caching data in multi-node system | |
CN109358809B (zh) | 一种raid数据存储系统及方法 | |
US10802757B2 (en) | Automated management of write streams for multi-tenant storage | |
CN1545030A (zh) | 基于磁盘特征的数据分布动态映射的方法 | |
CN106873903B (zh) | 数据存储方法及装置 | |
US20120290789A1 (en) | Preferentially accelerating applications in a multi-tenant storage system via utility driven data caching | |
CN102136993A (zh) | 一种数据迁移的方法、装置和系统 | |
US20210326207A1 (en) | Stripe reassembling method in storage system and stripe server | |
CN111782135A (zh) | 数据存储方法、系统、数据节点和计算机可读存储介质 | |
CN111338579A (zh) | 基于存储池的读写缓存优化方法、系统、终端及存储介质 | |
CN116450053A (zh) | 数据存储方法、装置、系统、电子设备和存储介质 | |
US11593182B2 (en) | Storage system | |
US7870335B2 (en) | Host adaptive seek technique environment | |
CN106569728B (zh) | 多磁盘阵列raid共享写缓存的处理方法及装置 | |
CN110865768B (zh) | 写缓存资源分配方法、装置、设备以及存储介质 | |
JP2015088071A (ja) | 情報処理装置、記憶装置制御回路及び記憶装置の制御方法 | |
TW202215248A (zh) | 操作儲存系統的方法、以及對儲存資源的層級進行分區的方法 | |
CN111007988B (zh) | 一种raid内部磨损均衡方法、系统、终端及存储介质 | |
CN116560560A (zh) | 存储数据的方法和相关装置 | |
CN114047886A (zh) | 一种nvme命令处理方法、系统、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |