Cách triển khai thiết bị đồ họa bằng RemoteFX vGPU

Tác giả sysadmin, T.M.Hai 16, 2023, 02:40:44 CHIỀU

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 2 Khách đang xem chủ đề.

Cách triển khai thiết bị đồ họa bằng RemoteFX vGPU


Cài đặt tăng tốc video và card đồ họa trên máy tính vật lý để có hiệu suất và chất lượng hình ảnh tốt hơn là một nhiệm vụ phổ biến. Nhưng bạn sẽ làm gì khi cần chạy các ứng dụng kết xuất video hoặc tạo mô hình 3D trên máy ảo và cần tăng tốc video phần cứng và card đồ họa?

Khi nói đến VM, tài nguyên phần cứng được chia sẻ giữa các máy ảo để sử dụng tài nguyên linh hoạt và hợp lý. Nếu một máy ảo đang chạy các ứng dụng nặng, nó có thể tiêu tốn nhiều tài nguyên CPU và bộ nhớ hơn các máy ảo khác đang không hoạt động hoặc chạy các hoạt động tiêu tốn ít tài nguyên hơn. Ngoài ra, VM chỉ sử dụng chức năng video cơ bản để hiển thị dữ liệu theo mặc định. Trong môi trường Microsoft Hyper-V, bạn có thể sử dụng Hyper-V RemoteFX để cho phép máy ảo chia sẻ tài nguyên của card màn hình và khả năng tăng tốc 3D.

Đọc bài đăng trên blog này để tìm hiểu về Hyper-V RemoteFX và cách định cấu hình RemoteFX trên máy Windows.

1. RemoteFX là gì?

RemoteFX là tính năng cho phép các máy ảo Hyper-V chia sẻ GPU vật lý (bộ xử lý đồ họa). Tài nguyên của card màn hình được chia sẻ giữa nhiều máy ảo. Đây là kịch bản tối ưu cho khối lượng công việc có tốc độ bùng nổ cao khi không phải lúc nào cũng cần đến tài nguyên chuyên dụng của card màn hình. Hyper-V RemoteFX có thể được sử dụng để triển khai VDI (cơ sở hạ tầng máy tính để bàn ảo). GPU RemoteFX là một thiết bị ảo được gắn vào máy ảo chia sẻ tài nguyên của thẻ video vật lý được cài đặt trên máy chủ Hyper-V (chia sẻ GPU và bộ nhớ video).

RemoteFX được giới thiệu trong Windows 7 và có sẵn trong Windows 8, Windows 10, Windows Server 2008 R2 SP1, Windows Server 2012 và Windows Server 2016. Tính năng này không có trong Hyper-V Manager trong phiên bản Windows Server 2019 mới nhất – bạn không thể bật Hyper-V RemoteFX trong giao diện người dùng đồ họa (GUI). Sử dụng RemoteFX giúp giảm tải CPU (bộ xử lý trung tâm) và tăng khả năng mở rộng trong môi trường ảo. Bạn không cần gắn GPU chuyên dụng cho từng máy ảo khi sử dụng Hyper-V RemoteFX vì máy ảo có thể tự động chia sẻ GPU cho khối lượng công việc.

Kết xuất video, xử lý hình ảnh nặng, làm việc với các ứng dụng CAD và tạo mô hình 3D là một số trường hợp khi bạn có thể cần tăng tốc 3D và GPU RemoteFX trong máy ảo. GPU hiện đại được điều chỉnh tốt hơn để xử lý song song so với CPU, xử lý đồng thời nhiều mối đe dọa hơn và có nhiều lõi xử lý hơn. Số lượng màn hình và độ phân giải được sử dụng tùy thuộc vào bộ nhớ video và hiệu suất GPU của card màn hình. Sử dụng Remote Desktop, không phải VMConnect (Kết nối máy ảo), để kết nối với VM bằng RemoteFX.

Ưu điểm của RemoteFX là nó có thể được sử dụng trên các phiên bản Windows dành cho máy tính để bàn và máy chủ. Mặc dù việc mua một card màn hình được hỗ trợ tương thích với phần cứng máy chủ có thể không dễ dàng nhưng hầu hết các máy tính để bàn thường chạy hệ điều hành Windows đều đã cài đặt bộ điều hợp đồ họa PCI Express.

2. Kết thúc hỗ trợ

Có một lỗ hổng (CVE-2020-1036) có thể được tội phạm mạng sử dụng để thực thi mã từ xa. Tin tặc có thể thực thi mã từ xa trên máy chủ bằng cách sử dụng các ứng dụng được chế tạo đặc biệt trên máy ảo có GPU RemoteFX để tấn công trình điều khiển video trên máy chủ Hyper-V. Máy chủ lưu trữ không thể xác thực chính xác đầu vào từ người dùng được xác thực trên hệ điều hành khách trong trường hợp này. Microsoft không cung cấp bản vá để khắc phục lỗ hổng này và cho biết đây là sự cố kiến trúc. Do những lo ngại về bảo mật này, Microsoft đã quyết định vô hiệu hóa và xóa RemoteFX khỏi tất cả các phiên bản Windows bằng cách sử dụng các bản cập nhật tự động:

  • RemoteFX vGPU đã bị vô hiệu hóa vào ngày 14 tháng 7 năm 2020 đối với tất cả các phiên bản Windows.
  • RemoteFX vGPU đã bị xóa vào ngày 13 tháng 4 năm 2021.

RemoteFX hoạt động trên Windows 10 phiên bản 1803 và các phiên bản Windows cũ hơn (có thể được cấu hình bằng vài cú nhấp chuột trong GUI của Hyper-V Manager). Sau bản cập nhật KB4571756 (bản cập nhật tích lũy được phát hành vào tháng 9 năm 2020), tính năng này bị tắt trong GUI. Do đó, cấu hình Windows 10 RemoteFX không có sẵn trong GUI của Trình quản lý Hyper-V trong Windows 10, phiên bản 1809 do tính năng này đã bị tắt. Cho đến khi có bản cập nhật vào tháng 4 năm 2021, GPU RemoteFX phải được bật trong PowerShell bằng các lệnh đặc biệt.

3. Yêu cầu RemoteFX

  • Phiên bản Windows được hỗ trợ trên máy chủ Hyper-V (Windows 7 Ultimate/Enterprise, Windows 8 Ultimate/Enterprise, Windows 10; Windows Server 2008 R2 SP1, Windows Server 2012, Windows Server 2016, Windows Server 2019). Không được cài đặt các bản cập nhật loại bỏ Hyper-V RemoteFX.
  • GPU phải tương thích với DirectX 11 trên máy chủ (DirectX 10 có thể được sử dụng trên Windows Server 2008 và Windows 7 được cài đặt trên máy vật lý). Nếu nhiều card màn hình được cài đặt trên máy chủ Hyper-V thì chúng phải giống hệt nhau. DirectX 11 có sẵn trên Windows 8.1 và các phiên bản Windows mới hơn trên máy ảo khách.
  • CPU phải hỗ trợ SLAT (Dịch địa chỉ cấp hai). Tên của tính năng này là Bảng trang mở rộng (EPT) cho bộ xử lý Intel và Bảng trang lồng nhau (NPT) cho bộ xử lý AMD.
  • Các hệ điều hành khách được hỗ trợ là Windows 7 SP1, Windows 8 và 8.1, Windows 10 1703 trở lên, Windows Server 2008 R2, Windows Server 2012, Windows Server 2016 (chỉ triển khai một phiên).

4. Cách định cấu hình RemoteFX

Chuẩn bị máy vật lý là máy chủ Hyper-V. Đảm bảo rằng bạn đã cài đặt trình điều khiển đồ họa cho bộ điều hợp đồ họa trên máy chủ Hyper-V. Bạn nên cài đặt phiên bản trình điều khiển ổn định mới nhất do nhà cung cấp GPU của bạn cung cấp (ví dụ: NVIDIA hoặc AMD).

Chuẩn bị một máy ảo đang chạy phiên bản Windows được hỗ trợ để sử dụng Hyper-V RemoteFX. Trong ví dụ của tôi, tên của VM là Windows-VM và tên của máy chủ Hyper-V là Hyper-V-prim.

4.1. Cài đặt các tính năng cần thiết

Cài đặt Remote Desktop Virtualization Host trên máy chủ Hyper-V.

Mở Trình quản lý máy chủ, và nhấp vào Quản lý > Thêm vai trò và tính năng. Trình hướng dẫn Thêm vai trò và tính năng mở ra.

Loại cài đặt. Chọn Cài đặt dựa trên vai trò hoặc tính năng. Nhấn Tiếp theo ở mỗi bước của trình hướng dẫn để tiếp tục.


Lựa chọn máy chủ. Chọn một máy chủ từ nhóm máy chủ. Đảm bảo rằng máy chủ Hyper-V của bạn được chọn.


Vai trò máy chủ. Chọn Dịch vụ máy tính từ xa trong danh sách vai trò. Nếu vai trò Hyper-V chưa được cài đặt, hãy chọn và cài đặt vai trò Hyper-V.


Tính năng. Bỏ qua bước này.

Dịch vụ máy tính từ xa. Đọc phần giải thích và chuyển sang bước tiếp theo.

Dịch vụ vai trò. Chọn Máy chủ ảo hóa máy tính từ xa. Bạn có thể đọc mô tả ở khung bên phải.


Khởi động lại máy chủ Hyper-V khi quá trình cài đặt vai trò hoàn tất.

4.2. Định cấu hình cài đặt Hyper-V

Mở Trình quản lý Hyper-V bằng cách chạy virtmgmt trong dòng lệnh hoặc sử dụng GUI của Windows. Sau đó mở Cài đặt Hyper-V.

Trong ngăn điều hướng của cửa sổ Cài đặt Hyper-V, hãy nhấp vàoGPU vật lý
.
Sử dụng GPU này với RemoteFX. Trong menu thả xuống, chọn thẻ video của bạn rồi chọn hộp kiểm


Nếu bạn không thể chọn hộp kiểm này thì bộ điều hợp video của bạn không thể sử dụng được cho RemoteFX hoặc RemoteFX bị tắt.

Dừng máy ảo. Mở Trình quản lý Hyper-V, chọn VM của bạn, nhấp chuột phải vào VM và mở Cài đặt VM
.

Trong cửa sổ Cài đặt VM, nhấp vào Thêm phần cứng trong khung bên trái (khung dẫn hướng). Trong khung bên phải, bạn sẽ thấy danh sách các thiết bị mà bạn có thể thêm vào máy ảo. Quy trình làm việc tương tự đối với máy ảo thế hệ 1 và VM thế hệ 2.

Nếu Bộ điều hợp video RemoteFX 3D đang hoạt động (sử dụng phông chữ màu đen), hãy chọn bộ điều hợp này và nhấp vào Thêm. Tùy chọn này hoạt động trong các phiên bản Windows cho đến ngày 14 tháng 7 năm 2020, các bản cập nhật được cài đặt.

Nếu Windows của bạn đã được cập nhật, tùy chọn Bộ điều hợp video RemoteFX 3D không hoạt động (phông chữ màu xám được sử dụng) và bạn không thể thêm bộ điều hợp này vào GUI của Trình quản lý Hyper-V. Đồng thời, tùy chọn GPU vật lý không còn được hiển thị trong Cài đặt Hyper-V.


Bạn có thể sửa lỗi này trong PowerShell.

Chạy lệnh trong PowerShell trên máy chủ Hyper-V để thêm bộ điều hợp video RemoteFX 3D vào máy ảo:

Mã nguồn [Chọn]
Add-VMRemoteFx3dVideoAdapter -VMName your_VM_name
Nếu lệnh được thực thi thành công, một thông báo cảnh báo sẽ hiển thị.

Mã nguồn [Chọn]
WARNING: We no longer support the RemoteFX 3D video adapter. If you are still using this adapter, you may become vulnerable to security risks.
Nếu bạn thấy lỗi: Add-VMRemoteFx3dVideoAdapter: To enable this device, use Server Manager to install the Remote Desktop Virtualization Host role service

Dịch vụ ảo hóa máy tính từ xa chưa được cài đặt trên máy chủ Hyper-V. Xem Cài đặt các tính năng cần thiết trước đó trong bài đăng này.

Kích hoạt Windows 10 RemoteFX sau khi cài đặt bản cập nhật. Như tôi đã đề cập trước đó, nếu cài đặt bản cập nhật Windows ngày 14 tháng 7 năm 2020, Microsoft RemoteFX sẽ bị tắt. Nếu bạn đã cấu hình máy ảo để sử dụng RemoteFX, chúng sẽ không khởi động. Lỗi RemoteFX của Windows 10 sau đây dành cho Windows 10 với bản cập nhật ngày 14 tháng 7 năm 2020 được hiển thị khi cố gắng khởi động VM:

Mã nguồn [Chọn]
An error occurred while attempting to start the selected virtual machine(s):

'VM-name' failed to start.

Synthetic 3D Display Controller (Instance ID xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx): Failed to Power on with Error 'Insufficient system resources exist to complete the requested service.'.

The virtual machine cannot be started because all the RemoteFX-capable GPUs are disabled in Hyper-V Manager. You must enable at least one GPU.

Một biến thể khác của lỗi: The virtual machine cannot be started because the server has insufficient GPU resources.

Bạn có thể sửa lỗi này trong PowerShell. Phương pháp này có thể áp dụng cho Windows 10 và các phiên bản Windows Server phù hợp. Sử dụng các lệnh trong PowerShell để sửa lỗi này và bật RemoteFX. Chạy lệnh này để kiểm tra thông tin về bộ điều hợp video trên máy chủ Hyper-V:

Mã nguồn [Chọn]
Get-VMRemoteFXPhysicalVideoAdapter
Tìm chuỗi này:

Mã nguồn [Chọn]
Enabled: False
Điều đó có nghĩa là RemoteFX bị tắt. Thay đổi giá trị này thành True.


Sao chép tên của card màn hình (trong ví dụ của tôi là NVIDIA GeForce GTX 1060). Chạy lệnh:

Mã nguồn [Chọn]
Enable-VMRemoteFXPhysicalVideoAdapter -Name "video_card_name"
Nhập tên card đồ họa của bạn. Hãy thử khởi động lại máy ảo của bạn bằng RemoteFX. VM sẽ bắt đầu ngay bây giờ. Cũng lưu ý các lệnh ghép ngắn PowerShell này để quản lý bộ điều hợp video RemoteFX 3D:

Mã nguồn [Chọn]
Set-VMRemoteFx3dVideoAdapter

Get-VMRemoteFXPhysicalVideoAdapter

Sau khi thêm bộ điều hợp video RemoteFX 3D vào máy ảo, bộ điều hợp này sẽ hiển thị trong danh sách phần cứng VM với các tùy chọn để đặt độ phân giải, số lượng màn hình và bộ nhớ video chuyên dụng.

Nếu bạn không thấy các tùy chọn này trong GUI của Trình quản lý Hyper-V, hãy sử dụng các tham số bổ sung khi thêm bộ điều hợp video RemoteFX vào VM trong PowerShell, ví dụ:

Mã nguồn [Chọn]
Set-VMRemoteFx3dVideoAdapter -VMName Windows-VM -MaximumResolution 1024×768 -VRAMSizeBytes 536870912
Nếu Microsoft RemoteFX được định cấu hình thành công, trong Windows khách đang chạy trên VM, bạn sẽ thấy Thiết bị đồ họa Microsoft RemoteFX – WDDM thiết bị trong phần Bộ điều hợp hiển thị của Trình quản lý thiết bị. Bộ điều hợp video RemoteFX 3D này là một thiết bị ảo chia sẻ tài nguyên của card video vật lý được cài đặt trên máy chủ Hyper-V vật lý bằng cách sử dụng RemoteFX.

5. Xử lý sự cố

Đôi khi có thể xảy ra thêm lỗi. Hãy để tôi giải thích một lỗi phổ biến khi người dùng không thể kết nối với máy ảo đang chạy bằng Remote desktop RemoteFX.

Triệu chứng:

  • Video remoting was disconnected and the appropriate message is displayed.
  • RDP failed to connect: Your Remote Desktop session has been ended, possibly for one of the following reasons.

Nếu lỗi này xảy ra trên máy ảo của bạn, hãy chỉnh sửa chính sách nhóm trong Windows khách trên máy ảo.

Nhấp vào Bắt đầu > Chạy > gpedit.msc để mở Trình chỉnh sửa chính sách nhóm cho máy cục bộ. Trong ngăn bên trái của cửa sổ Trình chỉnh sửa chính sách nhóm, hãy điều hướng đến

Computer Configuration > Administrative Templates > Windows Components > Remote Desktop Services > Remote Desktop Session Host > Remote Session Environment > RemoteFX for Windows Server.

Nhấp đúp vào Định cấu hình RemoteFX ở khung bên phải của cửa sổ. Một cửa sổ có thuộc tính Định cấu hình RemoteFX sẽ mở ra. Chọn Enabled và nhấn OK để lưu cài đặt.

Nhấp đúp vào Use WDDM graphics display driver for Remote Desktop Connections (có sẵn cho Windows 10 phiên bản 1903 và các phiên bản Windows mới hơn).

Trong cửa sổ mở ra, chọn Disabled và nhấn OK. Cập nhật cấu hình chính sách nhóm để áp dụng cài đặt mới bằng lệnh:

Mã nguồn [Chọn]
gpupdate /force
Khởi động lại máy ảo của bạn. Hãy thử kết nối với VM của bạn bằng Chế độ phiên nâng cao.

6. Cách ngăn chặn việc vô hiệu hóa RemoteFX trên máy chủ Hyper-V

Sau khi cài đặt bản cập nhật Windows phát hành vào tháng 4 năm 2021, các máy ảo sử dụng bộ điều hợp video RemoteFX 3D không khởi động được. Bạn có thể tự chịu rủi ro khi vô hiệu hóa cập nhật tự động trên máy tính Windows để tiếp tục sử dụng RemoteFX. Lưu ý rằng các bản vá bảo mật không được cài đặt tự động trên máy Windows nếu bản cập nhật Windows bị tắt. Các lỗ hổng chưa được vá là mối đe dọa đối với máy tính của bạn, khi đó máy tính có nguy cơ bị nhiễm ransomware, vi rút và phần mềm độc hại khác.

Bạn có thể tải xuống các bản cập nhật (bản vá) Windows theo cách thủ công từ trang web của Microsoft và cài đặt chúng. Tìm hiểu xem bản cập nhật Windows nào nhằm mục đích xóa RemoteFX và không cài đặt chúng. Hãy cân nhắc việc triển khai WSUS (Dịch vụ cập nhật máy chủ Windows) trong tổ chức của bạn và bỏ chọn các bản cập nhật mà bạn không cần.

Đừng quên sao lưu máy chủ Windows và máy ảo Hyper-V của bạn. Trong trường hợp xảy ra thảm họa hoặc bị ransomware tấn công, việc có bản sao lưu cho phép bạn khôi phục dữ liệu, khôi phục khối lượng công việc và tiếp tục hoạt động trong thời gian ngắn. Sử dụng NAKIVO Backup & Bản sao để sao lưu máy vật lý và máy ảo của bạn.

7. Các lựa chọn thay thế cho Hyper-V RemoteFX

Microsoft khuyến nghị khách hàng nên sử dụng DDA thay vì sử dụng RemoteFX sau tháng 4 năm 2021.

DDA (Gán thiết bị rời) là một tính năng cho phép bạn gắn trực tiếp một thiết bị (trong trường hợp của tôi là thiết bị PCI Express) vào VM. Trong trường hợp card đồ họa, card phải được ngắt kết nối khỏi máy chủ và kết nối với VM. Chỉ một VM có thể sử dụng card màn hình có DDA tại bất kỳ thời điểm nào.

Trình điều khiển video cho GPU phải được cài đặt trên hệ điều hành khách của máy ảo chứ không phải trên máy chủ. Trong trường hợp này, các tính năng như DirectX 12 và CUDA (Kiến trúc thiết bị hợp nhất điện toán) có sẵn trên máy ảo  (CUDA không có sẵn trên máy ảo khi sử dụng RemoteFX). Khi sử dụng Phân công thiết bị trực tiếp, không thể di chuyển VM giữa các máy chủ Hyper-V.

Hãy cân nhắc sử dụng các lựa chọn thay thế VMware cho máy chủ và máy tính để bàn chạy VM. Sử dụng Tăng tốc đồ họa chia sẻ ảo (vSGA) và Tăng tốc đồ họa chia sẻ ảo trong VMware vSphere để chia sẻ GPU với nhiều máy ảo. Sử dụng card màn hình tương thích hỗ trợ ảo hóa GPU và có các tính năng phần cứng phù hợp:

  • nVidia GRID vGPU
  • GPU đa người dùng AMD

Bạn có thể bật đồ họa 3D được tăng tốc cho máy ảo trong VMware Workstation nếu bạn sử dụng máy tính để bàn thay vì máy chủ.

Hyper-V RemoteFX là một tính năng hữu ích cho phép máy ảo chia sẻ tài nguyên phần cứng của bộ điều hợp video vật lý được cài đặt trên máy chủ Hyper-V và sử dụng khả năng tăng tốc 3D cho các ứng dụng trên máy ảo. Để định cấu hình RemoteFX trên máy ảo, hãy cài đặt dịch vụ Máy chủ ảo hóa máy tính từ xa trên máy chủ Hyper-V, chỉnh sửa cài đặt Hyper-V chung để chọn GPU phải được sử dụng để tăng tốc video và thêm bộ điều hợp video RemoteFX 3D trong máy ảo tùy chọn phần cứng của VM. Thật không may, Hyper-V RemoteFX không được Microsoft chấp nhận và bạn chỉ có thể sử dụng RemoteFX cho đến khi bạn cài đặt các bản cập nhật Windows vào tháng 4 năm 2021.