基于QMP实现对qemu虚拟机进行交互
7页1、基于QMP实现对qemu虚拟机进行交互本文详解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仿真器,可以理解
2、为虚拟机里的cpu任务直接交给物理机cpu完成。 libvirt:虚拟机管理平台。能纳管qemu、lxc、esx等虚拟化软件,通过编写xml实现对虚拟机、存储、网络等进行配置和管理上面只描述最核心的功能,另有一些高级功能,以及互相重叠的功能在这里不做描述,否则容易混淆QMP语法# 不带参数的指令 execute : XXX # 带参数的指令 execute : XXX, arguments : . 单独使用qemu,启用QMP启动qemu虚拟机# qemu monitor采用tcp方式,监听在127.0.0.1上,端口为4444/usr/libexec/qemu-kvm -qmp tcp:127.0.0.1:4444,server,nowait# qemu monitor采用unix socket,socket文件生成于/opt/qmp.socket/usr/libexec/qemu-kvm -qmp unix:/opt/qmp.socket,server,nowait连接qemu monitor# tcp可以通过telnet进行连接,方法如下 telnet 127.0.0.1 444
3、4Trying 127.0.0.1.Connected to 127.0.0.1.Escape character is .QMP: version: qemu: micro: 0, minor: 12, major: 2, package: qemu-kvm-ev-2.12.0-18.el7_6.1.1, capabilities: # unix socket可以通过nc -U进行连接,方法如下 nc -U qmp.socketQMP: version: qemu: micro: 0, minor: 12, major: 2, package: qemu-kvm-ev-2.12.0-18.el7_6.1.1, capabilities: 按照上面执行完命令后,不会退出而是继续等待输入,但这个时候还无法使用,接着,需要输入一条qmp指令才可以 execute : qmp_capabilities 此时屏幕会输出以下内容,表示从capabilities negotiation模式进入了command模式return: 接下来,就可以执行qmp的指令了,qmp指令非常多,由于篇幅有限,这里
4、仅举几个例子(更多内容请参考官方文档,本文最后附上网址)# 查看支持哪些qmp指令 execute: query-commands # 虚拟机状态 execute: query-status # 虚拟机暂停 execute: stop # 磁盘查看 execute: query-block # 磁盘在线插入 execute: blockdev-add, arguments: driver: qcow2, node-name: drive-virtio-disk1, file: driver: file, filename: /opt/data.qcow2 execute: device_add, arguments: driver: virtio-blk-pci, drive: drive-virtio-disk1 # 磁盘完整备份 execute : drive-backup , arguments : device : drive-virtio-disk0 , sync : full , target : /opt/backuptest/fullbackup.img 除了使用tel
《基于QMP实现对qemu虚拟机进行交互》由会员m****分享,可在线阅读,更多相关《基于QMP实现对qemu虚拟机进行交互》请在金锄头文库上搜索。
DB2发生死锁情况时应该怎么处理
Python 为何能成最强编程语言
面试前必须要知道的Redis面试
MySQL下自动删除指定时间以前的记录的操作方法
深入理解FastCGI协议以及在PHP中的实现
MySQL数据库性能优化之硬件瓶颈分析
NoSQL数据库大全收集整理
2018 – 2019 年前端 JavaScript 面试题
PHP文件包含漏洞的形式总结
5种使用Python代码轻松实现数据可视化的方法
改进JavaScript和Bust的互操作性:深入认识wasm-bindgen组件
C#图片缩放平移从功能分析到编码实现
详解网络蜘蛛的安全隐患及预防方法
利用NAP解除安全隐患自动隐藏你的IP地址
解决分布式数据库和离线网络中原子性问题的新方法
bbed恢复数据遇到延迟块清除的问题
Oracle Data Redaction数据加密
linux下du和df结果不一致的原因及处理
基于QMP实现对qemu虚拟机进行交互
解读Java并发队列BlockingQueue
2024-01-15 24页
2024-01-15 15页
2024-01-08 89页
2024-01-08 72页
2023-08-31 3页
2023-08-31 2页
2023-07-10 3页
2023-07-10 3页
2023-07-10 3页
2023-07-10 2页