host-only 机器
概述
host-only 是无设备的 TCG 板卡:一台 vhost-x86-tcg 主机以暂停状态启动,不带设备,也不启动客户机。它用来验证 QEMU 进程、内存池、QMP 与串口管理这条会话链路本身。
拓扑
# resources/machines/host-only.yaml
version: 1
imports: [vhosts/qemu.yaml, vhosts/vhost-x86-tcg.yaml]
templates:
vhost-x86-node:
vhost: {use: vhost-x86-tcg}
machines:
- {id: m0, use: vhost-x86-node}
机器数量:1(
m0);只有主机,没有devices列表。vhost-x86-tcg继承vhost-x86的 Q35 machine 与内存映射,只改内存、CPU、加速器与可执行文件。vHost 以
-S -nodefaults暂停启动,且没有镜像或内核,因此不会运行客户机系统。
硬件资源
资源 |
值 |
来源 |
|---|---|---|
机器 |
1 台( |
|
vHost 配置 |
|
|
客户机 RAM |
64 MiB |
|
vCPU |
1 |
同上 |
设备 |
无 |
— |
内存池 |
64 MiB |
主机 RAM |
可执行文件 |
|
|
vHost |
无 |
— |
软件栈
没有客户机 OS:主机暂停在 QEMU 启动阶段,不执行内核。
就绪探测只覆盖 QEMU 侧:串口 socket 存在、QMP 协商成功;没有
serial.wait_for标记。这台板卡用于测试会话监督:运行目录与内存池的创建、QMP 管理、进程组停止与资源清理。
运行该机器
# 只校验与预览
just run-cli validate resources/machines/host-only.yaml
just run-topology resources/machines/host-only.yaml --dry-run
# 运行 1 秒后结束会话(主机处于暂停状态)
just run-topology-dev resources/machines/host-only.yaml --run-for 1
--run-for在全部进程就绪后开始计时,适合这种无客户机的冒烟运行。会话结束后保留
plan.json、layout.json、output.log与verdict.json,内存池与 socket 被删除。生命周期见 会话生命周期。
验证
计划输出为 1 个主机进程、0 个设备进程,内存池 64 MiB。
会话测试套件使用 TCG 主机跑通这条路径,另有两台机器的
tcg-pair.yaml变体,见 多机拓扑。结束后的 verdict 记录进程停止状态;无法确认退出时会保留资源并记录
users_stopped: false。
限制
主机处于暂停状态,不执行客户机;需要客户机行为时使用
single-gpu等板卡。只有 TCG 加速,不覆盖 KVM 下的客户机路径。
没有设备,因此不覆盖 vfio-user 设备链路;对应样例见 qemu-device 机器。
运行会话需要 Linux glibc 与
setpriv。
相关页面
vHost 配置:vHost 配置
机器目录:机器目录
qemu-device 板卡:qemu-device 机器
多机版本:多机拓扑
会话生命周期:会话生命周期
源码:
resources/machines/host-only.yaml、resources/vhosts/vhost-x86-tcg.yaml