qemu-ga windows下的安裝及監控開發


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM