windows安装qemu-ga

虚拟机配置里添加virtio serial端口

#virsh edit instance-name

devices里添加下面这段配置,

1 <channel type='unix'>
2 <source mode='bind' path='/var/lib/libvirt/qemu/org.qemu.guest_agent.0.instance-name.sock'/>
3 <target type='virtio' name='org.qemu.guest_agent.0'/>
4 <address type='virtio-serial' controller='0' bus='0' port='1'/>
5 </channel>

安装Qemu Guest Agent服务

#wget https://fedorapeople.org/groups/virt/virtio-win/virtio-win.repo -O /etc/yum.repos.d/virtio-win.repo

#yum install virtio-win

安装virtio-win包,virtio-win里包含windows virtio设备驱动,及qemu-ga的安装包。

将msi安装文件和virtio-win.iso拷贝到windows下。

virtio-win.iso包含各个windows版本下的virtio serial驱动,安装对应版本的驱动。

安装对应版本qemu-ga.msi,至此,qga安装完毕。

qga功能扩展

搭建编译环境:

添加功能示例(添加内存使用率检测)

编辑qapi-schema.json,添加自定义结构体及命令声明。

 1     ##  结构体声明
2 # @GuestMemInfo
3 #
4 # Information about Memory usage.
5 #
6 # @total: total size of Memory
7 #
8 # @usage: Memory usage
9 #
10 # Since 2.6
11 ##
12 { 'struct': 'GuestMemInfo',
13 'data': { 'total': 'int', 'usage': 'int' } }
14
15 ## 命令声明
16 # @guest-get-mem-usage:
17 #
18 # Get the memory utilization rate.
19 #
20 # Returns: @GuestMemInfo on success.
21 #
22 # Since 2.6
23 ##
24 { 'command': 'guest-get-mem-usage',
25 'returns': 'GuestMemInfo' }

在commands-win32.c中添加命令实现:

1 GuestMemInfo *qmp_guest_get_mem_usage(Error **errp)
2 {
3 MEMORYSTATUS ms;
4 GuestMemInfo *meminfo = g_new0(GuestMemInfo, 1);
5 GlobalMemoryStatus(&ms);
6 meminfo->usage = (int64_t)ms.dwMemoryLoad;
7 meminfo->total = (int64_t)ms.dwTotalPhys;
8 return meminfo;
9 }

  在commands-posix.c中添加命令实现(直接返回QERR_UNSUPPORTED错误):

1 GuestMemInfo *qmp_guest_get_mem_usage(Error **errp)
2 {
3 error_setg(errp, QERR_UNSUPPORTED);
4 }

重新编译qemu-ga.exe,替换C:\Program Files\qemu-ga下的qemu-ga.exe,重启服务即可。

(dll依赖,在/usr/x86_64-w64-mingw32/sys-root/mingw/bin/下可找到。)

参考文献:

http://wiki.qemu.org/Features/QAPI/GuestAgent

http://wiki.libvirt.org/page/Qemu_guest_agent

http://fedoraproject.org/wiki/Windows_Virtio_Drivers

http://lists.gnu.org/archive/html/qemu-discuss/2014-11/msg00027.html

qemu-ga windows下的安装及监控开发的更多相关文章

  1. Ruby入门--Linux/Windows下的安装、代码开发及Rails实战

    Ruby入门--Linux/Windows下的安装.代码开发及Rails实战 http://www.linuxidc.com/Linux/2014-04/100242.htm Ubuntu 13.04 ...

  2. Windows下快速安装CACTI流量监控

    Windows下快速安装CACTI流量监控 原文  http://os.51cto.com/art/201111/300977.htm CACTI是一套PHP程序,它利用SNMPGET采集数据,使用R ...

  3. flume 1.7在windows下的安装与运行

    flume 1.7在windows下的安装与运行 一.安装 安装java,配置环境变量. 安装flume,flume的官网http://flume.apache.org/,下载地址,下载后直接解压即可 ...

  4. memcache的windows下的安装和简单使用

    原文:memcache的windows下的安装和简单使用 memcache是为了解决网站访问量大,数据库压力倍增的解决方案之一,由于其简单实用,很多站点现在都在使用memcache,但是memcach ...

  5. Windows下pry安装和配置

    Windows下pry安装和配置 pry是一个增强型的交互式命令行工具,比irb强大. 有自动完成功能,自动缩进,有颜色.有更强大的调试功能. pry 安装很简单. 在终端输入: gem instal ...

  6. Windows下虚拟机安装Mac OS X ----- VM12安装Mac OS X 10.11

    Windows下虚拟机安装Mac OS X -– VM12安装Mac OS X 10.11 随着Iphone在国内大行其道,越来越多的开发者涌入iOS开发大军 中,但都苦于没有苹果机,本文即将介绍WI ...

  7. Windows下memcache安装使用

    Windows下Memcache安装 随着时间的推移,网上现在能找到的在 Windows下安装 Memcache 的文档大多已经过时.雪峰这里再简要介绍一下当下最新版的安装和配置方法. Memcach ...

  8. Windows 下如何安装配置Snort视频教程

    Windows 下如何安装配置Snort视频教程: 第一步: http://www.tudou.com/programs/view/UUbIQCng360/ 第二部: http://www.tudou ...

  9. 在windows下完美安装GitHub

    笔者最近在Windows下安装GitHub,过程中遇到不少问题.现在把安装的详细步骤分享给大家,免得大家走弯路. 笔者安装了GitHub for Windows程序,一切都运行顺利.但事情没有结束,首 ...

随机推荐

  1. Vue | 指令实现自动翻译填充英文名功能

    背景:应用系统中存在多个创建实体表单,表单填写时,在填写中文名称后,要填写对应的英文名作为标识或数据库查询索引. 需求:填写中文名的同时,系统自动生成英文名并填充到表单中,辅助用户操作,节约操作时间. ...

  2. 前端必读:Vue响应式系统大PK(下)

    转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 原文参考:https://www.sitepoint.com/vue-3-reactivity-system ...

  3. Flink使用二次聚合实现TopN计算

    一.背景说明: 有需求需要对数据进行统计,要求每隔5分钟输出最近1小时内点击量最多的前N个商品,数据格式预览如下: 543462,1715,1464116,pv,1511658000 662867,2 ...

  4. Docker——安装部署

    前言 从 2017 年 3 月开始 docker 在原来的基础上分为两个分支版本: Docker CE 和 Docker EE. Docker CE 即社区免费版,Docker EE 即企业版,强调安 ...

  5. vue2路由之指定滑动位置scrollBehavior-(载转)

    看源码的时候看到这个属性: 新手自然不知道这个是什么东西了,查了下vue  API: https://router.vuejs.org/en/advanced/scroll-behavior.html ...

  6. IDEA Git 项目实战场景

    实战场景一:上班啦,从远程仓库克隆项目到本地仓库(Clone) 打开 IDEA,在 Check out from Version Control 下拉菜单选择 Git,如下: 在弹出窗口的 URL 地 ...

  7. linux 解压总结

    tar解压 gz解压 bz2等各种解压文件使用方法 .tar 解包:tar xvf FileName.tar 打包:tar cvf FileName.tar DirName (注:tar是打包,不是压 ...

  8. JDBC使用详解

    第1章:JDBC概述 1.1 数据的持久化 持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用.大多数情况下,特别是企业级应用,数据持久化意味着将内存中的数据保存到硬盘上加以 ...

  9. 三:.net core(.NET 6)给swagger添加文档注释详细步骤

    提供swagger文档注释. 0.先给api加上标题注释和返回值注释: 然后,启动见证奇迹: What the hell?没得注释?查看当前自动生成的swagger代码如下: 首先,我们需要对需要注释 ...

  10. 解决idea查不到插件

    http://127.0.0.1:1080