[发明专利]一种缓存脏页刷写方法及装置有效
申请号: | 201610041801.1 | 申请日: | 2016-01-22 |
公开(公告)号: | CN105740170B | 公开(公告)日: | 2020-12-04 |
发明(设计)人: | 卓保特;施培任;杨善松;赵鹏 | 申请(专利权)人: | 浪潮(北京)电子信息产业有限公司 |
主分类号: | G06F12/0882 | 分类号: | G06F12/0882 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 罗满 |
地址: | 100085 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 缓存 脏页刷写 方法 装置 | ||
本发明公开了一种缓存脏页刷写方法及装置,创建块设备时为每个块设备单独分配内核刷写线程,所述缓存脏页刷写方法包括:每个块设备接收到脏页刷写指令后,调用本块设备的内核刷写线程,将本设备内的脏页刷写到磁盘中。可见,在本实施例中,通过为每个块设备分配单独内核刷写线程,可以保证每个块设备的脏页都得到及时的刷写,并且可以为每个块设备指定不同的脏页刷写算法,提高系统脏页刷写的灵活性,提高脏页刷写的并发度,从而提高系统脏页刷写的性能。
技术领域
本发明涉及计算机数据存储技术,更具体地说,涉及一种缓存脏页刷写方法及装置。
背景技术
随着数字化时代的到来,在人们的日常生活和科学研究中,越来越多的传统业务开始数字化、网络化,促使数据爆炸式增长,存储系统在整个业务处理系统中的地位也愈发重要,然而源源不断的数据流导致存储系统产生严重的I/O瓶颈问题。计算机系统的性能主要由处理子系统性能和I/O子系统的性能两部分决定。其中CPU的处理速度始终保持了高速的增长,而I/O子系统其存储容量虽然增长较快,但其处理速度的增长远跟不上CPU速度的增长,为解决上述问题,现代计算机系统中,从寄存器、L1/L2高速缓存、内存、闪存,到磁盘/光盘/存储网络,各级存储器硬件组成了一个金字塔结构,越是底层存储容量越大,访问速度也越慢。在操作系统层面通过缓存系统来对金字塔结构的存储硬件进行支持,用户的写操作会先写到内存而不是后端磁盘。内存中的脏数据在一定情况下需要刷写到后端磁盘。目前最通用的缓存脏页刷写方法是创建一定数量的全局内核线程,这些内核线程在需要进行脏页刷写时被唤醒。当某一个块设备脏页数量过多时,会导致一直刷写该块设备,从而其后面的块设备得不到刷写。
因此,如何合理的刷写缓存脏页,保证每个块设备的脏页都能得到及时的刷写是本领域技术人员需要解决的问题。
发明内容
本发明的目的在于提供一种缓存脏页刷写方法及装置,以实现合理的刷写缓存脏页,保证每个块设备的脏页都能得到及时的刷写。
为实现上述目的,本发明实施例提供了如下技术方案:
一种缓存脏页刷写方法,创建块设备时为每个块设备单独分配内核刷写线程,所述缓存脏页刷写方法包括:
每个块设备接收到脏页刷写指令后,调用本块设备的内核刷写线程,将本设备内的脏页刷写到磁盘中。
优选的,所述创建块设备时为每个块设备单独分配内核刷写线程之后,还包括:
为每个块设备单独分配定时器和work链表。
优选的,所述每个块设备接收到脏页刷写指令后,调用本块设备的内核刷写线程,将本设备内的脏页刷写到磁盘中,包括:
检测块设备的脏页比例是否超过预设阈值;
若是,则封装第一work对象,并将所述第一work对象添加至所述块设备的work对象链表;其中,所述第一work对象包括待刷写的脏页数量;
唤醒所述块设备的内核刷写线程,并根据所述第一work对象将所述块设备内的脏页刷写到磁盘中。
优选的,所述每个块设备接收到脏页刷写指令后,调用本块设备的内核刷写线程,将本设备内的脏页刷写到磁盘中,包括:
以预定时长为间隔调用定时器回调函数;
封装第二work对象,并将所述第二work对象添加至所述块设备的work对象链表;其中,所述第二work对象包括待刷写的脏页保存时长阈值;
唤醒所述块设备的内核刷写线程,并根据所述第二work对象将所述块设备内的脏页刷写到磁盘中。
优选的,所述每个块设备接收到脏页刷写指令后,调用本块设备的内核刷写线程,将本设备内的脏页刷写到磁盘中,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮(北京)电子信息产业有限公司,未经浪潮(北京)电子信息产业有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610041801.1/2.html,转载请声明来源钻瓜专利网。