> 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-6-may-ao/03-gpu-passthrough.md).

# Passthrough GPU & Thiết bị

## Tổng quan

VergeOS hỗ trợ nhiều hình thức passthrough thiết bị, cho phép máy ảo truy cập trực tiếp phần cứng vật lý gắn vào các node host. Điều này cho phép các workload cần truy cập thiết bị kiểu bare-metal -- kết xuất tăng tốc bằng GPU, huấn luyện AI/ML, khóa bảo mật phần cứng, mạng hiệu năng cao -- trong khi vẫn hưởng lợi từ cơ chế điều phối, snapshot và đa thuê bao của VergeOS.

Tất cả các kiểu passthrough đều dùng chung một kiến trúc dựa trên **nhóm tài nguyên** và **quy tắc tài nguyên**, mang lại trải nghiệm quản lý nhất quán bất kể loại thiết bị.

```mermaid
flowchart TB
    subgraph host["Node host"]
        PCI["Thiết bị PCI"]
        GPU["GPU NVIDIA"]
        NIC["NIC SR-IOV"]
        USB["Thiết bị USB"]
    end

    subgraph rm["Trình quản lý tài nguyên"]
        RG["Nhóm tài nguyên"]
        RR["Quy tắc tài nguyên"]
    end

    subgraph targets["Đích gán"]
        VM["Máy ảo"]
        TN["Tenant"]
    end

    PCI --> RG
    GPU --> RG
    NIC --> RG
    USB --> RG
    RG --- RR
    RG --> VM
    RG --> TN
```

## Yêu cầu BIOS

Trước khi cấu hình bất kỳ passthrough dựa trên PCI nào (PCI một-một, NVIDIA vGPU, hoặc SR-IOV), BIOS của máy chủ phải bật hỗ trợ ảo hóa phần cứng và IOMMU:

| Nhà cung cấp | Thiết lập bắt buộc                                            |
| ------------ | ------------------------------------------------------------- |
| **Intel**    | **VT-d** và **VT-x** được bật; **SR-IOV** được bật            |
| **AMD**      | **AMD-Vi / AMD-V** và **IOMMU** được bật; **SR-IOV** được bật |

{% hint style="success" %}
Tên các thiết lập BIOS khác nhau tùy nhà cung cấp. Hãy tìm các thuật ngữ như *Công nghệ ảo hóa*, *Passthrough PCI*, *IOMMU*hoặc *PCIe ACS*. Hãy tham khảo tài liệu của nhà cung cấp phần cứng nếu các thiết lập không rõ ràng ngay.
{% endhint %}

### Nhóm IOMMU

Tất cả các thiết bị PCI trong cùng một **nhóm IOMMU** được passthrough cùng nhau -- một nhóm IOMMU duy nhất không thể bị tách giữa các guest khác nhau. Các ví dụ phổ biến về nhóm IOMMU dùng chung gồm:

* Một GPU và bộ điều khiển âm thanh đi kèm của nó
* Cả hai cổng của một NIC hai cổng
* Nhiều thiết bị dùng chung một card riser PCI trên cùng một khe

Bạn có thể xem thành viên nhóm IOMMU trong giao diện VergeOS tại **Hạ tầng > Tài nguyên > Thiết bị PCI**. Nhấp vào **IOMMU** tiêu đề cột để sắp xếp và xác định các thiết bị được nhóm.

{% hint style="warning" %}
**Thiết bị Host quan trọng**

**Không bao giờ** passthrough các thiết bị khởi động, bộ điều khiển hệ thống chính, hoặc bộ điều khiển mạng fabric lõi. Passthrough một thiết bị quan trọng của host sẽ khiến nó không dùng được cho host và có thể làm một node riêng lẻ hoặc toàn bộ hệ thống mất ổn định. Luôn xác minh rằng bạn có **quyền truy cập IPMI hoặc console vật lý** trước khi thực hiện thay đổi passthrough.
{% endhint %}

## Nhóm tài nguyên & Quy tắc tài nguyên

VergeOS sử dụng một lớp trừu tượng hai tầng cho mọi passthrough thiết bị:

### Nhóm tài nguyên

Một **nhóm tài nguyên** là một nhóm được đặt tên gồm một hoặc nhiều thiết bị vật lý (hoặc virtual-function) cùng loại. Khi bạn gắn một thiết bị vào VM hoặc tenant, bạn chọn nhóm tài nguyên -- hệ thống sẽ tự động gán một thiết bị còn sẵn từ nhóm khi VM khởi động.

Các loại nhóm tài nguyên:

* **PCI** -- passthrough độc quyền một-một
* **NVIDIA vGPU** -- các lát GPU ảo được chia sẻ
* **SR-IOV NIC** -- bộ điều hợp mạng hàm ảo
* **USB** -- passthrough thiết bị USB

### Quy tắc tài nguyên

**Quy tắc tài nguyên** xác định các tiêu chí lọc quyết định thiết bị vật lý nào thuộc về một nhóm tài nguyên. Mỗi quy tắc có thể khớp theo các thuộc tính như tên thiết bị, nhà cung cấp, khe, số sê-ri, v.v. Các trường lọc khả dụng thay đổi theo loại thiết bị.

| Phương thức tạo | Mô tả                                                                                             |
| --------------- | ------------------------------------------------------------------------------------------------- |
| **Tự động tạo** | Chọn một thiết bị và nhấp **Tạo tài nguyên** -- hệ thống sẽ tự động tạo các quy tắc (khuyến nghị) |
| **Thủ công**    | Tạo quy tắc qua **Hạ tầng > Tài nguyên > Quy tắc > Mới** với biểu thức lọc tùy chỉnh              |

Các toán tử lọc gồm: Bằng, Không bằng, Nhỏ/Lớn hơn, Bắt đầu bằng, Kết thúc bằng, Chứa (phân biệt hoặc không phân biệt chữ hoa chữ thường), và Regex.

## Các loại passthrough thiết bị

### Passthrough PCI một-một

Passthrough PCI một-một dành riêng một thiết bị PCI vật lý cho một VM tại một thời điểm. Hệ điều hành guest sẽ nhìn thấy và điều khiển thiết bị như thể nó được gắn trực tiếp về mặt vật lý.

**Các trường hợp sử dụng phổ biến:** GPU chuyên dụng cho kết xuất, HBA chuyên biệt, bộ tăng tốc FPGA, hoặc bất kỳ thiết bị nào cần truy cập phần cứng trực tiếp.

#### Hướng dẫn cấu hình

**Phía host:**

1. Đi tới **Hạ tầng > Tài nguyên** (bảng điều khiển Trình quản lý tài nguyên).
2. Nhấp **Thiết bị PCI** để liệt kê tất cả thiết bị được phát hiện trên các node.
3. Chọn (các) thiết bị mục tiêu và nhấp **Tạo tài nguyên**.
4. Chọn một nhóm tài nguyên PCI hiện có hoặc tạo mới (Loại: **PCI**).
5. Khởi động lại (các) node liên quan nếu được nhắc (dùng **Chế độ bảo trì** để tránh gián đoạn workload).

**Phía VM:**

1. Mở bảng điều khiển VM mục tiêu (**Máy ảo > Danh sách > chọn VM**).
2. Nhấp **Thiết bị > Mới**.
3. Đặt Loại thành **PCI**, chọn nhóm tài nguyên và chỉ định số lượng thiết bị.
4. Nhấp **Gửi**, rồi **khởi động lại** VM để gắn thiết bị.
5. Cài đặt bất kỳ driver guest nào cần thiết từ nhà cung cấp phần cứng.

{% hint style="info" %}
**Hạn chế di chuyển**

Các VM có thiết bị passthrough PCI một-một **không thể được di chuyển trực tiếp** giữa các node. VM được ghim vào node nơi thiết bị vật lý cư trú. Hãy lên kế hoạch bảo trì node phù hợp -- VM phải được tắt và khởi động lại trên một node khác có sẵn thiết bị tương đương trong cùng nhóm tài nguyên.
{% endhint %}

### NVIDIA vGPU (GPU ảo)

Công nghệ NVIDIA vGPU chia một GPU NVIDIA vật lý thành nhiều GPU ảo, cho phép nhiều VM cùng chia sẻ một phần cứng GPU đồng thời. Đây là lựa chọn lý tưởng cho triển khai VDI, suy luận AI/ML, và các ứng dụng tăng tốc GPU không cần cấp phát toàn bộ thiết bị.

**Các ưu điểm chính so với passthrough GPU một-một:**

* Nhiều VM chia sẻ một GPU vật lý duy nhất
* **Hỗ trợ di chuyển trực tiếp (thử nghiệm)** -- các VM vGPU có thể di chuyển giữa các node mà không có thời gian chết (tính năng thử nghiệm từ 4.13+)
* Kích thước linh hoạt thông qua các profile NVIDIA vGPU (với lượng framebuffer khác nhau cho mỗi VM)

{% hint style="info" %}
**Điều kiện tiên quyết cho di chuyển trực tiếp vGPU**

Di chuyển trực tiếp vGPU yêu cầu thiết lập cấp cụm **Cho phép di chuyển trực tiếp vGPU** được bật (**Cụm > \[Tên cụm] > Chỉnh sửa**). Nếu các node đích không có dung lượng vGPU tương thích, workload có thể tạm thời bị tắt trong quá trình bảo trì thay vì được di chuyển trực tiếp.
{% endhint %}

{% hint style="warning" %}
**Cấp phép**

Cần có giấy phép NVIDIA GRID cho vGPU. Hãy lấy giấy phép từ [Cổng cấp phép NVIDIA](https://nvidia.com/en-us/data-center/resources/vgpu-evaluation) hoặc đăng ký bản dùng thử.
{% endhint %}

{% hint style="info" %}
**GPU AMD**

vGPU là một **chỉ dành cho NVIDIA** tính năng. GPU AMD không được hỗ trợ cho việc phân tách GPU ảo trong VergeOS. GPU AMD vẫn có thể được dùng qua passthrough PCI một-một.
{% endhint %}

#### MIG và các profile vGPU dị thể

Bắt đầu từ VergeOS 26.1.3, các GPU NVIDIA được hỗ trợ có thể được cấu hình với các tùy chọn phân vùng vGPU bổ sung:

* **GPU đa thể hiện (MIG)** -- một GPU được hỗ trợ duy nhất có thể được phân vùng thành tối đa bảy thể hiện cách ly phần cứng, cung cấp đảm bảo về tính toán, bộ nhớ và băng thông bộ nhớ cho mỗi thể hiện mà không có tranh chấp tài nguyên. Yêu cầu hỗ trợ của thiết bị (khuyến nghị driver trung tâm dữ liệu NVIDIA mới nhất).
* **Các profile vGPU dị thể** -- nhiều loại và kích thước profile vGPU truyền thống có thể chạy đồng thời trên cùng một thiết bị vật lý. Yêu cầu driver NVIDIA phiên bản 17.2 trở lên và có hỗ trợ thiết bị. Không thể trộn MIG và các profile truyền thống trên cùng một thiết bị vật lý.

#### Hướng dẫn cấu hình

**Phía host:**

1. Hãy lấy driver **gói NVIDIA Linux-KVM** phù hợp với phần cứng GPU của bạn từ cổng cấp phép NVIDIA.
2. Tải gói driver lên **VergeOS vSAN** (Hệ thống > Tệp hoặc tải lên bằng kéo-thả).
3. Đi tới **Hạ tầng > Tài nguyên** và nhấp **Thiết bị PCI**, rồi lọc theo Loại = **Bộ điều khiển hiển thị** để xem các GPU vật lý tương thích.
4. Chọn (các) GPU mục tiêu và nhấp **Tạo tài nguyên**.
5. Chọn một nhóm tài nguyên NVIDIA vGPU hiện có hoặc tạo mới (Loại: **NVIDIA vGPU**).
6. Trong quá trình tạo nhóm tài nguyên, hãy chọn **profile vGPU** (xác định phân bổ framebuffer cho mỗi VM).
7. Khởi động lại (các) node liên quan nếu được nhắc.

{% hint style="success" %}
**Kiểm tra các driver được hỗ trợ**

Trong giao diện VergeOS, điều hướng đến **Trình quản lý tài nguyên > Nhóm > Mới**, đặt Loại thành *NVIDIA vGPU*, và nhấp nút để xem các driver bên thứ ba tương thích. Hãy dùng driver mới nhất tương thích với phần cứng của bạn.
{% endhint %}

**Phía VM:**

1. Mở bảng điều khiển VM mục tiêu và nhấp **Thiết bị > Mới**.
2. Đặt Loại thành **NVIDIA vGPU** và chọn nhóm tài nguyên.
3. Nhấp **Gửi** và **khởi động lại** VM.
4. Cài đặt **driver khách NVIDIA GRID** trong VM (khớp với nhánh driver của host).
5. Tạo một token cấu hình client trên máy chủ cấp phép NVIDIA, tải nó xuống guest VM, rồi khởi động lại VM.

### NIC hàm ảo SR-IOV

Single Root I/O Virtualization (SR-IOV) tạo ra nhiều **hàm ảo (VF)** từ một bộ điều hợp mạng vật lý duy nhất có hỗ trợ SR-IOV. Mỗi VF hoạt động như một NIC độc lập có thể được gán cho VM, mang lại hiệu năng mạng gần như gốc bằng cách bỏ qua ngăn xếp mạng phần mềm.

**Các trường hợp sử dụng phổ biến:** các workload nhạy độ trễ, đường ống dữ liệu thông lượng cao, NFV (ảo hóa chức năng mạng), và các kịch bản cần truy cập NIC trực tiếp.

{% hint style="info" %}
VergeOS cung cấp sẵn các bộ điều hợp mạng ảo với đầy đủ tính di động, dự phòng và tính năng điều phối. NIC VF SR-IOV bỏ qua mạng của VergeOS, đồng nghĩa với việc bạn mất đi tính di động vốn có, failover và các tính năng mạng được quản lý khác. Chỉ nên dùng SR-IOV khi passthrough NIC trực tiếp là yêu cầu bắt buộc.
{% endhint %}

#### Hướng dẫn cấu hình

1. Đi tới **Hạ tầng > Tài nguyên** và nhấp **NIC SR-IOV**.
2. Nhấp **Thiết bị PCI NIC** để liệt kê các thiết bị vật lý tương thích.
3. Chọn (các) NIC mục tiêu và nhấp **Tạo tài nguyên**.
4. Tạo một nhóm tài nguyên SR-IOV mới (Loại: **SR-IOV NIC**) và cấu hình:
   * **Số thiết bị VF** trên mỗi thiết bị vật lý
   * **VLAN gốc** thẻ (tùy chọn)
   * **Giới hạn băng thông** (Mbps truyền tối thiểu và tối đa)
   * **Trạng thái liên kết ảo** (Tự động, Bật, hoặc Tắt)
   * **Kiểm tra giả mạo**, **Tin cậy**, và **Ưu tiên QoS** cài đặt
5. Gắn VF SR-IOV vào VM qua **Thiết bị > Mới > NIC SR-IOV**.
6. Cài đặt driver NIC phù hợp bên trong hệ điều hành guest.

### Passthrough thiết bị USB

Passthrough USB cho phép VM truy cập một thiết bị USB gắn vào host như thể nó được gắn trực tiếp. Điều này hữu ích cho khóa bản quyền phần cứng, camera an ninh, bàn phím/chuột, và các thiết bị ngoại vi USB khác.

#### Hướng dẫn cấu hình

1. Đi tới **Hạ tầng > Tài nguyên** (hoặc bảng điều khiển của một node cụ thể).
2. Nhấp **Thiết bị USB** để liệt kê các thiết bị ngoại vi USB được phát hiện.
3. Chọn (các) thiết bị mục tiêu và nhấp **Tạo tài nguyên**.
4. Tạo hoặc chọn một nhóm tài nguyên USB (Loại: **USB**).
5. Cấu hình các thiết lập tùy chọn: **Cho phép guest đặt lại** và **Cho phép guest đặt lại tất cả**.
6. Gắn thiết bị USB vào VM qua **Thiết bị > Mới > USB**.

## Chuyển thiết bị cho tenant

Cả bốn kiểu passthrough (PCI, NVIDIA vGPU, NIC SR-IOV, USB) có thể được chia sẻ xuống **tenant**, cho phép quản trị viên tenant gán thiết bị cho các VM của riêng họ. Khi thiết bị được chuyển cho tenant:

* Một **nhóm tài nguyên mới** được tạo tự động bên trong tenant.
* Các thiết bị được **cấp phát dày** -- tenant sở hữu độc quyền (các) thiết bị, ngay cả khi không sử dụng.
* VM của tenant phải chạy trên **node tenant** nơi thiết bị được gắn.

**Hướng dẫn:**

1. Đi tới **bảng điều khiển tenant** (**Tenant > Danh sách > chọn tenant**).
2. Nhấp **Nút**, sau đó nhấp đúp vào một node tenant.
3. Nhấp **Thiết bị > Mới**.
4. Chọn thiết bị **Loại** và cấu hình số lượng.
5. Nhấp **Gửi**. Nhóm tài nguyên giờ đã khả dụng bên trong tenant.

## So sánh các kiểu passthrough

| Tính năng                  | PCI một-một                | NVIDIA vGPU                   | SR-IOV NIC            | USB                                   |
| -------------------------- | -------------------------- | ----------------------------- | --------------------- | ------------------------------------- |
| **Chia sẻ**                | 1 thiết bị : 1 VM          | 1 GPU : nhiều VM              | 1 NIC : nhiều VF      | 1 thiết bị : 1 VM                     |
| **Di chuyển nóng**         | Không                      | **Có (thử nghiệm, 4.13+)**    | Không                 | Không                                 |
| **Yêu cầu IOMMU**          | Có                         | Có                            | Có                    | Không                                 |
| **Yêu cầu driver**         | Tùy theo nhà cung cấp      | NVIDIA GRID                   | Tùy theo nhà cung cấp | Khác nhau                             |
| **Hỗ trợ tenant**          | Có (cấp phát dày)          | Có (cấp phát dày)             | Có (cấp phát dày)     | Có (cấp phát dày)                     |
| **Các trường hợp sử dụng** | GPU chuyên dụng, FPGA, HBA | VDI, suy luận AI/ML, kết xuất | Mạng độ trễ thấp, NFV | USB khóa bản quyền, thiết bị ngoại vi |

## Các trường hợp sử dụng & khuyến nghị

### VDI & máy tính từ xa

Sử dụng **NVIDIA vGPU** để chia sẻ một GPU duy nhất cho hàng chục máy tính để bàn ảo. Các profile vGPU cho phép bạn cân bằng phân bổ framebuffer theo từng người dùng. Hỗ trợ di chuyển trực tiếp để bảo trì không gián đoạn.

### Huấn luyện AI / ML

Đối với workload huấn luyện chuyên dụng, hãy dùng **passthrough PCI một-một** để cấp cho VM quyền truy cập đầy đủ vào một GPU vật lý. Đối với truy cập phân vùng vào các GPU trung tâm dữ liệu hỗ trợ MIG (như NVIDIA A100 hoặc H100), hãy dùng **vGPU dựa trên MIG** profile. Đối với suy luận hoặc workload nhẹ hơn, **vGPU** cung cấp cơ chế chia sẻ hiệu quả.

### Mạng hiệu năng cao

**NIC VF SR-IOV** mang lại thông lượng mạng gần như gốc cho các ứng dụng nhạy độ trễ như phân tích thời gian thực, giao dịch tài chính, hoặc ảo hóa chức năng mạng.

### Thiết bị ngoại vi phần cứng

**Passthrough USB** cho phép VM truy cập khóa bản quyền, camera an ninh, máy quét mã vạch và các thiết bị USB khác như thể được kết nối trực tiếp.

## Điểm chính

* **Nhóm tài nguyên và quy tắc tài nguyên** là cơ chế chung cho mọi passthrough thiết bị trong VergeOS -- học một lần, áp dụng ở mọi nơi.
* **Cấu hình BIOS** (VT-d/VT-x cho Intel, AMD-Vi/IOMMU cho AMD) là điều kiện tiên quyết cho mọi passthrough dựa trên PCI.
* **NVIDIA vGPU là kiểu passthrough duy nhất hỗ trợ di chuyển trực tiếp (thử nghiệm, 4.13+)** -- khiến nó trở thành lựa chọn ưu tiên cho các workload GPU cần tính sẵn sàng cao, dù tính năng này nên được kiểm chứng trong môi trường của bạn trước khi dùng trong sản xuất.
* **Passthrough PCI một-một** mang lại hiệu năng thiết bị tối đa nhưng ghim VM vào một node cụ thể.
* **NIC SR-IOV** bỏ qua mạng ảo của VergeOS để đạt thông lượng gần như gốc nhưng đánh đổi các tính năng mạng được quản lý.
* Tất cả các loại thiết bị đều có thể được **chia sẻ cho tenant** thông qua cấp phát dày, cho phép MSP cung cấp GPU hoặc phần cứng chuyên biệt cho từng khách hàng riêng lẻ.


---

# 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-6-may-ao/03-gpu-passthrough.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.
