qmp简介 QEMU Machine Protocol
2017-04-24 17:04
239 查看
QMP,即QEMU Machine Protocol,也就是qemu虚拟机协议,它是qemu的一部分,qmp是基于json格式的一整套协议,通过这套协议我们可以控制qemu虚拟机实例的整个生命周期,包括挂起、暂停、快照、查询、外设的热插拔等,以及最简单的查询,都可以通过qmp实现。
qmp的主要特征包括:
1)轻量、基于文本、指令格式易于解析,因为它是json格式的;
2)支持异步消息,主要指通过qmp发送给虚拟机的指令支持异步;
3)Capabilities Negotiation,主要指我们初次建立qmp连接时,进入了capabilities negotiation模式,这时我们不能发送任何指令,除了qmp_capabilities指令,发送了qmp_capabilitie指令,我们就退出了capabilities
negotiation模式,进入了指令模式(command mode),这时我们可以发送qmp指令,如{ "execute": "query-status" },这样就可以查询虚拟机的状态。
那么该如何建立qmp连接呢,有多种方式可以建立qmp连接,接下来的文章我们会依次进行介绍这里我们介绍一种最简单的方式,只需要在虚拟机启动选项中加入-qmp选项,即可建立qmp连接
[html] view
plain copy
qemu-system-x86_64 /var/lib/libvirt/images/ubuntu.img -enable-kvm -m 2048 -smp 2 -vnc :1 <span style="color:#ff0000;">-qmp tcp:localhost:4444,server,nowait</span>
当虚拟机启动之后通过telnet即可连接qmp
[html] view
plain copy
$ telnet localhost 4444
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
{
"QMP": {
"version": {
"qemu": {
"micro": 50,
"minor": 6,
"major": 1
},
"package": ""
},
"capabilities": [
]
}
}
初次连接qmp会显示greeting消息,这时我们处于capabilities negotiation模式,执行
[html] view
plain copy
{ "execute": "qmp_capabilities" }
会进入command模式,这时我们就可以发送各种指令查询、操作虚拟机。
qmp的主要特征包括:
1)轻量、基于文本、指令格式易于解析,因为它是json格式的;
2)支持异步消息,主要指通过qmp发送给虚拟机的指令支持异步;
3)Capabilities Negotiation,主要指我们初次建立qmp连接时,进入了capabilities negotiation模式,这时我们不能发送任何指令,除了qmp_capabilities指令,发送了qmp_capabilitie指令,我们就退出了capabilities
negotiation模式,进入了指令模式(command mode),这时我们可以发送qmp指令,如{ "execute": "query-status" },这样就可以查询虚拟机的状态。
那么该如何建立qmp连接呢,有多种方式可以建立qmp连接,接下来的文章我们会依次进行介绍这里我们介绍一种最简单的方式,只需要在虚拟机启动选项中加入-qmp选项,即可建立qmp连接
[html] view
plain copy
qemu-system-x86_64 /var/lib/libvirt/images/ubuntu.img -enable-kvm -m 2048 -smp 2 -vnc :1 <span style="color:#ff0000;">-qmp tcp:localhost:4444,server,nowait</span>
当虚拟机启动之后通过telnet即可连接qmp
[html] view
plain copy
$ telnet localhost 4444
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
{
"QMP": {
"version": {
"qemu": {
"micro": 50,
"minor": 6,
"major": 1
},
"package": ""
},
"capabilities": [
]
}
}
初次连接qmp会显示greeting消息,这时我们处于capabilities negotiation模式,执行
[html] view
plain copy
{ "execute": "qmp_capabilities" }
会进入command模式,这时我们就可以发送各种指令查询、操作虚拟机。
相关文章推荐
- Multiple ways to access QEMU Machine Protocol (QMP)
- QMP ( qemu monitor protocol ) and Different ways of accessing it
- Qemu&KVM 创建虚拟机之第一篇(5)QEMU Machine Protocol
- qemu monitor protocol简介
- 今天开始学Pattern Recognition and Machine Learning (PRML),章节1.6,Information Theory信息论简介
- QEMU 简介(一)
- Docker Machine 简介
- PTM-A Parallel Turing Machine Protocol
- 今天开始学Pattern Recognition and Machine Learning (PRML),章节1.6,Information Theory信息论简介
- Docker Machine 简介
- QEMU使用简介
- machine learning in coding(python):pandas数据包DataFrame数据结构简介
- Google Protocol Buffer简介、开发指引及编码方式
- 今天开始学Pattern Recognition and Machine Learning (PRML),章节1.6,Information Theory信息论简介
- QEMU1.3.0的源码分析一 : 源码目录简介
- Extensible Messaging and Presence Protocol (XMPP) 简介
- Swarm简介和使用教程-Docker-swarm和Docker-machine
- 今天开始学Pattern Recognition and Machine Learning (PRML),章节1.6,Information Theory信息论简介
- 加多一個debug protocol去qemu是可能的
- iOS Extensible Messaging and Presence Protocol (XMPP) 简介(1)