> For the complete documentation index, see [llms.txt](https://docs.verge.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.verge.io/learn-the-platform/zh/mo-kuai-10-chang-jing-shi-yan/lab-hci-compute.md).

# 实验：HCI + 计算部署

## 目标

使用 Terraform playground 在 HCI + 专用计算配置中部署 VergeOS。你将配置一个双集群拓扑——一个 HCI 基础集群（控制器 + 存储）和一个专用的仅计算集群——然后配置跨集群的工作负载放置，验证独立的计算扩展，并将其运维模型与纯 HCI 部署进行比较。

## 前置条件

* 已完成所有前置模块（1–9）
* 已完成 HCI 部署实验和 UCI 部署实验
* 可访问 vergeos-terraform-playground 仓库（已在本地克隆）
* 已安装并配置 Terraform CLI
* 支持嵌套部署的 VergeOS 环境或实验室
* 熟悉 Terraform 基础知识（init、plan、apply）

## 难度

**中级** — 需要了解 VergeOS 集群架构、多集群网络以及基本的 Terraform 使用

## 预计时间

**1.5 小时**

***

## 背景：HCI + 专用计算架构

在开始实验前，请先查看定义 HCI + 专用计算的双集群模型：

```mermaid
graph TB
    子图“集群 1：HCI（控制器 + 存储 ± 计算）”
        N1["节点 1<br/>控制器 + 存储<br/>Tier 0 + Tier 1"]
        N2["节点 2<br/>控制器 + 存储<br/>Tier 0 + Tier 1"]
        N3["节点 3（可选）<br/>HCI 节点<br/>存储 + 计算*"]
        N4["节点 4（可选）<br/>HCI 节点<br/>存储 + 计算*"]
    end
    子图“集群 2：仅计算”
        N5["节点 5<br/>仅计算"]
        N6["节点 6<br/>仅计算"]
        N7["节点 7<br/>仅计算"]
        N8["节点 8+<br/>仅计算（扩展）"]
    end
    CoreNet["核心网络<br/>25–100 GbE"]
    N1 --- CoreNet
    N2 --- CoreNet
    N3 --- CoreNet
    N4 --- CoreNet
    N5 --- CoreNet
    N6 --- CoreNet
    N7 --- CoreNet
    N8 --- CoreNet
```

**关键原则：**

* **集群 1（HCI）** 始终包含带有控制器和 Tier 0 存储的节点 1 和 2。可选的节点 3–4 会增加存储和（可选的）计算容量。
* **集群 2（仅计算）** 包含完全专用于运行工作负载的节点——没有存储开销，为虚拟机提供最大资源。
* 该 **计算开关** 在 HCI 集群上控制 HCI 节点是否也可以在承担存储/控制功能的同时运行工作负载。
* 所有计算节点的存储 I/O 都会通过核心网络传输到 HCI 集群，因此集群间带宽至关重要。

***

## 步骤

### 第 1 部分：查看 HCI + 计算拓扑

在部署之前，先了解该配置。

1. 在 terraform playground 仓库中，导航到 `examples/` 目录并找到 HCI + Compute `.tfvars` 文件（查找引用“hci-compute”或“hybrid”拓扑的文件）
2. 检查变量并识别：
   * 定义了多少个集群及其角色（HCI 还是仅计算）
   * 每个集群的节点数量和分配情况
   * 该 **计算开关** HCI 集群上的设置——它是启用还是禁用？
   * 存储层配置（控制器节点上的元数据使用 Tier 0，工作负载数据使用 Tier 1）
   * 用于集群间通信的网络配置
3. 将此 `.tfvars` 文件与上一个实验中的纯 HCI 配置进行比较。注意结构差异：
   * 为仅计算节点新增的集群定义
   * 存储层分配——仅计算节点没有存储层
   * 集群之间的网络带宽要求
4. 查看部署场景文档（`docs/deployment-scenarios.md`）中的 HCI + Compute 部分

### 第 2 部分：部署 HCI + Compute 拓扑

配置双集群环境。

1. 运行 `terraform init` 以初始化提供程序（如果尚未完成）
2. 运行 `terraform plan -var-file=<hci-compute>.tfvars` 并仔细检查计划中的资源：
   * 确认将创建两个独立的集群
   * 确认节点分配与预期拓扑一致
   * 检查存储层是否仅分配给 HCI 集群节点
   * 验证网络接口已配置用于集群间通信
3. 运行 `terraform apply -var-file=<hci-compute>.tfvars` 以部署
4. 登录 VergeOS UI 并验证部署：
   * **集群：** 两个集群都已出现——一个标记为 HCI，一个标记为 Compute
   * **节点：** 每个节点都分配到了正确的集群
   * **存储：** vSAN 存储池仅存在于 HCI 集群；仅计算节点不显示存储
   * **网络：** 核心底层网络连接了两个集群；集群间连接已建立
   * **控制器：** 控制器虚拟机正在 HCI 集群的节点 1 和节点 2 上运行

### 第 3 部分：配置工作负载放置

练习在双集群拓扑中放置工作负载。

1. **在仅计算集群上创建一个虚拟机：**
   * 在 VergeOS UI 中创建一个新虚拟机，并选择仅计算集群进行放置
   * 分配 CPU 和内存资源
   * 附加一个虚拟磁盘——请注意，即使虚拟机运行在仅计算节点上，存储仍由 HCI 集群的 vSAN 提供
   * 启动虚拟机并验证其成功引导
2. **在 HCI 集群上创建一个虚拟机** （如果已启用 Compute）：
   * 再创建一个虚拟机，这一次将其放置在 HCI 集群上
   * 比较两个集群之间的资源可用性
   * 注意差异：HCI 节点在存储/控制和计算之间共享资源，而仅计算节点将所有资源都用于工作负载
3. **将虚拟机迁移到不同集群：**
   * 选择一个正在仅计算集群上运行的虚拟机并将其关机（虚拟机运行时无法更改集群分配）
   * 编辑虚拟机并更改 **集群** 字段为 HCI 集群，然后重新启动虚拟机
   * 如有需要，可反向重复此操作（HCI → 仅计算）
   * 记录限制：跨集群迁移要求虚拟机先停止，并且是 **不** 保持状态的——虚拟机关机后会在目标集群上重新启动
   * 将这与 UI 中的 **迁移** 操作进行对比，该操作仅限于集群内部（它选择一个目标 **节点** 在虚拟机当前集群内）并且可以在不停机的情况下实时执行
4. **监控集群间 I/O：**
   * 打开 VergeOS 仪表板并进入网络监控
   * 观察从仅计算节点流向 HCI 集群的存储 I/O 流量
   * 注意核心网络上的带宽利用率——这就是为什么集群间带宽规划至关重要

### 第 4 部分：验证独立计算扩展

展示 HCI + Compute 模型的扩展优势。

1. **查看仅计算集群容量：**
   * 在 VergeOS UI 中查看仅计算集群可用的 CPU 和内存总量
   * 将其与 HCI 集群可用的计算资源进行比较（扣除存储/控制开销后）
   * 记录实际可用计算容量的差异
2. **模拟横向扩展场景：**
   * 查看 `.tfvars` 文件并识别如何添加额外的仅计算节点
   * 修改仅计算集群的节点数量（例如，再添加 1–2 个节点）
   * 运行 `terraform plan` 以预览更改——请注意，只会添加计算节点；存储不受影响
   * 应用更改并验证新节点已加入仅计算集群
   * 确认 HCI 集群完全没有变化——没有重新平衡，没有存储中断
3. **比较扩展模型：**

   | 扩展操作   | 纯 HCI               | HCI + 计算        |
   | ------ | ------------------- | --------------- |
   | 增加计算容量 | 必须添加完整的 HCI 节点（带存储） | 添加轻量级仅计算节点      |
   | 增加存储容量 | 添加 HCI 节点或扩展现有磁盘    | 仅向 HCI 集群添加节点   |
   | 独立扩展   | ❌ 计算与存储耦合           | ✅ 计算可独立扩展       |
   | 硬件灵活性  | 所有节点都需要存储级硬件        | 计算节点针对工作负载进行了优化 |
   | 运维复杂度  | 简单——单集群             | 中等——两个集群，集群间网络  |

### 第 5 部分：探索 Compute 开关

了解 HCI 集群的 Compute 设置所带来的影响。

1. **检查当前 Compute 开关状态：**
   * 在 VergeOS UI 中进入 HCI 集群设置
   * 确认 Compute 开关当前是启用还是禁用
   * 如果已启用，请注意哪些工作负载（如果有）正在 HCI 节点上运行
2. **了解两种模式：**

   | 设置              | 行为                      | 最适合                   |
   | --------------- | ----------------------- | --------------------- |
   | **已启用 Compute** | HCI 节点在执行存储/控制的同时运行工作负载 | 适用于优先最大化利用率的小型部署      |
   | **已禁用 Compute** | HCI 集群仅专用于存储和控制         | 适用于优先进行存储/计算隔离的性能敏感环境 |
3. **记录你的建议：**
   * 基于当前部署规模，你会推荐哪个 Compute 开关设置？
   * 哪些因素会促使你更改该设置？
   * 注意：更改 Compute 开关可能需要对 HCI 集群中的节点进行滚动重启——在生产环境中进行此更改之前，请与 VergeOS 支持团队评估影响

### 第 6 部分：设计决策练习

将你所学应用到一个真实场景中。

1. **场景：** 某客户目前运行着一个 4 节点的 VergeOS HCI 集群。他们需要为开发环境新增 50 台虚拟机，但不需要额外存储。当前存储利用率仅为 40%，但 CPU 已达到 75%。
2. **评估以下选项：**
   * **选项 A：** 再添加 2 个 HCI 节点（6 节点 HCI 集群）
   * **选项 B：** 添加一个 2 节点仅计算集群（4 节点 HCI + 2 节点计算）
   * **选项 C：** 迁移到完整 UCI 架构
3. **针对每个选项，记录：**
   * 硬件成本影响
   * 运维复杂度变化
   * 网络要求
   * 未来扩展路径
   * 你的建议及其理由
4. **加分项：** 找出与选项 B 最接近的 terraform playground 示例，并列出 `.tfvars` 需要进行的修改以满足客户需求

***

## 清理

实验结束后：

1. 删除实验期间创建的所有测试虚拟机
2. 运行 `terraform destroy` 以拆除整个 HCI + Compute 部署
3. 在 VergeOS UI 中验证所有资源均已清理完毕

***

## 验证

当你能够回答以下内容时，你的 HCI + Compute 部署实验就完成了 **是** 时，你的 VMware 迁移实验就完成了：

* [ ] 已通过 Terraform 成功部署双集群 HCI + Compute 拓扑
* [ ] 已在 VergeOS UI 中验证集群角色（HCI 与仅计算）、存储分配和网络
* [ ] 已在仅计算集群上创建虚拟机，并确认存储由 HCI 集群提供
* [ ] 已在核心网络上监控集群间存储 I/O 流量
* [ ] 已成功独立扩展仅计算集群（添加节点而不影响存储）
* [ ] 已记录 Compute 开关行为以及你对该部署的建议
* [ ] 已完成比较 HCI、HCI+Compute 和 UCI 选项的设计决策练习
* [ ] 使用以下命令清理所有实验资源： `terraform destroy`


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.verge.io/learn-the-platform/zh/mo-kuai-10-chang-jing-shi-yan/lab-hci-compute.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
