分类: 虚拟化
2014-04-14 23:37:16
qemu monitor protocol简介
参考:
相关文件:
qmp-commands.hx
qmp-events.txt
qmp-spec.txt
qapi-schema.json
writing-qmp-commands.txt
hmp-commands.hx
一、简介
qemu monitor protocol 简称qmp,是以json为格式的一种协议。qmp是qemu-kvm虚拟机中的一个重要组成部分。如果使用libvirt起一台虚拟机,libvirt使用qmp给qemu发送命令,qemu通过qmp events(qmp 事件)返回,所以说qmp是libvirt和qemu之间交互的一个重要通道。
根据中的介绍,现在我们使用的命令还是放在qmp-commands.hx和hmp-commands.hx中,未来希望都放在qapi-schema.json文件中,就像qga(qemu guest agent)的实现方式一样。
二、使用
参考中的第二个网址有qmp的使用方法,这里只对libvirt起的虚拟机做点简单介绍。
使用命令 :
# virsh qemu-monitor-command --help
可以查到所有的qmp命令以及对命令的简单介绍。
使用命令:
# virsh qemu-monitor-command domain --hmp help
可以查到所有的hmp(human monitor protocol)的命令以及对命令的简单介绍。
qmp和hmp的区别是qmp命令使用的是json格式,hmp直接使用命令,而且两者之间的命令也略有不同。相对来说,hmp比qmp在格式上要简单些。
hmp和qmp的例子:
# virsh qemu-monitor-command --hmp 3 info block
# virsh qemu-monitor-command 3 '{"execute":"query-block"}'
三、原理
qmp本质是一个本地的unix socket。qemu是server端,libvirt是client端。在后面的qmp原理中会详细分析。