利用qemu-guest-agent冻结文件系统

利用qemu-guest-agent冻结文件系统

转载:www.silenceli.com?p=250

本文将介绍:

qemu-guest-agent是什么?

为什么使用qemu-guest-agent

如何利用qemu-guest-agent冻结文件系统?

qemu-ga与openstack的结合

What is qemu-ga

我个人认为qemu-ga是在虚拟机中安装的一个agent,宿主机host通过通道(unix socket)与虚拟机vm内部的agent进行通信,这样宿主机就有了一种从外部控制/获取虚拟机的手段。比如:host可以向vm下发执行修改 hostname的指令,或者获取vm内所有进程信息的指令。

qemu-ga时刻监听这个unix socket,一旦发现有指令发送来,分析该指令,并执行,通过unix socket返回执行结果。

通过在虚拟机内部预装qemu-ga,云平台对虚拟机的控制能力显著加强,举个例子:阿里云中有个产品叫“云盾 安骑士”,该产品能够自动修复软件安全漏洞、查杀木马、实时告警等等。其本质上来说,也是在vm中安装了某种agent。

Why use qemu-ga

目前市面上的开源agent产品也有不少,最有名的是qemu-ga和ovirt-guest-agent,通过比较发现

qemu-ga

ovirt-ga

开发语言

C语言

python

通道协议

qmp协议(QEMU Machine Protocol)

自定义

提供商

QEMU官方

Red Hat

操作系统支持

windows/linux 对于linux直接提供rpm包

windows/linux 对于linux直接提供rpm包

支持功能

guest-set-vcpus guest-get-vcpus guest-network-get-interfaces guest-suspend-hybrid guest-suspend-ram guest-suspend-disk guest-fstrim guest-fsfreeze-thaw guest-fsfreeze-freeze guest-fsfreeze-status guest-file-flush guest-file-seek guest-file-seek guest-file-read guest-file-close guest-file-open guest-shutdown guest-info guest-set-time guest-get-time guest-ping guest-sync guest-sync-delimited

1. information(吐出的信息,定期吐出可配置) 主机名 操作系统及版本 IP地址 已安装的软件 可用的内存 已登录的用户 活动用户(不详)2. 被触发的消息,即vm内部出现某种情况后,ovirt-ga将发送消息给host 开机 心跳(定期发送) 活动用户切换 windows锁屏 windows log off windows log on ovirt-ga被卸载

3.执行的命令 锁屏 自动登录 自动log off 关机

可扩展性

提供专门的方式,每一个功能需要增加一个对应的文件

直接修改ovirt-ga源码,通常修改 GuestAgentLinux2.py OVirtAgentLogic.py

openstack兼容性

openstack支持 相关bp:https://blueprints.launchpad.net/nova/+spec/qemu-guest-agent-support https://blueprints.launchpad.net/nova/+spec/quiesced-image-snapshots-with-qemu-guest-agent

openstack不支持,需要手动修改openstack代码

通过对比,qemu-ga的优势是qemu官方出品,与openstack深度结合,而且协议规范,代码规范,添加新的功能时,也相对独立,同时原生的qemu-ga就支持freezefs功能,这些优势都是ovirt-guest-agent无法比拟的。

how to use qemu-ga

在虚拟机中安装qemu-ga,针对centos 6.X

1

相关推荐