CN111198750A - 一种提高虚拟磁盘读写性能的方法 - Google Patents

一种提高虚拟磁盘读写性能的方法 Download PDF

Info

Publication number
CN111198750A
CN111198750A CN202010010345.0A CN202010010345A CN111198750A CN 111198750 A CN111198750 A CN 111198750A CN 202010010345 A CN202010010345 A CN 202010010345A CN 111198750 A CN111198750 A CN 111198750A
Authority
CN
China
Prior art keywords
cache
item
virtual disk
read
improving
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.)
Pending
Application number
CN202010010345.0A
Other languages
English (en)
Inventor
林文博
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Unicloud Technology Co Ltd
Original Assignee
Unicloud Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Unicloud Technology Co Ltd filed Critical Unicloud Technology Co Ltd
Priority to CN202010010345.0A priority Critical patent/CN111198750A/zh
Publication of CN111198750A publication Critical patent/CN111198750A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明创造提供了一种提高虚拟磁盘读写性能的方法,包括如下步骤:S1.根据虚拟磁盘大小,生成不同大小的索引;S2.对索引的每一项设置多个引用计数,标记每一项被引用的次数;S3.开始使用虚拟磁盘时,针对IO和时间因素,更新对应磁盘块索引中的引用计数;S4.根据步骤S3中的结果,按缓存替换方法替换索引缓存,即提高索引命中率。本发明创造所述的一种提高虚拟磁盘读写性能的方法可以将热数据保持在缓存中,提高读写性能。

Description

一种提高虚拟磁盘读写性能的方法
技术领域
本发明创造属于云计算与虚拟化领域,尤其是涉及一种提高虚拟磁盘读写性能的方法。
背景技术
虚拟化程序在虚拟块设备时,需要在块设备中保存存储簇的映射表以实现快速定位簇。目前的实现逻辑是二级映射。在虚拟机对其块设备进行读写操作时,虚拟化程序会查询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方式。
相对于现有技术,本发明创造具有以下优势:
基于qemu+kvm虚拟化平台,包括针对虚拟化平台qcow2智能虚拟磁盘格式,设计新的索引格式,并通过本方法提供的算法进行索引缓存替换,实现该虚拟磁盘格式的读写性能优化。
附图说明
构成本发明创造的一部分的附图用来提供对本发明创造的进一步理解,本发明创造的示意性实施例及其说明用于解释本发明创造,并不构成对本发明创造的不当限定。在附图中:
图1为本发明创造实施例所述的一种提高虚拟磁盘读写性能的方法流程图;
图2为本发明创造实施例所述的虚拟磁盘索引原理示意图。
图3为本发明创造实施例所述的基础结构示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本发明创造中的实施例及实施例中的特征可以相互组合。
在本发明创造的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明创造和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明创造的限制。此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”等的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明创造的描述中,除非另有说明,“多个”的含义是两个或两个以上。
在本发明创造的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以通过具体情况理解上述术语在本发明创造中的具体含义。
下面将参考附图并结合实施例来详细说明本发明创造。
一种提高虚拟磁盘读写性能的方法,包括如下步骤:
S1.根据虚拟磁盘大小,生成不同大小的索引;
S2.对索引的每一项设置多个引用计数,标记每一项被引用的次数;
S3.开始使用虚拟磁盘时,针对IO和时间因素,更新对应磁盘块索引中的引用计数;
S4.根据步骤S3中的结果,按缓存替换方法替换索引缓存,即提高索引命中率。
所述缓存替换方法采用一个缓存项最近两次的访问间隔IRR和缓存项上次访问至今还访问的其它缓存项数量Recency判断当前缓存项的热度。
所述缓存替换方法,包括如下步骤:
A1.选取IRR值最大的缓存项,对其进行换出;
A2.在IRR值相同的情况下,选取Recency最大的项换出;
A3.没有计算精确的IRR和Recency值时,采用LIR和HIR两类缓存池来存储缓存项,缓存替换时,选择HIR池中的缓存项换出;所述LIR保存IRR较低的项,HIR保存IRR较高的项。
如图2所示,在虚拟机对其块设备进行读写操作时,虚拟化程序会查询L1 table中的L2 offset,找到对应的L2 table,然后在L2 table中查找对应的簇地址,最终根据簇地址定位到实际的数据簇;所述L1 table表示数据库表L1,L2 table表示数据库表L2,L2offset表示数据库表L2的索引,L2 table cache表示数据库表L2的缓存。如图1所示,当一次IO操作中L2 table cache未命中时,执行如下步骤:
B1.读取块设备的L2 table区,找到实际的L2;
B2.在L2 cache HIR池即冷缓存池中寻找换出项并取出;
B3.将找到的L2项加入缓存池并更新本方法为其设置的标记位;
B4.重新均衡冷热缓存池中的缓存项;
B5.虚拟化程序在虚拟块设备时,需要在块设备中保存存储簇的映射表以实现快速定位簇。
所述虚拟磁盘涉及的相关参数包括磁盘大小、索引级别、io方式。
本方法提供一种提高虚拟磁盘读写性能的方式,该方法基于qemu+kvm虚拟化平台,包括针对虚拟化平台qcow2智能虚拟磁盘格式,设计新的索引格式,并通过本方法提供的算法进行索引缓存替换,实现该虚拟磁盘格式的读写性能优化。其原理如下:
虚拟化程序在虚拟块设备时,需要在块设备中保存存储簇的映射表以实现快速定位簇。目前的实现逻辑是二级映射,如图2所示,在虚拟机对其块设备进行读写操作时,虚拟化程序会查询L1 table中的L2 offset,找到对应的L2 table,然后在L2 table中查找对应的簇地址,最终根据簇地址定位到实际的数据簇。
这种方式下,一次io操作会拆分为对块设备的多次io,影响性能,目前的虚拟化程序为解决这个问题,将L1 table和L2 table缓存在内存中,以减少对块设备这种慢速io设备的访问。
针对不同的虚拟块设备大小,其L2 table的大小不同,因此在对L2table cache(简称L2 cache)的查找过程中,会发生cache miss。虚拟化程序会对L2 cache进行缓存替换,每次发生cache miss替换掉当前使用次数最少的L2 cache项。
对L2 cache进行使用计数来进行缓存替换的方式,在面对顺序扫描或循环访问的数据集大于缓存大小的时候,命中缓存的概率会急剧下降。缓存命中率的下降会增加虚拟机的一次读写操作中实际对慢速块设备的访问,极大的拖慢了读写延迟,最终在虚拟机中变现为读写性能差。
本方法通过设计新的缓存替换方法消除现有方式在某些特殊场景的局限性。与现有方式采用一个引用计数值方式不同,新的缓存替换方式采用了两个值来判断当前缓存项的热度,分别为IRR(inter-reference recency)和Recency。如图3所示,其中IRR表示一个缓存项最近两次的访问间隔,Recency表示缓存项上次访问至今还访问了多少其它缓存项。
在进行缓存替换操作时,选取IRR值最大的缓存项,对其进行换出。IRR最大即代表该缓存项的两次访问间隔较长,可认为是冷数据。在IRR值相同的情况下,选取Recency最大的项换出,Recency较大表示两次访问此项之间访问了较多数据,同样可认为此项较冷。
如图2所示,在实际的工程实践中,并没有计算精确的IRR和Recency值,采用LIR和HIR两类缓存池来存储缓存项,其中LIR保存IRR较低的项,HIR保存IRR较高的项。每次需要进行缓存替换时,首先选择HIR池中的缓存项换出。
整体替换流程如图1。当一次IO操作中L2 table cache未命中时,执行如下步骤:
1)读取块设备的L2 table区,找到实际的L2。
2)在L2 cache HIR池即冷缓存池中寻找换出项并取出。
3)将找到的L2项加入缓存池并更新本方法为其设置的标记位。
4)重新均衡冷热缓存池中的缓存项。
以上所述仅为本发明创造的较佳实施例而已,并不用以限制本发明创造,凡在本发明创造的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明创造的保护范围之内。

Claims (6)

1.一种提高虚拟磁盘读写性能的方法,其特征在于:包括如下步骤:
S1.根据虚拟磁盘大小,生成不同大小的索引;
S2.对索引的每一项设置多个引用计数,标记每一项被引用的次数;
S3.开始使用虚拟磁盘时,针对IO和时间因素,更新对应磁盘块索引中的引用计数;
S4.根据步骤S3中的结果,按缓存替换方法替换索引缓存,即提高索引命中率。
2.根据权利要求1所述的一种提高虚拟磁盘读写性能的方法,其特征在于:在S4中所述的缓存替换方法为:根据缓存项最近两次的访问间隔IRR,以及缓存项上次访问至今还访问的其它缓存项数量Recency判断当前缓存项的热度。
3.根据权利要求2所述的一种提高虚拟磁盘读写性能的方法,其特征在于:所述缓存替换方法方法,包括如下步骤:
A1.选取IRR值最大的缓存项,对其进行换出;
A2.在IRR值相同的情况下,选取Recency最大的项换出;
A3.没有计算精确的IRR和Recency值时,采用LIR和HIR两类缓存池来存储缓存项,缓存替换时,选择HIR池中的缓存项换出;所述LIR保存IRR较低的项,HIR保存IRR较高的项。
4.根据权利要求3所述的一种提高虚拟磁盘读写性能的方法,其特征在于:在虚拟机对磁盘块进行缓存替换操作时,虚拟化程序会查询数据库表L1 table中的数据库表L2offset,找到对应的数据库表L2 table,然后在数据库表L2 table中查找对应的簇地址,最终根据簇地址定位到实际的数据簇。
5.根据权利要求4所述的一种提高虚拟磁盘读写性能的方法,其特征在于:所述L2table cache在一次IO操作中未被命中时,执行如下步骤:
B1.读取块设备的L2 table区,找到实际的L2;
B2.在L2 cache HIR池即冷缓存池中寻找换出项并取出;
B3.将找到的L2项加入缓存池并更新本方法为其设置的标记位;
B4.重新均衡冷热缓存池中的缓存项;
B5.虚拟化程序在虚拟块设备时,需要在块设备中保存存储簇的映射表以实现快速定位簇。
6.根据权利要求1所述的一种提高虚拟磁盘读写性能的方法,其特征在于:所述虚拟磁盘涉及的相关参数包括磁盘大小、索引级别、io方式。
CN202010010345.0A 2020-01-06 2020-01-06 一种提高虚拟磁盘读写性能的方法 Pending CN111198750A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010010345.0A CN111198750A (zh) 2020-01-06 2020-01-06 一种提高虚拟磁盘读写性能的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010010345.0A CN111198750A (zh) 2020-01-06 2020-01-06 一种提高虚拟磁盘读写性能的方法

Publications (1)

Publication Number Publication Date
CN111198750A true CN111198750A (zh) 2020-05-26

Family

ID=70746850

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010010345.0A Pending CN111198750A (zh) 2020-01-06 2020-01-06 一种提高虚拟磁盘读写性能的方法

Country Status (1)

Country Link
CN (1) CN111198750A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4533995A (en) * 1981-08-03 1985-08-06 International Business Machines Corporation Method and system for handling sequential data in a hierarchical store
CN102223359A (zh) * 2010-07-29 2011-10-19 上海华御信息技术有限公司 基于虚拟磁盘的网络硬盘备份文件数据安全系统及方法
CN103207763A (zh) * 2013-04-26 2013-07-17 上海交通大学 基于xen虚拟磁盘设备的前端缓存方法
CN106919477A (zh) * 2017-03-03 2017-07-04 上海爱数信息技术股份有限公司 一种虚拟磁盘的解析方法及系统
CN107168657A (zh) * 2017-06-15 2017-09-15 深圳市云舒网络技术有限公司 一种基于分布式块存储的虚拟磁盘分层缓存设计方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4533995A (en) * 1981-08-03 1985-08-06 International Business Machines Corporation Method and system for handling sequential data in a hierarchical store
CN102223359A (zh) * 2010-07-29 2011-10-19 上海华御信息技术有限公司 基于虚拟磁盘的网络硬盘备份文件数据安全系统及方法
CN103207763A (zh) * 2013-04-26 2013-07-17 上海交通大学 基于xen虚拟磁盘设备的前端缓存方法
CN106919477A (zh) * 2017-03-03 2017-07-04 上海爱数信息技术股份有限公司 一种虚拟磁盘的解析方法及系统
CN107168657A (zh) * 2017-06-15 2017-09-15 深圳市云舒网络技术有限公司 一种基于分布式块存储的虚拟磁盘分层缓存设计方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
YUWH_507: "Cache替换算法之:LIRS", 《简书》 *

Similar Documents

Publication Publication Date Title
CN103885728B (zh) 一种基于固态盘的磁盘缓存系统
US10241919B2 (en) Data caching method and computer system
CN107368436B (zh) 一种联合地址映射表的闪存冷热数据分离存储方法
US7797509B2 (en) Systems and methods for utilizing an extended translation look-aside buffer having a hybrid memory structure
CN109446117B (zh) 一种固态硬盘页级闪存转换层设计方法
CN110888600B (zh) 一种面向nand闪存的缓冲区管理方法
CN110795363B (zh) 一种存储介质的热页预测方法和页面调度方法
US9697137B2 (en) Filtering translation lookaside buffer invalidations
CN109739780A (zh) 基于页级映射的动态二级缓存闪存转换层地址映射方法
CN102662860A (zh) 用于进程切换的旁路转换缓冲器(tlb)及在其中地址匹配的方法
CN109918131B (zh) 一种基于非阻塞指令cache的指令读取方法
KR20160029086A (ko) 데이터 스토어 및 데이터 스토어에 데이터를 할당하는 방법
JP2012203560A (ja) キャッシュメモリおよびキャッシュシステム
CN111580754B (zh) 一种写友好的闪存固态盘缓存管理方法
CN106569960A (zh) 一种混合主存的末级缓存管理方法
CN110262982A (zh) 一种固态硬盘地址映射的方法
CN115495394A (zh) 数据预取方法和数据预取装置
GB2546245A (en) Cache memory
EP3485382B1 (en) System and method for storing cache location information for cache entry transfer
CN102354301B (zh) 缓存分区方法
US7472226B1 (en) Methods involving memory caches
CN113157606B (zh) 一种缓存器实现方法、装置和数据处理设备
CN109002400B (zh) 一种内容感知型计算机缓存管理系统及方法
CN109478163B (zh) 用于在高速缓存条目处标识存储器访问请求的待决的系统和方法
CN113392043A (zh) 缓存数据替换方法、装置、设备和存储介质

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20200526