> 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/vi/module-10-thuc-hanh-tinh-huong/lab-hci-compute.md).

# Lab: Triển khai HCI + Compute

## Mục tiêu

Triển khai VergeOS trong cấu hình HCI + Dedicated Compute bằng cách sử dụng playground Terraform. Bạn sẽ cung cấp một topology hai cụm — một cụm nền tảng HCI (bộ điều khiển + lưu trữ) và một cụm chỉ dành cho compute — sau đó cấu hình vị trí đặt workload giữa các cụm, xác thực khả năng mở rộng compute độc lập, và so sánh mô hình vận hành với các triển khai HCI thuần túy.

## Yêu cầu tiên quyết

* Đã hoàn thành tất cả các mô-đun trước đó (1–9)
* Đã hoàn thành bài lab Triển khai HCI và bài lab Triển khai UCI
* Quyền truy cập vào kho lưu trữ vergeos-terraform-playground (đã clone cục bộ)
* Đã cài đặt và cấu hình Terraform CLI
* Một môi trường VergeOS hoặc phòng lab hỗ trợ triển khai lồng nhau
* Nắm vững kiến thức cơ bản về Terraform (init, plan, apply)

## Độ khó

**Trung cấp** — Yêu cầu hiểu kiến trúc cụm VergeOS, mạng đa cụm và cách sử dụng Terraform cơ bản

## Thời gian ước tính

**1,5 giờ**

***

## Bối cảnh: Kiến trúc HCI + Dedicated Compute

Trước khi bắt đầu bài lab, hãy xem lại mô hình hai cụm xác định HCI + Dedicated Compute:

```mermaid
graph TB
    subgraph "Cụm 1: HCI (Bộ điều khiển + Lưu trữ ± Compute)"
        N1["Nút 1<br/>Bộ điều khiển + Lưu trữ<br/>Tầng 0 + Tầng 1"]
        N2["Nút 2<br/>Bộ điều khiển + Lưu trữ<br/>Tầng 0 + Tầng 1"]
        N3["Nút 3 (tùy chọn)<br/>Nút HCI<br/>Lưu trữ + Compute*"]
        N4["Nút 4 (tùy chọn)<br/>Nút HCI<br/>Lưu trữ + Compute*"]
    end
    subgraph "Cụm 2: Chỉ Compute"
        N5["Nút 5<br/>Chỉ Compute"]
        N6["Nút 6<br/>Chỉ Compute"]
        N7["Nút 7<br/>Chỉ Compute"]
        N8["Nút 8+<br/>Chỉ Compute (mở rộng)"]
    end
    CoreNet["Mạng lõi<br/>25–100 GbE"]
    N1 --- CoreNet
    N2 --- CoreNet
    N3 --- CoreNet
    N4 --- CoreNet
    N5 --- CoreNet
    N6 --- CoreNet
    N7 --- CoreNet
    N8 --- CoreNet
```

**Nguyên tắc chính:**

* **Cụm 1 (HCI)** luôn bao gồm Nút 1 & 2 với bộ điều khiển và lưu trữ Tầng 0. Các Nút 3–4 tùy chọn bổ sung dung lượng lưu trữ và (tùy chọn) compute.
* **Cụm 2 (Chỉ Compute)** chứa các nút hoàn toàn dành cho chạy workload — không có chi phí lưu trữ, tối đa tài nguyên cho VM.
* Tính năng **Công tắc Compute** trên cụm HCI kiểm soát việc các nút HCI có thể đồng thời chạy workload bên cạnh các chức năng lưu trữ/điều khiển hay không.
* Tất cả I/O lưu trữ của nút compute đi qua mạng lõi đến cụm HCI, khiến băng thông giữa các cụm trở nên rất quan trọng.

***

## Các bước

### Phần 1: Xem lại Topology HCI + Compute

Hiểu cấu hình trước khi triển khai.

1. Trong kho chứa terraform playground, hãy điều hướng đến `examples/` thư mục và xác định HCI + Compute `.tfvars` tệp (tìm các tệp tham chiếu đến các topology "hci-compute" hoặc "hybrid")
2. Kiểm tra các biến và xác định:
   * Có bao nhiêu cụm được định nghĩa và vai trò của chúng (HCI so với chỉ compute)
   * Số lượng nút và phân bổ theo từng cụm
   * Tính năng **Công tắc Compute** cài đặt trên cụm HCI — đang bật hay tắt?
   * Cấu hình tầng lưu trữ (Tầng 0 cho siêu dữ liệu trên các nút bộ điều khiển, Tầng 1 cho dữ liệu workload)
   * Cấu hình mạng cho giao tiếp giữa các cụm
3. Hãy so sánh `.tfvars` với các cấu hình HCI thuần túy từ bài lab trước. Hãy chú ý các khác biệt về cấu trúc:
   * Định nghĩa cụm bổ sung cho các nút chỉ compute
   * Phân bổ tầng lưu trữ — các nút chỉ compute không có tầng lưu trữ
   * Yêu cầu băng thông mạng giữa các cụm
4. Xem tài liệu kịch bản triển khai (`docs/deployment-scenarios.md`) cho phần HCI + Compute

### Phần 2: Triển khai Topology HCI + Compute

Cung cấp môi trường hai cụm.

1. Chạy `terraform init` để khởi tạo provider (nếu chưa làm)
2. Chạy `terraform plan -var-file=<hci-compute>.tfvars` và xem xét cẩn thận các tài nguyên dự kiến:
   * Xác nhận sẽ tạo hai cụm riêng biệt
   * Xác nhận phân bổ nút khớp với topology mong đợi
   * Kiểm tra rằng các tầng lưu trữ chỉ được gán cho các nút của cụm HCI
   * Xác thực các giao diện mạng được cấu hình cho giao tiếp giữa các cụm
3. Chạy `terraform apply -var-file=<hci-compute>.tfvars` để triển khai
4. Đăng nhập vào giao diện VergeOS và xác minh việc triển khai:
   * **Cụm:** Cả hai cụm đều xuất hiện — một cụm được gắn nhãn HCI, một cụm được gắn nhãn Compute
   * **Nút:** Mỗi nút được gán vào đúng cụm của nó
   * **Lưu trữ:** Các pool lưu trữ vSAN chỉ tồn tại trên cụm HCI; các nút chỉ compute không hiển thị lưu trữ
   * **Mạng:** Mạng fabric lõi kết nối cả hai cụm; kết nối giữa các cụm đã được thiết lập
   * **Bộ điều khiển:** Các VM bộ điều khiển đang chạy trên Nút 1 và 2 trong cụm HCI

### Phần 3: Cấu hình Vị trí Đặt Workload

Thực hành đặt workload trên topology hai cụm.

1. **Tạo một VM trên cụm chỉ compute:**
   * Trong giao diện VergeOS, tạo một VM mới và chọn cụm chỉ compute làm nơi đặt
   * Gán tài nguyên CPU và bộ nhớ
   * Đính kèm một đĩa ảo — lưu ý rằng lưu trữ được cung cấp từ vSAN của cụm HCI ngay cả khi VM chạy trên nút chỉ compute
   * Khởi động VM và xác minh nó boot thành công
2. **Tạo một VM trên cụm HCI** (nếu Compute được bật):
   * Tạo một VM thứ hai, lần này đặt nó trên cụm HCI
   * So sánh khả năng sẵn có của tài nguyên giữa hai cụm
   * Lưu ý sự khác biệt: các nút HCI chia sẻ tài nguyên giữa lưu trữ/điều khiển và compute, trong khi các nút chỉ compute dành toàn bộ tài nguyên cho workload
3. **Di chuyển một VM sang cụm khác:**
   * Chọn một VM đang chạy trên cụm chỉ compute và tắt nó (không thể thay đổi phân bổ cụm khi VM đang chạy)
   * Chỉnh sửa VM và thay đổi **Cụm** trường thành cụm HCI, rồi bật VM lại
   * Lặp lại theo hướng ngược lại (HCI → chỉ compute) nếu muốn
   * Ghi lại các ràng buộc: việc chuyển VM giữa các cụm yêu cầu VM phải dừng và là **không** giữ nguyên trạng thái — VM được tắt và khởi động lại trên cụm đích
   * Hãy so sánh điều này với thao tác trong giao diện **Di chuyển** hành động, vốn chỉ trong nội bộ cụm (nó chọn một đích **nút** trong cụm hiện tại của VM) và có thể thực hiện trực tiếp mà không cần dừng VM
4. **Giám sát I/O giữa các cụm:**
   * Mở bảng điều khiển VergeOS và đi tới giám sát mạng
   * Quan sát lưu lượng I/O lưu trữ chảy từ các nút chỉ compute đến cụm HCI
   * Lưu ý mức sử dụng băng thông trên mạng lõi — đó là lý do việc lập kế hoạch băng thông giữa các cụm rất quan trọng

### Phần 4: Xác thực Khả năng Mở rộng Compute Độc lập

Chứng minh lợi thế mở rộng của mô hình HCI + Compute.

1. **Xem xét dung lượng của cụm chỉ compute:**
   * Trong giao diện VergeOS, kiểm tra tổng CPU và bộ nhớ khả dụng trên cụm chỉ compute
   * So sánh với tài nguyên compute khả dụng của cụm HCI (sau phần chi phí lưu trữ/điều khiển)
   * Ghi lại sự khác biệt về dung lượng compute thực tế
2. **Mô phỏng một kịch bản mở rộng ngang:**
   * Xem xét `.tfvars` tệp và xác định cách thêm các nút chỉ compute bổ sung
   * Sửa số lượng nút cho cụm chỉ compute (ví dụ, thêm 1–2 nút nữa)
   * Chạy `terraform plan` để xem trước thay đổi — lưu ý rằng chỉ các nút compute được thêm vào; lưu trữ không bị ảnh hưởng
   * Áp dụng thay đổi và xác minh các nút mới tham gia vào cụm chỉ compute
   * Xác nhận rằng cụm HCI hoàn toàn không thay đổi — không cân bằng lại, không gián đoạn lưu trữ
3. **So sánh các mô hình mở rộng:**

   | Hành động mở rộng        | HCI thuần túy                                 | HCI + Tính toán                          |
   | ------------------------ | --------------------------------------------- | ---------------------------------------- |
   | Thêm năng lực compute    | Phải thêm nút HCI đầy đủ (có lưu trữ)         | Thêm nút chỉ compute nhẹ                 |
   | Thêm năng lực lưu trữ    | Thêm nút HCI hoặc mở rộng các đĩa hiện có     | Chỉ thêm nút vào cụm HCI                 |
   | Mở rộng độc lập          | ❌ Compute và lưu trữ bị ràng buộc             | ✅ Compute mở rộng độc lập                |
   | Tính linh hoạt phần cứng | Tất cả các nút đều cần phần cứng loại lưu trữ | Các nút compute được tối ưu cho workload |
   | Độ phức tạp vận hành     | Đơn giản — một cụm duy nhất                   | Trung bình — hai cụm, mạng giữa các cụm  |

### Phần 5: Khám phá Công tắc Compute

Hiểu tác động của cài đặt Compute của cụm HCI.

1. **Kiểm tra trạng thái hiện tại của công tắc Compute:**
   * Trong giao diện VergeOS, đi tới cài đặt cụm HCI
   * Xác định công tắc Compute hiện đang bật hay tắt
   * Nếu bật, ghi nhận những workload nào (nếu có) đang chạy trên các nút HCI
2. **Hiểu hai chế độ:**

   | Cài đặt              | Hành vi                                               | Phù hợp nhất cho                                                            |
   | -------------------- | ----------------------------------------------------- | --------------------------------------------------------------------------- |
   | **Compute được bật** | Các nút HCI chạy workload cùng với lưu trữ/điều khiển | Các triển khai nhỏ hơn, nơi ưu tiên tối đa hóa mức sử dụng                  |
   | **Compute bị tắt**   | Cụm HCI chỉ dành riêng cho lưu trữ và điều khiển      | Các môi trường nhạy cảm về hiệu năng, nơi ưu tiên tách biệt lưu trữ/compute |
3. **Ghi lại khuyến nghị của bạn:**
   * Dựa trên quy mô triển khai hiện tại, bạn sẽ khuyến nghị cài đặt Compute nào?
   * Những yếu tố nào sẽ khiến bạn thay đổi cài đặt?
   * Lưu ý: Thay đổi công tắc Compute có thể yêu cầu khởi động lại luân phiên các nút trong cụm HCI — hãy xem xét tác động với bộ phận hỗ trợ VergeOS trước khi thực hiện thay đổi này trong môi trường sản xuất

### Phần 6: Bài tập Quyết định Thiết kế

Áp dụng những gì bạn đã học vào một kịch bản thực tế.

1. **Tình huống:** Một khách hàng hiện đang vận hành cụm VergeOS HCI 4 nút. Họ cần thêm 50 VM mới cho môi trường phát triển nhưng không cần thêm lưu trữ. Mức sử dụng lưu trữ hiện tại chỉ 40%, nhưng CPU ở mức 75%.
2. **Đánh giá các lựa chọn:**
   * **Phương án A:** Thêm 2 nút HCI nữa (cụm HCI 6 nút)
   * **Phương án B:** Thêm một cụm chỉ compute 2 nút (HCI 4 nút + compute 2 nút)
   * **Phương án C:** Chuyển sang kiến trúc UCI đầy đủ
3. **Với mỗi phương án, ghi lại:**
   * Tác động đến chi phí phần cứng
   * Thay đổi độ phức tạp vận hành
   * Yêu cầu mạng
   * Lộ trình mở rộng trong tương lai
   * Khuyến nghị của bạn kèm giải thích
4. **Phần thưởng:** Xác định ví dụ nào trong terraform playground gần khớp nhất với Phương án B, và liệt kê các `.tfvars` thay đổi cần thiết để phù hợp với yêu cầu của khách hàng

***

## Dọn dẹp

Khi hoàn thành bài lab:

1. Xóa tất cả các VM thử nghiệm được tạo trong bài lab
2. Chạy `terraform destroy` để dỡ bỏ toàn bộ triển khai HCI + Compute
3. Xác minh tất cả tài nguyên đã được dọn sạch trong giao diện VergeOS

***

## Xác minh

Bài lab triển khai HCI + Compute của bạn hoàn tất khi bạn có thể trả lời **có** cho tất cả các mục sau:

* [ ] Đã triển khai thành công topology HCI + Compute hai cụm thông qua Terraform
* [ ] Đã xác minh vai trò của cụm (HCI so với chỉ compute), phân bổ lưu trữ và mạng trong giao diện VergeOS
* [ ] Đã tạo VM trên cụm chỉ compute và xác nhận lưu trữ được phục vụ từ cụm HCI
* [ ] Đã giám sát lưu lượng I/O lưu trữ giữa các cụm trên mạng lõi
* [ ] Đã mở rộng thành công cụm chỉ compute một cách độc lập (thêm nút mà không ảnh hưởng đến lưu trữ)
* [ ] Đã ghi lại hành vi của công tắc Compute và khuyến nghị của bạn cho triển khai
* [ ] Đã hoàn thành bài tập ra quyết định thiết kế so sánh các lựa chọn HCI, HCI+Compute và UCI
* [ ] Đã dọn dẹp tất cả tài nguyên lab bằng `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/vi/module-10-thuc-hanh-tinh-huong/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.
