> 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-1-kien-thuc-co-ban-ve-kien-truc/03-vsan-vergefs.md).

# vSAN / VergeFS: Lưu trữ định nghĩa bằng phần mềm

## vSAN / VergeFS là gì?

**vSAN** (Mạng vùng lưu trữ ảo), còn được gọi là **VergeFS**là hệ thống lưu trữ phân tán được định nghĩa bằng phần mềm, được tích hợp trong mọi triển khai VergeOS. Nó gom các ổ đĩa vật lý (hoặc ảo) trên tất cả các nút tham gia lưu trữ vào một tài nguyên lưu trữ dùng chung duy nhất cho toàn bộ hệ thống.

Không cần SAN bên ngoài, NAS, hay phần mềm lưu trữ của bên thứ ba. vSAN được tích hợp trực tiếp vào nền tảng VergeOS và hoạt động ở cấp độ khối, cung cấp lưu trữ cho tất cả các đĩa VM, ảnh chụp nhanh, ảnh ISO và siêu dữ liệu của hệ thống.

Đặc điểm chính:

* **Kiến trúc cấp khối** — Các đĩa VM được chia thành các khối, mỗi khối được nhận dạng bằng một hàm băm có thể định địa chỉ theo nội dung
* **Phân tán trên các nút** — Các khối dữ liệu được phân tán trên tất cả các nút tham gia lưu trữ trong cụm
* **Lưu trữ theo tầng** — Tầng 0 được dành riêng cho siêu dữ liệu vSAN; các Tầng 1–5 là các tầng lưu trữ dữ liệu cho khối lượng công việc, cho phép bạn ghép loại phương tiện với yêu cầu của workload
* **Khử trùng lặp nội tuyến** — Việc nhận dạng khối dựa trên băm cho phép tự động khử trùng lặp trên tất cả các tầng
* **Tự phục hồi** — Tự động phát hiện lỗi và chuyển sang bản sao dự phòng. Việc dựng lại do người vận hành khởi tạo (ổ dự phòng nóng hoặc thay thế phần cứng); sau đó Journal Walk sẽ sao chép lại các khối bị thiếu từ các bản sao dự phòng. Tự phục hồi hoạt động trong mức dự phòng đã cấu hình (N+1 hoặc N+2); các lỗi vượt quá mức dự phòng (ví dụ: mất đồng thời nhiều nút hơn mức hệ thống có thể chịu đựng) có thể dẫn đến quá trình sửa chữa bị kẹt, cần can thiệp thủ công và liên hệ hỗ trợ

{% hint style="info" %}
**Cầu nối VMware**

Nếu bạn quen với mô hình cache + capacity của vSAN và các chính sách lưu trữ theo từng VM? VergeFS dùng 5 tầng workload (T1–T5) cộng với 1 tầng siêu dữ liệu (Tầng 0), mặc định khử trùng lặp nội tuyến trên tất cả các tầng, áp dụng một thiết lập dự phòng duy nhất toàn hệ thống (N+1/N+2), và hỗ trợ cả triển khai HCI lẫn UCI. Nén chỉ áp dụng khi nhân bản site-sync — không phải khi lưu trữ tĩnh.
{% endhint %}

{% hint style="info" %}
**Cầu nối Nutanix**

Nếu bạn đến từ Nutanix DSF và kiến trúc CVM-per-node của nó? VergeFS chạy như một dịch vụ tích hợp của hệ điều hành — không có CVM riêng, không tốn CPU/RAM riêng cho từng nút. Nó dùng 5 tầng workload (T1–T5) cộng với 1 tầng siêu dữ liệu (Tầng 0), không tự động chuyển dữ liệu nóng/lạnh, một thiết lập dự phòng duy nhất toàn hệ thống N+1/N+2, khử trùng lặp nội tuyến luôn bật, và hỗ trợ cả triển khai HCI lẫn UCI.
{% endhint %}

## Hệ thống tầng

vSAN của VergeOS tổ chức các ổ đĩa thành **các tầng** được đánh số từ 0 đến 5. Mỗi tầng được thiết kế cho một loại phương tiện lưu trữ và kiểu workload khác nhau. Trong quá trình cài đặt, mỗi ổ đĩa vật lý được gán vào một tầng cụ thể, và việc gán đó quyết định cách ổ đĩa được hệ thống sử dụng.

### Tầng 0: Siêu dữ liệu

* **Phần cứng**: SSD NVMe độ bền cao
* **Mục đích**: Chỉ lưu chỉ mục hệ thống tệp vSAN và siêu dữ liệu nội bộ
* **Yêu cầu chính**: Tầng 0 chỉ nằm trên các nút điều khiển — nút 1–2 cho N+1, hoặc nút 1–3 cho N+2
* **Khuyến nghị tốt nhất**: Dùng ổ NVMe doanh nghiệp được đánh giá 3 DWPD (Drive Writes Per Day) hoặc tương đương (tức là nếu bạn chỉ cần 500 GB cho siêu dữ liệu vSAN, một ổ 2 TB lớn hơn được đánh giá 1 DWPD vẫn cho độ bền ghi tổng thể tương đương); giữ ít nhất 30% dung lượng trống trên Tầng 0

### Tầng 1–5: Dữ liệu workload

| Tầng       | Phần cứng                       | Mục đích                        | Các trường hợp sử dụng điển hình                     |
| ---------- | ------------------------------- | ------------------------------- | ---------------------------------------------------- |
| **Tầng 1** | SSD NVMe độ bền cao             | Workload ghi nhiều              | Cơ sở dữ liệu hiệu năng cao, nhật ký giao dịch       |
| **Tầng 2** | SSD tầm trung                   | Workload cân bằng đọc/ghi       | VM đa dụng, ứng dụng hỗn hợp, môi trường phát triển  |
| **Tầng 3** | SSD tối ưu cho đọc              | Workload đọc nhiều              | Phân phối nội dung, kho ứng dụng, dữ liệu tham chiếu |
| **Tầng 4** | HDD dung lượng cao              | Dữ liệu ít được truy cập hơn    | Máy chủ tệp, đích sao lưu                            |
| **Tầng 5** | HDD cấp lưu trữ lưu trữ dài hạn | Lưu trữ lạnh và lưu giữ dài hạn | Kho lưu trữ tuân thủ, kho lưu trữ sao lưu            |

Không phải mọi triển khai đều dùng cả năm tầng workload. Một cấu hình sản xuất phổ biến có thể chỉ dùng tầng 1 (NVMe cho workload nhạy cảm với hiệu năng) và tầng 4 (HDD cho dung lượng). Môi trường thử nghiệm Terraform chỉ dùng tầng 0 và tầng 1.

```mermaid
graph LR
    subgraph "Kiến trúc tầng vSAN"
        T0["Tầng 0<br/>Siêu dữ liệu<br/>NVMe"]
        T1["Tầng 1<br/>Hiệu năng cao<br/>SSD NVMe"]
        T2["Tầng 2<br/>Workload hỗn hợp<br/>SSD"]
        T3["Tầng 3<br/>Tối ưu cho đọc<br/>SSD"]
        T4["Tầng 4<br/>Dung lượng<br/>HDD"]
        T5["Tầng 5<br/>Lưu trữ lưu trữ<br/>HDD"]
    end

    T0 -.->|"Tra cứu<br/>bảng băm"| T1
    T0 -.->|"Tra cứu<br/>bảng băm"| T2
    T0 -.->|"Tra cứu<br/>bảng băm"| T3
    T0 -.->|"Tra cứu<br/>bảng băm"| T4
    T0 -.->|"Tra cứu<br/>bảng băm"| T5

    style T0 fill:#e3f2fd,stroke:#1565c0
    style T1 fill:#e8f5e9,stroke:#2e7d32
    style T2 fill:#e8f5e9,stroke:#2e7d32
    style T3 fill:#fff3e0,stroke:#e65100
    style T4 fill:#fce4ec,stroke:#c62828
    style T5 fill:#f3e5f5,stroke:#6a1b9a
```

{% hint style="info" %}
**Cầu nối VMware**

VMware vSAN có các tầng cache + capacity và dùng các chính sách lưu trữ theo từng VM (FTT, stripe width, erasure coding). VergeOS dùng 6 tầng rõ ràng và không có chính sách theo từng VM — chọn tầng tại thời điểm cấp phát đĩa, và mức dự phòng (N+1/N+2) được thiết lập trên toàn hệ thống.
{% endhint %}

{% hint style="info" %}
**Cầu nối Nutanix**

Nutanix AOS tổ chức dữ liệu thành các storage container bên trong một storage pool và dùng Intelligent Tiering Engine (ILM) để di chuyển các khối giữa SSD và HDD dựa trên mẫu truy cập. VergeOS không di chuyển dữ liệu giữa các tầng — ổ đĩa được gán khi cài đặt và dữ liệu ở nguyên nơi nó được ghi, đổi lại là vị trí rõ ràng và hiệu năng có thể dự đoán.
{% endhint %}

## Cách dữ liệu được phân phối

vSAN sử dụng một **thuật toán phân phối dựa trên băm** để phân tán các khối dữ liệu trên tất cả các nút trong cụm. Đây là cách nó hoạt động:

### Tạo khối và băm

1. Khi một VM ghi dữ liệu, vSAN chia thao tác ghi thành **các khối dữ liệu**
2. Mỗi khối được gán một **hàm băm có thể định địa chỉ theo nội dung** đóng vai trò là mã định danh duy nhất của nó
3. Hàm băm quyết định cả vị trí lưu trữ của khối và cho phép khử trùng lặp — nếu hai khối tạo ra cùng một hàm băm, chỉ một bản sao được lưu trữ

### Phân phối xuyên các nút

Các khối dữ liệu được phân phối trên nhiều nút trong cụm thay vì lưu trên một nút duy nhất. Thiết kế này mang lại:

* **Hiệu năng cân bằng** — Tải I/O được phân tán trên tất cả các nút tham gia lưu trữ
* **Khả năng chịu lỗi** — Không có nút đơn lẻ nào giữ toàn bộ bản sao của bất kỳ bộ dữ liệu nào
* **Mở rộng hiệu quả** — Thêm một nút sẽ tự động mở rộng pool lưu trữ và kích hoạt cân bằng lại

```mermaid
graph TB
    VM["Thao tác ghi VM"]
    VM --> HASH["Băm khối<br/>(hàm băm mật mã cho mỗi khối)"]
    HASH --> DIST["Phân phối dựa trên băm"]
    DIST --> N1["Nút 1<br/>Chính: Khối A, C<br/>Dự phòng: Khối B"]
    DIST --> N2["Nút 2<br/>Chính: Khối B<br/>Dự phòng: Khối A, C"]
    DIST --> N3["Nút 3<br/>Chính: Khối D<br/>Dự phòng: Khối E"]
    DIST --> N4["Nút 4<br/>Chính: Khối E<br/>Dự phòng: Khối D"]

    style VM fill:#e3f2fd,stroke:#1565c0
    style HASH fill:#fff3e0,stroke:#e65100
    style DIST fill:#e8f5e9,stroke:#2e7d32
```

### Đường dẫn đọc và ghi

**Đọc:**

* Hệ thống tra cứu vị trí của khối thông qua bảng băm ở tầng 0
* Các thao tác đọc ưu tiên **bản sao chính** để đạt hiệu quả
* Nếu VM đang chạy trên cùng nút với một bản sao dự phòng, vSAN sẽ đọc **bản sao cục bộ** để giảm thiểu lưu lượng mạng
* Nếu bản sao chính chậm hoặc không phản hồi, vSAN tự động chuyển sang bản sao dự phòng

**Ghi:**

* Các khối mới được băm và đặt trên nút tối ưu
* Cả **bản sao chính và bản sao dự phòng** được ghi đồng thời
* Việc ghi chỉ được xác nhận sau khi cả hai bản sao đều được xác nhận
* Siêu dữ liệu tầng 0 được cập nhật để theo dõi vị trí của khối mới

## Dự phòng và tự phục hồi

vSAN duy trì nhiều bản sao của mọi khối dữ liệu để bảo vệ trước lỗi phần cứng. Mức dự phòng — còn được gọi là **Hệ số sao chép (RF)** — được cấu hình ở cấp hệ thống và áp dụng theo từng tầng. RF đơn giản là số lượng bản sao được giữ lại: **RF2** (N+1) giữ 2 bản sao, **RF3** (N+2) giữ 3 bản sao.

### Các mức dự phòng

| Tính năng                                     | N+1 (RF2) — Mặc định | N+2 (RF3) |
| --------------------------------------------- | -------------------- | --------- |
| **Số bản sao dữ liệu**                        | 2                    | 3         |
| **Số lỗi đồng thời có thể chịu được**         | 1 nút                | 2 node    |
| **Số nút điều khiển tối thiểu**               | 2                    | 3         |
| **Số nút khuyến nghị**                        | 3                    | 5         |
| **Chi phí lưu trữ** (trước khi khử trùng lặp) | \~2×                 | \~3×      |

* **N+1 (RF2)** là mặc định và phù hợp với hầu hết môi trường sản xuất
* **N+2 (RF3)** có sẵn cho các workload cực kỳ quan trọng hoặc các site từ xa nơi việc thay thế phần cứng diễn ra chậm
* Mức dự phòng thường được đặt trong quá trình cài đặt và áp dụng trên toàn hệ thống
* Một lỗi chỉ ảnh hưởng đến tầng nơi các ổ đĩa bị lỗi nằm — các tầng khác vẫn hoạt động đầy đủ

### Quy trình tự phục hồi

Khi một nút hoặc ổ đĩa gặp lỗi, vSAN tự động chuyển sang các bản sao dự phòng — các VM vẫn chạy không gián đoạn, nhưng tầng bị ảnh hưởng hoạt động với mức dự phòng giảm. Việc khôi phục đầy đủ mức dự phòng do người vận hành thực hiện: либо khởi động sửa chữa trên một ổ dự phòng nóng được chỉ định, hoặc thay thế ổ đĩa (hoặc nút) bị lỗi và quá trình dựng lại sẽ bắt đầu từ đó:

```mermaid
flowchart LR
    A["Phát hiện lỗi<br/>ổ đĩa hoặc nút"] --> B["Chuyển sang<br/>các bản sao dự phòng"]
    B --> C["VM tiếp tục<br/>chạy (không gián đoạn)"]
    B --> D["Tầng hoạt động với<br/>mức dự phòng giảm"]
    D --> E{"Hành động của người vận hành"}
    E -->|"Khởi động sửa chữa<br/>trên ổ dự phòng nóng"| F["Bắt đầu dựng lại"]
    E -->|"Thay thế ổ đĩa<br/>hoặc nút bị lỗi"| F
    F --> G["Khôi phục đầy đủ<br/>mức dự phòng"]

    style A fill:#fce4ec,stroke:#c62828
    style C fill:#e8f5e9,stroke:#2e7d32
    style D fill:#fff3e0,stroke:#e65100
    style G fill:#e8f5e9,stroke:#2e7d32
```

1. **Phát hiện** — vSAN tự động phát hiện lỗi ổ đĩa hoặc nút; thay đổi topology sẽ kích hoạt một **Full Journal Walk** để kiểm tra lại mức dự phòng trên tầng bị ảnh hưởng
2. **Chuyển sang dự phòng** — Các thao tác đọc và ghi được chuyển hướng sang các bản sao dự phòng mà không có thời gian chết của VM
3. **Mức dự phòng giảm** — Tầng bị ảnh hưởng hoạt động mà không có mức dự phòng đầy đủ cho đến khi người vận hành can thiệp
4. **Dựng lại** — Người vận hành либо khởi tạo sửa chữa trên một ổ dự phòng nóng được chỉ định, либо thay thế ổ đĩa/nút bị lỗi. Sau đó vSAN sao chép lại các khối bị ảnh hưởng để khôi phục đầy đủ mức dự phòng

{% hint style="info" %}
**Journal Walk là gì?**

Một **Journal Walk** là quá trình vSAN duyệt nền của một tầng lưu trữ để xây dựng lại số đếm tham chiếu của khối (vốn không bao giờ được lưu bền vững), xác minh mức dự phòng, và thực hiện mọi sửa chữa cần thiết. Nó chạy dưới ba dạng: một **Full Walk** (được kích hoạt bởi khởi động bộ điều khiển hoặc thay đổi topology như lỗi ổ đĩa/nút hoặc khi một nút được thêm hoặc xóa), một **Mixed Walk** (khi một nút khác với bộ điều khiển đang hoạt động khởi động lại), và một **Differential Walk**. Trên bảng điều khiển tầng vSAN, cờ `đang chạy` cho biết một walk đang diễn ra và `Tiến độ Walk` hiển thị phần trăm của nó. Xem [Hiểu trạng thái tầng vSAN / Journal Walks](/knowledge-base/vi/storage-vsan/understanding-journal-walks-and-vsan-tier-status.md) để xem phần phân tích đầy đủ.
{% endhint %}

{% hint style="info" %}
**Cầu nối VMware**

Nếu bạn quen với các chính sách lưu trữ theo từng VM của vSAN (FTT, stripe width) và tự động dựng lại dựa trên timeout? VergeOS dùng một thiết lập dự phòng duy nhất trên toàn hệ thống (N+1 hoặc N+2) và khôi phục mức dự phòng theo hành động của người vận hành — khởi động sửa chữa trên một ổ dự phòng nóng, hoặc thay thế phần cứng bị lỗi.
{% endhint %}

{% hint style="info" %}
**Cầu nối Nutanix**

Nếu bạn đến từ cơ chế Replication Factor theo từng container của Nutanix và cân bằng lại do Curator điều khiển? VergeOS dùng một thiết lập N+1 hoặc N+2 duy nhất trên toàn hệ thống và khôi phục mức dự phòng theo hành động của người vận hành — khởi động sửa chữa trên một ổ dự phòng nóng, hoặc thay thế phần cứng bị lỗi.
{% endhint %}

## Phân bổ ổ đĩa trong thực tế

Trong quá trình cài đặt VergeOS, mỗi ổ đĩa vật lý được gán vào một tầng vSAN cụ thể. Trình cài đặt sử dụng các biến `YC_DRIVE_LIST` và `YC_VSAN_TIER_LIST` (được thiết lập tương tác trong quá trình cài đặt) để ánh xạ ổ đĩa vào các tầng.

### Quy tắc phân bổ

* **Vị trí của tầng 0**: Tầng 0 chỉ nằm trên các nút điều khiển — nút 1–2 cho N+1, hoặc nút 1–3 cho N+2
* Các ổ đĩa trong cùng một tầng nên có cùng loại và đặc tính hiệu năng tương tự
* Khi mở rộng quy mô (thêm ổ đĩa), hãy thêm **các ổ giống nhau trên tất cả các nút** trong cụm để duy trì phân phối cân bằng
* Khi mở rộng ngang (thêm nút), các nút mới nên khớp với cấu hình phần cứng của cụm hiện có (CPU, bộ nhớ, bố cục đĩa)

### Ví dụ: Cấu hình HCI 2 nút

Trong triển khai đơn giản nhất của môi trường thử nghiệm Terraform, mỗi nút điều khiển có:

| Ổ đĩa         | Tầng   | Mục đích                                             |
| ------------- | ------ | ---------------------------------------------------- |
| 1× NVMe (nhỏ) | Tầng 0 | Siêu dữ liệu — bảng băm vSAN và chỉ mục hệ thống tệp |
| 1× NVMe (lớn) | Tầng 1 | Dữ liệu workload — đĩa VM, ảnh chụp nhanh, ISO       |

Cả hai nút đóng góp ổ đĩa của mình vào cùng một pool vSAN. Với mức dự phòng N+1 (mặc định), mọi khối được ghi vào tầng 1 trên nút 1 sẽ có một bản sao dự phòng trên nút 2, và ngược lại.

## Các tính năng vSAN bổ sung

### Khử trùng lặp nội tuyến

Vì mọi khối dữ liệu đều được nhận dạng bởi hàm băm mật mã của nó, vSAN tự động phát hiện các khối trùng lặp. Nếu hai VM (hoặc hai vùng trong cùng một đĩa VM) ghi dữ liệu giống nhau, chỉ một bản sao của khối đó được lưu. Điều này diễn ra nội tuyến — trong đường dẫn ghi — không cần công việc hay lịch trình khử trùng lặp riêng biệt.

### Mã hóa

vSAN hỗ trợ **mã hóa AES-256 khi lưu trữ**, được cấu hình trong quá trình cài đặt ban đầu. Khóa mã hóa có thể được lưu trên ổ USB (cắm vào hai nút điều khiển đầu tiên) hoặc nhập thủ công lúc khởi động. Tất cả dữ liệu trên mọi tầng đều được mã hóa minh bạch.

### Ảnh chụp nhanh và bản sao clone

Kiến trúc cấp khối của vSAN cho phép **ảnh chụp nhanh tiết kiệm dung lượng** — một ảnh chụp nhanh ghi lại trạng thái bảng băm tại một thời điểm thay vì sao chép các khối dữ liệu. Bản sao clone cũng tham chiếu đến các khối hiện có, chỉ tiêu thụ thêm dung lượng khi dữ liệu phân kỳ.

## Các điểm chính

| Khái niệm             | Tóm tắt                                                                                                           |
| --------------------- | ----------------------------------------------------------------------------------------------------------------- |
| **vSAN / VergeFS**    | Lưu trữ phân tán tích hợp sẵn — không cần SAN/NAS bên ngoài                                                       |
| **Tầng 0**            | Chỉ siêu dữ liệu (NVMe). Chỉ tồn tại trên các nút điều khiển (1–2 cho N+1, 1–3 cho N+2).                          |
| **Tầng 1–5**          | Dữ liệu workload, từ NVMe hiệu năng cao đến HDD lưu trữ                                                           |
| **Phân phối dữ liệu** | Dựa trên băm, phân tán trên tất cả các nút lưu trữ                                                                |
| **Dự phòng**          | N+1 (2 bản sao, mặc định) hoặc N+2 (3 bản sao) — trên toàn hệ thống theo từng tầng                                |
| **Tự phục hồi**       | Tự động chuyển sang dự phòng khi có lỗi; việc dựng lại do người vận hành khởi tạo (ổ dự phòng nóng hoặc thay thế) |
| **Khử trùng lặp**     | Nội tuyến, dựa trên băm, trên tất cả các tầng                                                                     |
| **Nén**               | Không phải khi lưu trữ tĩnh — chỉ trong quá trình nhân bản site-sync                                              |

## Các bước tiếp theo

Bây giờ bạn đã hiểu cách VergeOS lưu trữ dữ liệu, chủ đề tiếp theo sẽ đề cập đến hạ tầng mạng kết nối tất cả các nút và mang lưu lượng nhân bản vSAN: [**Hạ tầng lõi & Mạng →**](/learn-the-platform/vi/mo-dun-1-kien-thuc-co-ban-ve-kien-truc/04-core-fabric.md)


---

# 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-1-kien-thuc-co-ban-ve-kien-truc/03-vsan-vergefs.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.
