发明内容
本发明实施例提供一种写页面空间分配方法和装置,用以解决现有技术中写速度较快的raid组的写请求无法得到及时响应的缺陷。
本发明实施例提供的一种写页面空间分配方法,包括:
统计上一个周期内每个逻辑磁盘的写物理磁盘页面数,并计算所述上一个周期内所有逻辑磁盘的写物理磁盘总页面数;
对于每个逻辑磁盘,根据所述上一个周期内所述逻辑磁盘的写物理磁盘页面数、缓存的可用总写页面数和所有逻辑磁盘的写物理磁盘总页面数,确定当前周期内所述逻辑磁盘的理论可用写页面数;所述缓存为磁盘阵列中的缓存;
在当前周期内所述逻辑磁盘的理论可用写页面数大于等于所述逻辑磁盘的最小可用写页面数时,将所述逻辑磁盘的理论可用写页面数确定为逻辑磁盘的可用写页面数;
在所述当前周期内所述逻辑磁盘的理论可用写页面数小于所述逻辑磁盘的最小可用写页面数时,将所述逻辑磁盘的最小可用写页面数确定为所述逻辑磁盘的可用写页面数;
根据所述当前周期内每个逻辑磁盘的可用写页面数,在所述缓存中为每个逻辑磁盘分配写页面空间。
本发明实施例提供的一种写页面空间分配装置,包括:
统计模块,用于统计上一个周期内每个逻辑磁盘的写物理磁盘页面数,并计算所述上一个周期内所有逻辑磁盘的写物理磁盘总页面数;
理论写页面数控制模块,用于对于每个逻辑磁盘,根据所述上一个周期内所述逻辑磁盘的写物理磁盘页面数、缓存的可用总写页面数和所有逻辑磁盘的写物理磁盘总页面数,确定当前周期内所述逻辑磁盘的理论可用写页面数;所述缓存为磁盘阵列中的缓存;
可用写页面数控制模块,用于在当前周期内所述逻辑磁盘的理论可用写页面数大于等于所述逻辑磁盘的最小可用写页面数时,将所述逻辑磁盘的理论可用写页面数确定为逻辑磁盘的可用写页面数;在所述当前周期内所述逻辑磁盘的理论可用写页面数小于所述逻辑磁盘的最小可用写页面数时,将所述逻辑磁盘的最小可用写页面数确定为所述逻辑磁盘的可用写页面数;
写页面空间分配模块,用于根据所述当前周期内每个逻辑磁盘的可用写页面数,在所述缓存中为每个逻辑磁盘分配写页面空间。
本发明实施例提供的写页面空间分配方法和写页面空间分配装置,为每个逻辑磁盘在磁盘阵列的缓存中分配有写页面空间。页面空间分配装置周期性统计每个逻辑磁盘的写物理磁盘页面数,并且根据的是上一个周期内每个逻辑磁盘的写物理磁盘页面数、缓存的可用总写页面数和所有逻辑磁盘的写物理磁盘总页面数以及每个逻辑磁盘的最小可用写页面数,确定当前周期内每个逻辑磁盘的可用写页面数。因此,上一周期写物理磁盘页面数大即写物理磁盘流量大的逻辑磁盘,可以在当前周期内获得更多的可用写页面数,使得缓存中有足够的写页面空间及时响应写物理磁盘速度较快的逻辑磁盘的写请求,因而使写物理磁盘速度较快的逻辑磁盘和写物理磁盘速度较慢的逻辑磁盘可以合理共享磁盘阵列的缓存。
具体实施方式
图1为本发明实施例提供的写页面空间分配方法实施例一流程图。本发明实施例中一个RAID组的所有成员盘对应一个逻辑磁盘,每个逻辑磁盘当前周期在磁盘阵列的缓存中可占据的写页面空间,根据上一周期的写物理磁盘情况动态分配。在处理主机的写请求时,一个逻辑磁盘对应一个写请求等待队列,用于等待在逻辑磁盘可占据的页面空间中分配写页面。如图1所示,本实施例包括:
步骤11:写页面空间分配装置统计上一个周期内每个逻辑磁盘的写物理磁盘页面数,并计算上一个周期内所有逻辑磁盘的写物理磁盘总页面数。
其中,写物理磁盘页面数是一个统计周期内每个逻辑磁盘写物理磁盘成功的页面数;写页面空间分配装置周期性统计每个逻辑磁盘的写物理磁盘页面数,统计周期的范围可以是0.1秒至10秒。所述上一个周期可以是一个或多个读或写操作请求周期,用户可以在固定的周期内根据主机的读IO请求或写IO请求的流量统计,调整每个逻辑磁盘的页面配额。所有逻辑磁盘的写物理磁盘总页面数为每个逻辑磁盘的写物理磁盘页面数之和。
步骤12:对于每个逻辑磁盘,写页面空间分配装置根据上一个周期内所述逻辑磁盘的写物理磁盘页面数、缓存的可用总写页面数和所有逻辑磁盘的写物理磁盘总页面数,确定当前周期内所述逻辑磁盘的理论可用写页面数;所述缓存为磁盘阵列中的缓存。
写页面空间分配装置计算每个逻辑磁盘在当前周期内的可用写页面数。对于一个逻辑磁盘,根据上一个周期内该逻辑磁盘的写物理磁盘页面数、缓存的可用总写页面数和所有逻辑磁盘的写物理磁盘总页面数,计算该逻辑磁盘的理论可用写页面数。
通过查询内存变量的记录信息,获取以下信息:上一个周期内所述逻辑磁盘的写物理磁盘页面数、缓存的可用总写页面数和所有逻辑磁盘的写物理磁盘总页面数,以及逻辑磁盘的最小可用写页面数。之后,根据缓存的可用总写页面数和所述上一个周期内该逻辑磁盘的写物理磁盘页面数占所有逻辑磁盘的写物理磁盘总页面数的比率,确定当前周期内该逻辑磁盘的理论可用写页面数。上一个周期内该逻辑磁盘的写物理磁盘页面数占所有逻辑磁盘的写物理磁盘总页面数的比率越高,表明上一周期该逻辑磁盘在缓存中访问的写页面数越多。上一周期该逻辑磁盘在缓存中访问的写页面数较多时,当前周期该逻辑磁盘在缓存中也可能需要访问较多的写页面空间。因此,可通过该逻辑磁盘的写物理磁盘页面数占所有逻辑磁盘的写物理磁盘总页面数的比率确定当前周期内该逻辑磁盘的理论可用写页面数。例如,根据缓存的可用总写页面数与所述上一个周期内所述逻辑磁盘的写物理磁盘页面数占所有逻辑磁盘的写物理磁盘总页面数的比率的乘积,确定当前周期内所述逻辑磁盘的理论可用写页面数。所述上一个周期内所述逻辑磁盘的写物理磁盘页面数占所有逻辑磁盘的写物理磁盘总页面数的比率,为所述上一个周期内所述逻辑磁盘的写物理磁盘页面数与所有逻辑磁盘的写物理磁盘总页面数的比值。其中,缓存的可用总写页面数为缓存的总写页面数中减去保留写页面数后的写页面数。逻辑磁盘的最小可用写页面数,可为满足最大输入输出请求访问的写页面数量。
步骤13A:在当前周期内所述逻辑磁盘的理论可用写页面数大于等于所述逻辑磁盘的最小可用写页面数时,将所述逻辑磁盘的理论可用写页面数确定为逻辑磁盘的可用写页面数。
步骤13B:在当前周期内所述逻辑磁盘的理论可用写页面数小于所述逻辑磁盘的最小可用写页面数时,将所述逻辑磁盘的最小可用写页面数确定为所述逻辑磁盘的可用写页面数。
判断当前周期内该逻辑磁盘的理论可用写页面数是否大于等于该逻辑磁盘的最小可用写页面数。在当前周期内该逻辑磁盘的理论可用写页面数大于等于该逻辑磁盘的最小可用写页面数时,将该逻辑磁盘的理论可用写页面数确定为逻辑磁盘的可用写页面数;在所述当前周期内所述逻辑磁盘的理论可用写页面数小于所述逻辑磁盘的最小可用写页面数时,将该逻辑磁盘的最小可用写页面数确定为该逻辑磁盘的可用写页面数。当前周期内逻辑磁盘的可用写页面数,可为当前周期内该逻辑磁盘的最优分配页面数。
步骤14:写页面空间分配装置根据所述当前周期内每个逻辑磁盘的可用写页面数,在所述缓存中为每个逻辑磁盘分配写页面空间。
本发明实施例提供的写页面空间分配方法,写页面写空间分配装置为每个逻辑磁盘在磁盘阵列的缓存中分配有写页面空间。写页面空间分配装置周期性统计每个逻辑磁盘的写物理磁盘页面数,并且根据的是上一个周期内每个逻辑磁盘的写物理磁盘页面数、缓存的可用总写页面数和所有逻辑磁盘的写物理磁盘总页面数以及每个逻辑磁盘的最小可用写页面数,确定当前周期内每个逻辑磁盘的可用写页面数。因此,上一周期写物理磁盘页面数大的逻辑磁盘,即写物理磁盘流量的逻辑磁盘,可以在当前周期内获得更多的写页面空间,使得缓存中有足够的写页面空间及时响应写物理磁盘速度较快的逻辑磁盘的写请求,因而使写物理磁盘速度较快的逻辑磁盘和写物理磁盘速度较慢的逻辑磁盘可以合理共享磁盘阵列的缓存。
图2A为本发明实施例提供的写页面空间分配方法中处理主机写请求的方法实施例一流程图。如图2A所示,本实施例包括:
步骤21:接收主机发送的写页面分配请求,所述写页面分配请求用于在所述缓存中为指定逻辑磁盘分配的写页面空间中请求N个空闲页面,所述N为申请写页面数;
步骤22:判断该指定逻辑磁盘的等待队列是否为空。如果不为空,执行步骤23,如果为空执行步骤24。
步骤23:该指定逻辑磁盘的等待队列不为空时。将该写页面分配请求加入该指定逻辑磁盘的等待队列中。
步骤24:判断该写页面分配请求的申请写页面数与该指定逻辑磁盘的已占用页面数之和是否小于等于该指定逻辑磁盘的可用写页面数。如果是,执行步骤25,否则执行步骤26。
步骤25:该指定逻辑磁盘的等待队列为空且所述申请写页面数与所述指定逻辑磁盘的已占用写页面数之和小于等于该指定逻辑磁盘的可用写页面数时,在该指定逻辑磁盘的页面空间中为该写页面分配请求分配写页面,并累加该指定逻辑磁盘的已占用写页面数。
如图2B所示,主机写请求的数据先写在磁盘阵列的cache中,之后再从缓存中写到RAID组中的物理磁盘。因此,步骤25中在该指定逻辑磁盘的页面空间中为该写页面分配请求分配写页面后,将主机写请求的数据先写在缓存中为写请求的逻辑磁盘分配的写页面中,之后再从缓存中写到RAID组中的物理磁盘。
步骤26:该指定逻辑磁盘的等待队列为空且上述申请写页面数与该指定逻辑磁盘的已占用写页面数之和大于该指定逻辑磁盘的可用写页面数时,将该写页面分配请求加入该指定逻辑磁盘的等待队列中。
写页面空间分配装置接收到主机的针对某一逻辑磁盘的写页面分配请求后,根据该写页面分配请求的申请写页面数与该逻辑磁盘的已占用写页面数之和、该逻辑磁盘的可用写页面数,决策是立即为写页面分配请求分配写页面,还是该逻辑磁盘的置入等待队列中等待。
图3为本发明实施例提供的页面空间分配方法中处理主机写请求的方法实施例二流程图。如图3所示,本实施例包括:
步骤31:确定一个逻辑磁盘的页面中存在物理磁盘写成功的写页面后,根据物理磁盘写成功的页面数减少该逻辑磁盘的已占用写页面数。
步骤32:从该逻辑磁盘的等待队列中取出队首写页面分配请求。
一个逻辑磁盘的写物理磁盘请求成功处理后,该写物理磁盘请求在缓存中占用的页面空间可分配给该逻辑磁盘的等待队列中其它写物理磁盘请求,因此,减少该逻辑磁盘的已占用写页面数。从该逻辑磁盘的等待队列中取出队首写页面分配请求。在该队首写页面分配请求符合处理条件时,为队首写页面分配请求分配页面,具体方法如下。
步骤33:判断该队首写页面分配请求的申请写页面数与该逻辑磁盘的已占用写页面数之和是否小于等于该逻辑磁盘的可用写页面数。如果是执行步骤34,否则执行步骤35。
步骤34:确定该队首写页面分配请求的申请写页面数与该逻辑磁盘的已占用写页面数之和小于等于该逻辑磁盘的可用写页面数时,在所述缓存中该逻辑磁盘的写页面空间中为该队首写页面分配请求分配页面,并累加该逻辑磁盘的已占用写页面数。
步骤35:确定该队首写页面分配请求的申请写页面数与该逻辑磁盘的已占用写页面数之和大于指定逻辑磁盘的可用写页面数时,将该队首写页面分配请求放回该逻辑磁盘的等待队列。之后,返回步骤31执行。
写页面空间分配装置确定一个逻辑磁盘在缓存分配的写页面中存在物理磁盘写成功的写页面后,根据物理磁盘写成功的写页面数减少该逻辑磁盘的已占用写页面数,重试该逻辑磁盘的等待队列中取出队首写页面分配请求。在该队首写页面分配请求符合处理条件时,为队首写页面分配请求分配写页面。
图4为本发明实施例提供的写页面空间分配装置实施例一结构示意图。如图4所示,写页面空间分配装置包括:统计模块41、写页面数控制模块42和写页面空间分配模块43以及可用写页面数控制模块44。
统计模块41,用于统计上一个周期内每个逻辑磁盘的写物理磁盘页面数,并计算所述上一个周期内所有逻辑磁盘的写物理磁盘总页面数。
理论写页面数控制模块42,用于对于每个逻辑磁盘,根据所述上一个周期内所述逻辑磁盘的写物理磁盘页面数、缓存的可用总写页面数和所有逻辑磁盘的写物理磁盘总页面数,确定当前周期内所述逻辑磁盘的理论可用写页面数;所述缓存为磁盘阵列中的缓存。
进一步,理论写页面数控制模块具体用于根据所述缓存的可用总写页面数和所述上一个周期内所述逻辑磁盘的写物理磁盘页面数占所有逻辑磁盘的写物理磁盘总页面数的比率的乘积,确定当前周期内所述逻辑磁盘的理论可用写页面数。
可用写页面数控制模块44,用于在当前周期内所述逻辑磁盘的理论可用写页面数大于等于所述逻辑磁盘的最小可用写页面数时,将所述逻辑磁盘的理论可用写页面数确定为逻辑磁盘的可用写页面数;在所述当前周期内所述逻辑磁盘的理论可用写页面数小于所述逻辑磁盘的最小可用写页面数时,将所述逻辑磁盘的最小可用写页面数确定为所述逻辑磁盘的可用写页面数;
写页面空间分配模块43,用于根据所述当前周期内每个逻辑磁盘的可用写页面数,在所述缓存中为每个逻辑磁盘分配写页面空间。
页面空间分配装置周期性统计每个逻辑磁盘的写物理磁盘页面数,并且根据的是上一个周期内每个逻辑磁盘的写物理磁盘页面数、缓存的可用总写页面数和所有逻辑磁盘的写物理磁盘总页面数以及每个逻辑磁盘的最小可用写页面数,确定当前周期内每个逻辑磁盘的可用写页面数。因此,上一周期写物理磁盘页面数大即写物理磁盘流量大的逻辑磁盘,可以在当前周期内获得更多的可用写页面数,使得缓存中有足够的写页面空间及时响应写物理磁盘速度较快的逻辑磁盘的写请求,因而使写物理磁盘速度较快的逻辑磁盘和写物理磁盘速度较慢的逻辑磁盘可以合理共享磁盘阵列的缓存。
图5为本发明实施例提供的写页面空间分配装置实施例二结构示意图。如图5所示,在图4的基础上还可包括:写页面分配请求模块61、第一写页面处理模块62、第二写页面处理模块63和第三写页面处理模块64。
写页面分配请求模块61,用于接收主机发送的写页面分配请求,所述写页面分配请求用于在所述缓存中为指定逻辑磁盘请求N个空闲页面,所述N为申请写页面数。
第一写页面处理模块62,用于所述指定逻辑磁盘的等待队列为空且所述申请写页面数与所述指定逻辑磁盘的已占用写页面数之和小于等于所述指定逻辑磁盘的可用写页面数时,为所述写页面分配请求分配页面,并累加所述指定逻辑磁盘的已占用写页面数。
第二写页面处理模块63,所述指定逻辑磁盘的等待队列为空且所述申请写页面数与所述指定逻辑磁盘的已占用写页面数之和大于所述指定逻辑磁盘的可用写页面数时,将所述写页面分配请求加入所述指定逻辑磁盘的等待队列中。
第三写页面处理模块64,所述指定逻辑磁盘的等待队列不为空时。将所述写页面分配请求加入所述指定逻辑磁盘的等待队列中。
写页面空间分配装置接收到主机的针对某一逻辑磁盘的写页面分配请求后,根据该写页面分配请求的申请写页面数与该逻辑磁盘的已占用写页面数之和、该逻辑磁盘的可用写页面数,决策是立即为写页面分配请求分配写页面,还是该逻辑磁盘的置入等待队列中等待。
图6为本发明实施例提供的写页面空间分配装置实施例三结构示意图。如图6所示,在图4或图5的基础上还可包括:写页面数减少模块71、第四写页面处理模块72和第五写页面处理模块73。
写页面数减少模块71,用于确定一个逻辑磁盘的写页面中存在物理磁盘写成功的页面后,根据物理磁盘写成功的页面数减少所述逻辑磁盘的已占用写页面数。
第四写页面处理模块72,用于从所述逻辑磁盘的等待队列中取出队首写页面分配请求,确定所述队首写页面分配请求的申请写页面数与所述逻辑磁盘的已占用写页面数之和小于等于所述逻辑磁盘的可用写页面数时,为所述队首写页面分配请求分配页面,并累加所述逻辑磁盘的已占用写页面数。
第五写页面处理模块73,用于确定所述队首写页面分配请求的申请写页面数与所述逻辑磁盘的已占用写页面数之和大于所述逻辑磁盘的可用写页面数时,将所述队首写页面分配请求放回所述逻辑磁盘的等待队列队首。
写页面空间分配装置确定一个逻辑磁盘在缓存分配的写页面中存在物理磁盘写成功的写页面后,根据物理磁盘写成功的写页面数减少该逻辑磁盘的已占用写页面数,重试该逻辑磁盘的等待队列中取出队首写页面分配请求。在该队首写页面分配请求符合处理条件时,为队首写页面分配请求分配写页面。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。