> 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/mo-dun-7-da-thue-bao/04-resource-allocation.md).

# Phân bổ tài nguyên & Mở rộng quy mô

## Nút tenant: Máy chủ ảo cho Trung tâm dữ liệu ảo

Mỗi tenant VergeOS chạy trên một hoặc nhiều **nút tenant** — các máy chủ ảo mô phỏng các host VergeOS vật lý. Mỗi nút tenant cung cấp tài nguyên xử lý riêng (số lõi CPU), bộ nhớ (RAM) và mạng cho khối lượng công việc của tenant, đồng thời duy trì cách ly hoàn toàn thông qua mạng đóng gói của tenant.

Hiểu cách các nút tenant hoạt động là chìa khóa để phân bổ đúng quy mô cho các triển khai tenant và mở rộng chúng theo thời gian.

### Đặc điểm của nút tenant

| Đặc điểm                            | Mô tả                                                                                                              |
| ----------------------------------- | ------------------------------------------------------------------------------------------------------------------ |
| **Host mô phỏng**                   | Các nút tenant sao chép chức năng của các nút VergeOS vật lý bên trong Trung tâm dữ liệu ảo của tenant             |
| **Giao tiếp an toàn giữa các host** | Các nút tenant giao tiếp qua mạng đóng gói được bảo vệ của tenant, ngay cả khi chạy trên các host vật lý khác nhau |
| **Tính di động**                    | Các nút tenant live-migrate giữa các host vật lý để bảo trì, cân bằng tải và tự động failover                      |
| **Phân bổ tài nguyên phù hợp**      | Các nút tenant có thể nhắm đến các cụm khác nhau với các hồ sơ phần cứng khác nhau (tiêu chuẩn, vGPU, bộ nhớ cao)  |
| **Mở rộng không gián đoạn**         | Số lõi và RAM có thể được tăng hoặc giảm trên một nút tenant đang chạy mà không cần khởi động lại                  |

### Giới hạn nút tenant

Giá trị mặc định và tối đa cho mỗi nút tenant:

| Tài nguyên | Mặc định | Tối đa              |
| ---------- | -------- | ------------------- |
| Số lõi     | 4        | 1,048,576           |
| RAM        | 16 GB    | 5.242.880 MB (5 TB) |

Cụm `RAM tối đa mỗi máy` và `Số lõi tối đa mỗi máy` các cài đặt có thể tiếp tục giới hạn những gì một nút tenant cụ thể thực sự có thể sử dụng.

Mạng cũng có giới hạn ở cấp tenant: tối đa **28 phân đoạn mạng host** có thể được mở rộng vào một tenant duy nhất dưới dạng các kết nối Layer 2 (loại đủ điều kiện: internal, external, BGP, VPN và physical bridged).

### Không cần tính toán phần dư thủ công

VergeOS tự động tính đến phần dư của hypervisor và lưu trữ. Bộ nhớ bạn gán cho một nút tenant là **hoàn toàn khả dụng** cho tenant đó để phân phối giữa các khối lượng công việc của chính nó — không cần tính toán phần dư thủ công.

## Tenant một nút so với nhiều nút

Quyết định lập kế hoạch đầu tiên là tenant cần một nút hay nhiều nút.

### Tenant một nút (Mặc định được ưu tiên)

Một nút tenant duy nhất là cấu hình đơn giản nhất và phổ biến nhất. Đây là điểm khởi đầu được khuyến nghị bất cứ khi nào nhu cầu xử lý và bộ nhớ của tenant nằm trong phạm vi của một nút.

Tenant một nút vẫn cung cấp dự phòng thông qua cơ chế **watchdog**:

* Nếu host vật lý đang chạy nút tenant bị lỗi, watchdog sẽ tự động khởi động lại nút tenant trên một host vật lý khác
* Trong quá trình bảo trì theo kế hoạch, một nút tenant tạm thời được tạo để live-migrate khối lượng công việc mà không gián đoạn dịch vụ
* Có thể bổ sung thêm các nút tenant sau này, một cách không gián đoạn, khi nhu cầu tăng lên

{% hint style="success" %}
**Bắt đầu đơn giản**

Nếu yêu cầu RAM và số lõi có thể được đáp ứng bằng một nút tenant duy nhất và không có nhu cầu mạng hoặc thiết bị nào yêu cầu nhiều host vật lý, thì một nút là lựa chọn tốt hơn để đơn giản hóa.
{% endhint %}

### Khi cần tenant nhiều nút

Nhiều nút tenant trở nên cần thiết trong các tình huống cụ thể:

1. **Tài nguyên xử lý vượt quá mức tối đa của cụm** — Lượng số lõi và RAM có thể gán cho một nút tenant duy nhất bị giới hạn bởi cài đặt của cụm (*RAM tối đa mỗi máy* và *Số lõi tối đa mỗi máy*). Khi tenant cần nhiều hơn dung lượng của một nút, hãy thêm các nút bổ sung.
2. **Ứng dụng theo cụm** — Các web farm, cụm Hadoop, cặp primary/replica của cơ sở dữ liệu và các ứng dụng phân tán khác yêu cầu khối lượng công việc chạy trên các host vật lý khác nhau để HA, cân bằng tải hoặc xử lý song song.
3. **Khả năng phần cứng hỗn hợp** — Khi tenant cần cả tài nguyên xử lý tiêu chuẩn và phần cứng chuyên dụng (vGPU, PCI passthrough, thiết bị USB), hãy triển khai các nút tenant trên các cụm khác nhau với phần cứng phù hợp.
4. **Tách biệt theo quy định** — Các yêu cầu tuân thủ có thể bắt buộc một số khối lượng công việc phải chạy trên các host vật lý riêng biệt.

## Chiến lược phân bổ đúng quy mô

Tenant VergeOS hỗ trợ **mở rộng tài nguyên không gián đoạn** — bạn có thể thêm lõi, RAM, nút và lưu trữ vào một tenant đang chạy mà không ảnh hưởng đến khối lượng công việc. Điều này có nghĩa là bạn nên:

* **Cấp phát cho nhu cầu hiện tại và gần hạn**, không phải cho tăng trưởng tương lai mang tính suy đoán
* **Mở rộng một cách tự nhiên** khi nhu cầu thực tế tăng lên
* **Tránh cấp phát quá mức** — tài nguyên chưa sử dụng được gán cho một tenant không thể phục vụ tenant khác

```mermaid
flowchart TD
    A["Đánh giá yêu cầu của khối lượng công việc"] --> B{"Yêu cầu có phù hợp\nvới một nút duy nhất không?"}
    B -- Có --> C["Triển khai tenant một nút"]
    B -- Không --> D{"Lý do cần nhiều nút?"}
    D -- "Vượt quá tối đa của cụm" --> E["Thêm nút vào\ncùng cụm"]
    D -- "HA / ứng dụng theo cụm" --> F["Thêm nút với\nquy tắc anti-affinity của nhóm HA"]
    D -- "Phần cứng hỗn hợp" --> G["Thêm nút trên\ncác cụm khác nhau"]
    D -- "Quy định" --> H["Thêm nút trên\ncác host vật lý riêng biệt"]
    C --> I["Theo dõi & mở rộng\ntheo chiều dọc trước"]
    E --> I
    F --> I
    G --> I
    H --> I
    I --> J{"Cần thêm\ntài nguyên không?"}
    J -- "Vừa trong nút hiện có" --> K["Tăng lõi/RAM\ntrên nút hiện có"]
    J -- "Vượt quá dung lượng nút" --> L["Thêm một\nnút tenant khác"]
    K --> I
    L --> I

    style A fill:#e8f5e9,stroke:#2e7d32
    style C fill:#e3f2fd,stroke:#1565c0
    style I fill:#fff3e0,stroke:#e65100
```

## Cấu hình ví dụ

Các ví dụ sau minh họa các quyết định lập kế hoạch nút tenant trong thực tế.

### Ví dụ 1: Tenant nhỏ một nút

**Tình huống:** 3 VM, không có yêu cầu đặc biệt. Cụm host cho phép RAM tối đa 64 GB, số lõi tối đa 16.

| Cài đặt       | Giá trị                                                      |
| ------------- | ------------------------------------------------------------ |
| Nút tenant    | 1                                                            |
| Số lõi        | 8                                                            |
| RAM           | 16 GB                                                        |
| Đường mở rộng | Thêm lõi/RAM lên đến 64 GB / 16 lõi, sau đó thêm nút thứ hai |

**Lý do:** Một nút duy nhất cung cấp đủ tài nguyên. Failover bằng watchdog đảm bảo dự phòng mà không làm tăng độ phức tạp.

### Ví dụ 2: Ứng dụng web HA quy mô vừa

**Tình huống:** Các ứng dụng web hướng tới khách hàng yêu cầu HA đa phiên bản. Cụm host cho phép RAM tối đa 128 GB, số lõi tối đa 16.

| Cài đặt    | Giá trị                                                                                    |
| ---------- | ------------------------------------------------------------------------------------------ |
| Nút tenant | 2                                                                                          |
| Nút 1      | 64 GB RAM, 12 lõi (2 máy chủ web + DB primary)                                             |
| Nút 2      | 64 GB RAM, 12 lõi (2 máy chủ web + DB replica)                                             |
| Nhóm HA    | Các quy tắc anti-affinity đảm bảo các phiên bản web/DB nằm trên các host vật lý riêng biệt |

**Lý do:** Mặc dù một nút có thể chứa tất cả tài nguyên, hai nút đảm bảo các máy chủ web và thành phần cơ sở dữ liệu chạy trên các host vật lý khác nhau để có HA ở cấp ứng dụng.

### Ví dụ 3: Khối lượng công việc hỗn hợp với GPU

**Tình huống:** Tài nguyên xử lý tiêu chuẩn, dựng video hiệu năng cao và xử lý tăng tốc bằng GPU. Có ba cụm host khả dụng: Tiêu chuẩn (tối đa 64 GB), vGPU (tối đa 64 GB), Cao cấp (tối đa 128 GB).

| Cài đặt    | Giá trị                                          |
| ---------- | ------------------------------------------------ |
| Nút tenant | 4                                                |
| Nút 1      | 64 GB, 8 lõi — Cụm Tiêu chuẩn (máy chủ tệp)      |
| Nút 2      | 64 GB, 8 lõi — Cụm Tiêu chuẩn (công cụ quản trị) |
| Nút 3      | 64 GB, 16 lõi — Cụm vGPU (dựng video)            |
| Nút 4      | 48 GB, 8 lõi — Cụm Cao cấp (máy trạm biên tập)   |

**Lý do:** Nhiều nút cho phép đặt trên các cụm có khả năng phần cứng phù hợp. Mỗi nút tenant nhắm đến cụm phù hợp nhất với khối lượng công việc của nó.

### Ví dụ 4: Phân tích phân tán cấp doanh nghiệp

**Tình huống:** Nền tảng phân tích phân tán yêu cầu triển khai trên nhiều host để cân bằng tải và dự phòng. Cụm host cho phép RAM tối đa 96 GB, số lõi tối đa 16.

| Cài đặt    | Giá trị                                                                     |
| ---------- | --------------------------------------------------------------------------- |
| Nút tenant | 4                                                                           |
| Nút 1–3    | mỗi nút 64 GB, 12 lõi (1 máy chủ ứng dụng + 1 máy chủ DB mỗi nút)           |
| Nút 4      | 32 GB, 8 lõi (2 máy chủ xử lý dữ liệu)                                      |
| Nhóm HA    | Anti-affinity đảm bảo các phiên bản ứng dụng trải rộng trên các host vật lý |

**Lý do:** Bốn nút tenant đảm bảo các phiên bản ứng dụng chạy trên nhiều host vật lý trong khi vẫn duy trì khả năng chạy tất cả dịch vụ bên trong tenant.

## Tăng tài nguyên tenant

VergeOS cung cấp ba cách không gián đoạn để thêm tài nguyên vào một tenant đang chạy.

### Thêm lõi/RAM vào một nút hiện có

Các thay đổi có hiệu lực **ngay lập tức** trên nút tenant — không cần khởi động lại.

1. Đi tới **Bảng điều khiển Tenant** → **Node**
2. Nhấp đúp vào nút đích → nhấp **Chỉnh sửa**
3. Sửa **Số lõi** và/hoặc **RAM** các trường
4. Nhấp vào **Gửi**

{% hint style="info" %}
**Giới hạn của cụm**

Số lõi và RAM tối đa trên mỗi nút tenant được xác định bởi *RAM tối đa mỗi máy* và *Số lõi tối đa mỗi máy* cài đặt của cụm. Hãy tối đa hóa các nút hiện có trước khi thêm nút mới, trừ khi việc cân bằng khối lượng công việc đòi hỏi điều khác.
{% endhint %}

{% hint style="info" %}
**Xác thực thay đổi tài nguyên**

Khi số lõi hoặc RAM thay đổi trên một nút tenant, VergeOS sẽ chạy `validatecluster.gcs` trên cụm chính (và `validateclusterfailover.gcs` trên cụm failover, nếu được cấu hình). Các thay đổi vượt quá giới hạn trên mỗi máy của một trong hai cụm — hoặc mà host đang chạy không thể đáp ứng bằng RAM trống — sẽ bị từ chối, ngăn chặn cấp phát quá mức.
{% endhint %}

### Thêm một nút tenant mới

1. Đi tới **Bảng điều khiển Tenant** → **Node** → **Mới**
2. Cấu hình **Số lõi**, **RAM**, **Cụm**, và **Cụm dự phòng**
3. Chọn **Khi mất nguồn** hành vi (Trạng thái cuối, Để tắt, hoặc Bật nguồn)
4. Nhấp vào **Gửi**

{% hint style="warning" %}
**Nút ưu tiên**

Đặt một *nút Ưu tiên* là **không được khuyến nghị** cho các nút tenant. Cấu hình sai có thể ảnh hưởng xấu đến khả năng dự phòng tích hợp. Nếu cần, hãy liên hệ Hỗ trợ VergeOS.
{% endhint %}

### Cấp phát thêm bộ nhớ lưu trữ

**Tầng lưu trữ mới:**

1. Bảng điều khiển Tenant → **Thêm bộ nhớ lưu trữ** → chọn **Tầng** → nhập **Đã cấp phát** số lượng → **Gửi**

**Mở rộng tầng hiện có:**

1. Bảng điều khiển Tenant → cuộn đến **Storage** mục → nhấp **Chỉnh sửa** vào tầng mong muốn
2. Nhập **tổng** số lượng đã cấp phát mới (ví dụ: đổi 50 GB thành 75 GB để thêm 25 GB)

## Giảm tài nguyên tenant

### Giảm lõi/RAM

Có thể giảm số lõi và RAM trên một nút tenant đang chạy mà không cần tắt nguồn. Tuy nhiên, nếu các tài nguyên đó hiện đang được các VM của tenant sử dụng, **việc thu hồi thực tế sẽ bị hoãn** cho đến khi các VM được tắt.

**Ví dụ:** Bạn giảm RAM của một nút tenant từ 32 GB xuống 28 GB, nhưng các VM hiện đang sử dụng toàn bộ 32 GB. Cài đặt thay đổi ngay lập tức, nhưng chênh lệch 4 GB sẽ không được thu hồi cho đến khi các VM giải phóng bộ nhớ đó.

### Xóa một nút tenant

1. Tắt nguồn hoặc di chuyển tất cả VM khỏi nút
2. Tắt nguồn nút tenant
3. Đi tới **Bảng điều khiển Tenant** → **Node** → chọn nút → **Xóa**

{% hint style="warning" %}
**Yêu cầu nút tối thiểu**

Một tenant phải luôn có ít nhất một nút. Trước khi xóa bất kỳ nút tenant nào, hãy đảm bảo còn ít nhất một nút khác và tất cả khối lượng công việc đã được di chuyển ra khỏi nút đang bị xóa.
{% endhint %}

## Các đường mở rộng: theo chiều dọc trước, sau đó theo chiều ngang

Chiến lược mở rộng được khuyến nghị cho tenant tuân theo một trình tự rõ ràng:

### Bước 1: Mở rộng theo chiều dọc

Tăng số lõi và RAM trên các nút tenant hiện có lên đến mức tối đa của cụm. Đây là con đường đơn giản nhất, không gây gián đoạn.

### Bước 2: Mở rộng theo chiều ngang

Khi các nút hiện có đã đạt mức tối đa, hãy thêm các nút tenant mới. Đặt chúng trên cùng cụm cho mở rộng chung hoặc trên các cụm khác nhau cho phần cứng chuyên dụng.

### Bước 3: Thêm lưu trữ

Mở rộng dung lượng đã cấp phát độc lập với tài nguyên xử lý. Thêm dung lượng vào một tầng hiện có hoặc cấp phát một tầng lưu trữ mới.

### Bước 4: Tái cân bằng

Nếu việc phân phối tài nguyên trở nên không đều giữa các nút, hãy cân bằng RAM/lõi giữa các nút thay vì tối đa hóa một nút và cấp phát tối thiểu cho nút khác.

{% hint style="info" %}
**Đến từ VMware hoặc Nutanix?**

Trên VMware và Nutanix, "mở rộng một tenant" thường có nghĩa là thay đổi kích thước hạn ngạch và tin vào bộ lập lịch. Trong VergeOS, bạn định kích thước trực tiếp cho các nút tenant chuyên dụng.
{% endhint %}

| Nền tảng | Mô hình cách ly                                                                                  | Hành động mở rộng                                                                                     |
| -------- | ------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------- |
| VergeOS  | Mỗi tenant là một VDC với các nút tenant chuyên dụng (mạng đóng gói + các ổ lưu trữ được cô lập) | Chỉnh sửa lõi/RAM của một nút tenant trực tiếp, hoặc thêm một nút — hệ thống tự động tính đến phần dư |

## Thực hành tốt nhất

| Thực hành                                | Hướng dẫn                                                                                                                |
| ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| **Bắt đầu với một nút**                  | Theo mặc định, hãy dùng tenant một nút; chỉ thêm nút khi thực sự cần                                                     |
| **Phân bổ đúng quy mô cho hiện tại**     | Cấp phát cho nhu cầu hiện tại/gần hạn, không phải cho tăng trưởng tương lai mang tính suy đoán                           |
| **Tối đa trước khi thêm**                | Tăng tài nguyên của nút hiện có trước khi thêm nút mới (trừ khi việc cân bằng khối lượng công việc đòi hỏi điều khác)    |
| **Cân bằng tài nguyên**                  | Khi cần hai nút, hãy phân bổ tài nguyên đều nhau thay vì tối đa hóa một nút và tối thiểu hóa nút còn lại                 |
| **Dùng Nhóm HA**                         | Với tenant nhiều nút có yêu cầu HA, hãy cấu hình các quy tắc anti-affinity để các VM được phân phối trên các host vật lý |
| **Phù hợp cụm với khối lượng công việc** | Đặt các nút tenant trên các cụm có phần cứng phù hợp với khối lượng công việc (GPU, bộ nhớ cao, tiêu chuẩn)              |
| **Theo dõi và điều chỉnh**               | Sử dụng bảng điều khiển tenant và báo cáo sử dụng để xác định khi nào cần mở rộng                                        |


---

# 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/mo-dun-7-da-thue-bao/04-resource-allocation.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.
