虚拟化环境下的关系型数据库存储性能优化方法及系统技术方案

技术编号:14173569 阅读:81 留言:0更新日期:2016-12-13 01:43
本发明专利技术公开了一种虚拟化环境下的关系型数据库存储性能优化方法及系统,方法包括以下步骤:在虚拟机数据库内部,对位于内存缓冲区中的脏数据页采用同步逻辑进行处理;在VMM层次,使用异步的方式配合VMM写缓存结构来对上层数据库虚拟机的同步写请求进行调节。本发明专利技术基于关系型数据库的同步‑异步写操作存储新模型,节约了额外的CPU资源,且提升了虚拟机内部数据库脏数据的可靠性;改善了上层数据库虚拟机的同步操作带来的存储性能下降问题,缓解了随机I/O带来的存储性能恶化问题;同时,综合考虑了数据库存储协议栈的具体I/O行为对虚拟化环境的支持度和友好度的影响,优化效果最优。本发明专利技术可广泛应用于云计算领域。

Method and system for optimizing storage performance of relational database in virtual environment

The invention discloses a virtual environment relational database performance optimization method and system. The method comprises the following steps: inside the virtual machine database, located on the dirty data pages in memory buffer is processed by synchronous logic; at the level of VMM, the use of asynchronous way to write cache structure to VMM the database virtual machine synchronous write request adjustment. The present invention synchronous asynchronous write operation of relational database storage model based on new, saving additional CPU resources, and enhance the reliability of the internal database of dirty data virtual machine; improve the storage performance decline brought the synchronous operation upper database virtual machine, easing storage performance on random I/O brings problems; at the same time and considering the impact of specific I/O database storage protocol stack support and friendliness of the virtual environment, the optimization effect is optimal. The invention can be widely used in the field of cloud computing.

【技术实现步骤摘要】

本专利技术涉及云计算领域,尤其是一种虚拟化环境下的关系型数据库存储性能优化方法及系统
技术介绍
随着云计算平台的普及,以及云平台相关安全保障措施的逐渐完善,越来越多的企业和机构愿意将自身的私有数据库迁移至云端,以节省相应的硬件投入和管理维护成本。但是,由于系统环境结合的复杂性,需要重新审视数据库的存储访问特性和当前云计算核心技术(即系统虚拟化技术)之间的契合度。首先,关系型数据库具备特殊的存储访问特性。相较于其他应用程序,关系型数据库拥有更加丰富的数据类型和复杂多变的操作。以基于InnoDB存储引擎的MySQL系统为例,除了常见的元数据流和常规数据流之外,其还会生成特有的二进制日志数据流、事务日志数据流、索引数据流、二次写缓冲数据流、锁信息数据流以及数据字典流等。这些数据流需要数据库存储协议栈设计出特定的异步运行逻辑与之相匹配并对其进行驾驭,以尽可能地保持可接受的存储性能,但是这样做会产生更多的CPU负载。而且,由于数据的复杂性,在真实的数据库运行环境中,这些数据流纵横交错,互相之间会产生随机I/O,给数据库存储性能带来负面影响,甚至还会造成系统的不稳定性,使用户数据损失。其次,虚拟化环境下,因为虚拟机管理器(Virtual Machine Monitor, 简称VMM)的介入,数据库在访问存储设备时会呈现间接交互的特点,降低了其访问存储设备的效率。并且,为了保持数据库虚拟机的写入语义,VMM会使用强制同步的方法将来自于数据库虚拟机(指安装了数据库软件的虚拟机,Virtual Machine Database,简称VMDB)的写入数据流直接刷入至存储硬件。最终,多个数据库虚拟机会在共享存储设备上进行资源竞争,这样极易催生全局的碎片化I/O,而这些碎片化I/O与数据库内部原有的随机I/O会互相叠加并放大,最终使得数据库存储访问性能恶化。现阶段用于关系型数据库的专用虚拟化解决方案较少。当前广泛存在一类虚拟化通用性能优化方法,能对虚拟机数据库的存储性能问题进行改进,例如:在虚拟机的设备驱动层,使用I/O半虚拟化技术优化VMM处理数据库虚拟机I/O请求时的CPU上下文切换开销;在VMM用户层,使用额外的硬件资源来加速数据库虚拟机的读取响应速度;在VMM内核层,使用量身定做的虚拟机磁盘I/O调度器来改进数据库虚拟机的I/O请求公平性等。这类优化方法的一大共性是其优化范围集中在虚拟化系统的本身,与虚拟机内部运行的具体应用程序无关;因此,此类技术的实施并不会被虚拟机内部的关系型数据库软件所感知,使得关系型数据库软件所蕴含的存储I/O行为仍将忽视底层虚拟化平台的存在,继续通过以其自身为中心的方式向共享存储设备发送读写请求。虽然在通用虚拟化环境下,这类优化方法可以为多种应用程序提供一套统一的优化方法,但是,在数据库专用的虚拟化场合,由于其优化理念并没有考虑到数据库存储协议栈的具体I/O行为对虚拟化环境的支持度和友好度的影响,导致其所获得的存储性能优化效果仍然是次优的。这种局面给数据库虚拟机的存储性能的进一步提高提出了挑战。
技术实现思路
为解决上述技术问题,本专利技术的目的在于:提供一种CPU资源占用少、可靠、存储性能好和优化效果最优的,虚拟化环境下的关系型数据库存储性能优化方法。本专利技术的另一目的在于:提供一种CPU资源占用少、可靠、存储性能好和优化效果最优的,虚拟化环境下的关系型数据库存储性能优化系统。本专利技术所采取的技术方案是:虚拟化环境下的关系型数据库存储性能优化方法,该方法基于关系型数据库的同步-异步写操作存储新模型,包括以下步骤:在虚拟机数据库内部,对位于内存缓冲区中的脏数据页采用同步逻辑进行处理;在VMM层次,使用异步的方式配合VMM写缓存结构来对上层数据库虚拟机的同步写请求进行调节。进一步,所述在虚拟机数据库内部,对位于内存缓冲区中的脏数据页采用同步逻辑进行处理这一步骤,其包括:从数据库语义的角度对用户脏数据的来源进行分析;根据分析的结果采用相应的同步策略进行同步处理:若用户脏数据所对应的数据文件来自文件系统的抽象,则在数据库系统启动时,通过添加同步标志位进行相关文件系统挂载的方式,实现此类数据的同步;若用户脏数据所对应的数据文件以裸设备的方式存在,则通过修改具体的数据库配置文件来实现此类数据的同步。进一步,所述VMM写缓存结构采用链表来存储虚拟机写请求的相关信息,链表上的每一个节点代表一个特定的写请求并按其到达时间在链表里执行插入操作,其中,写请求相关的元数据信息包含了 4 个字段:offset字段,用来表示该写请求所对应的镜像文件的偏移量;buffer字段,用来指代待写入存储设备的脏数据本身;size 字段,用来表示该段脏数据的大小;dirt标志位,用来标识一个新的写操作是否可以直接使用旧的写操作的内存空间以及该写操作的数据是否已经刷入存储设备。进一步,所述链表包括基树、Dirty链表和Clean链表,所述基树为VMM写缓存结构的入口,所述Dirty链表用于存储新的写请求,所述链表根据基树使用offset字段来寻找Dirty链表中特定的写请求,所述Dirty链表中的写请求节点在被写回后会清除相应的入口信息并会将该节点所属的内存空间转移到Clean链表中保存;所述Clean链表用于保留已经执行了最终写回过程的写请求的内存空间,所述Clean 链表里的节点所属的内存空间在被新的写请求所重用时,需要该节点先从Clean链表里脱离出来并重新设置dirty字段,然后插入到Dirty链表里。进一步,所述VMM写缓存结构采用了基于用户空间 I/O 影子进程的虚拟化存储结构,VMM写缓存结构通过异步的方式将来自于数据库虚拟机的同步写操作写入后,在再次接收到来自于虚拟机的读写操作时,需要检查再次接收的读写操作是否命中VMM写缓存结构的内容,若命中,则直接从VMM写缓存结构获取相应的缓存信息,然后进行读写操作;反之,则将再次接收的读写操作发送给存储设备进行磁盘寻址。进一步,所述VMM写缓存结构的进程在以阻塞的形式调用刷新进程进行刷新时,采用归并排序算法对未排序的写请求进行重新排序,或对已排好序的写请求进行合并操作。本专利技术所采取的另一技术方案是:虚拟化环境下的关系型数据库存储性能优化系统,该系统基于关系型数据库的同步-异步写操作存储新模型,包括以下模块:同步逻辑处理模块,用于在虚拟机数据库内部,对位于内存缓冲区中的脏数据页采用同步逻辑进行处理;异步调节模块,用于在VMM层次,使用异步的方式配合VMM写缓存结构来对上层数据库虚拟机的同步写请求进行调节。进一步,所述同步逻辑处理模块包括:源分析单元,用于从数据库语义的角度对用户脏数据的来源进行分析;同步处理单元,用于根据分析的结果采用相应的同步策略进行同步处理:若用户脏数据所对应的数据文件来自文件系统的抽象,则在数据库系统启动时,通过添加同步标志位进行相关文件系统挂载的方式,实现此类数据的同步;若用户脏数据所对应的数据文件以裸设备的方式存在,则通过修改具体的数据库配置文件来实现此类数据的同步。进一步,所述异步调节模块中的VMM写缓存结构采用链表来存储虚拟机写请求的相关信息,链表上的每一个节点代表一个特定的写请求并按其到达时间在链表里执行插入操作,其中,本文档来自技高网
...
虚拟化环境下的关系型数据库存储性能优化方法及系统

【技术保护点】
虚拟化环境下的关系型数据库存储性能优化方法,其特征在于:该方法基于关系型数据库的同步‑异步写操作存储新模型,包括以下步骤:在虚拟机数据库内部,对位于内存缓冲区中的脏数据页采用同步逻辑进行处理;在VMM层次,使用异步的方式配合VMM写缓存结构来对上层数据库虚拟机的同步写请求进行调节。

【技术特征摘要】
1.虚拟化环境下的关系型数据库存储性能优化方法,其特征在于:该方法基于关系型数据库的同步-异步写操作存储新模型,包括以下步骤:在虚拟机数据库内部,对位于内存缓冲区中的脏数据页采用同步逻辑进行处理;在VMM层次,使用异步的方式配合VMM写缓存结构来对上层数据库虚拟机的同步写请求进行调节。2.根据权利要求1所述的虚拟化环境下的关系型数据库存储性能优化方法,其特征在于:所述在虚拟机数据库内部,对位于内存缓冲区中的脏数据页采用同步逻辑进行处理这一步骤,其包括:从数据库语义的角度对用户脏数据的来源进行分析;根据分析的结果采用相应的同步策略进行同步处理:若用户脏数据所对应的数据文件来自文件系统的抽象,则在数据库系统启动时,通过添加同步标志位进行相关文件系统挂载的方式,实现此类数据的同步;若用户脏数据所对应的数据文件以裸设备的方式存在,则通过修改具体的数据库配置文件来实现此类数据的同步。3.根据权利要求1所述的虚拟化环境下的关系型数据库存储性能优化方法,其特征在于:所述VMM写缓存结构采用链表来存储虚拟机写请求的相关信息,链表上的每一个节点代表一个特定的写请求并按其到达时间在链表里执行插入操作,其中,写请求相关的元数据信息包含了 4 个字段:offset字段,用来表示该写请求所对应的镜像文件的偏移量;buffer字段,用来指代待写入存储设备的脏数据本身;size 字段,用来表示该段脏数据的大小;dirt标志位,用来标识一个新的写操作是否可以直接使用旧的写操作的内存空间以及该写操作的数据是否已经刷入存储设备。4.根据权利要求3所述的虚拟化环境下的关系型数据库存储性能优化方法,其特征在于:所述链表包括基树、Dirty链表和Clean链表,所述基树为VMM写缓存结构的入口,所述Dirty链表用于存储新的写请求,所述链表根据基树使用offset字段来寻找Dirty链表中特定的写请求,所述Dirty链表中的写请求节点在被写回后会清除相应的入口信息并会将该节点所属的内存空间转移到Clean链表中保存;所述Clean链表用于保留已经执行了最终写回过程的写请求的内存空间,所述Clean 链表里的节点所属的内存空间在被新的写请求所重用时,需要该节点先从Clean链表里脱离出来并重新设置dirty字段,然后插入到Dirty链表里。5.根据权利要求1-4任一项所述的虚拟化环境下的关系型数据库存储性能优化方法,其特征在于:所述VMM写缓存结构采用了基于用户空间 I/O 影子进程的虚拟化存储结构,VMM写缓存结构通过异步的方式将来自于数据库虚拟机的同步写操作写入后,在再次接收到来自于虚拟机的读写操作时,需要检查再次接收的读写操作是否命中VMM写缓存结构的内容,若命中,则直接从VMM写缓存结...

【专利技术属性】
技术研发人员:李丁丁刘继伟汤庸李建国
申请(专利权)人:华南师范大学
类型:发明
国别省市:广东;44

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

1