![26acccb926ae1c70ca051ac8f87a01db.png](https://img-blog.csdnimg.cn/img_convert/26acccb926ae1c70ca051ac8f87a01db.png)
本文详解QMP,包含qmp、hmp、qemu-guest-agent的介绍、工作原理、配置方法、范例
小慢哥的原创文章,欢迎转载
目录
▪ QMP介绍
▪ QMP语法
▪ 单独使用qemu,启用QMP
▪ 通过libvirt启动qemu,启用QMP
▪ qemu-guest-agent(qemu-ga)
▪ 官方参考文档
QMP介绍
qemu对外提供了一个socket接口,称为qemu monitor,通过该接口,可以对虚拟机实例的整个生命周期进行管理,主要有如下功能
▷ 状态查看、变更
▷ 设备查看、变更
▷ 性能查看、限制
▷ 在线迁移
▷ 数据备份
▷ 访问内部操作系统
通过该socket接口传递交互的协议是qmp,全称是qemu monitor protocol,这是基于json格式的协议
在继续往下讲之前,需要先了解qemu、kvm、libvirt之间的区别(因为有很多童鞋对这三者的理解是混乱的)
▷ qemu:虚拟机仿真器。通过软件模拟出cpu、内存、磁盘、主板、网卡等设备
▷ kvm:高性能的cpu仿真器。由于软件模拟的cpu性能很差,因此出现了kvm,这是通过硬件与内核的支持实现接近native性能的cpu仿真器,可以理解为虚拟机里的cpu任务直接交给物理机cpu完成。
▷ libvirt:虚拟机管理平台。能纳管qemu、lxc、esx等虚拟化软件,通过编写xml实现对虚拟机、存储、网络等进行配置和管理
> 上面只描述最核心的功能,另有一些高级功能,以及互相重叠的功能在这里不做描述,否则容易混淆
QMP语法
# 不带参数的指令{ "execute" : "XXX" }# 带参数的指令{ "execute" : "XXX