运行并验证
将自托管 VM 控制台作为 KVM 主机的特权组件进行操作。仅容器运行状况是不够的:验证从浏览器到 API、libvirt 到来宾的路径。
启动检查
docker compose -f docker-compose.self-hosted.yml ps
docker compose -f docker-compose.self-hosted.yml logs --tail=200 backend frontend
virsh -c qemu:///system list --all然后确认 UI 加载并且后端模式响应报告自托管模式。检查其功能图,而不是假设存在托管功能。
端到端冒烟测试
使用一次性的、经过许可的测试 ISO:
1.上传ISO并验证其显示的大小和名称; 2. 创建一个具有明确 CPU、内存、磁盘和网络选择的小型 VM; 3.启动它并打开VNC控制台; 4. 确认启动进度可见并且键盘输入到达访客; 5.停止虚拟机; 6. 删除它并确认其域、覆盖层和临时 NVRAM 已清除; 7. 重新启动后端并确认过时的替换启动没有被阻止。
请勿将成功启动解释为硬件认证、应用程序正确性、补丁合规性或安装程序已完成的证明。
操作信号
至少监控:
- 前端和 API 可达性;
- 后端 libvirt 连接;
- 释放主机内存和磁盘空间;
- 上传失败和访客启动错误;
- 来宾域、覆盖、NVRAM 和网络清单;
TEST_STORAGE_DIR下的持久清理日志;- 容器重启循环和后端异常。
评估 Compose 文件不配置外部警报系统。
常见故障
| 症状 | 检查 |
|---|---|
/dev/kvm 权限被拒绝 | 主机组成员资格和设备映射;不要使设备全局可写 |
| 无法连接到 libvirt | 守护进程状态、套接字路径、KVM_URI 和容器挂载 |
| 上传被拒绝 | 文件类型、可用空间、图像目录权限和配置的大小限制 |
| 访客无法开源图片 | 主机/容器绝对路径身份和读取权限 |
| VNC 断开连接 | 来宾状态、libvirt 图形端点、代理路径和浏览器控制台诊断 |
| 替代产品的推出仍受阻持久清理日志、过时域/覆盖/NVRAM 资源和后端日志 |
关机
在停止堆栈之前,停止或删除 UI 中的一次性访客。然后运行:
docker compose -f docker-compose.self-hosted.yml down随后清点 libvirt 域、映像、网络和命名卷。停止容器不会自动删除主机拥有的所有资源。