StorageReview.com

Przewodnik po Proxmox vGPU: Twój procesor graficzny zasługuje na coś więcej niż tylko funkcję passthrough

Enterprise   ◇  Oprogramowanie

Firma Proxmox Server Solutions ogłosiła niedawno obsługę technologii NVIDIA vGPU dla swojego hiperwizora środowiska wirtualnego (VE), otwierając zupełnie nowy świat akceleracji GPU w zastosowaniach takich jak renderowanie, VDI, AI i inne. Dołącz do nas, a omówimy i oprowadzimy Cię po nowym zestawie funkcji hiperwizora oraz ocenimy jego wydajność.

Czemu obsługa vGPU jest taka ważna?

Jeśli nie znasz oprogramowania vGPU firmy NVIDIA, umożliwia ono partycjonowanie i dystrybucję zasobów obliczeniowych i pamięci procesora graficznego (GPU) pomiędzy wiele maszyn wirtualnych (VM). W tej konfiguracji maszyny wirtualne naprzemiennie korzystają z mocy obliczeniowej procesora graficznego i przydzielają część pamięci karty na swoje potrzeby. Takie podejście pozwala procesorowi graficznemu utrzymać szczytowe wykorzystanie, nawet gdy obciążenia maszyn wirtualnych gości różnią się intensywnością.

Instalacja Proxmox vGPU L40S

Zanim zaczniemy… (Wymagania wstępne)

Przed uruchomieniem środowiska wirtualizacji GPU w Proxmox VE (PVE) będziesz potrzebować kilku rzeczy. Podobnie jak wiele innych produktów dla centrów danych, oprogramowanie vGPU firmy NVIDIA nie jest darmowe. Musisz kupić lub zarejestrować się w wersji ewaluacyjnej oprogramowania Virtual GPU i utworzyć konto NVIDIA Enterprise. Następnie musisz zaopatrzyć się w kartę kompatybilną z vGPU i pobrać odpowiednie sterowniki z portalu licencyjnego . Pobierz aktualne wersje sterowników „Linux KVM”. Co najmniej:

  • Oprogramowanie vGPU: 18.0
  • Sterownik hosta: 570.124.03
  • Sterownik gościnny Linux: 570.124.06
  • Sterownik gościnny systemu Windows: 572.60

W tym projekcie wykorzystaliśmy karty graficzne NVIDIA L40S i Dell PowerEdge R760.

Proxmox vGPU GPU NVIDIA

Dodatkowo, aby aktywować funkcjonalność vGPU na komputerach gościnnych, potrzebny będzie dedykowany serwer licencyjny (DLS) lub serwer licencyjny w chmurze (CLS). Skrócony przewodnik znajdziesz, klikając tutaj.

Następnie sprawdź, czy ustawienia UEFI (BIOS) serwera włączają odpowiednie funkcje wirtualizacji. Sprawdź ustawienia VT-d lub AMD-v , SR-IOV , dekodowania powyżej 4G , paska o zmiennym rozmiarze oraz interpretacji alternatywnego identyfikatora routingu (ARI) i upewnij się, że wszystkie są włączone.

Uwaga: W menu UEFI nie wszystkie te funkcje mogą być dostępne, ponieważ użytkownik może ich nie widzieć.

Na koniec sprawdź, czy używasz odpowiedniej wersji Proxmox VE. Funkcjonalność vGPU wymaga co najmniej menedżera pve w wersji 8.3.4 i jądra 6.18.12-8-pve lub nowszego. Wersje oprogramowania węzła PVE możesz sprawdzić, przechodząc do zakładki „Podsumowanie” na wybranym serwerze, jak pokazano poniżej:

Interfejs Proxmox vGPU VE 1

Host z największą liczbą funkcji (konfiguracja vGPU hosta Proxmox)

Skoro wszystko jest już gotowe, czas skonfigurować serwer Proxmox VE. W interfejsie internetowym serwera Proxmox VE kliknij nazwę serwera po lewej stronie ekranu i wybierz zakładkę „Shell”. Wpisz poniższe polecenie w wyświetlonym oknie konsoli i naciśnij Enter po zakończeniu:

apt install pve-nvidia-vgpu-helper

Dzięki temu narzędzie do konfiguracji vGPU zostanie zainstalowane na serwerze, przygotowując go do obsługi Proxmox vGPU. Gdy serwer zakończy instalację skryptu lub poinformuje Cię, że jest już zainstalowany, uruchom jeszcze jedno polecenie, aby uruchomić narzędzie.

Konfiguracja pve-nvidia-vgpu-helper

Odpowiedz „Y” na wszystkie pytania i kontynuuj, aż okno konsoli powróci, a skrypt zostanie ukończony. Wykonaj szybki restart serwera, przechodząc do zakładki „Podsumowanie” i naciskając przycisk „Uruchom ponownie” lub wpisz polecenie reboot w konsoli zakładki „Powłoka” i naciśnij Enter.

Następnie należy załadować na serwer sterownik hosta vGPU firmy NVIDIA. Po ponownym uruchomieniu serwera należy użyć narzędzia do transferu SSH lub SCP, takiego jak WinSCP, aby skopiować sterownik hosta na węzeł.

Uwaga: Jeśli wszystkie sterowniki pobrano w postaci skompresowanego folderu (.zip), konieczne może być najpierw wyodrębnienie jego zawartości i wybranie pliku „.run” z folderu „Host_Drivers”.

Umieść plik w katalogu „/home” serwera i przygotuj się do uruchomienia instalatora za pomocą następujących poleceń.

cd /home chown root NVIDIA-Linux-x86_64-570.124.03-vgpu-kvm.run chmod +X NVIDIA-Linux-x86_64-570.124.03-vgpu-kvm.run ./NVIDIA-Linux-x86_64-570.124.03-vgpu-kvm.run --dkms

Uwaga: Zastąp „NVIDIA-Linux-x86_64-570.124.03-vgpu-kvm.run” rzeczywistą nazwą pobranego sterownika. Możesz użyć polecenia „ls”, aby wyświetlić nazwę pliku po umieszczeniu go w katalogu „/home”.

Teraz, gdy sterownik został zainstalowany na serwerze, jesteśmy już tylko o krok od ukończenia konfiguracji Proxmox vGPU po stronie hosta! Zanim oznaczymy GPU jako urządzenie, które można podzielić między maszyny wirtualne, musimy włączyć wirtualizację Single Root I/O (SR-IOV). NVIDIA definiuje tę funkcję jako „…technologia umożliwiająca fizycznemu urządzeniu PCIe wielokrotne prezentowanie się za pośrednictwem magistrali PCIe. Technologia ta umożliwia wiele wirtualnych instancji urządzenia z oddzielnymi zasobami”. Ponieważ SR-IOV jest kluczową technologią niezbędną do podstawowej funkcjonalności vGPU na nowoczesnych procesorach graficznych, należy skonfigurować jej włączanie podczas rozruchu za pomocą następującego polecenia:

systemctl enable --now pve-nvidia-sriov@ALL.service

Na koniec możemy zmapować zasoby GPU, aby precyzyjnie rozdzielić je między maszyny wirtualne. W interfejsie webowym serwera Proxmox VE kliknij „Centrum danych” w lewym górnym rogu i przewiń w dół, aby wybrać zakładkę „Mapowanie zasobów”.

Kliknij przycisk „Dodaj” znajdujący się pod sekcją „Urządzenia PCI” na stronie i w następnym oknie wypełnij pole „Nazwa:” nazwą opisującą mapowany procesor graficzny.

Następnie zaznacz pole wyboru „Użyj z urządzeniami pośredniczącymi” i upewnij się, że menu rozwijane „Mapowanie na węźle” zawiera serwer z mapowanym GPU. Przewiń listę urządzeń w dół, upewniając się, że wszystkie identyfikatory urządzeń zawierają „NVIDIA Corporation” w kolumnie „Dostawca”. Jeśli tak jest, kliknij pole wyboru w lewym górnym rogu tabeli, aby zaznaczyć wszystkie urządzenia; w przeciwnym razie zaznacz tylko urządzenia z „NVIDIA Corporation” jako dostawcą.

Uwaga: Jeśli w systemie zainstalowano wiele procesorów graficznych, można użyć polecenia „lspci” w zakładce „Powłoka” na wybranym serwerze, aby ustalić identyfikatory przypisane do poszczególnych kart.

Po wybraniu urządzenia kliknij przycisk „Utwórz” w prawym dolnym rogu okna, aby potwierdzić wybór. Twój procesor graficzny NVIDIA jest teraz gotowy do podzielenia na wirtualne procesory graficzne (vGPU) dla gości serwera Proxmox VE!

Obsługa gości (przypisywanie vGPU do maszyn wirtualnych)

Wszystko jest już gotowe, abyśmy mogli rozpocząć przypisywanie i używanie vGPU na naszych maszynach wirtualnych. Zacznijmy od utworzenia nowej maszyny wirtualnej (jak zwykle) lub użycia istniejącej maszyny wirtualnej. W naszej demonstracji użyjemy maszyny wirtualnej z systemem Windows Server 2025.

W interfejsie internetowym serwera Proxmox VE wyłącz maszynę wirtualną przy użyciu dowolnej metody, którą uważasz za stosowną (konsola noVNC, menu zasilania gościa itd.), a następnie kliknij kartę „Sprzęt” gościa.

Z menu rozwijanego, które pojawi się po kliknięciu przycisku „Dodaj”, wybierz „Urządzenie PCI”.

W oknie podręcznym „Dodaj: Urządzenie PCI” wybierz nazwę przypisaną do karty graficznej z mapowanymi zasobami w polu „Urządzenie:”.

Następnie kliknij pole „Typ MDev:” i spójrz na listę dostępnych opcji typu urządzenia pośredniczącego. Zauważysz, że każda opcja ma oznaczenie liczbowe i literowe. Liczba reprezentuje ilość pamięci VRAM przypisanej do komputera gościa (w gigabajtach), a „A”, „B” i „Q” odnoszą się do przypadku użycia vGPU:

  • Q – Wirtualne stacje robocze ze sterownikami RTX Enterprise (wymaga licencji RTX vWS)
  • B – Wirtualne pulpity (wymaga licencji NVIDIA Virtual PC lub licencji RTX vWS)
  • A – Rozwiązania aplikacyjne (wymaga licencji NVIDIA Virtual Applications)

Uwaga: Więcej informacji na temat różnych profili vGPU i wymaganych przez nie licencji można znaleźć tutaj.

W tej demonstracji użyliśmy profilu „NVIDIA L40S-12Q”. Po wybraniu żądanego typu urządzenia pośredniczącego, zakończ, zaznaczając pole wyboru „PCI-Express” i klikając niebieski przycisk „Dodaj”.

Do maszyny wirtualnej przypisano teraz vGPU, ale nadal musimy zainstalować sterownik gościa i token licencyjny, aby wszystko działało. Możesz teraz uruchomić maszynę wirtualną i się zalogować.

Po zalogowaniu przenieś sterownik gościa NVIDIA vGPU uzyskany wcześniej z portalu licencyjnego do maszyny wirtualnej w dowolny sposób (SMB, SCP, bezpośrednie pobieranie itp.). Alternatywnie możesz utworzyć i przesłać wirtualny plik CD-ROM (.iso) zawierający sterownik do pamięci masowej serwera PVE za pomocą oprogramowania takiego jak ImgBurn do jednoczesnego wdrażania wielu gości z włączoną obsługą vGPU.

Uruchom plik instalatora sterownika, klikając dwukrotnie plik wykonywalny, i postępuj zgodnie z instrukcjami wyświetlanymi w menu instalacyjnym.

Wypakuj sterownik do domyślnej lokalizacji w polu „Ścieżka wyodrębnienia:” i wybierz opcję instalacji „Ekspresowa”, gdy zostaniesz o to poproszony.

Po zakończeniu instalacji sterownika kliknij przycisk „ZAMKNIJ”, aby wyjść z menu.

Następnie musimy aktywować licencję vGPU na komputerze gościa. Metody aktywacji mogą się znacznie różnić w zależności od tego, czy wybierzesz dedykowany serwer licencji (DLS), czy serwer licencji w chmurze (CLS), oraz od systemu operacyjnego. Postępuj zgodnie z instrukcjami firmy NVIDIA. Szybki przewodnik po systemie licencjonowania oraz Podręcznik użytkownika licencji klienta aby uzyskać szczegółowe instrukcje dotyczące aktywacji klientów w Twojej konkretnej konfiguracji.

Skorzystaliśmy z serwera licencji w chmurze i otrzymaliśmy plik tokena, który należy umieścić na komputerach gości w celu aktywacji. Przenieś ten plik na komputer gościa i skopiuj go do folderu „C:\Program Files\NVIDIA Corporation\vGPU Licensing\ClientConfigToken”.

Następnie, aby dokończyć proces aktywacji, konieczne jest ponowne uruchomienie komputera gościa.

Po wykonaniu wszystkich opisanych tutaj kroków konfiguracji hosta i gościa, będziesz gotowy do uruchamiania programów i aplikacji wymagających GPU. Nie zapomnij włączyć protokołu RDP (Remote Desktop Protocol) lub zainstalować ulubionego oprogramowania do zdalnego pulpitu na komputerach gościnnych po ponownym uruchomieniu, aby cieszyć się możliwościami zdalnego podglądu z akceleracją GPU!

Rozkręcanie silnika (wypróbowywanie Proxmox vGPU)

Skoro mamy już serwery wirtualne z wirtualnymi procesorami graficznymi (GPU), czas je przetestować! Każda z naszych maszyn wirtualnych została skonfigurowana z 8-pinowymi procesorami Intel Xeon Platinum 8580 vCPU (4 rdzenie Hyper-Threading), 32 gigabajtami pamięci RAM DDR5 4800 MT/s z rejestrowaną korekcją błędów (ECC) oraz profilem vGPU NVIDIA L40S-12Q (wirtualna stacja robocza) z 12 gigabajtami pamięci VRAM. Poniżej znajduje się pełna konfiguracja sprzętowa maszyn wirtualnych:

Cinebench 2024

Oparty na oprogramowaniu do modelowania i animacji Cinema 4D firmy Maxon, test Cinebench 2024 oferuje interesujące i obiektywne spojrzenie na wydajność renderowania na vGPU. Porównajmy pełną moc L40S w profilu „48Q” (wszystkie 48 gigabajtów pamięci VRAM) z jedną maszyną wirtualną i czterema maszynami wirtualnymi z profilem „12Q”.

Chociaż nie ma większego sensu, aby jedna maszyna wirtualna zajmowała cały L40S, możemy zauważyć, że wydajność jest imponująca i wynosi 21 147 punktów w teście jednoprzebiegowym GPU. Jednak podział GPU na cztery części pokazuje wpływ podejścia firmy NVIDIA do dzielenia rdzeni CUDA GPU, z indywidualnymi wynikami wahającymi się od 2,514 do 2,567, gdy test został uruchomiony jednocześnie na wszystkich maszynach wirtualnych.

Ponowne uruchomienie testu na pojedynczej maszynie wirtualnej z profilem „12Q” i przy trzech pozostałych maszynach wirtualnych w stanie bezczynności podnosi wynik do 15 133. Nie jest to co prawda powrót do pełnego wyniku GPU, ale wciąż jest to przyzwoity wynik dla partycjonowanego vGPU.

Testy porównawcze Blendera

Kontynuujmy kilka kolejnych testów renderowania w Blenderze. Zgodnie z trendami znanymi z Cinebench 2024, podział GPU na cztery części skutkuje drastycznie niższą wydajnością całkowitą w porównaniu z pojedynczą maszyną wirtualną obsługującą to samo obciążenie w tym samym profilu.

Jak wykazano w teście Monster, zaledwie cztery maszyny wirtualne współdzielące moc obliczeniową GPU oznaczają, że wydajność renderowania pojedynczej maszyny wirtualnej może wynosić zaledwie 8% wydajności pojedynczej maszyny wirtualnej o tym samym profilu. Zaobserwowaliśmy jednak, że jedna maszyna wirtualna zyskała znaczną przewagę nad pozostałymi – nawet 2.4-krotnie wyższą niż wynik maszyny o najgorszych wynikach.

Podobne wyniki uzyskano w testach wydajności Junkshop i Classroom — na trzech z czterech maszyn wirtualnych odnotowano duże spadki wydajności, a pojedynczy gość uzyskał znacznie wyższy wynik niż pozostali.

 

Co ciekawe, zdarzają się krótkie momenty, w których vGPU jednej maszyny wirtualnej otrzymuje wyższy priorytet i zyskuje znaczącą przewagę. Na przykład, podczas testu Classroom, nasza druga maszyna wirtualna z systemem Windows Server 2025 (WIN2025-2) osiągnęła ponad trzykrotnie wyższą wydajność niż jej odpowiedniki, mimo jednoczesnego działania. Chociaż nie możemy precyzyjnie określić, czy wynika to z harmonogramowania oprogramowania vGPU, czy z natury samego GPU, uwypukla to pewne nietypowe parametry wydajności, typowe dla podejścia firmy NVIDIA opartego wyłącznie na dzieleniu czasu w przypadku tej karty.

Wniosek

Konfiguracja i obsługa oprogramowania vGPU firmy NVIDIA mogą nie być tak dopracowane, jak w przypadku innych konkurencyjnych platform. Mimo to jest to ekscytująca i cenna funkcja dla organizacji i laboratorów domowych, którzy już korzystają z systemów Proxmox Virtual Environment. Chociaż dzielenie zasobów GPU powoduje znaczny spadek wydajności, wiele organizacji nadal korzysta z technologii vGPU firmy NVIDIA i doszło do wniosku, że współdzielenie GPU rekompensuje tę wadę. Takie podejście przyjęło wiele hiperskalerów i centrów danych o ograniczonej przestrzeni, gdzie upchanie jak największej liczby użytkowników (w tym przypadku maszyn wirtualnych z vGPU) w jak najmniejszej przestrzeni jest najbardziej wydajną i opłacalną opcją.

Niedawny i szybki rozwój funkcji Proxmox Server Solutions, takich jak sieci definiowane programowo, obsługa jądra Linux 6.11 oraz dedykowany system zarządzania centrum danych, stanowi znaczący postęp i dowodzi, że staje się to słusznym wyborem w obszarze hiperwizorów. Mamy nadzieję na dalszy rozwój w tym obszarze i z niecierpliwością czekamy na możliwość podzielenia się z Państwem informacjami o ekscytujących narzędziach i technologiach, które wkrótce pojawią się w PVE!

Nextmox

Skontaktuj się z StorageReview

Biuletyn | YouTube | Podcast iTunes / Spotify | Instagram | Twitter | TikTok | Kanał RSS

Andrzej Waag

Andrew Waag jest administratorem systemów rozproszonych w firmie Linde plc, którego zainteresowania obejmują sprzęt serwerowy, korporacyjne systemy pamięci masowej oraz sprzęt sieciowy. Zawsze szuka nowych zastosowań dla swojego laboratorium domowego i eksperymentuje z technologiami wirtualizacji i pamięci masowej.