host
7a6fae7993
feat(chv): 阶段 1 持久 VM、overlay 分层与预热快照
- disk.py:overlay 模式(qcow2 backing file 指只读 base,
建盘/复用/重建校验 + qemu-img fail-closed)、数据盘
data.qcow2 独立供给(不进快照/GC/stop)、配额增量口径
(overlay 本次增量 0)、快照登记 tenant 字段、每 VM
tenant.json、持久登记 persistent/<tenant>.json、快照
登记按 URL 查找。
- config.py:CHV_DISK_MODE 白名单加 overlay(默认仍 copy;
错误文案保留旧子串,防回归测试钉死)。
- executor.py:VmConfig image_type 按后缀(.qcow2→Qcow2,
其余 Raw)+ 数据盘第三块盘;overlay 供给写 tenant 标记;
snapshot_vm 登记带 tenant,_validate_restore 归属校验
(跨用户 snapshot_tenant_mismatch 拒绝 + 审计,legacy
未标记/未登记放行并警告);stop/GC 在 overlay 模式下
保护持久登记/快照认领的盘;持久 VM(prewarm/acquire/
suspend/dispatch_task_persistent/recycle_persistent_vm,
CHV_WARM_POOL_SIZE>=1 启用,=0 退化冷启旧语义),
resume 只认 vm.info=Paused + socket 活性 + 归属一致。
- tests:cloud/tests/test_chv_opt_stage1.py 26 项(overlay、
tenant、持久池、跨用户拒绝、两连任务、显式回收)。
回归:discover test_chv_*.py 与 test_cloud_hypervisor.py
全过(结构契约:函数 ≤50 行、公开 API 全注解、文案钉死)。
不推、不合、不部署;只本地分支。
2026-11-08 09:45:00 +00:00
..
2026-11-08 09:44:34 +00:00
2026-11-08 09:44:59 +00:00
2026-11-08 09:44:59 +00:00
2026-11-08 09:44:59 +00:00
2026-11-08 09:45:00 +00:00
2026-11-08 09:45:00 +00:00
2026-11-08 09:44:34 +00:00
2026-11-08 09:45:00 +00:00
2026-11-08 09:44:59 +00:00
2026-11-08 09:44:59 +00:00
2026-11-08 09:44:59 +00:00
2026-11-08 09:45:00 +00:00
2026-11-08 09:44:59 +00:00
2026-11-08 09:45:00 +00:00
2026-11-08 09:44:59 +00:00