目前QEMU通過串口發布GA。可以嘗試的允許應用程序通過qume監視器與 GA進行通訊,但是需要virtio串口提供支持.
使用GA需要創建特別的串口,名為 org.qemu.guest_agent.0. 換句話說,需要在domain xml中的<devices>下添加如下內容:
如果使用libvirt1.0.6或者更新的的版本,可以省略<source>元素的path=" "屬性。libvirt會進行自動配置。
Libvirt 不提供直接使用guest agent的任何支持,如果您不介意使用libvirt-qemu,則可以使用virDomainQemuAgentCommand API(由virsh qemu-agent-command公開);但需要註意,這是不受支持的,對agent所做的任何改變都會影響libvi,並可能會導致libvirt行為的不確定性。
同時,guest agent可以由幾個支持的libvirt API內部使用,通常通過傳遞標誌來發送請求。 例如,virDomainShutdownFlags:
同樣使用於重啟API
在virsh中,用戶可以選擇關機或重啟的方式通過 -mode acpi|agent:
如果用戶正在創建快照,並希望在之前凍結並解凍文件系統,此時可通過為virDomainSnapshotCreate API指定VIR_DOMAIN_SNAPSHOT_CREATE_QUIESCE標誌來完成,或者在virsh中設置:
警告:與任何監視器命令壹樣,GA命令可以無限期阻塞。Libvirt實現了壹些基礎性檢測,以確定是否有qemu-ga實例在運行。 實際上,在每個有用的命令之前發出guest-sync命令。 如果它返回,則libvirt會認為guest agent已啟動並正在運行,這時就會發送實際命令。 但是,guest agent可能會死亡或被終止。 guest-sync命令發出超時,如果命中guest agent則被認為不存在。
在某些情況下,用戶可能希望通過domain的XML配置guest agent,而不希望libvirt連接guest agent 的socket。 因為僅當其virtio channel 名為org.qemu.guest_agent.0時libvirt才可以連接到guest agent,
然而,可通過xml改變目標的名字
如果更改名字,則需要告知qemu GA
僅需要壹件事,之前提到過得,需要在domain 中配置串口,同時,虛擬機必須安裝GA,幸運的是其已經封裝在rpm中。通過如下指令可以進行安裝