一种动态调整存储设备Cache读写命令数的方法和装置制造方法及图纸

技术编号:10528003 阅读:92 留言:0更新日期:2014-10-09 12:49
本发明专利技术提供一种动态调整高速缓存Cache读写命令数的方法,该方法包括:统计周期时间T内通过写Cache下发的随机写命令数R_num和总写命令数T_num;并且统计周期时间T内RAID接收到的读命令数Raid_r和写命令数Raid_w;根据所述R_num、T_num得出的随机写的压力,根据Raid_r、Raid_w得出的RAID层实际的读写压力,以及通过Cache下发的命令总数上限值Up_n动态调整Cache层下发到RAID层的写命令数Wn和读命令数Rn。本发明专利技术方案利用现有系统各层面能分别统计各种命令数的功能,并根据各命令数之间的关系所能反映的业务的实际情况,设计调整算法,以达到动态根据业务读写状况,细致调整Cache层读写命令数的下发值,以更好的提高系统性能。

【技术实现步骤摘要】
-种动态调整存储设备Cache读写命令数的方法和装置
本专利技术涉及视频监控
,尤其涉及一种动态调整高速缓存Cache读写命令 数的方法和装置。
技术介绍
RAID (Redundant Array of Independent Disks,独立磁盘冗余阵列)已经广泛 使用于数据读写的各个领域中。为了提高系统性能,RAID阵列通常会引入高速缓冲存储器 Cache。众所周知,Cache是存储系统为阵列分配的内存空间。 -种存储系统结构如图1所示,其分为业务应用层、Cache层、RAID控制层和物理 磁盘层。其中Cache层是由系统内存中分割出一部分作为RAID阵列的缓存,若是读缓存,通 常应用预读功能提供系统读性能;若是写缓存,系统业务应用层将数据块写入Cache层后, Cache会根据一定的策略将数据块刷写至RAID阵列的磁盘中,如果刷写RAID成功,写入数 据块的写缓存空间将被回收;如果写RAID不成功,业务数据会保留在写Cache中。因此,该 类存储系统通常提供UPS (Uninterruptible Power Supply,不间断电源)以保证系统异常 掉电时写缓存中的数据不丢失。 通过读Cache到达RAID层的读命令可能为业务应用层产生的读10,可能为SCSI 中间层产生的读10,可能为逻辑卷LV产生的读10,也可能为Cache层产生的预取读10。这 些读10都会放到一个Cache的发送队列中,Cache发送线程按FIFO(先进先出)顺序下发 读10,并控制下发的读10个数为当前RAID的配置值Rn。另,读写10总个数不超过一个 RAID支持的最大命令个数Up_n。 通过写Cache到达RAID的写命令可能为从Cache的下刷的写10等。这些写10 会放到一个Cache发送队列中,Cache发送线程按FIFO顺序下发写10,并控制下发的写10 个数不超过当前RAID的配置值Wn。另外,读写10总个数不超过一个RAID支持的最大命令 个数Up_n。 当前RAID阵列的写Cache和读Cache中的读、写命令下发个数都是固定配置的。 随机写情况下,当前RAID配置的写10下发个数增大会提高写性能,但又可能影响读10下 发的及时性,从而影响读性能。 所以需要根据业务情况进行RAID阵列的写Cache和读Cache中的读、写命令下发 个数的变动。现有技术只能人为根据业务情况进行手动更改,这就很不方便,不能自动得适 应随机读写、顺序读写、伪随机读写等各种应用模型。如果固定配置好的读写命令数不能很 好的适应当前的应用模型,则将导致系统性能不能发挥到最好。
技术实现思路
有鉴于此,本专利技术提供一种动态调整高速缓存Cache读写命令数的方法和装置。 该方法和装置应用于存储设备。 该动态调整高速缓存Cache读写命令数的方法方法包括:统计周期时间T内通过 写Cache下发的随机写命令数R_num和总写命令数T_num ;并且统计周期时间T内RAID接 收到的读命令数Raid_r和写命令数Raid_w ;根据所述R_num、T_num得出的随机写的压力, 根据Raid_r、Raid_w得出的RAID层实际的读写压力,以及通过Cache下发的命令总数上限 值Up_n动态调整Cache层下发到RAID层的写命令数Wn和读命令数Rn。 优选地,所述动态调整Cache层下发到RAID层的写命令数Wn具体为: 根据下述公式计算Wn: Wn = Up_n*(R_num/T_num)*(Raid_w/(Raid_r+Raid_w)), 根据计算结果进行fc的调整; 所述动态调整Cache层下发到RAID层的Rn具体为: 根据下述公式计算 Rn :Rn = Wn*Raid_r/(Raid_r+Raid_w), 根据该计算结果进行Rn的调整。 优选地,当Raid_w为0时,Wn不进行调整,保持当前值不变;当Raid_r为0时,Rn 不进行调整,保持当前值不变。 基于同样的构思,该动态调整高速缓存Cache读写命令数的方法还可以按如下方 式设计:该方法包括:统计周期时间T内通过读Cache下发的随机读命令数RR_num和总读 命令数RT_num ;并且统计周期时间T内RAID接收到的读命令数Raid_r和写命令数Raid_ w ;根据所述RR_num、RT_num得出的随机读的压力,根据Raid_r、Raid_w得出的Raid层实 际的读写压力,以及通过Cache下发的命令总数上限值Up_n动态调整Cache层下发到RAID 层的写命令数fc和读命令数Rn。 优选地,动态调整Cache层下发到RAID层的读命令数Rn具体为: 根据下述公式计算Rn : Rn = Up_n*(RR_num/RT_num)*(Raid_r/(Raid_r+Raid_w)), 根据Rn的计算结果对Rn进行调整; 所述动态调整Cache层下发到RAID层的写命令数Wn具体为: 根据下述公式计算Wn: Wn = Rn*Raid_w/(Raid_r+Raid_w), 根据Wn的计算结果对Wn进行调整。 优选地,当Raid_r为0时,Rn不进行调整,保持当前值不变;当Raid_w为0时,Wn 不进行调整,保持当前值不变。 该动态调整高速缓存Cache读写命令数的装置包括:Cache层处理模块,用于统计 周期时间T内通过写Cache下发的随机写命令数R_num和总写命令数T_num ;RAID层处理 模块,用于统计周期时间T内RAID接收到的读命令数Raid_r和写命令数Raid_w ;Cache层 处理模块,还用于根据所述R_num、T_num得出的随机写的压力,根据Raid_r、Raid_w得出的 RAID层实际的读写压力,以及通过Cache下发的命令总数上限值Up_n动态调整Cache层下 发到RAID层的写命令数Wn和读命令数Rn。 优选地,该Cache层处理模块动态调整Cache层下发到RAID层的写命令数Wn具 体为: 根据下述公式计算fc : Wn = Up_n*(R_num/T_num)*(Raid_w/(Raid_r+Raid_w)), 根据计算结果进行Wn的调整; Cache层处理模块动态调整Cache层下发到RAID层的Rn具体为: 根据下述公式计算 Rn :Rn = Wn*Raid_r/(Raid_r+Raid_w), 根据该计算结果进行Rn的调整。 优选地,当Raid_w为0时,Cache层处理模块不进行Wn的调整,保持其当前值不 变;当Raid_r为0时,Cache层处理模块不进行Rn的调整,保持其当前值不变。 基于同样的构思,该动态调整高速缓存Cache读写命令数的装置还可以按照如下 方式进行设计,该装置包括:Cache层处理模块,用于统计周期时间T内通过读Cache下发 的随机读命令数RR_num和总读命令数RT_num ;RAID层处理模块,用于统计周期时间T内 RAID接收到的读命令数Raid_r和写命令数Raid_w ;Cache层处理模本文档来自技高网
...
一种动态调整存储设备Cache读写命令数的方法和装置

【技术保护点】
一种动态调整高速缓存Cache读写命令数的方法,该方法应用于存储设备,其特征在于,该方法包括:统计周期时间T内通过写Cache下发的随机写命令数R_num和总写命令数T_num;并且统计周期时间T内RAID接收到的读命令数Raid_r和写命令数Raid_w;根据所述R_num、T_num得出的随机写的压力,根据Raid_r、Raid_w得出的RAID层实际的读写压力,以及通过Cache下发的命令总数上限值Up_n动态调整Cache层下发到RAID层的写命令数Wn和读命令数Rn。

【技术特征摘要】
1. 一种动态调整高速缓存Cache读写命令数的方法,该方法应用于存储设备,其特征 在于,该方法包括: 统计周期时间T内通过写Cache下发的随机写命令数R_num和总写命令数T_num ;并 且统计周期时间T内RAID接收到的读命令数Raid_r和写命令数Raid_w ; 根据所述R_num、T_num得出的随机写的压力,根据Raid_r、Raid_w得出的RAID层实 际的读写压力,以及通过Cache下发的命令总数上限值Up_n动态调整Cache层下发到RAID 层的写命令数fc和读命令数Rn。2. 如权利要求1所述的方法,其特征在于,所述动态调整Cache层下发到RAID层的写 命令数Wn具体为: 根据下述公式计算Wn : Wn = Up_n*(R_num/T_num)*(Raid_w/(Raid_r+Raid_w)), 根据计算结果进行Wn的调整; 所述动态调整Cache层下发到RAID层的Rn具体为: 根据下述公式计算 Rn :Rn = Wn*Raid_r/(Raid_r+Raid_w), 根据该计算结果进行Rn的调整。3. 如权利要求2所述的方法,其特征在于,当Raid_w为0时,Wn不进行调整,保持当前 值不变;当Raid_r为0时,Rn不进行调整,保持当前值不变。4. 一种动态调整高速缓存Cache读写命令数的方法,该方法应用于存储设备,其特征 在于,该方法包括: 统计周期时间T内通过读Cache下发的随机读命令数RR_num和总读命令数RT_num ; 并且统计周期时间T内RAID接收到的读命令数Raid_r和写命令数Raid_w ; 根据所述RR_num、RT_num得出的随机读的压力,根据Raid_r、Raid_w得出的Raid层实 际的读写压力,以及通过Cache下发的命令总数上限值Up_n动态调整Cache层下发到RAID 层的写命令数fc和读命令数Rn。5. 如权利要求4所述的方法,其特征在于,所述动态调整Cache层下发到RAID层的读 命令数Rn具体为: 根据下述公式计算Rn : Rn = Up_n*(RR_num/RT_num)*(Raid_r/(Raid_r+Raid_w)), 根据Rn的计算结果对Rn进行调整; 所述动态调整Cache层下发到RAID层的写命令数Wn具体为: 根据下述公式计算Wn : Wn = Rn*Raid_w/(Raid_r+Raid_w), 根据fc的计算结果对fc进行调整。6. 如权利要求5所述的方法,其特征在于,当Raid_r为0时,Rn不进行调整,保持当前 值不变;当Raid_w为0时,Wn不进行调整,保持当前值不变。7. -种动态调整高速缓存Cache读写命令数的装置,该方法应用于存储设备,其特征 在于,该装置包括: Cache层处理模块,用于统计周期时间T内通过写Cache下发...

【专利技术属性】
技术研发人员:石岩陈继芬
申请(专利权)人:浙江宇视科技有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1