Chuyển tiếp GPU trên Hyper-V: Hướng dẫn cơ bản dành cho người mới bắt đầu

Các máy ảo Hyper-V sử dụng bộ điều khiển đồ họa được mô phỏng theo mặc định, điều này đủ cho các tác vụ hiển thị cơ bản nhưng lại thiếu hiệu năng cần thiết cho các tác vụ được tăng tốc bằng GPU như kết xuất 3D, suy luận học máy hoặc tính toán dựa trên CUDA. Tính năng truyền qua GPU (GPU passthrough) của Hyper-V giải quyết vấn đề này bằng cách gán trực tiếp một card đồ họa vật lý cho máy ảo, bỏ qua quá trình mô phỏng và cho phép hệ điều hành khách truy cập đầy đủ vào GPU phần cứng.

Hướng dẫn này trình bày hai phương pháp gán GPU hiện có trong Hyper-V: Gán thiết bị trực tiếp (DDA) và phân vùng GPU (GPU-P). Hãy đọc bài viết này để tìm hiểu cách đáp ứng các yêu cầu về phần cứng và phần mềm, cấu hình từng phương pháp trên Windows Server và các phiên bản Windows dành cho máy khách, cũng như khắc phục các sự cố thường gặp.

NAKIVO cho sao lưu Hyper-V

NAKIVO cho sao lưu Hyper-V

Sao lưu không cần trình điều khiển, nhận diện ứng dụng dành cho Hyper-V. Bảo vệ chống ransomware, khởi động máy ảo ngay lập tức từ bản sao lưu, hỗ trợ các nền tảng ảo và vật lý khác, cùng nhiều tính năng khác.

Có gì mới?

Hướng dẫn này đã được cập nhật để phản ánh những thay đổi được giới thiệu trong Windows Server 2025 và các phiên bản Windows dành cho máy khách gần đây:

  • Windows Server 2025 giới thiệu tính năng phân vùng GPU (GPU-P) như một tính năng doanh nghiệp được hỗ trợ đầy đủ, cho phép nhiều máy ảo (VM) chia sẻ một GPU vật lý duy nhất thông qua cơ chế cách ly dựa trên SR-IOV.
  • Chức năng di chuyển trực tiếp (Live migration) hiện được hỗ trợ cho các máy ảo có phân vùng GPU trong Windows Server 2025, cho phép bảo trì máy chủ mà không gây gián đoạn hoạt động của máy ảo.
  • Hỗ trợ cụm chuyển đổi dự phòng (Failover clustering) đã được mở rộng: các máy ảo GPU-P có thể được cấu hình dưới dạng vai trò cụm, và các máy ảo được hỗ trợ bởi DDA có thể khởi động lại trên một nút cụm khác nếu có GPU tương thích sẵn có.
  • Thành phần RemoteFX vGPU đã bị loại bỏ hoàn toàn trong Windows Server 2025 (đã bị loại bỏ kể từ Windows Server 2019).
  • Hướng dẫn khắc phục sự cố và các lưu ý về sao lưu đã được cập nhật cho các máy ảo hỗ trợ GPU.

GPU Passthrough là gì?

Khi một máy ảo Hyper-V khởi động, nó sẽ nhận được một bộ điều hợp video mô phỏng để hiển thị đồ họa thông qua CPU của máy chủ. Điều này đủ để truy cập bảng điều khiển và sử dụng máy tính để bàn cơ bản, nhưng không thể khai thác các tính năng phần cứng mà các tác vụ phụ thuộc vào GPU cần đến: Shader tính toán, mã hóa video bằng phần cứng, lõi CUDA hoặc hỗ trợ DirectX 12.

GPU passthrough loại bỏ lớp mô phỏng này. Thay vì truyền đồ họa qua bộ điều hợp ảo, Hyper-V sẽ gán một card đồ họa vật lý cho máy ảo ở cấp độ PCI Express (PCIe). Hệ điều hành khách giao tiếp trực tiếp với GPU, sử dụng trình điều khiển gốc của nhà sản xuất thay vì lớp trừu tượng hóa của Hyper-V. Từ góc độ của các ứng dụng đang chạy bên trong máy ảo, GPU hoạt động như thể nó được cài đặt trên một máy vật lý.

Hyper-V hỗ trợ hai cơ chế cho tính năng này. Gán thiết bị trực tiếp (DDA) giao toàn bộ GPU vật lý cho một máy ảo duy nhất. Phân vùng GPU (GPU-P) chia một card thành các phần riêng biệt để nhiều máy ảo có thể chia sẻ nó. Cả hai cơ chế này sẽ được trình bày chi tiết hơn ở phần sau của hướng dẫn này.

Lưu ý: Một GPU có thể được tích hợp vào chip CPU (thường thấy trong các bộ xử lý Intel và AMD gần đây) hoặc được lắp trên một card đồ họa rời kết nối với bo mạch chủ qua PCIe. Truyền qua và phân vùng GPU thường nhắm đến GPU rời, mặc dù GPU-P trên các phiên bản Windows dành cho máy khách cũng có thể hoạt động với đồ họa tích hợp.

Những lợi ích chính của truyền qua GPU trong Hyper-V

Card đồ họa vật lý được kết nối thông qua tính năng truyền qua GPU có thể phục vụ người dùng tại nhà, nhà phát triển, nhà thiết kế và những người khác cần đồ họa được tăng tốc phần cứng trong VM. Các tình huống phổ biến bao gồm:

  • Chạy các ứng dụng đồ họa chuyên sâu như mô hình hóa 3D, vẽ bản vẽ AutoCAD, mô phỏng kỹ thuật, phát triển trò chơi và kết xuất được tăng tốc phần cứng;
  • Chạy các trò chơi yêu cầu tính năng tăng tốc phần cứng; một số trò chơi có thể không hoạt động nếu không có card đồ họa vật lý;
  • Chạy khối lượng công việc học máy (ML) và trí tuệ nhân tạo (AI) tận dụng khả năng tính toán của GPU.

Những lợi ích của tính năng truyền qua GPU bao gồm:

  • Hiệu năng đồ họa tốt hơn. VM được cấp quyền truy cập trực tiếp vào card đồ họa để chạy các ứng dụng hoặc trò chơi đòi hỏi cao. Phát video mượt mà hơn, đồng thời có thể sử dụng tính năng kết xuất được tăng tốc phần cứng với các API đồ họa mới nhất.
  • Sử dụng phần cứng linh hoạt. Một Máy chủ vật lý Hyper-V có thể chạy nhiều VM với khối lượng công việc đồ họa khác nhau trong những trường hợp việc sử dụng các máy trạm chuyên dụng là không khả thi.
  • Hiệu quả về chi phí. Tính năng truyền qua GPU có thể giảm chi phí phần cứng bằng cách hợp nhất các khối lượng công việc. Tính năng này cũng áp dụng được cho các triển khai cơ sở hạ tầng máy tính để bàn ảo (VDI).

Truyền qua GPU và phân vùng GPU (GPU-P)

Hyper-V cung cấp hai phương thức phân bổ tài nguyên GPU cho máy ảo:

  • Gán thiết bị trực tiếp (DDA) gán toàn bộ GPU vật lý cho riêng một VM. VM có toàn quyền truy cập vào phần cứng và đạt hiệu năng tối đa, nhưng không VM nào khác có thể sử dụng GPU đó. DDA có trên Windows Server 2016 trở lên (các phiên bản Datacenter). Không thể di chuyển trực tiếp VM sử dụng DDA.
  • Phân vùng GPU (GPU-P) chia một GPU vật lý thành nhiều phần riêng biệt bằng SR-IOV, cho phép nhiều VM cùng sử dụng một phần cứng. Mỗi VM nhận được một phần tài nguyên GPU riêng (bộ nhớ, khả năng tính toán và bộ mã hóa), với cơ chế cách ly được phần cứng thực thi. GPU-P được hỗ trợ đầy đủ như một tính năng doanh nghiệp trong Windows Server 2025 và cũng có thể được sử dụng trên các phiên bản Windows 10/11 dành cho máy khách thông qua PowerShell.

Nên dùng DDA khi khối lượng công việc cần toàn bộ GPU hoặc khi phần cứng không hỗ trợ phân vùng. GPU-P phù hợp hơn với các môi trường cần tăng tốc GPU cho nhiều VM mà không cần sử dụng 100% tài nguyên của card đồ họa. GPU-P cũng hỗ trợ di chuyển trực tiếp và phân cụm chuyển đổi dự phòng trong Windows Server 2025, còn DDA thì không.

GPU vật lý có thể hoạt động ở chế độ DDA hoặc GPU-P, nhưng không thể hoạt động đồng thời ở cả hai chế độ.

Yêu cầu

Để cấu hình VM sử dụng GPU passthrough trên máy chủ vật lý Hyper-V, bạn phải đáp ứng một số yêu cầu về phần cứng và phần mềm. Không phải card đồ họa nào cũng hỗ trợ tính năng này.

Yêu cầu về phần cứng

  • Bộ xử lý trên máy chủ vật lý Hyper-V phải hỗ trợ các tính năng ảo hóa Intel VT-d hoặc AMD-V. Bạn phải bật tính năng phù hợp trong cài đặt UEFI/BIOS.
  • Bộ xử lý phải hỗ trợ Bộ quản lý bộ nhớ vào/ra (IOMMU). Tính năng này là yêu cầu bắt buộc đối với passthrough PCI Express, bao gồm cả GPU passthrough.
  • Để phân vùng GPU có hỗ trợ di chuyển trực tiếp trong Windows Server 2025, bộ xử lý phải hỗ trợ các khả năng theo dõi DMA (Truy cập bộ nhớ trực tiếp) cụ thể. Bộ xử lý Intel Sapphire Rapids (hoặc mới hơn) và AMD EPYC Milan (hoặc mới hơn) đáp ứng yêu cầu này.
  • Card đồ họa có GPU hỗ trợ các công nghệ ảo hóa GPU, chẳng hạn như NVIDIA GRID hoặc AMD MxGPU (GPU đa người dùng). Các công nghệ này dành riêng cho từng nhà cung cấp. Phần cứng cấp máy chủ giúp tăng tỷ lệ thành công. Các thiết bị cũ sử dụng Ngắt PCI (INTx) không được hỗ trợ.
  • Để phân vùng GPU, GPU phải hỗ trợ SR-IOV (Ảo hóa I/O một gốc). Các mẫu được hỗ trợ bao gồm GPU NVIDIA A2, A10, A16 và A40.

Yêu cầu về phần mềm

  • Windows Server 2016 trở lên cho DDA. Nên dùng Windows Server 2025 Datacenter để phân vùng GPU có hỗ trợ phân cụm và di chuyển trực tiếp.
  • Windows 10 (bản dựng 1903 trở lên) hoặc Windows 11 để phân vùng GPU trên hệ thống máy khách. DDA không được hỗ trợ trên các phiên bản Windows dành cho máy khách.
  • Phải bật vai trò Hyper-V trong Windows.
  • Phải cài đặt trình điều khiển GPU mới nhất trên máy chủ vật lý Hyper-V và trong hệ điều hành khách của VM.
  • Chỉ có thể dùng VM Hyper-V thế hệ 2 cho GPU passthrough bằng DDA.

Hạn chế và cấu hình không được hỗ trợ

Lưu ý rằng các cấu hình sau đây không được hỗ trợ khi sử dụng GPU passthrough:

  • VM đã bật Bộ nhớ động Hyper-V không thể sử dụng GPU passthrough. Phải tắt Bộ nhớ động trước khi gán GPU.
  • Chỉ có thể sử dụng tính năng chuyển tiếp GPU bằng DDA trên các phiên bản Datacenter của Windows Server. Tính năng phân vùng GPU trong môi trường cụm cũng yêu cầu phiên bản Datacenter.
  • Nếu Windows Subsystem for Linux được triển khai trên máy chủ vật lý Hyper-V, VM có thể gặp lỗi mã 43 khi GPU được gán thông qua tính năng phân vùng.
  • Trong các phiên bản trước Windows Server 2025, các tính năng cụm như tính sẵn sàng cao (HA) và di chuyển trực tiếp VM không được hỗ trợ cho các VM có GPU. Windows Server 2025 bổ sung hỗ trợ di chuyển trực tiếp cho VM GPU-P và khởi động lại khi chuyển đổi dự phòng cho VM DDA.
  • Không hỗ trợ lưu/khôi phục VM và điểm kiểm soát tự động cho các VM được gán GPU. Hãy tắt điểm kiểm soát tự động trước khi gán GPU.

Thiết lập tính năng chuyển tiếp GPU: Những điều cần biết

Phương pháp gán GPU cho VM Hyper-V phụ thuộc vào phiên bản Windows và mức độ chia sẻ phần cứng bạn cần. Microsoft đã cung cấp ba phương pháp theo thời gian, nhưng hiện chỉ còn hai phương pháp được hỗ trợ.

RemoteFX vGPU (đã ngừng hỗ trợ). Có mặt từ Windows Server 2012 R2 đến Windows Server 2016, RemoteFX mở rộng Giao thức Máy tính Từ xa (RDP) để chia sẻ GPU của một máy chủ vật lý giữa nhiều VM. Tính năng này hữu ích trong môi trường VDI mật độ cao, nơi việc dành riêng toàn bộ một card cho mỗi VM là không thực tế. Tuy nhiên, RemoteFX giới hạn bộ nhớ video chuyên dụng ở mức 1 GB cho mỗi VM và tốc độ khung hình ở mức 30 FPS. Microsoft đã ngừng hỗ trợ tính năng này trong Windows Server 2019 và Windows 10 bản dựng 1809 do các lỗ hổng bảo mật về kiến trúc trong quá trình triển khai Hyper-V, và đã xóa hoàn toàn trong Windows Server 2025. Nếu bạn vẫn đang chạy phiên bản được phát hành kèm RemoteFX, có sẵn bản cập nhật chuyên biệt để gỡ bỏ thành phần này.

Gán thiết bị trực tiếp (DDA). Được giới thiệu trong Windows Server 2016, DDA thay thế RemoteFX cho các trường hợp cần hiệu năng GPU tối đa. Tính năng này chuyển trực tiếp toàn bộ thiết bị PCIe (GPU, ổ NVMe hoặc bộ điều hợp khác) cho một VM duy nhất, không chia sẻ và không có lớp mô phỏng. VM tải trình điều khiển gốc của nhà cung cấp và được quyền truy cập không hạn chế vào bộ nhớ video cũng như tốc độ khung hình. DDA là tính năng tương đương với PCI passthrough của VMware trong Hyper-V. Đổi lại là tính linh hoạt: Chỉ một VM có thể sử dụng card, VM không thể được di chuyển trực tiếp (do được gắn với đường dẫn PCIe vật lý trên máy chủ vật lý) và DDA chỉ có trên các phiên bản Datacenter của Windows Server. Trong Windows Server 2025, các VM sử dụng DDA đã có hỗ trợ phân cụm chuyển đổi dự phòng. Điều này có nghĩa là cụm có thể khởi động lại VM trên một nút khác nếu có GPU tương thích, nhưng tính năng di chuyển trực tiếp vẫn chưa được hỗ trợ.

Phân vùng GPU (GPU-P). GPU-P là phiên bản kế nhiệm hiện đại của RemoteFX. Trên Windows Server 2025, công nghệ này chia một GPU vật lý thành nhiều phần riêng biệt bằng SR-IOV, cung cấp cho mỗi VM một phần tài nguyên xử lý, bộ nhớ và bộ mã hóa chuyên dụng với khả năng cách ly được thực thi bằng phần cứng. Khác với DDA, GPU-P hỗ trợ di chuyển trực tiếp và phân cụm chuyển đổi dự phòng trong Windows Server 2025 Datacenter, nhờ đó phù hợp với môi trường sản xuất cần khả năng di chuyển VM. Trên các phiên bản Windows dành cho máy khách (Windows 10 build 1903 trở lên và Windows 11), GPU-P được cung cấp thông qua PowerShell nhưng dựa vào ảo hóa bán phần WDDM thay vì phân vùng SR-IOV thực sự. Máy chủ vật lý và máy khách phải chạy cùng phiên bản hệ điều hành, đồng thời phải sao chép thủ công trình điều khiển GPU từ máy chủ vật lý sang máy khách.

Ý nghĩa thực tế rất đơn giản: Nếu cần toàn bộ GPU cho một VM duy nhất trên Windows Server, hãy dùng DDA. Nếu nhiều VM cần tăng tốc GPU hoặc bạn cần di chuyển trực tiếp, hãy dùng GPU-P trên Windows Server 2025. Trên Windows dành cho máy khách, GPU-P thông qua PowerShell là phương thức duy nhất được hỗ trợ.

Cấu hình chuyển tiếp GPU trong Hyper-V

Làm theo các bước dưới đây để chuẩn bị môi trường và cấu hình tính năng chuyển tiếp GPU của Hyper-V.

Chuẩn bị cấu hình tính năng chuyển tiếp GPU

  1. Đảm bảo phần cứng và phần mềm đáp ứng các yêu cầu ảo hóa GPU.
  2. Bật các tính năng ảo hóa Intel VT-d hoặc AMD-V cho Bộ xử lý trong UEFI/BIOS trên máy chủ vật lý Hyper-V.
  3. Bật IOMMU . Vị trí cài đặt IOMMU khác nhau tùy theo bo mạch chủ và phiên bản UEFI/BIOS. Trong một số trường hợp, tùy chọn này nằm trong cấu hình North Bridge. IOMMU cũng có thể được bật khi bạn bật Intel VT-d hoặc AMD-V. Kiểm tra tính năng Memory Remap trong UEFI/BIOS.

    Bạn có thể xác minh IOMMU đã được bật trên máy chủ vật lý Hyper-V hay chưa bằng lệnh PowerShell sau (chạy với tư cách Quản trị viên):

    (Get-VMHost).IovSupport; (Get-VMHost).IovSupportReasons

    True = đã kích hoạt; Sai = đã vô hiệu hóa.

  4. Xóa tất cả điểm kiểm soát của VM sẽ sử dụng tính năng chuyển tiếp GPU.

    Để tắt điểm kiểm soát tự động cho VM, hãy chạy:

    Set-VM -Name VMName -AutomaticStopAction TurnOff

Chuyển tiếp GPU trong Windows Server

Các bước sau sử dụng DDA để gán GPU vật lý cho VM trên Windows Server.

  1. Đặt loại bộ nhớ đệm và giới hạn dung lượng MMIO (I/O ánh xạ bộ nhớ) cho VM. Chạy lệnh PowerShell này với tư cách Quản trị viên:
    Set-VM -Name VMName -GuestControlledCacheTypes $True -LowMemoryMappedIoSpace 3Gb -HighMemoryMappedIoSpace 33280Mb

    Bạn cũng có thể chạy ba lệnh riêng biệt:

    Set-VM -GuestControlledCacheTypes $true -VMName YourVMName
    Set-VM -LowMemoryMappedIoSpace 3Gb -VMName YourVMName
    Set-VM -HighMemoryMappedIoSpace 33280Mb -VMName YourVMName

    Các giới hạn này xác định cửa sổ bộ nhớ giúp VM truy cập được thiết bị. Bạn có thể dùng Tập lệnh cấu hình máy của Microsoft để tính các giá trị MMIO tối ưu. Các giá trị phù hợp sẽ khác nhau tùy theo bộ điều hợp video. Nếu thấy thông báo cho biết không đủ tài nguyên khi khởi động VM, hãy tắt máy rồi điều chỉnh các giá trị này. Giá trị 33280 MB được dùng cho dung lượng MMIO trên 32 bit (3 GB áp dụng cho cửa sổ MMIO 32 bit).

  2. Xác định đường dẫn vị trí PCI Express của card đồ họa mà bạn muốn chuyển tiếp.

    Bạn có thể tìm thấy thông tin này trong Trình quản lý Thiết bị. Mở Trình quản lý Thiết bị bằng cách chạy lệnh sau:

    Devmgmt.msc

    Trong Trình quản lý Thiết bị:

    • Nhấp chuột phải vào bộ điều hợp màn hình đích trong mục Bộ điều hợp màn hình, rồi nhấp vào Thuộc tính .
    • Chọn tab Chi tiết .
    • Chọn Đường dẫn vị trí trong menu thả xuống thuộc tính rồi sao chép giá trị.

    Viewing the location path of a video card in Device Manager

    Ngoài ra, hãy dùng PowerShell để truy xuất đường dẫn vị trí:

    Get-PnpDevice | Where-Object {$_.Present -eq $true} | Where-Object {$_.Class -eq "Display"}|select Name,InstanceId

    và:

    Get-PnpDevice -Class Display | ForEach-Object { Write-Output "$($_.FriendlyName) has a device id of $($_.DeviceId) and is located at $($_ | Get-PnpDeviceProperty DEVPKEY_Device_LocationPaths | Select-Object -ExpandProperty Data | Where-Object { $_ -like "PCIROOT*" })"; }

    Kết quả sẽ chứa một chuỗi như sau:

    “PCIROOT(0)#PCI(0300)#PCI(0000)”

    Identifying the GPU location path in PowerShell

  3. Tắt card đồ họa trong Trình quản lý Thiết bị. Nhấp chuột phải vào bộ điều hợp video rồi nhấp vào Vô hiệu hóa thiết bị .Disabling a video card
  4. Tháo bộ điều hợp màn hình đã vô hiệu hóa bằng PowerShell:
    Dismount-VmHostAssignableDevice -LocationPath "PCIROOT(0)#PCI(0300)#PCI(0000)" -Force

    Cờ -Force là bắt buộc khi chưa cài đặt trình điều khiển phân vùng. Nhà cung cấp thiết bị có thể cung cấp trình điều khiển giảm thiểu rủi ro bảo mật tùy chọn này. Nếu định cài đặt trình điều khiển đó, hãy cài đặt trước khi tháo thiết bị PCIe khỏi máy chủ vật lý.

    Đường dẫn vị trí được sử dụng ở trên chỉ nhằm mục đích minh họa; thay thế bằng giá trị cụ thể của bạn.

  5. Gán card đồ họa cho VM:
    Add-VMAssignableDevice -VMName VMName -LocationPath "PCIROOT(0)#PCI(0300)#PCI(0000)"
  6. Bật VM và xác minh rằng card đồ họa vật lý xuất hiện trong Trình quản lý Thiết bị cùng với bộ điều hợp video Microsoft Hyper-V mặc định.
  7. Cài đặt trình điều khiển cho card đồ họa trong hệ điều hành khách của VM. Tải trình điều khiển từ trang web chính thức của NVIDIA hoặc AMD.
  8. Để ngắt kết nối card đồ họa khỏi VM, hãy dừng VM và chạy:
    Remove-VMAssignableDevice -VMName YourVMName -LocationPath $locationPath

    Sau đó kết nối lại GPU với máy chủ vật lý Hyper-V:

    Mount-VMHostAssignableDevice -LocationPath $locationPath
Hãy thử NAKIVO Backup & Replication cho Hyper-V

Hãy thử NAKIVO Backup & Replication cho Hyper-V

Bắt đầu dùng thử miễn phí trong 15 ngày để thực hiện sao lưu Hyper-V không cần cài đặt phần mềm đại lý, nhận diện ứng dụng, với khả năng khôi phục toàn bộ và chi tiết tức thì cùng tính năng bảo vệ chống ransomware tích hợp sẵn.

Cấu hình trong Windows 10 và 11

Trên các phiên bản Windows dành cho máy khách (Windows 10 bản dựng 1903 trở lên, Windows 11), DDA không khả dụng. Phân vùng GPU là phương pháp được hỗ trợ:

  1. Kiểm tra xem card đồ họa của bạn có hỗ trợ phân vùng GPU hay không. Trong Windows 10, hãy chạy:
    Get-VMPartitionableGpu

    Trong Windows 11 :

    Get-VMHostPartitionableGpu
  2. Sử dụng lệnh cmdlet Add-VMGpuPartitionAdapter để gán phân vùng GPU cho máy ảo. Tuy nhiên, bạn phải sao chép trình điều khiển GPU từ máy chủ Hyper-V sang máy ảo. Phiên bản trình điều khiển trên máy chủ và máy khách phải trùng khớp. Tập lệnh Easy-GPU-PV có thể tự động hóa quy trình này. Tải xuống tập lệnh dưới dạng tệp ZIP và giải nén vào một thư mục trên máy chủ Hyper-V. Tập lệnh này tận dụng các cơ chế ảo hóa bán thực (paravirtualization) của GPU được sử dụng bởi Hệ thống con Windows cho Linux (WSL2) và Windows Sandbox.
  3. Mở PowerShell với quyền quản trị viên và cho phép thực thi tập lệnh:
    Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass -Force
    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
  4. Tắt máy ảo (VM). Chạy tập lệnh để sao chép trình điều khiển GPU từ máy chủ sang máy ảo:
    .\Update-VMGpuPartitionDriver.ps1 -VMName YourVMName -GPUName "AUTO"
  5. Cấu hình máy ảo để phân vùng GPU:
    Set-VM -VMName VMName -GuestControlledCacheTypes $true -LowMemoryMappedIoSpace 1Gb -HighMemoryMappedIoSpace 32Gb
    Add-VMGpuPartitionAdapter -VMName YourVMName
  6. Sau khi cập nhật trình điều khiển GPU trên máy chủ Hyper-V, hãy cập nhật trình điều khiển trong máy ảo tương ứng. Máy ảo phải ở trạng thái tắt nguồn:
    .\Update-VMGpuPartitionDriver.ps1 -VMName YourVMName -GPUName "AUTO"
  7. Để xóa phân vùng GPU khỏi máy ảo:
    Remove-VMGpuPartitionAdapter -VMName "YourVMName"

    Sau khi cấu hình thành công, bộ điều hợp màn hình tương ứng sẽ xuất hiện trong Trình quản lý thiết bị trong máy ảo. Bạn cũng sẽ thấy các hiệu ứng hình ảnh như độ trong suốt của màn hình nền trong chủ đề Windows của hệ điều hành khách.

Lưu ý rằng một số trò chơi và ứng dụng có thể không chạy ngay cả sau khi hoàn tất cấu hình truyền qua GPU. Điều này có thể xảy ra khi một ứng dụng thực hiện kiểm tra tương thích phần cứng, và thông tin GPU được báo cáo trong hệ điều hành khách khác với thông tin trên máy chủ. Một số ứng dụng cũng phát hiện rằng chúng đang chạy bên trong máy ảo.

Nếu các ứng dụng phụ thuộc vào OpenGL không hoạt động trong máy ảo, việc cài đặt Gói tương thích OpenGL có thể giúp khắc phục.

Khi sử dụng tính năng phân vùng GPU trên Windows 10 hoặc 11, bộ điều hợp video được liệt kê trong Trình quản lý thiết bị sẽ hiển thị trình điều khiển của Microsoft thay vì mô hình GPU vật lý. Các công cụ riêng của nhà sản xuất, chẳng hạn như Bảng điều khiển NVIDIA, không khả dụng trong máy ảo.

Một sự cố khác có thể xảy ra nếu bạn đóng phiên RDP mà không ngắt kết nối trước. Trong trường hợp này, máy ảo có thể mất quyền truy cập vào bộ nhớ GPU và các ứng dụng dựa vào GPU sẽ báo cáo không thể truy cập bộ nhớ video. Kết nối lại qua RDP sẽ không giải quyết được sự cố này; bạn phải khởi động lại các ứng dụng bị ảnh hưởng.

Khắc phục sự cố chuyển tiếp GPU

Nếu card đồ họa không hoạt động bình thường sau khi được gán cho VM, hãy kiểm tra những điều sau:

  • Xác minh rằng đã cài đặt trình điều khiển GPU mới nhất và không có lỗi liên quan đến trình điều khiển. Mở Trình quản lý Thiết bị và kiểm tra trạng thái thiết bị. Cài đặt trình điều khiển từ trang web của nhà cung cấp (NVIDIA, AMD, Intel) thay vì dựa vào Windows Update.
  • Đảm bảo đã cấp đủ không gian MMIO cho VM.
  • Xác nhận rằng nhà cung cấp chính thức hỗ trợ tính năng chuyển tiếp GPU cho bộ điều hợp đồ họa cụ thể của bạn. Không phải tất cả card đồ họa dành cho người tiêu dùng đều hỗ trợ tính năng này. Một số nhà cung cấp chỉ cho phép chuyển tiếp GPU trên các mẫu cao cấp hơn.
  • Xác minh rằng ứng dụng đang chạy bên trong VM hỗ trợ card đồ họa và trình điều khiển của card đó.
  • Bật chính sách nhóm sau để cho phép sử dụng GPU qua Remote Desktop:
    Computer ConfigurationTemplatesComponentsDesktop ServicesDesktop Session HostSession Environmenthardware graphics adapters for all Remote Desktop Services sessions

    Đặt giá trị này thành Đã kích hoạt .

  • Nếu bạn thấy lỗi như “Thao tác không thành công vì không tìm thấy đối tượng” hoặc Lỗi 12 , hãy thêm các khóa đăng ký sau vào:

    HKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftWindowsHyperV

    Giá trị:

    RequireSecureDeviceAssignment = 0 (REG_DWORD)

    RequireSupportedDeviceAssignment = 0 (REG_DWORD)

    Bạn có thể đặt các giá trị này bằng PowerShell:

    Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\HyperV" -Name "RequireSecureDeviceAssignment" -Type DWORD -Value 0 -Force
    Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\HyperV" -Name "RequireSupportedDeviceAssignment" -Type DWORD -Value 0 -Force
  • Để bỏ qua các bước kiểm tra trình điều khiển hypervisor bên trong VM, hãy sử dụng Bộ công cụ trình điều khiển Windows dành cho doanh nghiệp (WDK):
    • Gắn ISO WDK vào ổ DVD ảo của VM.
    • Chạy E:LaunchBuildEnv.cmd (trong đó E: là ổ DVD ảo), sau đó chạy PowerShell .
    • Chuyển đến thư mục chứa tập lệnh Remove-HypervisorChecks.ps1 .
    • Chạy lệnh để xóa các bước kiểm tra hypervisor đối với trình điều khiển video (ví dụ NVIDIA):
      ./Remove-HypervisorChecks.ps1 -Nvidia -DriverPath "C:\path-to-driver\package.exe"
    • Chờ tập lệnh chạy xong.
    • Sao chép trình điều khiển thu được (patched-driver.zip) vào VM, bật chế độ kiểm tra và cài đặt trình điều khiển.
  • Nếu gặp Lỗi 43 , hãy đảm bảo rằng GPU và bộ điều khiển âm thanh của nó (card NVIDIA thường có kèm thiết bị âm thanh) được gán cùng nhau cho VM.
  • Nếu xuất hiện lỗi khi chạy:
    Update-VMGpuPartitionDriver.ps1 -VMName “YourVMName” -GPUName “AUTO”

    Nguyên nhân có thể là do có nhiều phân vùng (ổ đĩa) trên đĩa cứng ảo. Thử đặt thuộc tính ẩn trên các phân vùng không thuộc hệ thống hoặc tạm thời gỡ chúng sau khi sao lưu dữ liệu. Ngoài ra, hãy chỉ định rõ phân vùng hệ thống trong tập lệnh hoặc lệnh PowerShell.

Các cân nhắc về sao lưu và phục hồi cho VM có GPU

Các quy trình sao lưu Hyper-V tiêu chuẩn giả định rằng VM có thể di chuyển được: Bạn có thể khôi phục VM lên bất kỳ máy chủ vật lý tương thích nào và khởi động VM. VM có GPU phá vỡ giả định này. Dù được gán thông qua DDA hay GPU-P, VM đều phụ thuộc vào phần cứng vật lý có thể không tồn tại hoặc không được cấu hình giống hệt trên máy chủ đích phục hồi. Vì vậy, việc sao lưu rất đơn giản, nhưng việc phục hồi phụ thuộc vào khả năng sẵn có của phần cứng.

Bản thân GPU cũng đặt ra vấn đề về tính nhất quán của dữ liệu. Phần mềm sao lưu ghi lại trạng thái đĩa nhưng không thể tạo snapshot nội dung bộ nhớ video của GPU. Đối với VM chạy các workload nặng về GPU, điều này có nghĩa là bản sao lưu phản ánh trạng thái ngoại tuyến hoặc không mâu thuẫn khi xảy ra sự cố của phần cứng, ngay cả khi dữ liệu trên đĩa nhất quán ở cấp ứng dụng. Để thu hẹp khoảng cách này, hãy sử dụng điểm kiểm soát sản xuất với Dịch vụ Bản sao bóng thể tích (VSS) hoặc công cụ sao lưu hỗ trợ VSS, nhằm đảm bảo dữ liệu được ghi từ bộ nhớ GPU xuống đĩa được ghi lại ở trạng thái nhất quán.

Việc lựa chọn giữa sao lưu ở cấp máy chủ và cấp máy ảo ít rõ ràng hơn đối với VM có GPU so với VM thông thường:

  • Sao lưu ở cấp máy chủ vật lý ghi lại các tệp VHDX và cấu hình VM. Đây là phương pháp tiêu chuẩn nhưng cần ánh xạ lại GPU thủ công sau khi khôi phục.
  • Sao lưu ở cấp máy khách yêu cầu cài đặt tác nhân sao lưu bên trong VM. Phương pháp này thường thiết thực hơn đối với workload GPU vì coi VM như một máy chủ thông thường, tránh được sự phức tạp của việc chuyển tiếp GPU trong quá trình thu thập dữ liệu.

Với cấu hình DDA sử dụng chuyển tiếp độc quyền, VM được gắn với một đường dẫn PCI Express cụ thể trên máy chủ vật lý. Nếu khôi phục VM có bật DDA lên một máy chủ vật lý khác, VM có thể sẽ không khởi động được vì đường dẫn PCIe ban đầu (chẳng hạn như PciRoot(0x0)/Pci(0x3,0x0)…) có thể không tồn tại hoặc có thể được gán cho một thiết bị khác.

Để giải quyết tình trạng phần cứng không khớp sau khi phục hồi:

  1. Xóa thiết bị GPU không còn tồn tại khỏi cấu hình VM.
  2. Tháo gắn kết một GPU tương thích trên máy chủ vật lý mới.
  3. Dùng PowerShell để gán lại GPU mới cho VM đã khôi phục.

Với tính năng phân vùng GPU trong Windows Server 2025 và Windows 11, cấu hình linh hoạt hơn nhưng cũng phát sinh những vấn đề cần cân nhắc riêng khi phục hồi. GPU-P yêu cầu phiên bản trình điều khiển GPU trên máy chủ vật lý và máy khách phải khớp nhau. Nếu bạn khôi phục VM về một máy chủ vật lý đang chạy phiên bản trình điều khiển khác, tính năng tăng tốc GPU có thể không khởi tạo được.

Trong quá trình phục hồi (đặc biệt là trong Cụm chuyển đổi dự phòng Hyper-V), máy chủ vật lý đích phải có đủ dung lượng phân vùng GPU khả dụng. Nếu GPU của máy chủ vật lý đã được phân vùng hoàn toàn cho các VM khác đang chạy, VM được khôi phục sẽ không khởi động được hoặc sẽ chuyển sang kết xuất bằng phần mềm.

Windows Server 2025 cải thiện khả năng di chuyển của các VM có GPU. Các VM GPU-P hỗ trợ di chuyển trực tiếp trong cấu hình theo cụm và độc lập. Trong trường hợp chuyển đổi dự phòng, cụm có thể khởi động lại VM trên một nút khác, với điều kiện GPU tương thích được cấu hình cho DDA hoặc GPU-P trên máy chủ vật lý đích.

Hãy làm theo các khuyến nghị sau đây để sao lưu và phục hồi VM có GPU:

  • Ghi lại đường dẫn PCI và lưu các lệnh PowerShell được sử dụng để gán GPU. Có sẵn tập lệnh để sử dụng sẽ giảm thời gian ngừng hoạt động khi khôi phục trên một máy chủ vật lý khác.
  • Chuẩn hóa phần cứng bằng cách sử dụng các mẫu GPU và phiên bản trình điều khiển giống hệt nhau trên tất cả các nút trong cụm. Điều này đảm bảo VM được khôi phục gặp cùng một môi trường phần cứng, bất kể VM khởi động trên máy chủ vật lý nào.
  • Thường xuyên thử nghiệm khôi phục các VM có GPU sang các máy chủ vật lý khác để xác minh rằng nhóm phục hồi của bạn có thể ánh xạ lại các thiết bị PCI.
  • Tạo tập lệnh sau khi khôi phục để tự động phát hiện GPU khả dụng và gán chúng cho VM được khôi phục.

Kết luận

Sử dụng máy ảo có tính năng truyền qua GPU trên máy chủ vật lý Hyper-V có thể là giải pháp tối ưu cho một số khối lượng công việc, nhưng các hạn chế đòi hỏi phải lập kế hoạch cẩn thận. Phần cứng cấp máy chủ và Windows Server thường được khuyến nghị để truyền qua GPU rời dựa trên DDA. Xác minh khả năng tương thích của phần mềm và phần cứng trước khi bắt đầu cấu hình. Hãy thường xuyên sao lưu các VM Hyper-V để bảo vệ khỏi mất dữ liệu nếu xảy ra sự cố trong quá trình thiết lập GPU hoặc vận hành liên tục.

Hãy dùng thử NAKIVO Backup & Replication

Hãy dùng thử NAKIVO Backup & Replication

Đăng ký dùng thử miễn phí để khám phá tất cả các tính năng bảo vệ dữ liệu của giải pháp này. Dùng thử miễn phí trong 15 ngày. Không có bất kỳ giới hạn nào về tính năng hay dung lượng. Không cần thẻ tín dụng.

Câu hỏi thường gặp

Làm thế nào để kích hoạt tính năng GPU passthrough trong Hyper-V?

Để bật tính năng chuyển tiếp GPU Hyper-V, hãy tắt Điểm kiểm soát tự động và Bộ nhớ động cho VM. Trong Trình quản lý Thiết bị hoặc PowerShell, hãy xác định đường dẫn vị trí PCI Express của GPU mục tiêu. Tắt GPU trên Máy chủ vật lý, tháo gắn kết GPU bằng lệnh ghép ngắn Dismount-VmHostAssignableDevice , sau đó gán GPU cho VM bằng Add-VMAssignableDevice . Trên các phiên bản Windows dành cho máy khách (Windows 10 và 11), hãy sử dụng tính năng phân vùng GPU thông qua lệnh ghép ngắn Add-VMGpuPartitionAdapter thay vào đó.

GPU passthrough trong Hyper-V là gì?

GPU passthrough là một tính năng của Hyper-V cho phép gán trực tiếp một card đồ họa vật lý cho một máy ảo. Máy ảo sẽ sử dụng GPU phần cứng mà không cần mô phỏng, mang lại hiệu năng cao hơn đáng kể cho các tác vụ đòi hỏi đồ họa và tính toán nặng so với bộ điều hợp đồ họa mô phỏng mặc định. Hyper-V hỗ trợ hai phương pháp: Gán thiết bị trực tiếp (Direct Device Assignment - DDA), trong đó toàn bộ GPU được gán cho một máy ảo, và phân vùng GPU (GPU-P), cho phép nhiều máy ảo chia sẻ chung một GPU.

Các yêu cầu để kích hoạt tính năng GPU passthrough trong Hyper-V là gì?

Chức năng GPU passthrough yêu cầu một GPU PCIe rời của NVIDIA hoặc AMD hỗ trợ các công nghệ ảo hóa GPU như NVIDIA GRID hoặc AMD MxGPU. CPU phải hỗ trợ IOMMU (Intel VT-d hoặc AMD-Vi), và tính năng này phải được kích hoạt trong UEFI/BIOS. Phải cài đặt trình điều khiển GPU mới nhất trên cả máy chủ Hyper-V và máy ảo khách. Bạn cần ít nhất Windows Server 2016 cho DDA hoặc Windows 10 (phiên bản 1903 trở lên) cho phân vùng GPU, với vai trò Hyper-V được kích hoạt. Chỉ các máy ảo Thế hệ 2 mới được hỗ trợ cho DDA.

Những hạn chế của tính năng GPU passthrough trong Hyper-V là gì?

Các máy ảo (VM) sử dụng tính năng truyền qua GPU của Hyper-V không thể sử dụng Dynamic Memory hoặc các điểm kiểm tra tự động. Tính năng DDA chỉ áp dụng cho các phiên bản Windows Server Datacenter và phân bổ một GPU cho mỗi máy ảo, đồng thời không hỗ trợ di chuyển trực tiếp. Việc phân vùng GPU yêu cầu phiên bản trình điều khiển tương thích giữa hệ điều hành máy chủ và hệ điều hành khách. Trong các phiên bản Windows Server trước năm 2025, tính năng cụm chuyển đổi dự phòng (failover clustering) và di chuyển trực tiếp (live migration) không khả dụng cho các máy ảo hỗ trợ GPU. Hệ thống con Windows cho Linux (Windows Subsystem for Linux) trên máy chủ có thể gây ra Lỗi 43 trong máy ảo.

Làm thế nào để khắc phục sự cố truyền qua GPU trong Hyper-V?

Bắt đầu bằng cách xác minh rằng đã cài đặt đúng trình điều khiển GPU từ trang web của nhà cung cấp (không thông qua Windows Update). Đảm bảo rằng Bộ nhớ động và các điểm kiểm soát tự động đã bị vô hiệu hóa cho VM. Kiểm tra xem đã cấp đủ không gian MMIO chưa. Nếu gặp Lỗi 43, hãy xác nhận rằng GPU và bộ điều khiển âm thanh của GPU được gán cùng nhau, rồi thử vô hiệu hóa WSL2 trên máy chủ vật lý. Đối với Lỗi 12 hoặc lỗi “không tìm thấy đối tượng”, hãy đặt các giá trị sổ đăng ký RequireSecureDeviceAssignment và RequireSupportedDeviceAssignment thành 0 trong HKLM.

Có thể bạn cũng quan tâm