vdi-cloud/docs/cloud-gpu-health-exclusive-logs-20261112.md

1.7 KiB
Raw Permalink Blame History

GPU 健康、独占资源与终端日志归档

已实现

  • GET /api/v1/resources/gpus?node=... 在每个 GPU 上返回 health:PVE PCI 清单中的驱动字段、驱动绑定状态、来源和采集时间。标准 PVE PCI 接口没有温度、利用率、显存指标时返回 status=not_collected 和空值,不把 VM 配置引用当作健康数据。
  • GET /api/v1/resources/gpu-exclusive?node=... 提供独占组分配前检查:advisory lock、成员完整性、PVE 实际电源、活跃终端会话、未完成任务、冲突原因、allocationReady 和 releaseReady。接口只读,不会关机、切换显卡或重放任务。
  • 终端成功回传 collect-logs 后,日志写入 terminal_log_archives,按终端和时间建立索引,保留 30 天,并通过 GET /api/v1/terminal-logs 支持终端、时间范围和关键词检索。沿用诊断脱敏;这是回传快照归档,不是实时日志流。
  • 高级版 GPU 页面显示健康状态、驱动绑定、独占资源冲突和释放条件;日志与诊断页面增加持续归档检索区。

真实边界

温度、利用率和显存需要节点采集代理或厂商工具接入,当前 API 明确显示“未采集”。独占资源的释放状态只代表平台检查条件满足,实际 GPU 切换仍走既有终端准备任务和核对流程。

验证

  • docker run --rm -v "${PWD}:/src" -w /src/platform golang:1.27-alpine sh -c 'go test ./...' 通过。
  • npm run typecheck 和生产构建通过。
  • 真实控制台 http://127.0.0.1:5182 已重新部署;root 登录后真实读取独占组和 PVE GPU 清单,健康字段显示 not_collected,独占组正确报告 VM 101 正在运行导致不可分配。