论文部分内容阅读
【摘要】 KVM虚拟机平台是目前构建企业级虚拟化云计算数据中心的主流工具,其基于预拷贝算法提供虚拟机实时迁移功能。当虚拟机负载较高时,KVM在进行实时迁移虚拟机时存在着高脏页率内存页面重复传输的问题,影响迁移性能。对此,提出一个KVM中实时迁移算法的优化方案,通过综合考虑内存页面访问记录的时近性和频度识别高脏页率页面,有效避免脏页重传问题。
【关键词】 KVM 虚拟机 实时迁移 Pre-copy
一、引言
目前,云计算平台主要采用服务器虚拟化技术为用户提供弹性的IT基础设施服务。KVM(Kernel-based Virtual Machine)作为一个主流的开源虚拟化平台,其内部基于Pre-copy算法提供了虚拟机实时迁移的功能,可以实现在不干扰虚拟机正常业务的情况下将正在运行的虚拟机从一台物理主机移动到另一台物理主机上,达到数据中心资源灵活配置及管理的目的。虽然KVM提供的实时迁移算法能在虚拟机业务负载较轻时运行良好,但是当虚拟机业务负载较重时会出现重复传输高脏页率内存页面的问题,影响了实时迁移性能。对此,本文在KVM的实时迁移算法中引入一个高脏页率页面的识别机制,通过综合考虑内存页面访问记录的时近性和频度,识别出高脏页率的页面,进而避免对这些页面的重复传输。
二、KVM虚拟机及实时迁移算法
2.1 KVM虚拟机
KVM(基于内核的虚拟机)是一款目前主流的开源虚拟机平台。从整体架构上看,它是一种非常轻量级的虚拟化解决方案,借助现有的虚拟化技术和操作系统内核实现了一个高性能的虚拟机管理器。KVM平台架构主要包括两个部分,一个是运行在内核空间的KVM模块,一个是运行在用户空间的QEMU应用程序:KVM模块实现为一个Linux内核模块,采用硬件辅助虚拟化技术完成底层硬件的虚拟化功能。QEMU应用程序利用现有的平台模拟器软件QEMU实现了一个针对KVM的版本KVM-QEMU,运行在Linux操作系统的用户空间,提供KVM虚拟化平台的对外接口及部分I/O虚拟化功能。从整体上看,KVM平台引入了一个非常薄的虚拟化层。
2.2实时迁移算法
KVM采用的虚拟机实时迁移算法是Pre-copy,其迁移对象主要包括设备状态数据及内存,运行流程如下:
1.开始实时迁移,首先将虚拟机的所有内存页面传输过去;
2.进入一个迭代拷贝阶段,每个拷贝轮都传输在上一轮中产生的内存脏页;
3.若剩余脏页小于一定值或迭代次数达到一定次数,则进入步骤4,否则继续步骤2;
4.进入一个停机拷贝阶段,在源宿主机上暂停虚拟机运行,然后将虚拟机的设备状态数据连同剩余脏页一齐传输到目标宿主机上;
5.在目标宿主机上恢复虚拟机运行,实时迁移结束。
三、KVM下的实时迁移算法优化方案
KVM中进行虚拟机实时迁移时,当内存脏页率较高时,Pre-copy算法的迭代拷贝阶段会出现重复传输高脏页率页面的情况。对此,本文在Pre-copy中引入了一个高脏页率内存页面的识别机制。
3.1高脏页率页面识别机制
本文提出的高脏页率页面识别机制,首先利用KVM提供的内存脏页跟踪功能对内存页面在一段时间内的写操作情况按时间次序进行记录,形成页面的访问时间序列,然后根据该访问时间序列,综合考虑页面访问的时近性和频度,识别出实时迁移过程中脏页率较高的页面。
具体识别过程:
对于某个内存页面p,令其统计出的访问时间序列长度为n,并对其中最近的[n /2]次记录中的写操作次数求和,设为S。设定一个脏页率阈值M,若S≥M,则判定p为高脏页率页面。
3.2 KVM中优化的实时迁移算法
在引入高脏页率页面识别机制后,KVM中优化后的实时迁移算法运行如下:
1. 实时迁移开始,首先在一定时间内进行内存脏页跟踪,形成页面的访问记录序列;
2. 传输所有内存页面;
3. 进入迭代拷贝阶段,当需要传输某个页面时,首先对其进行脏页识别,若识别为高脏页率页面则本轮不传输,否则传输;
4. 按Pre-copy的标准流程继续执行,直至迁移结束。
四、结语
本文针对KVM中实时迁移算法存在的高脏页率内存页面的重传问题,通过综合考虑页面历史访问记录的时近性和频度,引入一个高脏页率页面的有效识别机制对标准的实时迁移算法进行优化,提高其实际运行性能。
参 考 文 献
[1] KVM[EB/OL]. http://www.linux-kvm.org.
[2]袁野, 赵海燕, 曹健, 等. 虚拟机内存迁移技术研究[J]. 小型微型计算机系统, 2014, 35(2): 412-418.
[3] 马飞,刘峰,李竹伊. 云计算环境下虚拟机快速实时迁移方法[J].北京邮电大学学报,2012,35(1): 103-106.
【关键词】 KVM 虚拟机 实时迁移 Pre-copy
一、引言
目前,云计算平台主要采用服务器虚拟化技术为用户提供弹性的IT基础设施服务。KVM(Kernel-based Virtual Machine)作为一个主流的开源虚拟化平台,其内部基于Pre-copy算法提供了虚拟机实时迁移的功能,可以实现在不干扰虚拟机正常业务的情况下将正在运行的虚拟机从一台物理主机移动到另一台物理主机上,达到数据中心资源灵活配置及管理的目的。虽然KVM提供的实时迁移算法能在虚拟机业务负载较轻时运行良好,但是当虚拟机业务负载较重时会出现重复传输高脏页率内存页面的问题,影响了实时迁移性能。对此,本文在KVM的实时迁移算法中引入一个高脏页率页面的识别机制,通过综合考虑内存页面访问记录的时近性和频度,识别出高脏页率的页面,进而避免对这些页面的重复传输。
二、KVM虚拟机及实时迁移算法
2.1 KVM虚拟机
KVM(基于内核的虚拟机)是一款目前主流的开源虚拟机平台。从整体架构上看,它是一种非常轻量级的虚拟化解决方案,借助现有的虚拟化技术和操作系统内核实现了一个高性能的虚拟机管理器。KVM平台架构主要包括两个部分,一个是运行在内核空间的KVM模块,一个是运行在用户空间的QEMU应用程序:KVM模块实现为一个Linux内核模块,采用硬件辅助虚拟化技术完成底层硬件的虚拟化功能。QEMU应用程序利用现有的平台模拟器软件QEMU实现了一个针对KVM的版本KVM-QEMU,运行在Linux操作系统的用户空间,提供KVM虚拟化平台的对外接口及部分I/O虚拟化功能。从整体上看,KVM平台引入了一个非常薄的虚拟化层。
2.2实时迁移算法
KVM采用的虚拟机实时迁移算法是Pre-copy,其迁移对象主要包括设备状态数据及内存,运行流程如下:
1.开始实时迁移,首先将虚拟机的所有内存页面传输过去;
2.进入一个迭代拷贝阶段,每个拷贝轮都传输在上一轮中产生的内存脏页;
3.若剩余脏页小于一定值或迭代次数达到一定次数,则进入步骤4,否则继续步骤2;
4.进入一个停机拷贝阶段,在源宿主机上暂停虚拟机运行,然后将虚拟机的设备状态数据连同剩余脏页一齐传输到目标宿主机上;
5.在目标宿主机上恢复虚拟机运行,实时迁移结束。
三、KVM下的实时迁移算法优化方案
KVM中进行虚拟机实时迁移时,当内存脏页率较高时,Pre-copy算法的迭代拷贝阶段会出现重复传输高脏页率页面的情况。对此,本文在Pre-copy中引入了一个高脏页率内存页面的识别机制。
3.1高脏页率页面识别机制
本文提出的高脏页率页面识别机制,首先利用KVM提供的内存脏页跟踪功能对内存页面在一段时间内的写操作情况按时间次序进行记录,形成页面的访问时间序列,然后根据该访问时间序列,综合考虑页面访问的时近性和频度,识别出实时迁移过程中脏页率较高的页面。
具体识别过程:
对于某个内存页面p,令其统计出的访问时间序列长度为n,并对其中最近的[n /2]次记录中的写操作次数求和,设为S。设定一个脏页率阈值M,若S≥M,则判定p为高脏页率页面。
3.2 KVM中优化的实时迁移算法
在引入高脏页率页面识别机制后,KVM中优化后的实时迁移算法运行如下:
1. 实时迁移开始,首先在一定时间内进行内存脏页跟踪,形成页面的访问记录序列;
2. 传输所有内存页面;
3. 进入迭代拷贝阶段,当需要传输某个页面时,首先对其进行脏页识别,若识别为高脏页率页面则本轮不传输,否则传输;
4. 按Pre-copy的标准流程继续执行,直至迁移结束。
四、结语
本文针对KVM中实时迁移算法存在的高脏页率内存页面的重传问题,通过综合考虑页面历史访问记录的时近性和频度,引入一个高脏页率页面的有效识别机制对标准的实时迁移算法进行优化,提高其实际运行性能。
参 考 文 献
[1] KVM[EB/OL]. http://www.linux-kvm.org.
[2]袁野, 赵海燕, 曹健, 等. 虚拟机内存迁移技术研究[J]. 小型微型计算机系统, 2014, 35(2): 412-418.
[3] 马飞,刘峰,李竹伊. 云计算环境下虚拟机快速实时迁移方法[J].北京邮电大学学报,2012,35(1): 103-106.