Grafika w systemach serwerowych, czyli wirtualizacja grafiki w usługach chmurowych

Obecnie sprawna praca zdalna stała się warunkiem działania firm. Służbowe laptopy nie mają wystarczającej graficznej mocy obliczeniowej, aby pracować z aplikacjami takimi jak systemy CAD/CAM czy programy do renderingu 3D i obróbki grafiki. Ich wysoka cena nie pozwala na zakup mobilnych graficznych stacji roboczych dla wszystkich pracowników. Rozwiązaniem jest wirtualizacja grafiki, dostępna również w usługach chmurowych.

Grafika w systemach serwerowych, czyli wirtualizacja grafiki w usługach chmurowych

Zanim przejdziemy do wirtualizacji grafiki, przyjrzyjmy się najpierw technologiom związanym z wirtualizacją desktopów. W uproszczeniu, wirtualizacja polega na utworzeniu symulowanego środowiska komputerowego, obejmującego zarówno emulację sprzętu, systemu operacyjnego, urządzeń pamięci masowych, jak i oprogramowania. Dzięki niej można na jednym fizycznym komputerze czy serwerze utworzyć kilka lub nawet kilkanaście instancji maszyn wirtualnych, które z zewnątrz nie będą się różnić od fizycznego komputera. Takie działające na jednym komputerze maszyny wirtualne mogą niezależnie od siebie wchodzić w interakcje z otaczającym je środowiskiem IT. Mogą mieć zainstalowane różne systemy operacyjne i różne, niezwiązane ze sobą aplikacje, ale zawsze będą współużytkować zasoby jednego fizycznego komputera-hosta.

Wirtualizacja pozwala na utworzenie wielu zasobów na bazie jednego komputera lub serwera. W ten sposób udaje się skalować dostępne dla poszczególnych wirtualnych maszyn zasoby w zależności od potrzeb i obciążenia oraz w pełni wykorzystać moc obliczeniową komputera-hosta, zapewniając obsługę większej liczby obciążeń i zmniejszając liczbę wymaganych serwerów w data center. Dodatkowe korzyści z wirtualizacji to zmniejszenie ilości zużywanej energii, mniejsze koszty infrastruktury i nakładu pracy związanej z utrzymaniem fizycznych maszyn.

Zobacz również:

  • 5 priorytetów, które obniżają koszty chmury i usprawniają operacje IT
  • Canva dokonuje największego przejęcia w pościgu za Adobe

Wirtualny komputer, czyli technologia VDI

Infrastrukturalna wirtualizacja stacji roboczych, czyli technologia VDI (Virtual Desktop Infrastructure), to rozwiązanie, w którym użytkownicy końcowi nie działają na lokalnym sprzęcie znajdującym się na ich biurkach czy w domu, ale pracują na maszynie wirtualnej uruchomionej na serwerze. Jest ona zazwyczaj hostowana w data center na fizycznym serwerze z zainstalowanym hypervisorem i odpowiednim oprogramowaniem. Zaletą tego rozwiązania jest to, że do połączenia i pracy na wirtualnym desktopie korzystać można z dowolnego urządzenia, począwszy od standardowej stacji roboczej, czyli desktopa lub notebooka, poprzez tzw. cienkiego klienta, czyli terminal, a kończąc na urządzeniach mobilnych takich jak smartfon czy tablet. Wystarczy, że urządzenie klienckie wyposażone jest w przeglądarkę internetową.

Należy wspomnieć, że infrastruktura VDI często jest mylona z podobnymi usługami – usługą zdalnego pulpitu (Remote Desktop Services), określaną jako usługi terminalowe, i z architekturą SBC (Server-Based Computing), określaną terminem hostowanych aplikacji. Jak one działają?

W pierwszym wypadku użytkownicy dostają swoje środowisko pracy w formie zdalnego pulpitu. Na takim pulpicie każdy z użytkowników ma dostęp do swoich aplikacji i dokumentów, a komfort pracy jest porównywalny z pracą na zwykłym, fizycznym komputerze PC. Co ważne, każdy użytkownik dostaje tu własną wydzieloną przestrzeń roboczą i nie widzi sesji innych osób. Trzeba jednak pamiętać, że pulpity są udostępniane w formie sesji usług terminalowych z jednego serwerowego systemu operacyjnego. Pulpity mogą być współdzielone i niewspółdzielone, co daje dużą elastyczność i możliwość uruchomienia dużej liczby desktopów na jednej fizycznej maszynie. Ponieważ w modelu tym wielu użytkowników współdzieli jeden system operacyjny, konieczne jest wprowadzenie ograniczeń uniemożliwiających wykonywanie czynności negatywnie wpływających na działania innych użytkowników. Do takich operacji należą: instalowanie aplikacji, wprowadzanie zmian w ustawieniach systemu operacyjnego oraz jego restartowanie. Oprogramowaniem obsługującym usługi zdalnego pulpitu jest np. Citrix XenDesktop współpracujący z usługą Microsoft Remote Desktop Services (RDS), a na końcówce użytkownika niezbędna jest instalacja oprogramowania Citrix Receiver. Wirtualny pulpit najlepiej sprawdza się w przypadku pracowników, którzy potrzebują ustandaryzowanego, identycznego dla każdego użytkownika środowiska pracy, stąd też często jest wykorzystywany w oddziałach firm lub w call center.

Z kolei architektura SBC to technologia, w której aplikacja znajduje się fizycznie na serwerze i jest na nim zarządzana oraz uruchamiana. Do użytkownika przesyłany jest wyłącznie interfejs graficzny danego programu. Podstawowa różnica pomiędzy RDS i SBC polega na tym, że użytkownik nie otrzymuje tu dostępu do pełnego pulpitu, a jedynie do samych aplikacji, np. w systemie Windows czy Linux. Dzięki oprogramowaniu klienckiemu Citrix Receiver aplikacje te mogą zintegrować się z komputerem użytkownika w taki sposób, że trudno je odróżnić od lokalnie zainstalowanego softwaru. To rozwiązanie stosowane jest w wypadku pracowników zadaniowych, którzy wykonują swoją pracę tylko na bazie dostarczonych aplikacji, stąd często spotkać je można w oddziałach banków czy punktach sprzedaży.

Wróćmy jednak do technologii VDI. Jak już wspomniałem, w tym modelu każdy z użytkowników otrzymuje własny, desktopowy system operacyjny w formie maszyny wirtualnej wraz z dostępem do wirtualnych zasobów sprzętowych. Rozwiązanie to stosowane jest w wypadku pracowników, których wymagania są tożsame z wymaganiami użytkowników fizycznych komputerów, czyli potrzebują oni instalować aplikacje, mieć dedykowane zasoby sprzętowe lub posiadać uprawnienia administracyjne do zarządzania systemem. Dodatkowo model ten daje możliwość precyzyjnej kontroli zasobów sprzętowych, w tym liczby procesorów, pamięci RAM i przestrzeni dyskowej przydzielanych do poszczególnych wirtualnych desktopów. Stosowanym tu oprogramowaniem jest najczęściej Citrix XenDesktop lub VMware. Niemniej w wielu wdrożeniach VDI pojawia się problem wirtualizacji grafiki.

Dzielimy grafikę na czworo

Teoretycznie, wirtualne maszyny obsługują funkcje renderingu i funkcje obliczeniowe, w tym możliwość programowania procesorów graficznych, które to procesory zainstalowane są na maszynie-hoście. Należy jednak pamiętać, że domyślnie w systemach VDI rendering realizowany jest software’owo, z użyciem standardowego procesora (CPU), i niemal nie wykorzystuje się dostępnych procesorów graficznych (GPU) do renderowania. Wystarcza to przy aplikacjach biurowych, ale w wypadku profesjonalnych aplikacji 3D czy systemów CAD/CAM, a nawet trochę bardziej zaawansowanych gier jest nie do przyjęcia.

Standardowe systemy do wirtualizacji oferują trzy tryby udostępniania zasobów graficznych maszynom VDI: Software 3D, vSGA oraz vDGA. Pierwszy z nich to wspomniany tryb softwarowy, który pozwala na jedynie częściowe, sprzętowe wsparcie realizowanych przez maszynę wirtualną obliczeń 3D ze strony zainstalowanej w komputerze hoście fizycznej karty graficznej. Wykonywane przez kartę graficzną funkcje 3D, które wywoływane zostały przez graficzny interfejs API, np. DirectX czy Open GL, trafiają do procesora, i to on decyduje, czy przekazuje je do sterowników karty graficznej zainstalowanych w systemie gospodarza, czy będą one realizowane software’owo. To, w jaki sposób realizowane są operacje graficzne, zależy w trybie software’owym wyłącznie od obciążenia graficznymi obliczeniami poszczególnych wirtualnych maszyn.

W drugim z trybów, vSGA (Virtual Shared Graphics), karta graficzna jest współdzielona przez wszystkie wirtualne maszyny. Jego zaletą jest to, że każda z maszyn ma dostęp do procesora graficznego, a wadą jest znaczne obniżenie wydajności graficznej wszystkich wirtualnych maszyn w wypadku skomplikowanych obliczeń 3D, nawet jeśli realizowane są tylko przez jedną wirtualną maszynę. W praktyce tryb ten nadaje się do obsługi stosunkowo prostych zadań graficznych i uruchamiania niezbyt wymagających gier. W przypadku profesjonalnych aplikacji 3D, np. Blender, Maya 2022 czy 3ds Max, a także aplikacji CAD uruchomionych na kilku wirtualnych maszynach nie jest on w stanie zapewnić odpowiedniej wydajności.

Trzeci tryb, vDGA (Virtual Dedicated Graphics Adapter), wykorzystuje funkcję PCI pass-through, dzięki temu zainstalowana w serwerze karta graficzna przydzielana jest do określonej maszyny wirtualnej. Wirtualny desktop wykorzystuje tu natywny sterownik producenta karty graficznej i ma zagwarantowany bezpośredni dostęp do wszystkich funkcji karty, w tym dostępne jest wsparcie dla bibliotek graficznych DirectX i OpenGL. Główną wadą tego trybu jest to, że liczba wirtualnych maszyn równa się liczbie fizycznych kart graficznych zainstalowanych na serwerze.

Pierwszą kartą, dzięki której udało się rozwiązać ww. wirtualizacyjne problemy, była Nvidia Grid z 2008 r. – systemy bazujące na tej technologii oferowane są obecnie przez wielu dostawców usług chmurowych, m.in. przez Microsoft Azure czy Amazon Cloud. Układy z serii Grid różnią się od standardowych układów graficznych możliwością obsługi tzw. GRID Managera. Do jego zadań należy przede wszystkim dynamiczne przydzielanie graficznych zasobów zainstalowanych w serwerze do poszczególnych wirtualnych maszyn. Dzięki temu tryb vGPU, czyli tryb wirtualnego procesora graficznego, wykorzystuje zalety trybów vSGA i vDGA. W ten sposób możliwe stało się korzystanie z natywnych sterowników karty graficznej w wirtualnych desktopach VDI, a jednocześnie z jednej fizycznej karty graficznej może korzystać wiele wirtualnych maszyn.

Wirtualizacja GPU Nvidi

Obecne, wywodzące się z systemu Grid, karty graficzne do wirtualizacji grafiki bazują już na najnowszej architekturze Ampere, bardzo dobrze znanej z gamingowych kart graficznych Nvidia GeForce RTX z serii 30. Są to modele RTX A6000 i A40. Co ważne, karty te przyspieszają proces renderingu, ale również działanie algorytmów sztucznej inteligencji, obliczenia HPC (High Performance Computing), realizowaną w czasie rzeczywistym technologię ray-tracingu oraz wirtualną i rozszerzoną rzeczywistość. Dzięki temu zwirtualizowana przestrzeń robocza może być dostępna nie tylko dla inżynierów czy profesjonalnych grafików 3D, ale również dla twórców i artystów zajmujących się najróżniejszymi dziedzinami sztuki – od filmu po grafikę – umożliwiając im kreatywną, wydajną pracę w dowolnym miejscu na Ziemi.

Karty z serii RTX A6000 przeznaczone są do zaawansowanych stacji roboczych i stacji graficznych, oferując swoim użytkownikom wirtualizację na potrzeby pojedynczych, wirtualnych maszyn, zaś seria A40 to karty graficzne przeznaczone do centrów danych. Wykorzystane w nich procesory graficzne pozwalają obciążyć kartę wieloma równolegle wykonywanymi zadaniami związanymi z grafiką i obliczeniami HPC. Warto wspomnieć, że dzięki odpowiednim, zoptymalizowanym sterownikom karty znakomicie radzą sobie w programach stosowanych podczas badań naukowych, a także są w stanie udostępnić swoją moc obliczeniową do różnego rodzaju symulacji.

Zarówno RTX A6000, jak i A40 wymagają odpowiedniego oprogramowania do udostępnienia trybu vGPU. Nvidia wraz ze swoimi kartami oferuje narzędzie o nazwie NVIDIA virtual GPU, które pozwala wielu wirtualnym maszynom na jednoczesny bezpośredni dostęp do fizycznych procesorów graficznych. W zwirtualizowanym środowisku VDI należy zainstalować w warstwie wirtualizacji wraz z hiperwizorem oprogramowanie służące do zarządzania wirtualizacją kart. Następnie tworzone są wirtualne układy GPU, które można już przydzielić każdej wirtualnej maszynie, jaka została wygenerowana na komputerze-hoście. Oprogramowanie do wirtualizacji grafiki firmy Nvidia zawiera odpowiednie sterowniki dla każdej wirtualnej maszyny. Na przykład software stworzony z myślą o inżynierskim środowisku VDI, NVIDIA Quadro Virtual Data Center Workstation (Quadro vDWS), oferuje sterowniki zgodne ze sterownikami wykorzystywanymi przez inżynierskie karty z serii Quadro.

Wirtualizacja kart AMD

Nieco ponad dwa lata temu firma AMD zaprezentowała swoje dwie pierwsze karty graficzne zgodne z technologią MxGPU (MultiuserGPU), która to technologia umożliwia wirtualizację grafiki. Są to modele AMD FirePro S7150 i AMD FirePro S7150 x2. Jak twierdzi producent, architektura AMD MxGPU jest pierwszym na świecie sprzętowym, zwirtualizowanym rozwiązaniem układów GPU, umożliwiającym zdalną pracę wielu zwirtualizowanych maszyn VDI, które to maszyny mogą korzystać z jednego fizycznego układu GPU. Porównując architekturę AMD MxGPU z systemem vGPU Nvidii, widać, że struktura funkcjonalna hypervisora znalazła się w warstwie sprzętowej, a nie w programowej. Dzięki takiemu podejściu funkcjonalność wirtualizacji GPU wbudowana została bezpośrednio w strukturę układu, a na serwerze zainstalowano tylko niewielki sterownik hosta dla hiperwizora.

Co ciekawe, AMD oferuje obecnie w sprzedaży zarówno karty w tradycyjnej formie (AMD Radeon Pro V340 MxGPU), jak i przeznaczone do serwerów blade karty produkowane w postaci płytki drukowanej ze złączem krawędziowym (AMD FirePro S7100X), umożliwiającym montaż karty bezpośrednio na płycie głównej serwera. Radeon Pro V340 MxGPU bazuje na architekturze AMD Vega i korzysta z 32 GB ultraszybkiej pamięci HBM 2. Dzięki temu możliwa jest obsługa dużej liczby wirtualnych maszyn, nawet do 32 instancji. Na uwagę zasługuje zintegrowany, sprzętowy silnik en kodujący, oferujący możliwość kompresowania dla każdej z wirtualnych maszyn niezależnych strumieni wideo zarówno w formacie H.264 jak i H.265. Rozwiązanie takie pomaga wyeliminować wąskie gardło, jakim w przypadku enkodowania strumieni wideo jest procesor zwirtualizowanego serwera. AMD FirePro S7100X obsługuje nieco mniejszą liczbę maszyn VDI, bo tylko 16. Ciekawostką jest tu możliwość zastosowania kontrolowanych sprzętowo cykli dostępu, dzięki czemu udaje się zapewnić w centrum danych przewidywalny parametr QoS (Quality of Service) dla zwirtualizowanych, graficznych stacji roboczych.

Zamiast zakończenia

Jak widać, istnieją już obecnie standardowe możliwości dostarczania przez centrum danych usług związanych z udostępnianiem wirtualnych maszyn VDI obsługujących nawet najbardziej zaawansowane aplikacje graficzne. Tego typu wirtualizacja pozwala firmom nie tylko udostępnić w wygodny sposób zasoby do pracy zdalnej, co jest istotne w czasach COVID-19, ale również poczynić znaczne oszczędności i zwiększyć wydajność operacyjną firmowego centrum danych, ponieważ prowadzi do lepszego wykorzystania i konsolidacji serwerów.

Możliwe jest także wdrożenie firmowej, w pełni funkcjonalnej usługi udostępniania pracownikom (a także udostępniania komercyjnego) zdalnych, graficznych stacji roboczych w modelu DaaS (Desktop as a Service), z dostępem do aplikacji 3D, systemów CAD/CAM, transmisji strumieniowej materiałów multimedialnych, a także do grania w najnowsze tytuły klasy AAA.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200