[发明专利]一种提高虚拟磁盘读写性能的方法在审
| 申请号: | 202010010345.0 | 申请日: | 2020-01-06 |
| 公开(公告)号: | CN111198750A | 公开(公告)日: | 2020-05-26 |
| 发明(设计)人: | 林文博 | 申请(专利权)人: | 紫光云技术有限公司 |
| 主分类号: | G06F9/455 | 分类号: | G06F9/455;G06F3/06 |
| 代理公司: | 天津滨海科纬知识产权代理有限公司 12211 | 代理人: | 耿树志 |
| 地址: | 300459 天津市滨海新区*** | 国省代码: | 天津;12 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 提高 虚拟 磁盘 读写 性能 方法 | ||
本发明创造提供了一种提高虚拟磁盘读写性能的方法,包括如下步骤:S1.根据虚拟磁盘大小,生成不同大小的索引;S2.对索引的每一项设置多个引用计数,标记每一项被引用的次数;S3.开始使用虚拟磁盘时,针对IO和时间因素,更新对应磁盘块索引中的引用计数;S4.根据步骤S3中的结果,按缓存替换方法替换索引缓存,即提高索引命中率。本发明创造所述的一种提高虚拟磁盘读写性能的方法可以将热数据保持在缓存中,提高读写性能。
技术领域
本发明创造属于云计算与虚拟化领域,尤其是涉及一种提高虚拟磁盘读写性能的方法。
背景技术
虚拟化程序在虚拟块设备时,需要在块设备中保存存储簇的映射表以实现快速定位簇。目前的实现逻辑是二级映射。在虚拟机对其块设备进行读写操作时,虚拟化程序会查询L1 table中的L2 offset,找到对应的L2 table,然后在L2 table中查找对应的簇地址,最终根据簇地址定位到实际的数据簇。这种方式下,一次io操作会拆分为对块设备的多次io,影响性能。现有技术下,每次对虚拟磁盘的IO都会访问L2 table,在某些场景下,会产生L2 cache的频繁替换,从而增加对磁盘的随机访问,使整体访问速度变慢。
发明内容
有鉴于此,本发明创造旨在克服上述现有技术中存在的缺陷,提出一种提高虚拟磁盘读写性能的方法。
为达到上述目的,本发明创造的技术方案是这样实现的:
一种提高虚拟磁盘读写性能的方法,包括如下步骤:
S1.根据虚拟磁盘大小,生成不同大小的索引;
S2.对索引的每一项设置多个引用计数,标记每一项被引用的次数;
S3.开始使用虚拟磁盘时,针对IO和时间因素,更新对应磁盘块索引中的引用计数;
S4.根据步骤S3中的结果,按缓存替换方法替换索引缓存,即提高索引命中率。
进一步的,在S4中所述的缓存替换方法为:根据缓存项最近两次的访问间隔IRR和缓存项上次访问至今还访问的其它缓存项数量Recency判断当前缓存项的热度。
进一步的,所述缓存替换方法方法,包括如下步骤:
A1.选取IRR值最大的缓存项,对其进行换出;
A2.在IRR值相同的情况下,选取Recency最大的项换出;
A3.没有计算精确的IRR和Recency值时,采用LIR和HIR两类缓存池来存储缓存项,缓存替换时,选择HIR池中的缓存项换出;所述LIR保存IRR较低的项,HIR保存IRR较高的项。
进一步的,在虚拟机对磁盘块进行读写操作时,虚拟化程序会查询数据库表L1table中的数据库表L2 offset,找到对应的数据库表L2 table,然后在数据库表L2 table中查找对应的簇地址,最终根据簇地址定位到实际的数据簇。
进一步的,所述L2 table cache在一次IO操作中未被命中时,执行如下步骤:
B1.读取块设备的L2 table区,找到实际的L2;
B2.在L2 cache HIR池即冷缓存池中寻找换出项并取出;
B3.将找到的L2项加入缓存池并更新本方法为其设置的标记位;
B4.重新均衡冷热缓存池中的缓存项;
B5.虚拟化程序在虚拟块设备时,需要在块设备中保存存储簇的映射表以实现快速定位簇。
进一步的,所述虚拟磁盘涉及的相关参数包括磁盘大小、索引级别、io方式。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于紫光云技术有限公司,未经紫光云技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010010345.0/2.html,转载请声明来源钻瓜专利网。





