> 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-5-luu-tru/01-vsan-architecture.md).

# Kiến trúc vSAN & VergeFS

## VergeFS: Dịch vụ lưu trữ tích hợp

Mô-đun 1 đã giới thiệu các khái niệm vSAN ở mức tổng quan. Trang này đi sâu hơn vào kiến trúc nội bộ — cách các khối được băm và phân phối, cách đọc và ghi chảy qua hệ thống, và cách các tính năng như khử trùng lặp, mã hóa và ảnh chụp nhanh được triển khai ở cấp khối.

## Kiến trúc cấp khối

Cốt lõi của VergeFS là một **công cụ lưu trữ cấp khối**. Mọi dữ liệu được ghi vào vSAN — dù là đĩa VM, ảnh chụp nhanh, ảnh ISO hay siêu dữ liệu hệ thống — đều được chia thành **các khối dữ liệu**. Mỗi khối được gán một **mã băm nội dung SHA-1** đóng vai trò là định danh duy nhất của nó trong toàn bộ hệ thống. SHA-1 được dùng ở đây để định địa chỉ nội dung và phân phối, không phải cho bảo mật mật mã.

Mã băm này là nền tảng cho gần như mọi tính năng của vSAN:

* **Phân phối** — Mã băm quyết định nút nào lưu bản sao chính và bản sao dự phòng của khối
* **Khử trùng lặp** — Các khối giống hệt tạo ra mã băm giống hệt, nên chỉ một bản sao được lưu
* **Toàn vẹn** — Mã băm xác thực nội dung khối, cho phép phát hiện hỏng bit liên tục
* **Suy ra vị trí** — Mã băm, kết hợp với các bản đồ thiết bị theo từng tầng trên Tier 0, suy ra một cách xác định vị trí vật lý của từng khối

### Bản đồ băm và Tier 0

Việc bố trí khối trong vSAN là **được suy ra từ mã băm nội dung SHA-1** kết hợp với các bản đồ thiết bị theo từng tầng được lưu trên **Tầng 0** các ổ đĩa (SSD NVMe độ bền cao):

* Mỗi tầng duy trì một `0.map` (bản đồ thiết bị của bản sao chính) và `1.map` (bản đồ thiết bị của bản sao thứ hai)
* Mã băm SHA-1 được dùng làm đầu vào cho phép tính bố trí xác định đối với các bản đồ đó — không có bảng trung tâm ghi "khối X nằm trên nút Y, ổ Z"
* Số đếm tham chiếu được **không** lưu bền vững trong một bản đồ băm — chúng được dựng lại bởi quá trình vi sai **vSAN Walk** khi nó duyệt qua các mã băm còn hoạt động
* Chỉ mục hệ thống tệp của Tier 0 và các bản đồ thiết bị theo từng tầng là những gì Tier 0 thực sự lưu giữ, cùng với siêu dữ liệu vSAN

**Tier 0 chỉ dành cho siêu dữ liệu.** Nó lưu chỉ mục hệ thống tệp vSAN và các bản đồ thiết bị theo từng tầng. Nó là **không** bộ nhớ đệm hiệu năng, và nó không **không** lưu dữ liệu workload. Vì các thao tác siêu dữ liệu vSAN phụ thuộc vào Tier 0, hiệu năng của các ổ Tier 0 ảnh hưởng trực tiếp đến khả năng phản hồi tổng thể của hệ thống.

{% hint style="warning" %}
**Tier 0 Chỉ Chứa Siêu Dữ Liệu**

Tier 0 không **không** đóng vai trò là bộ nhớ đệm hiệu năng hoặc tầng dữ liệu nóng. Nó chỉ lưu chỉ mục hệ thống tệp vSAN và các bản đồ thiết bị theo từng tầng. Dữ liệu workload nằm trên các Tier 1–5. Luôn dùng ổ NVMe doanh nghiệp được đánh giá 3 DWPD hoặc tương đương cho Tier 0 và duy trì ít nhất 30% dung lượng trống.
{% endhint %}

### Bản đồ băm hoạt động như thế nào

Sơ đồ sau minh họa cách dữ liệu VM chảy qua kiến trúc cấp khối của vSAN:

![Kiến trúc bản đồ băm vSAN](/files/c1593359c321bd4f6dee67a309edd832e38015dc)

Quy trình hoạt động như sau:

1. Một VM ghi dữ liệu vào đĩa ảo của nó
2. VergeFS chia thao tác ghi thành các khối dữ liệu
3. Mỗi khối được gán một mã băm nội dung SHA-1
4. Phép tính định vị dựa trên các bản đồ thiết bị theo từng tầng (được lưu trên Tier 0) chọn ra vị trí chính và vị trí dự phòng
5. Khối được ghi đồng thời vào cả nút chính và nút dự phòng
6. Các bản cập nhật siêu dữ liệu Tier 0 được gom lô và áp dụng bất đồng bộ

## Phân phối dữ liệu dựa trên mã băm

vSAN phân phối các khối dữ liệu trên tất cả các nút tham gia lưu trữ bằng một **thuật toán phân phối dựa trên băm**. Điều này đảm bảo tải I/O cân bằng, khả năng chịu lỗi và khả năng mở rộng hiệu quả.

### Đường ghi

Khi một VM ghi dữ liệu:

1. VergeFS chia dữ liệu thành các khối và tính mã băm nội dung SHA-1 cho từng khối
2. Phép tính định vị dựa trên các bản đồ thiết bị theo từng tầng xác định một **nút chính** và một **nút dự phòng** — bộ điều khiển là **không** nằm trong đường ghi dữ liệu
3. Nếu một mã băm giống hệt đã tồn tại, thao tác ghi sẽ được **khử trùng lặp** (không ghi khối dữ liệu mới; khử trùng lặp là hệ quả tự nhiên của định địa chỉ theo nội dung)
4. Đối với các khối mới, cả hai bản sao được ghi **đồng thời** qua mạng Core Fabric trực tiếp tới các nút đích
5. Thao tác ghi chỉ **được xác nhận sau khi cả hai bản sao đều được xác nhận** — bảo đảm dữ liệu bền vững trước khi VM nhận tín hiệu ghi hoàn tất
6. Các cập nhật siêu dữ liệu trên Tier 0 được **gom lô** và áp dụng bất đồng bộ thay vì tuần tự hóa đường dữ liệu qua một chỉ mục trung tâm

### Đường đọc

Khi một VM đọc dữ liệu:

1. Vị trí của khối được suy ra từ mã băm nội dung và các bản đồ thiết bị theo từng tầng
2. Hệ thống **ưu tiên đọc từ bản sao chính**
3. Nếu một bản sao dự phòng tồn tại trên **cùng nút với VM đang yêu cầu**, VergeFS đọc **bản sao cục bộ** để giảm thiểu lưu lượng mạng (ưu tiên đọc cục bộ)
4. Nếu bản sao chính chậm hoặc không phản hồi, VergeFS tự động **chuyển sang bản sao dự phòng** — một cách minh bạch, không làm gián đoạn VM

```mermaid
flowchart TB
    VM["Yêu cầu đọc VM"] --> LOOKUP["Suy ra vị trí<br/>từ mã băm nội dung"]
    LOOKUP --> LOCAL{"Có bản sao cục bộ<br/>khả dụng?"}
    LOCAL -->|Có| READLOCAL["Đọc bản sao<br/>dự phòng cục bộ"]
    LOCAL -->|Không| PRIMARY["Đọc từ<br/>nút chính"]
    PRIMARY --> HEALTHY{"Nút chính<br/>phản hồi?"}
    HEALTHY -->|Có| RETURN["Trả dữ liệu<br/>cho VM"]
    HEALTHY -->|Không| FAILOVER["Chuyển sang<br/>bản sao dự phòng"]
    READLOCAL --> RETURN
    FAILOVER --> RETURN

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

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

Các khối dữ liệu được phân phối trên **tất cả các nút tham gia lưu trữ** trong mỗi tầng. Thiết kế này mang lại:

* **Hiệu năng cân bằng** — Tải I/O được phân bổ trên tất cả các nút, ngăn chặn điểm nóng
* **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
* **I/O song song** — Nhiều nút phục vụ dữ liệu đồng thời, tăng thông lượng tổng thể

## Khử trùng lặp toàn cục nội tuyến

VergeOS vSAN thực hiện **khử trùng lặp toàn cục nội tuyến** luôn bật và không cần cấu hình. Vì mọi khối dữ liệu đều được nhận diện bằng mã băm nội dung của nó, khử trùng lặp là hệ quả tự nhiên của kiến trúc:

1. Khi một khối mới được ghi, mã băm của nó được tính
2. Nếu một mã băm giống hệt đã tồn tại, khối đó là bản sao trùng — khử trùng lặp là hệ quả tự nhiên của định địa chỉ theo nội dung
3. Đối với các khối trùng lặp, không tốn thêm dung lượng lưu trữ — khối hiện có պարզապես được tham chiếu lại
4. Điều này hoạt động **nội tuyến** (trong đường ghi), chứ không phải như một tác vụ nền

Khử trùng lặp hoạt động **trên tất cả VM, tất cả các tầng và mọi loại dữ liệu** trong hệ thống. Các tình huống phổ biến mà khử trùng lặp mang lại tiết kiệm dung lượng đáng kể bao gồm:

* Nhiều VM chạy cùng một hệ điều hành (chia sẻ các khối OS)
* Triển khai VM dựa trên mẫu (ảnh nền được nhân bản)
* Môi trường phát triển với các cấu hình tương tự
* Các bản chụp sao lưu với thay đổi dữ liệu tối thiểu giữa các lần

Tỷ lệ khử trùng lặp có thể xem trong bảng điều khiển lưu trữ VergeOS, thường hiển thị mức tiết kiệm dung lượng hiệu quả trên từng tầng.

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

Đang chuyển từ VMware vSAN? Khử trùng lặp VergeOS luôn bật, nội tuyến và toàn cục trên mọi loại tầng (NVMe, SSD, HDD) — không có công tắc và không có bước bật riêng.
{% endhint %}

## Nén

VergeOS vSAN không **không** nén dữ liệu khi lưu trữ. Không giống các nền tảng áp dụng nén nội tuyến cho các khối đã lưu, VergeFS lưu dữ liệu ở dạng nguyên bản trên đĩa.

**Nén chỉ được áp dụng trong quá trình sao chép đồng bộ site-sync** — khi dữ liệu được truyền giữa các site VergeOS qua mạng. Trong bối cảnh này, nén giảm mức tiêu thụ băng thông trong các lần truyền WAN mà không ảnh hưởng đến hiệu năng lưu trữ cục bộ.

Thiết kế này giữ cho đường I/O cục bộ đơn giản và nhanh. Khử trùng lặp (đã mô tả ở trên) mang lại lợi ích tiết kiệm dung lượng chính cho dữ liệu đã lưu.

## Mã hóa AES-256 khi lưu trữ

vSAN hỗ trợ **mã hóa AES-256 khi lưu trữ**, được cấu hình trong quá trình cài đặt VergeOS ban đầu. Các chi tiết chính:

| Khía cạnh               | Chi tiết                                                        |
| ----------------------- | --------------------------------------------------------------- |
| **Thuật toán**          | AES-256                                                         |
| **Khi được cấu hình**   | Chỉ trong quá trình cài đặt ban đầu                             |
| **Khả năng đảo ngược**  | Không thể đảo ngược sau khi cài đặt                             |
| **Phạm vi**             | Tất cả dữ liệu trên mọi tầng đều được mã hóa một cách minh bạch |
| **Tùy chọn lưu khóa 1** | Ổ USB cắm vào hai nút bộ điều khiển đầu tiên                    |
| **Tùy chọn lưu khóa 2** | Nhập mật khẩu thủ công ở mỗi lần khởi động hệ thống             |

Việc mã hóa là minh bạch đối với VM và ứng dụng — chúng đọc và ghi dữ liệu bình thường trong khi VergeFS xử lý mã hóa và giải mã ở cấp khối. Cấu hình mã hóa áp dụng trên toàn hệ thống; bạn không thể mã hóa một số tầng và để các tầng khác không được mã hóa.

Để xác minh trạng thái mã hóa: điều hướng đến **Nodes > Node 1 > Drives**, nhấp đúp vào ổ đầu tiên, và kiểm tra hộp chọn **Đã mã hóa** .

## Các mô hình dự phòng

vSAN duy trì nhiều bản sao của mỗi khối dữ liệu để bảo vệ trước các lỗi phần cứng. Tính dự phòng được cấu hình ở **cấp hệ thống** và áp dụng **theo từng tầng** — không phải theo từng VM hay từng vùng chứa lưu trữ.

| 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) | \~2x                 | \~3x      |

**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ó duy trì hai bản sao của mỗi khối trên các nút khác nhau, chịu được một lỗi nút đồng thời.

**N+2 (RF3)** duy trì ba bản sao trên ba nút trở lên, chịu được hai lỗi đồng thời. Điều này được thiết kế cho các workload cực kỳ quan trọng hoặc các site từ xa/biên nơi phần cứng thay thế không thể đến nhanh chó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 đủ. Ví dụ, trong hệ thống N+2, nếu các ổ Tier 1 hỏng trên hai nút và một ổ Tier 4 hỏng trên nút thứ ba, cụm vẫn hoạt động mà không mất dữ liệu.

{% hint style="success" %}
**Máy chủ sửa chữa**

Để bảo vệ bổ sung ngoài mức dự phòng đã cấu hình, một **Máy chủ sửa chữa** có thể được cấu hình để tự động lấy lại các khối dữ liệu bị thiếu từ đích đồng bộ nếu số lỗi vượt quá mức dự phòng đã cấu hình — có thể tránh được việc khôi phục toàn bộ ảnh chụp nhanh.
{% endhint %}

## Tự phục hồi

Khi một nút hoặc ổ đĩa bị lỗi, vSAN tự động phát hiện lỗi và bắt đầu khôi phục mà không cần can thiệp thủ công:

```mermaid
flowchart LR
    A["Phát hiện lỗi<br/>ổ đĩa hoặc nút"] --> B["Đọc/Ghi được chuyển hướng<br/>sang các bản sao dự phòng"]
    B --> C["Các VM tiếp tục<br/>chạy — không gián đoạn"]
    B --> D["Tái tạo tự động<br/>bắt đầu ngay lập tức"]
    D --> E["Các khối bị thiếu<br/>được sao chép lại đến<br/>các nút khỏe mạnh"]
    E --> F["Khôi phục đầy đủ<br/>dự phòng"]

    style A fill:#fce4ec,stroke:#c62828
    style C fill:#e8f5e9,stroke:#2e7d32
    style F fill:#e8f5e9,stroke:#2e7d32
```

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

1. **Phát hiện** — vSAN liên tục giám sát tình trạng của ổ đĩa và nút. Các lỗi được phát hiện tự động.
2. **Chuyển sang dự phòng** — Việc đọc và ghi được chuyển hướng ngay lập tức sang các bản sao dự phòng. VM không gặp thời gian chết.
3. **Dựng lại** — Các khối dữ liệu bị thiếu được sao chép lại từ các bản sao còn sống sang các nút khỏe mạnh còn lại. Việc này diễn ra ở nền trong khi workload vẫn tiếp tục chạy.
4. **Khôi phục** — Khi tất cả các khối đã được sao chép lại, tầng sẽ trở về mức dự phòng đã cấu hình.

### Toàn vẹn dữ liệu

Ngoài việc khôi phục sau lỗi, vSAN còn thực hiện **phát hiện hỏng bit liên tục** bằng cách xác thực mã băm. Mã băm được lưu của mỗi khối được kiểm tra định kỳ so với nội dung của nó. Nếu phát hiện hỏng, khối sẽ tự động được sửa từ một bản sao dự phòng hợp lệ.

## Ảnh chụp nhanh và bản sao tiết kiệm dung lượng

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** tiêu thụ thêm dung lượng tối thiểu:

* Một ảnh chụp nhanh ghi lại **trạng thái chỉ mục hệ thống tệp tại một thời điểm** — nó không sao chép các khối dữ liệu
* Các khối được một ảnh chụp nhanh tham chiếu vẫn được giữ lại ngay cả khi VM gốc xóa chúng (đếm tham chiếu)
* Các bản sao hoạt động tương tự — chúng tham chiếu cùng các khối nền tảng, chỉ tốn thêm dung lượng khi dữ liệu phân kỳ (copy-on-write)
* Ảnh chụp nhanh có thể được tạo **bất biến thông qua một cờ tùy chọn** với các trạng thái Unlocked/Locked/Unlocking và độ trễ mở khóa bảy ngày sau khi đã khóa; ảnh chụp nhanh mặc định có thể xóa. Hãy khóa ảnh chụp nhanh khi cần bảo vệ chống ransomware hoặc đảm bảo lưu giữ.

### Xóa và thu gom rác

Khi một VM, ổ đĩa hoặc ảnh chụp nhanh bị xóa:

1. Các mã băm của tệp được xóa khỏi cây thư mục vSAN
2. Tính năng **vSAN Walk** quá trình quét vi sai suy ra lại các số đếm tham chiếu từ các mã băm còn hoạt động còn lại — số đếm không được lưu, chúng được dựng lại khi quá trình quét đi qua
3. Các khối đạt 0 tham chiếu sẽ chờ khoảng **10 lượt quét (\~70 giây)** trước khi đủ điều kiện để thu hồi, tạo một cửa sổ an toàn chống biến động nhanh
4. Dung lượng lưu trữ vật lý được giải phóng bất đồng bộ khi quá trình quét thu hồi các khối đó

Đó là lý do dung lượng lưu trữ có thể không giảm ngay sau khi xóa — việc thu hồi diễn ra bất đồng bộ trong các thao tác vSAN Walk nền.

## Điểm chính

| Khái niệm          | Tóm tắt                                                                                                                                                                  |
| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **VergeFS**        | Lưu trữ phân tán tích hợp — không có SAN/NAS bên ngoài, không có overhead CVM                                                                                            |
| **Kiến trúc khối** | Tất cả dữ liệu được chia thành các khối, mỗi khối được nhận diện bằng mã băm nội dung SHA-1                                                                              |
| **Tầng 0**         | Chỉ siêu dữ liệu (chỉ mục hệ thống tệp + các bản đồ thiết bị theo từng tầng). Không phải bộ nhớ đệm. Bắt buộc trên các nút bộ điều khiển (nút 1–2 cho N+1, 1–3 cho N+2). |
| **Phân phối**      | Dựa trên mã băm, trải rộng trên tất cả các nút tham gia lưu trữ theo từng tầng                                                                                           |
| **Khử trùng lặp**  | Nội tuyến, luôn bật, toàn cục trên mọi tầng — không cần cấu hình                                                                                                         |
| **Nén**            | Không phải khi lưu trữ tĩnh — chỉ trong quá trình nhân bản site-sync                                                                                                     |
| **Mã hóa**         | AES-256 khi lưu trữ, cấu hình trong lúc cài đặt, không thể đảo ngược                                                                                                     |
| **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 đổi dự phòng và tái tạo khi lỗi, phát hiện hỏng bit liên tục                                                                                              |
| **Các snapshot**   | Tham chiếu mã băm tại một thời điểm, tiết kiệm dung lượng; tính bất biến là tùy chọn (Unlocked/Locked/Unlocking, độ trễ mở khóa 7 ngày)                                  |

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

Bây giờ bạn đã hiểu kiến trúc nội bộ của vSAN, chủ đề tiếp theo sẽ đề cập cách hệ thống tầng hoạt động trong thực tế — cấu hình các tầng, gán ổ đĩa, lập kế hoạch dung lượng và mở rộng lưu trữ: [**Các tầng lưu trữ**](/learn-the-platform/vi/mo-dun-5-luu-tru/02-storage-tiers.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-5-luu-tru/01-vsan-architecture.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.
