写点什么

Qemu KVM Guest 增强简述

用户头像
焱融科技
关注
发布于: 2021 年 05 月 27 日
Qemu KVM Guest增强简述

随着云计算的发展,诸多的企业应用对于云平台的功能提出更多的需求,如业务的可靠性等,已经不再仅仅限于传统的创建、删除等虚拟机的生命周期管理。


在大多数云平台中被广泛使用的虚拟化方案之一——QEMU+KVM,提供了部分功能增强方案,帮助平台开发者实现大规模业务管理。QEMU 对外提供了两套接口来帮助开发者从不同层面增强管理功能:

QEMU Monitor

在 QEMU 虚拟化的场景中,每台虚拟机都作为一个独立的进程存在,一旦虚拟机开始运行就很难对其硬件进行管理操作。QEMU 进程开放了基于 QMP 协议的 QEMU-Monitor 接口与外部进程交互,方便开发者管理运行中的虚拟机。通过 QEMU-Monitor 可以实现插入/弹出 CDROM、热插拔 USB/网卡/硬盘、高级电源管理等操作以及获取虚拟机的硬件性能数据。


QEMU Guest Agent

由于虚拟化的隔离,以及不同操作系统间的差异,在物理服务器上很难直接管理 Guest OS。目前多采用在 Guest OS 中安装 QEMU Guest Agent(QEMU GA)服务的方式与之交互。QEMU GA 通过虚拟机内的串口总线与外部管理平台进行简单的数据交互,数据交互使用 QMP 协议,默认提供了一些基础的操作,并且允许开发者定义自己的扩展接口。通过 QEMU GA 管理者可以在云平台上统一管理任意虚拟机的 Guest OS。


通过 QEMU 提供的接口,开发者可以在云平台上实现众多与虚拟机的相关功能,简化云平台的管理工作,例如:


性能监控

云平台上运行的业务,根据需求的场景不同,可以实现不同层面的监控:


  • 平台资源消耗:需要了解每台虚拟机消耗的 CPU、内存、网络接口数据量、块设备数据量。在这种场景下可以通过 QEMU Monitor 提供的 API 获取虚拟机进程的资源消耗。


  • Guest OS 内状态:由于硬件虚拟化对 CPU、内存资源的隔离和 QEMU 对 IO 请求的优化,在 Guest OS 中的性能数据和 qemu-kvm 进程的性能数据不会完全一致,对于业务的资源消耗数据,有时候还需单独采集。


快照/备份

对于较为复杂的业务管理场景,例如对正在运行业务的虚拟机做快照和备份操作,由于通信和程序运行的时间消耗,无法保证操作时的数据一致性和数据完整性。这时需要云平台、Guest OS 和业务程序协同完成该操作。


云平台会在操作虚拟机快照/备份之前尝试通过 QEMU GA 向 Guest OS 发出冻结指令,暂停所有对文件系统的 IO 操作并向硬盘下刷缓存数据。QEMU GA 同时提供了冻结指令的 hook 脚本扩展,允许管理员实现针对特定业务程序的冻结操作,从而可以保证数据在应用程序一级的同步,保证应用数据的一致性和完整性。


故障转移

在云平台中,通过平台的节点自检能力可以更容易地实现物理节点级别的故障转移。更进一步,通过扩展 QEMU GA 的自检功能,云平台可以实现 Guest OS 级别的故障转移。


在云平台日益趋于集中化统一管理的背景下,单纯的虚拟化技术早已经无法满足用户需求,根据业务模型合理设计出高度自动化、响应更迅捷、资源利用率更高的云平台,才能适应不断增长的业务需求。


焱融云借助 QEMU Monitor 和 QEMU Guest Agent 技术,在系统性能监控、快照备份、故障转移等功能上做了大量优化,整合到产品中,保障了客户业务的持续稳定运行。

发布于: 2021 年 05 月 27 日阅读数: 13
用户头像

焱融科技

关注

Drive Future Storage 2020.05.29 加入

面向未来的下一代云存储

评论

发布
暂无评论
Qemu KVM Guest增强简述