主题
02 · 需求规格说明书(SRS)
| 项目 | 内容 |
|---|---|
| 文档编号 | HV-ADMIN-DOC-02 |
| 文档名称 | Harvester 虚拟机运维管理平台 · 需求规格说明书 |
| 版本 | v0.1(初稿,待评审) |
| 状态 | 待评审 → 评审通过后冻结为需求基线 v1.0 |
| 作者 | 产品 + 架构组 |
| 评审人 | 全体参会角色(服务器运维、网络运维、K8s 运维、应用运维、监控中心、CMDB、产品、K8s 专家) |
| 关联文档 | 00-评审导读、01-总体方案设计、03-数据模型与接口设计 |
修订记录
| 版本 | 日期 | 修订人 | 说明 |
|---|---|---|---|
| v0.1 | 2026-09-07 | 产品/架构 | 初稿,含 17 组功能需求 + 非功能需求 |
1. 引言
1.1 目的
定义「Harvester 虚拟机运维管理平台」(以下简称平台)的功能与非功能需求,作为设计、开发、测试、验收的依据。
1.2 读者
产品经理、架构师、前后端研发、测试、以及 8 类干系人角色(见 §3)。
1.3 需求描述约定
- 需求编号:
FR-<模块>-<序号>(功能需求)/NFR-<类别>-<序号>(非功能需求)。 - 优先级:P0(Must)/ P1(Should)/ P2(Could)/ P3(本期不做)。
- 每条需求含:描述、角色、验收标准(Given/When/Then 或可测判据)、依赖。
- 标注 [待确认] 的需求项须在评审会上给出结论;标注 [PoC 验证] 的须在 PoC 阶段用真实集群验证(Harvester 版本相关能力)。
2. 业务背景与目标
见 01-总体方案设计.md §1。摘要:当前 Harvester 集群虚拟机交付与运维高度依赖人工与 IM 协作,存在交付慢、静态 IP 冲突、归属不清、备份无策略、迁移靠人肉、CMDB 不一致、审计缺失七大问题。平台目标是把虚拟机全生命周期变成标准化、自助化、可审计、可度量的流程。
业务价值量化目标(验收基线)
| 指标 | 现状(待填) | 目标 |
|---|---|---|
| 标准 VM 交付时长 | 1~3 工作日 | ≤ 5 分钟下发 / ≤ 15 分钟可用 |
| 一键创建占比 | 0% | ≥ 90% |
| 静态 IP 冲突事件 | ? | 0 |
| 归属元数据完整率 | ?% | ≥ 98% |
| 生产 VM 备份覆盖率 | ?% | 100% |
| 备份成功率 | — | ≥ 99% |
| CMDB 差异率 | ?% | ≤ 1% |
| 变更操作审计覆盖率 | 低 | 100% |
| 宿主机排空耗时 | ? | 下降 ≥ 50% |
3. 用户角色与画像
| 角色代码 | 角色 | 代表岗位 | 核心诉求 | 典型权限 | 使用频率 |
|---|---|---|---|---|---|
R1 | 平台管理员 | 平台研发/运维负责人 | 系统配置、集群纳管、权限、字典、模板 | 全部 | 日 |
R2 | K8s 运维 | 容器/虚拟化平台运维 | 集群与 VM 运行态、热迁移、备份、YAML、故障排查 | 集群级读写、迁移、备份、恢复、删除(生产需审批) | 日 |
R3 | 服务器运维 | 物理机/宿主机运维 | 宿主机维护、容量水位、批量迁移、上下线 | 节点读 + 维护编排 + 批量迁移 | 日/周 |
R4 | 网络运维 | 网络/IP 管理 | 网段与 VLAN、IP 分配/回收、冲突治理、DNS | IPAM 读写、VLAN/网段管理、只读 VM 网络 | 日 |
R5 | 应用运维 | 业务系统运维/SRE | 快速建机、变更规格、挂载、迁移、恢复、值班处置 | 所辖服务的 VM 读写 + 申请审批 | 日 |
R6 | 监控中心 | NOC/值班 | 告警、状态总览、大屏、事件跳转、通知 | 全局只读 + 告警配置 + 值班通知 | 7×24 |
R7 | CMDB 管理员 | 配置管理 | 元数据规范、同步与对账、差异处理 | 元数据读写 + 同步任务 + 对账报表 | 日 |
R8 | 产品 | 产品经理 | 需求、看板、交付效率数据 | 全局只读 + 报表 | 周 |
R9 | 研发负责人 | 业务研发 Owner(工号标识) | 我的 VM、我的服务、自助申请、成本 | 所辖服务/部门数据的申请与查看 | 周 |
R10 | 部门负责人 | 部门 Leader(工号标识) | 部门资源与成本、审批 | 部门数据只读 + 审批 | 周 |
R11 | 审计/安全 | 内审、安全合规 | 审计日志、高危操作记录、导出 | 审计只读 + 导出 | 月 |
R12 | 只读访客 | 其他相关方 | 查看 | 授权范围只读 | 不定期 |
说明:
R9/R10既是「登录用户」,也是虚机上的归属属性(研发负责人工号 / 部门负责人工号);两者可独立存在(即:未登录平台的员工也可作为 VM 的负责人被记录)。
4. 范围
4.1 功能范围总览
| 模块 | 编号前缀 | P0 | P1 | P2 | 里程碑 |
|---|---|---|---|---|---|
| 集群与资源纳管 | FR-CLU | 5 | 3 | 2 | Phase 1 |
| 虚拟机查询与详情 | FR-VMS | 6 | 3 | 2 | Phase 1 |
| 一键创建虚拟机 | FR-CRT | 8 | 4 | 3 | Phase 1 |
| 虚拟机变更与删除 | FR-MOD | 5 | 4 | 2 | Phase 1/2 |
| 电源与运维操作 | FR-OPS | 4 | 3 | 3 | Phase 1 |
| 热迁移 | FR-MIG | 4 | 5 | 3 | Phase 2 |
| 备份/快照/恢复 | FR-BKP | 5 | 6 | 3 | Phase 2 |
| 网络与静态 IP | FR-NET | 6 | 5 | 3 | Phase 2 |
| 归属元数据与服务目录 | FR-META | 7 | 3 | 2 | Phase 1 |
| CMDB 集成 | FR-CMDB | 3 | 4 | 2 | Phase 2 |
| 权限/租户/审批 | FR-AUTH | 6 | 4 | 2 | Phase 1/2 |
| 审计与合规 | FR-AUD | 4 | 2 | 2 | Phase 1 |
| 监控告警集成 | FR-MON | 2 | 5 | 4 | Phase 2/3 |
| 报表看板与运营 | FR-RPT | 2 | 5 | 5 | Phase 2/3 |
| 通知 | FR-NTF | 2 | 3 | 2 | Phase 1/2 |
| 开放 API 与自动化 | FR-API | 2 | 3 | 3 | Phase 2/3 |
| 系统管理 | FR-SYS | 5 | 4 | 3 | Phase 1 |
4.2 不在本期范围内(P3 / Out of Scope)
- Kubernetes 容器工作负载管理(Deployment/StatefulSet 等)——平台只管虚拟机;容器由既有 K8s 平台负责。
- Harvester 集群的安装、升级、宿主机装机(iPXE/ISO 装机、Harvester 版本升级)——由服务器运维/K8s 运维既有流程负责,平台仅提供升级前的「迁移排空」协助能力(P2)。
- 存储底层运维(Longhorn 磁盘更换、副本修复、存储网络)——仅提供只读容量视图与告警跳转。
- 虚机内部 OS 运维(补丁、Agent 安装、配置管理/Ansible 编排)——平台只负责把 cloud-init 初始化脚本下发到位;OS 内配置由应用运维既有工具负责。
- 容器化 PaaS/CICD、数据库托管、中间件托管。
- 计费结算系统——本期只做「部门/成本中心维度的资源用量报表」,不做财务计费。
- 跨云/跨虚拟化平台纳管(VMware/OpenStack)——架构预留适配器接口,本期不实现(P2 可选:VMware 迁移导入)。
- 自动扩缩容 / AIOps 智能调度。
4.3 假设与约束
| # | 类型 | 内容 |
|---|---|---|
| A1 | 假设 | 现网 Harvester 版本在 v1.2 ~ v1.8 之间,具体版本由 K8s 运维在评审会给出(决策项 D1);平台按最低能力集设计并做能力探测 |
| A2 | 假设 | 虚机镜像(cloud image)已内置 cloud-init 与 qemu-guest-agent;若不满足,静态 IP 与文件系统冻结能力降级(需镜像规范配合) |
| A3 | 假设 | Harvester backup-target(NFS/S3)已配置或可在 Phase 2 前配置完成 |
| A4 | 假设 | 需要静态 IP 的虚机必须接入 VLAN/Untagged VM Network;mgmt 网络 IP 不支持固定 |
| A5 | 约束 | 平台不得修改 Harvester/KubeVirt 组件;不得在业务集群部署有状态服务(Phase 1/2 不引入自定义 CRD) |
| A6 | 约束 | 平台需支持内网离线部署(无公网),依赖的镜像/组件需提供离线包 |
| A7 | 约束 | 需满足公司安全基线与等保要求(账号、口令策略、传输加密、审计留存 ≥ 1 年) |
| A8 | 约束 | 需对接公司统一身份认证(LDAP/AD 或 OIDC)与组织架构数据源 |
| A9 | 约束 | 前端需兼容 Chrome/Edge 最近两个大版本;分辨率 ≥ 1440×900 |
| A10 | 约束 | 生产环境高危操作(删除、覆盖恢复、生产迁移)必须留痕并支持审批 |
5. 用例总览
mermaid
graph LR
subgraph 申请人["研发/应用运维 (R5/R9)"]
UC01[UC-01 一键创建虚拟机]
UC02[UC-02 批量创建虚拟机]
UC03[UC-03 变更配置/扩容]
UC04[UC-04 查看我的VM与服务]
UC05[UC-05 申请恢复备份]
end
subgraph 平台运维["K8s/服务器运维 (R2/R3)"]
UC06[UC-06 纳管集群]
UC07[UC-07 VM 全量检索与详情]
UC08[UC-08 热迁移单台VM]
UC09[UC-09 宿主机维护排空]
UC10[UC-10 备份与恢复]
UC11[UC-11 删除/回收VM]
UC12[UC-12 接管存量VM并补录元数据]
end
subgraph 网络["网络运维 (R4)"]
UC13[UC-13 网段/VLAN 管理]
UC14[UC-14 分配/回收静态IP]
UC15[UC-15 IP 冲突排查]
end
subgraph 治理["CMDB/产品/审计 (R7/R8/R11)"]
UC16[UC-16 CMDB 同步与对账]
UC17[UC-17 元数据完整率治理]
UC18[UC-18 审计查询与导出]
UC19[UC-19 报表与成本分析]
end
subgraph 值班["监控中心 (R6)"]
UC20[UC-20 状态总览与告警跳转]
UC21[UC-21 事件时间线排查]
end
subgraph 管理["平台管理员 (R1)"]
UC22[UC-22 用户/角色/权限配置]
UC23[UC-23 审批流配置]
UC24[UC-24 模板/规格族/镜像管理]
end
UC01 --> UC14
UC01 --> UC16
UC09 --> UC08
UC10 --> UC05
UC12 --> UC175.1 用例清单
| 用例 | 名称 | 主要角色 | 优先级 | 关联需求 |
|---|---|---|---|---|
| UC-01 | 一键创建虚拟机(模板向导) | R5/R9/R2 | P0 | FR-CRT-01~08, FR-NET-03, FR-META-01 |
| UC-02 | 批量创建虚拟机 | R5/R2 | P1 | FR-CRT-09 |
| UC-03 | 变更 VM 配置(CPU/内存/磁盘/网卡) | R5/R2 | P0 | FR-MOD-01~05 |
| UC-04 | 查看我的 VM / 我的服务 | R9/R10 | P0 | FR-VMS-01~03, FR-META-04 |
| UC-05 | 申请从备份恢复 | R5/R9 | P1 | FR-BKP-08~10 |
| UC-06 | 纳管 Harvester 集群 | R1/R2 | P0 | FR-CLU-01~03 |
| UC-07 | VM 全量检索与详情排查 | R2/R3/R5 | P0 | FR-VMS-01~06 |
| UC-08 | 热迁移单台 VM | R2/R3 | P0 | FR-MIG-01~04 |
| UC-09 | 宿主机维护排空(批量迁移) | R3/R2 | P1 | FR-MIG-06~09 |
| UC-10 | 备份与恢复管理 | R2 | P0 | FR-BKP-01~08 |
| UC-11 | 删除/回收 VM | R2/R5 | P0 | FR-MOD-06~09 |
| UC-12 | 接管存量 VM 并补录元数据 | R2/R7/R5 | P0 | FR-META-05~07, FR-CMDB-04 |
| UC-13 | 网段/VLAN 管理 | R4 | P0 | FR-NET-01~02 |
| UC-14 | 分配/回收静态 IP | R4/系统 | P0 | FR-NET-03~06 |
| UC-15 | IP 冲突排查 | R4 | P1 | FR-NET-07~08 |
| UC-16 | CMDB 同步与对账 | R7 | P0 | FR-CMDB-01~05 |
| UC-17 | 元数据完整率治理 | R7/R8 | P1 | FR-META-08, FR-RPT-03 |
| UC-18 | 审计查询与导出 | R11 | P0 | FR-AUD-01~04 |
| UC-19 | 报表与成本分析 | R8/R10 | P1 | FR-RPT-01~05 |
| UC-20 | 状态总览与告警跳转 | R6 | P1 | FR-MON-01~04 |
| UC-21 | 事件时间线排查 | R2/R6 | P1 | FR-VMS-05, FR-MON-05 |
| UC-22 | 用户/角色/权限配置 | R1 | P0 | FR-AUTH-01~05 |
| UC-23 | 审批流配置与审批处理 | R1/R10 | P1 | FR-AUTH-07~09 |
| UC-24 | 模板/规格族/镜像管理 | R1/R5 | P0 | FR-SYS-01~05, FR-CRT-02 |
5.2 核心用例详述(示例 3 个,其余在需求条目中体现)
UC-01 一键创建虚拟机
| 项 | 内容 |
|---|---|
| 主角色 | R5 应用运维 / R9 研发负责人 |
| 前置条件 | 已登录;有所属服务的创建权限与配额;集群在线;已选择模板或规格族 |
| 主流程 | 1) 选择集群/命名空间 → 2) 选择模板(或规格族 + 镜像)→ 3) 填写名称/负责人工号/服务名/环境 → 4) 选择网络(VLAN)与 IP 方式(自动分配静态 IP / 手工指定 / DHCP)→ 5) 配置 cloud-init(SSH Key、初始化脚本)→ 6) 系统预检(命名唯一性、配额、IP 可用性、镜像就绪、VLAN 存在、存储容量、可备份性)→ 7) 提交(需审批则进入审批)→ 8) 平台生成 VM CR 并下发 → 9) 实时展示进度(CR 创建 → PVC/DataVolume 就绪 → VMI 调度 → Running → cloud-init 完成 → IP 上报)→ 10) 成功后回写元数据到 CR、推送 CMDB、发送通知 |
| 异常流程 | E1 预检失败:给出具体失败项与修复建议,不下发;E2 下发失败:记录错误、不产生残留(或自动清理);E3 创建后 30 分钟未 Running:标记异常、告警、提供「一键清理/重试」;E4 IP 未在预期时间内上报:标记「IP 待确认」并触发人工核对任务;E5 审批被拒:终止并通知 |
| 后置条件 | VM 存在且运行;元数据完整;CMDB 有记录;审计有记录;IP 台账已占用 |
| 验收要点 | 全程 ≤ 5 分钟人工操作;进度可视;失败可回滚且不残留资源 |
UC-09 宿主机维护排空
| 项 | 内容 |
|---|---|
| 主角色 | R3 服务器运维(发起)、R2 K8s 运维(执行/复核) |
| 前置条件 | 节点存在且健康;已获维护窗口审批;节点上 VM 清单已确认 |
| 主流程 | 1) 选择节点 → 2) 平台列出该节点全部 VM 及可迁移性评估(可迁移/不可迁移/需停机迁移)→ 3) 设置并发数、迁移窗口、失败策略(继续/暂停)→ 4) cordon 节点(禁止新调度)→ 5) 按序批量热迁移并跟踪进度 → 6) 对不可迁移 VM 走「停机迁移」或「例外清单」→ 7) 全部完成后校验节点无 VMI → 8) 生成排空报告(耗时、成功率、例外项)→ 9) 维护结束 uncordon |
| 异常流程 | 迁移失败:自动重试 1 次 → 仍失败则暂停并告警,人工介入;节点失联:暂停计划并通知 |
| 验收要点 | 支持暂停/继续/取消;报告可导出;对同一 VM 不重复发起迁移 |
UC-15 IP 冲突排查
| 项 | 内容 |
|---|---|
| 主角色 | R4 网络运维 |
| 主流程 | 1) 平台周期比对「IPAM 期望 IP」与「集群上报 IP / 探测结果」→ 2) 发现同网段同 IP 被多台 VM 使用或未登记 IP 在用 → 3) 生成冲突工单(含涉事 VM、负责人工号、服务名、首次发现时间)→ 4) 通知负责人与网络运维 → 5) 处置(改 IP / 补登记 / 关机)→ 6) 关闭工单并留痕 |
| 验收要点 | 冲突发现到告警 ≤ 5 分钟;工单可追溯;处置动作有审计 |
6. 功能需求 · 集群与资源纳管(FR-CLU)
| ID | 需求名称 | 描述 | 优先级 | 角色 | 验收标准 | 依赖 |
|---|---|---|---|---|---|---|
| FR-CLU-01 | 集群注册 | 支持通过 kubeconfig 或 ServiceAccount Token 注册 Harvester 集群,填写集群编码/名称/环境/描述;注册时校验连通性与权限 | P0 | R1/R2 | Given 有效凭据 When 提交 Then 5s 内返回「注册成功」并显示版本、节点数、VM 数;Given 无效凭据 Then 明确报错原因(网络/证书/权限) | — |
| FR-CLU-02 | 凭据安全管理 | 凭据加密存储(AES-GCM + KMS/Vault 托管密钥),页面永不回显明文;支持凭据轮换与到期提醒 | P0 | R1 | 数据库中无明文;导出/日志中无凭据;轮换后旧凭据失效 | FR-CLU-01 |
| FR-CLU-03 | 能力探测与版本兼容 | 自动探测集群版本与能力(快照、原生定时备份、CPU/内存热插拔、网卡热插拔、Managed DHCP、backup-target 状态),前端按能力位控制功能可用性 | P0 | 系统 | 探测结果准确;不支持的功能入口灰显并给出原因文案 | FR-CLU-01 |
| FR-CLU-04 | 集群健康检查 | 每 60s 检查 API 可达性、组件健康(kubevirt/longhorn/harvester 关键 Deployment 就绪)、证书有效期;异常告警 | P0 | R2/R6 | 集群失联 ≤ 2 分钟产生告警;健康状态在总览页可见 | FR-CLU-01 |
| FR-CLU-05 | 集群资源同步 | 增量 watch + 定时全量对账(默认 30 分钟)同步节点、VM、VMI、镜像、网络、StorageClass、SSH Key、备份记录 | P0 | 系统 | 状态延迟 ≤ 10s;断连自动重连;对账后差异率 = 0 | FR-CLU-01 |
| FR-CLU-06 | 节点/宿主机视图 | 展示节点名、角色、状态(可调度/维护/不可用)、CPU/内存/存储总量与已分配、VM 数量、磁盘列表与容量、网络(Cluster Network/VLAN) | P0 | R2/R3 | 数据与 kubectl describe node 一致;支持按集群/状态/水位筛选与排序 | FR-CLU-05 |
| FR-CLU-07 | 节点维护操作 | 支持 cordon/uncordon(禁止/允许调度)、打维护标签、查看维护历史;删除节点等危险操作不做,跳转原生流程 | P1 | R3/R2 | cordon 后新 VM 不调度到该节点;操作有审计 | FR-CLU-06 |
| FR-CLU-08 | 存储视图 | 展示 StorageClass 清单(含是否 Longhorn、是否支持扩容/备份)、容量水位、卷清单(PVC ↔ VM 关联) | P1 | R2/R3 | 能判断某 VM 是否「可备份」(卷为 Longhorn) | FR-CLU-05 |
| FR-CLU-09 | 镜像管理 | 展示 VirtualMachineImage 清单(名称、大小、来源 URL/上传、状态、进度、可见命名空间);支持标记「平台推荐镜像」「镜像 ↔ OS 类型/版本 ↔ 默认初始化脚本」绑定;支持上传镜像(P2) | P1 | R1/R2 | 创建 VM 时只能选到 Ready 的镜像;镜像与 OS 类型绑定后自动带出 cloud-init 模板 | FR-CLU-05 |
| FR-CLU-10 | 网络资源视图 | 展示 VM Network(NAD)清单:命名空间、类型(L2VlanNetwork/Untagged)、VLAN ID、所属 Cluster Network、MTU;只读(创建/修改 VLAN 由网络组在原生侧完成,P2 可提供代建) | P0 | R4/R2 | 与集群实际一致;创建 VM 时按命名空间过滤可选网络 | FR-CLU-05 |
7. 功能需求 · 虚拟机查询与详情(FR-VMS)
| ID | 需求名称 | 描述 | 优先级 | 角色 | 验收标准 | 依赖 |
|---|---|---|---|---|---|---|
| FR-VMS-01 | VM 列表 | 跨集群统一列表,字段:集群、命名空间、名称、状态、vCPU/内存、磁盘、主 IP、所属服务、研发负责人(工号+姓名)、部门负责人、环境、宿主机、备份状态、创建时间 | P0 | 全体 | 5000 台规模下首屏 ≤ 1.5s;状态延迟 ≤ 10s | FR-CLU-05 |
| FR-VMS-02 | 多维检索与筛选 | 支持按名称/IP/MAC/服务/负责人工号/部门/环境/集群/命名空间/状态/宿主机/镜像/标签/是否备份/是否有待生效变更 组合筛选;支持模糊搜索与保存常用筛选 | P0 | 全体 | 任意组合筛选结果正确;常用筛选可保存并共享 | FR-VMS-01 |
| FR-VMS-03 | 我的 VM / 我的服务视图 | 按登录人(工号)自动过滤「我负责的 VM」「我部门的 VM」「我服务的 VM」 | P0 | R5/R9/R10 | 研发登录后默认只看到自己相关数据(数据权限生效) | FR-AUTH-05 |
| FR-VMS-04 | VM 详情 | 分组展示:概览(状态/规格/IP/宿主机/归属)、磁盘、网卡、备份与快照、迁移记录、监控图表、事件、YAML、元数据、审计记录 | P0 | 全体 | 各分组数据与集群一致;页面加载 ≤ 2s | FR-VMS-01 |
| FR-VMS-05 | 状态时间线与事件 | 展示 VM 状态变更历史(含宿主机变化、IP 变化)与 K8s Event(Normal/Warning),支持按时间排序与关键字过滤 | P1 | R2/R6 | 能回答「这台机器昨天为什么重启/迁移」 | FR-CLU-05 |
| FR-VMS-06 | YAML 查看与受控编辑 | 查看完整 CR YAML;支持「高级编辑」(Diff 预览 + 风险提示 + 审计),仅对 R1/R2 开放 | P1 | R1/R2 | 编辑前展示 Diff;高危字段(如删除 PVC 相关)给出警示;操作入审计 | FR-AUD-01 |
| FR-VMS-07 | 控制台访问 | 提供 Web VNC / Serial 控制台入口(跳转 Harvester 原生或平台代理);会话可审计 | P1 | R2/R5 | 能打开控制台;无权限用户不可见入口 | PoC-15 |
| FR-VMS-08 | 批量操作 | 勾选多台执行:启动/停止/打标签/改元数据/发起备份/发起迁移(受权限与审批约束) | P1 | R2/R5 | 批量任务有进度与逐项结果;失败项可重试 | FR-OPS/FR-MIG |
| FR-VMS-09 | 导出 | 列表按当前筛选导出 CSV/Excel(含元数据字段) | P1 | R2/R7/R8 | 10 万行导出不阻塞页面(异步任务 + 下载中心) | — |
| FR-VMS-10 | 无主/僵尸 VM 识别 | 识别「无负责人工号」「长期关机(>30 天)」「无备份」「长期低负载(结合监控,P2)」的 VM 并生成治理清单 | P2 | R7/R8 | 清单可导出、可批量指派负责人 | FR-META |
| FR-VMS-11 | 收藏与备注 | 用户可收藏 VM、添加个人备注(不覆盖公共元数据) | P2 | 全体 | — | — |
8. 功能需求 · 一键创建虚拟机(FR-CRT)
| ID | 需求名称 | 描述 | 优先级 | 角色 | 验收标准 | 依赖 |
|---|---|---|---|---|---|---|
| FR-CRT-01 | 向导式创建 | 分步向导:① 基础(集群/命名空间/名称/描述/规格族/CPU/内存)② 镜像与磁盘 ③ 网络与 IP ④ 初始化(SSH Key/cloud-init/用户)⑤ 归属元数据(服务/负责人工号/部门负责人工号/环境/成本中心)⑥ 调度与高级 ⑦ 确认与提交 | P0 | R5/R9/R2 | 每步有校验与默认值;从进入向导到提交 ≤ 5 分钟;支持「保存草稿」 | FR-SYS-01~03 |
| FR-CRT-02 | 模板一键创建 | 选择模板后自动带出规格/镜像/网络/初始化脚本/备份策略/调度约束,用户只需填「名称 + 归属 + IP」即可提交 | P0 | R5/R9 | 模板创建成功率 ≥ 99%;模板变更不影响历史 VM 记录 | FR-SYS-03 |
| FR-CRT-03 | 规格族(flavor) | 预置规格族(如 general-2c4g、general-4c8g、compute-8c16g、db-16c64g),允许自定义 CPU/内存(受配额与上限约束) | P0 | R1/R5 | 非标准规格需填写理由并可配置为「需审批」 | FR-SYS-02 |
| FR-CRT-04 | 命名规范校验 | 强制 VM 名符合 DNS-1123(小写字母数字与 -,≤63 字符)与命名规则 {env}-{service}-{role}-{nn};同集群+命名空间内唯一;重名给出建议名 | P0 | 系统 | 非法名实时拦截并提示规则;重名可一键采用建议名 | D8 决策 |
| FR-CRT-05 | 创建前置预检 | 提交前自动校验并输出报告(全部通过才允许下发):① 命名唯一性/合法性 ② 配额(vCPU/内存/存储/台数)③ 镜像状态 Ready ④ 目标命名空间存在且有权 ⑤ 所选 VM Network(VLAN)存在 ⑥ 存储类可用与剩余容量充足 ⑦ IP 可用(自动分配/手工指定不冲突,且在网段允许范围内)⑧ MAC 未冲突 ⑨ 元数据必填完整(服务、负责人工号、部门负责人工号)且工号有效在职 ⑩ 调度可行(存在满足 nodeSelector/亲和性且有资源的节点)⑪ backup-target 已配置(否则提示「本次创建不可备份」)⑫ 高危选项提示(PCI 直通/CPU 绑核将导致不可热迁移) | P0 | 系统 | 预检报告逐项给出「通过/失败/警告 + 原因 + 修复建议」;失败项阻断提交;警告项需勾选确认 | FR-CLU/FR-NET/FR-META |
| FR-CRT-06 | 创建执行与进度 | 生成 VirtualMachine CR 并下发;实时展示阶段:已提交 → 卷创建/镜像导入中 → 已调度(节点) → 启动中 → Running → cloud-init 完成 → IP 已确认 → CMDB 已同步;每阶段可展开查看原始事件与错误 | P0 | R5/R2 | 进度刷新 ≤ 5s;失败阶段可定位原因;支持「重试/取消并清理」 | FR-CLU-05 |
| FR-CRT-07 | 失败回滚 | 创建失败或超时(默认 30 分钟未 Running)时,提供一键回滚:删除 VM CR、释放 IP、释放 MAC、回收配额、标记任务失败并通知 | P0 | 系统 | 回滚后无残留资源(VM/PVC/IP 占用);回滚动作入审计 | FR-CRT-06 |
| FR-CRT-08 | 创建结果回执 | 成功后输出「交付单」:VM 名、IP、SSH 登录方式、初始账号、规格、所属服务、负责人、备份策略、控制台入口;可一键复制/发送 | P0 | R5/R9 | 交付单信息准确;可发送邮件/IM | FR-NTF-01 |
| FR-CRT-09 | 批量创建 | 支持按数量(如 3 台)或上传 CSV 批量创建;名称自动编号;逐台独立任务与结果;支持失败继续/失败终止策略 | P1 | R5/R2 | 20 台批量创建任务全部可追踪;单台失败不影响其他台(策略可选) | FR-CRT-01~07 |
| FR-CRT-10 | 克隆创建 | 基于现有 VM 克隆(复制规格/磁盘内容/网络/元数据,重置 hostname、SSH host key、IP、machine-id) | P1 | R2/R5 | 克隆出的 VM 可正常启动且不与源机 IP/DHCP 标识冲突(Ubuntu netplan 需 dhcp-identifier: mac) | FR-CRT-05 |
| FR-CRT-11 | cloud-init 与初始化脚本 | 支持:hostname、时区、NTP、DNS、用户与密码/公钥、SSH Key 选择、runcmd/write_files 脚本(来自标准脚本库,支持变量替换);默认强制安装 qemu-guest-agent | P0 | R5/R1 | 首启后 hostname/用户/SSH/agent 均生效;脚本执行结果可在详情页查看(P2) | FR-SYS-04 |
| FR-CRT-12 | Windows VM 支持 | 提供 Windows 模板(含 VirtIO 驱动盘、按需 TPM、ISO 安装引导、cloudbase-init 支持) | P1 | R5 | Windows VM 可创建并正常启动;静态 IP 方案明确(PoC-08 结论) | PoC-08 |
| FR-CRT-13 | 调度与亲和性 | 支持指定节点(nodeSelector)、机架/区域标签、反亲和(同服务 VM 分散到不同宿主机)、容忍污点 | P1 | R2 | 指定节点后 VM 落在该节点;同时提示「绑定节点将导致不可热迁移」 | FR-MIG-02 |
| FR-CRT-14 | 超卖与预留 | 支持按 overcommit-config 展示实际可用容量;可选「内存预留」参数 | P2 | R2 | 超卖比例展示准确 | — |
| FR-CRT-15 | 创建即备份 | 创建成功后自动纳入指定备份策略(默认按环境:prod 每日、test 每周) | P1 | 系统 | 新建生产 VM 24 小时内产生首个备份 | FR-BKP-04 |