QGA(Qemu Guest Agent)获取虚拟机信息
Guest Agent 信息¶
Guest Agent(GA)是一种可选的组件,可以在虚拟机内部运行,该组件提供关于正在运行的操作系统的大量额外运行时信息。 我们通常说的 QGA指的就是Qemu-Guest-Agent。
Guest Agent 状态信息,可从vm的status中获取,条件类型为 AgentConnected 时表示Guest Agent 已经连接并处于可用状态。
KubeVirt 在 VirtualMachineInstance 对象下新增了三个子资源来获取 Guest Agent 提供的信息:
- guestosinfo 提供了与来guest操作系统相关的基本信息,以及能执行哪些命令。
# curl http://127.0.0.1:8001/apis/subresources.kubevirt.io/v1/namespaces/default/virtualmachineinstances/vm-ubuntu01/guestosinfo
{
"fsFreezeStatus": "thawed",
"fsInfo": {
"disks": [
{
"diskName": "loop3",
"fileSystemType": "squashfs",
"mountPoint": "/snap/lxd/27037",
"totalBytes": 91226112,
"usedBytes": 91226112
},
{
"diskName": "vda15",
"fileSystemType": "vfat",
"mountPoint": "/boot/efi",
"totalBytes": 109395456,
"usedBytes": 6333952
},
{
"diskName": "loop2",
"fileSystemType": "squashfs",
"mountPoint": "/snap/snapd/20671",
"totalBytes": 42467328,
"usedBytes": 42467328
},
{
"diskName": "loop0",
"fileSystemType": "squashfs",
"mountPoint": "/snap/core20/2105",
"totalBytes": 67108864,
"usedBytes": 67108864
},
{
"diskName": "loop1",
"fileSystemType": "squashfs",
"mountPoint": "/snap/lxd/26741",
"totalBytes": 120061952,
"usedBytes": 120061952
},
{
"diskName": "vda1",
"fileSystemType": "ext4",
"mountPoint": "/",
"totalBytes": 10196688896,
"usedBytes": 1838821376
}
]
},
"guestAgentVersion": "6.2.0",
"hostname": "vm-ubuntu01",
"os": {
"id": "ubuntu",
"kernelRelease": "5.15.0-92-generic",
"kernelVersion": "#102-Ubuntu SMP Wed Jan 10 09:33:48 UTC 2024",
"machine": "x86_64",
"name": "Ubuntu",
"prettyName": "Ubuntu 22.04.3 LTS",
"version": "22.04.3 LTS (Jammy Jellyfish)",
"versionId": "22.04"
},
"supportedCommands": [
{
"enabled": true,
"name": "guest-ssh-remove-authorized-keys"
},
{
"enabled": true,
"name": "guest-ssh-add-authorized-keys"
},
{
"enabled": true,
"name": "guest-ssh-get-authorized-keys"
},
{
"name": "guest-get-devices"
},
{
"enabled": true,
"name": "guest-get-osinfo"
},
{
"enabled": true,
"name": "guest-get-timezone"
},
{
"enabled": true,
"name": "guest-get-users"
},
{
"enabled": true,
"name": "guest-get-host-name"
},
{
"enabled": true,
"name": "guest-exec"
},
{
"enabled": true,
"name": "guest-exec-status"
},
{
"enabled": true,
"name": "guest-get-memory-block-info"
},
{
"enabled": true,
"name": "guest-set-memory-blocks"
},
{
"enabled": true,
"name": "guest-get-memory-blocks"
},
{
"enabled": true,
"name": "guest-set-user-password"
},
{
"enabled": true,
"name": "guest-get-fsinfo"
},
{
"enabled": true,
"name": "guest-get-disks"
},
{
"enabled": true,
"name": "guest-set-vcpus"
},
{
"enabled": true,
"name": "guest-get-vcpus"
},
{
"enabled": true,
"name": "guest-network-get-interfaces"
},
{
"enabled": true,
"name": "guest-suspend-hybrid"
},
{
"enabled": true,
"name": "guest-suspend-ram"
},
{
"enabled": true,
"name": "guest-suspend-disk"
},
{
"enabled": true,
"name": "guest-fstrim"
},
{
"enabled": true,
"name": "guest-fsfreeze-thaw"
},
{
"enabled": true,
"name": "guest-fsfreeze-freeze-list"
},
{
"enabled": true,
"name": "guest-fsfreeze-freeze"
},
{
"enabled": true,
"name": "guest-fsfreeze-status"
},
{
"enabled": true,
"name": "guest-file-flush"
},
{
"enabled": true,
"name": "guest-file-seek"
},
{
"enabled": true,
"name": "guest-file-write"
},
{
"enabled": true,
"name": "guest-file-read"
},
{
"enabled": true,
"name": "guest-file-close"
},
{
"enabled": true,
"name": "guest-file-open"
},
{
"enabled": true,
"name": "guest-shutdown"
},
{
"enabled": true,
"name": "guest-info"
},
{
"enabled": true,
"name": "guest-set-time"
},
{
"enabled": true,
"name": "guest-get-time"
},
{
"enabled": true,
"name": "guest-ping"
},
{
"enabled": true,
"name": "guest-sync"
},
{
"enabled": true,
"name": "guest-sync-delimited"
}
],
"timezone": "CST, 28800"
}
- filesystemlist 展示虚拟机内部文件系统的结构,包括挂载点、磁盘使用情况以及各个目录下的文件数量等信息。
# curl http://127.0.0.1:8001/apis/subresources.kubevirt.io/v1/namespaces/default/virtualmachineinstances/vm-ubuntu01/filesystemlist { "items": [ { "diskName": "loop3", "fileSystemType": "squashfs", "mountPoint": "/snap/lxd/27037", "totalBytes": 91226112, "usedBytes": 91226112 }, { "diskName": "vda15", "fileSystemType": "vfat", "mountPoint": "/boot/efi", "totalBytes": 109395456, "usedBytes": 6333952 }, { "diskName": "loop2", "fileSystemType": "squashfs", "mountPoint": "/snap/snapd/20671", "totalBytes": 42467328, "usedBytes": 42467328 }, { "diskName": "loop0", "fileSystemType": "squashfs", "mountPoint": "/snap/core20/2105", "totalBytes": 67108864, "usedBytes": 67108864 }, { "diskName": "loop1", "fileSystemType": "squashfs", "mountPoint": "/snap/lxd/26741", "totalBytes": 120061952, "usedBytes": 120061952 }, { "diskName": "vda1", "fileSystemType": "ext4", "mountPoint": "/", "totalBytes": 10196688896, "usedBytes": 1838821376 } ], "metadata": {} }
- userlist 展示当前登录的用户信息
# curl http://127.0.0.1:8001/apis/subresources.kubevirt.io/v1/namespaces/default/virtualmachineinstances/vm-ubuntu01/userlist
{
"items": [],
"metadata": {}
}
# curl http://127.0.0.1:8001/apis/subresources.kubevirt.io/v1/namespaces/default/virtualmachineinstances/vm-ubuntu01/userlist
{
"items": [
{
"loginTime": 1707738497.370697,
"userName": "ubuntu"
}
],
"metadata": {}
}