Citrix Üzerinde vGPU ve HDX 3D Pro Rehberi
  1. Anasayfa
  2. Citrix

Citrix Üzerinde vGPU ve HDX 3D Pro Rehberi

0

Aslında uzun zamandır hayatımızda olan ama yıllardır süregelen GPU’lu son kullanıcı cihazları alışkanlığından dolayı geçişi biraz cesaret ve bütçe isteyen konudur vGPU. Pandemi başlangıcından sonra artan uzaktan çalışma teknolojilerinin kullanımının artmasıyla beraber daha popüler bir konu haline geldi. Bu yazımda sizlere hem vGPU konusundan hem de Citrix tarafında bu sürecin nasıl ve ne şekilde desteklendiğinden bahsetmek istiyorum.

Özetle vGPU, ekran kartı desteğine sahip sunuculara takılan kartı sanallaştırarak bunun altında birtakım profilleri oluşturup bunları sanal makinelere paylaştırmaktır. Buradaki amaç, tek bir ekran kartını VRAM’lerine ayırarak birden fazla sanal makinede kullanılmasını sağlamak. Bu sayede son kullanıcı cihazına nazaran sunucu seviyesinde bir GPU paylaşımı yaparak aynı performans daha düşük VRAM ile sağlanabiliyor.

vGPU Teknolojileri

Aşağıda örnek olarak vGPU profillerinin nasıl göründüğünü paylaşmak istiyorum;

Resim-1

A, B, C ve Q olarak dört ayrı profilde oluşur. Her bir harf farklı iş yükleri için ekran kartının kaynaklarını yüzdesel olarak kullanır. Graphic designing/CAD-CAM iş yükü yüksek olan ortamlarda genelde Q profilleri kullanılır. A sanallaştırılmış uygulamalar, C yapay zeka ve B daha düşük kaynak isteyen sanal masaüstleri için kullanılır. Bütün olay mevcut GPU’nun toplam VRAM’ini parçalara bölerek o kartı paylaştırmaktır. NVIDIA örneği vermemin sebebi, özellikle Cloud sağlayıcıları ve donanım üreticileri tarafından sıkça kullanılan GPU üreticisi NVIDIA’dır lakin son dönemde AMD’nin Zen mimarisi ile NVIDIA’ya rakip olmakta. vGPU kavramının AMD tarafındaki karşılığı MxGPU, NVIDIA tarafında ise GRID’dir.

Sunucularda GPU dağılımı iki şekilde yapılır: GPU Passthrough ve Virtual GPU.

GPU Passthrough: En masraflı seçenektir, tek bir GPU’yu bir sanal makineye bağlar. Performans genelde yüksek olur. Tavsiye ettiğim kullanım şekli ise Multi-Session OS (Server OS) üzerinde olmalıdır. Single-Session (Client OS) OS üzerinde direct olarak bir kart bağlamak biraz maliyetli bir opsiyon.

Virtual GPU: İnce ayarların yapıldığı, hypervisor üzerinde tamamlanan birtakım yazılımsal değişiklikler ile bahsettiğim profillerin oluşturulması sağlanır. Her kartın maksimum paylaştırılabileceği sanal makine sayısı farklıdır, bazı modellerde ise bu limit kartın VRAM’inin tamamı kullanılabilecek şekilde (Virtual Shared Graphics/VMware vSGA) paylaştırılabilir.

GPU/vGPU Gereksinimleri

Bu aşamaya kadar Citrixle alakalı bir konudan bahsetmedim. Bahsetmemeye de devam edeceğim çünkü henüz sunucu seviyesinde GPU konumlandırmasını tamamlamadık. Sunucunuza uygun bir GPU kartı aldınız, montajını yaptınız ve kullanmaya başlayacaksınız.

  • Sunucunuzun desteklediği GPU kart listesine bakın, uygun PCI slotuna sahip olup olmadığına dikkat edin, son olarak da bu kart sanallaştırılabiliyor mu bunu teyit edin. Çünkü bazı kartlar sadece Passthrough olarak verilebiliyor.
  • Lisans, evet ne yazık ki her güzel teknolojinin yazılım tarafında bir bedelinin olması gerekir. Nvidia tarafında bu konu yalnızca vGPU için geçerlidir. Akabinde bir lisans sunucusu kurulur, Nvidia üzerinden lisans dosyası indirilir ve sanal makine üzerine kurulan uygulamaya lisans sunucusu adresi olarak girilir. AMD MxGPU tarafında ise böyle bir lisans yoktur, ürünü almış olmanız yeterlidir.

Geldik Hypervisor seviyesine, bu aşamada da iki üretici yoğurdu farklı şekilde yer.

  • Nvidia, Virtual GPU Manager uygulamasının kurulumunu ve konfigürasyonunu ister, aksi durumda bahsettiğim vGPU profillerini göremezsiniz.
  • AMD, herhangi bir hypervisor değişikliği istemez, direkt olarak bu profilleri görebilirsiniz. Sadece Radeon Pro eklentisi vardır, bunu kurarak hypervisor üzerinde birtakım opsiyonel değişiklikler yapabilirsiniz.
  • BIOS ayarları, birçok üretici sunucuların varsayılanında SR-IOV (PCI kaynaklarınn izolasyonu) seçeneğini kapatır, ilk yapılması gereken şey bu ayarın aktif edilmesidir.

Son aşama ise, Master Image/Golden Image olacak sanal makine üzerine uygun GPU Driver’ının kurulmasıdır. Aksi durumda ne lisans sunucusu ile haberleşebilirsiniz (NVIDIA), ne de Device Manager altında ekran kartını görebilirsiniz.

Public Cloud Üzerinde GPU’lu VM’ler

Bütün bu işler yıllardır belli başlı Cloud Provider’lar tarafından hizmet olarak sunulmakta. Bunların başında Azure, AWS ve GCP geliyor.

Microsoft Azure: bu anlamda hem NVIDIA hem de AMD ile çalışıyorlar. İster dedicated olarak bi kartı, isterseniz o  kartın bir bölümünü (Virtual GPU) hizmet olarak alabiliyorsunuz.

AWS ve GCP: Amazon ve Google ise yıllardır NVIDIA ile çalışıyor ama yanlış bilmiyorsam son dönemde AWS tarafı MxGPU opsiyonlarını da eklemeye başladı çünkü AMD’nin resmi sitesinde bununla ilgili güncel bir haber ve dökümantasyon mevcut.

GPU’lu Ortamlar İçin Citrix Policy Ayarları

Şimdi bütün bunları anlattıktan sonra Citrix’in VDI ve vApp tarafında bu konuya ne kadar önem verdiğini anlatmaya başlayabilirim. VDI ortamında GPU dağıtımı yaparsanız ya çok iyi bir performans alırsınız ya da çok kötü, bu olay sunucu konfigürasyonundan itibaren başlayan bir zincirdir. Yanlış işlemci ve ekran kartı seçiminden tutun, bunu Citrix tarafına entegre eden kişiye kadar varır. Bu yüzden mümkünse daha önceden bu işleri yapmış, sorun yaşamış ve topolojiyi bilen birisinden destek alın. Aksi durumda lanet gelsin bi dünya para verdik hiçbir işe yaramıyor diye sunucunun başında oturur ekran kartı slotuna uzun uzun bakarsınız.

Citrix’in HDX 3D Pro adında, HDX görüntüleme protokolünün GPU Workload için geliştirilmiş bir versiyonu var. Bu ekstradan yüklenen bir add-on falan değil, direkt olarak Citrix Policy’lerinin altında ve bu teknolojiye bağlı birtakım kurallar ile birlikte çalışıyor. O kurallara sırasıyla bakalım.

  • Optimize for 3D Graphics Workload: eskiden seçilebilir bir feature olarak gelirken artık Policy seviyesinde yönetilen bir feature haline geldi. Önerilen bunun “Enabled” olmasıdır, HDX 3D Pro özelliğini aktif etmeye yarar.
  • Use video codec for compression: bu kural altında önerilen iki opsiyon var aslında biri “For the entire screen” diğeri “For actively changing regions”dır. Genelde “For the entire screen” kullanırım ama ben bandwidth ölçeceğim sonrasında direkt bu opsiyonu değerlendirmek isterim derseniz “For actively changing regions” üzerinden devam edebilirsiniz.
  • Use hardware encoding for video: varsayılanda “Enabled” olarak gelir, video codec işlemlerinin GPU’da tamamlanmasını sağlar.
  • Visual quality: varsayılanda Medium gelir, High olarak da bırakılabilir ama tavsiyem “Build to lossless” olarak seçmenizdir. Eğer sıfır görüntü kaybı yaşamak istiyorsanız ve altyapınıza güveniyorsanız “Always Lossless” yapabilirsiniz.
  • Target frame rate: güncellenen sürümlerle beraber Citrix HDX tarafındaki FPS limiti 1080 çözünürlükte 120’ye çıkarıldı, 4K çözünürlükte ise 60 FPS olarak kullanılabilir. FPS konusu tamamen altyapı ile alakalı olduğu için 30 FPS uygun bir seçim olacaktır.
  • Target minimum frame rate: varsayılanda 10 olarak gelir ama 10-30 aralığı verdiğiniz bi ortamda GPU ve CPU performansından ödün vermemek için yeri geldiğinde 10-15 FPS’lere düşecektir ve bu da direkt olarak ekranda takılmaların meydana gelmesine neden olur. O yüzden bu ayarı 20 FPS olarak bırakmanız yeterlidir.
  • Overall session bandwidth limit: ortamda çok fazla kullanıcı varsa ve altyapı bunu karşılayamıyorsa GPU performansında düşüş olacaktır, kullanıcıların bandwidth takibini yaparak onları limitleyebilirsiniz.
  • Citrix Optimzer: bu bir policy değildir ama VDI ortamında iyi bir GPU performansı almak istiyorsanız, o makinenin mutlaka optimize edilmiş olması gerekmektedir.

 

Aslında anlatacaklarım bu kadardı. GPU’yu doğru konumlandırmak için tabii ki bu aşamaya kadar anlattıklarım önemli lakin her şey bu kadar değil. Bütün bunları yaptıktan sonra özellikle AutoCAD gibi uygulamaları çalıştırıp onlar üzerinde iş oluşturun ve bunu Task Manager üzerinden GPU’yu seçerek kart performansını takip edin. Buna ek olarak, Citrix’in VDI ortamlarında ücretsiz olarak kullandırdığı bir monitoring aracı var Citrix Director diye, bununla da GPU seviyesinde sanal makinenin performansını izleyebilirsiniz.

Konuyla ilgili olduğu için söylemiyorum ama kesinlikle vGPU konusu ister kendi veri merkezinizde olsun isterseniz bir Cloud Provider’dan aldığınız hizmet, günümüzün ve geleceğin sıkça kullanılacak çözümü olacaktır. Artık büyük şirketler dahi, abartı özelliklere sahip son kullanıcı cihazlarına yatırım yapmak yerine mevcut kaynaklarına GPU donanımını ekliyor.

Okuduğunuz için teşekkürler.

Bu konuyla ilgili sorularınızı  alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz. 

Referanslar

www.mshowto.org 

TAGs:vGPU, HDX 3D Pro, Citrix

Bu İçeriğe Tepkin Ne Oldu?
  • 2
    harika_
    Harika!!
  • 0
    be_enmedim
    Beğenmedim
  • 0
    _ok_iyi
    Çok iyi
  • 0
    sevdim_
    Sevdim!
  • 0
    bilemedim_
    Bilemedim!
  • 0
    olmad_
    Olmadı!
  • 0
    k_zd_m_
    Kızdım!

Malatya doğumluyum. Beykent Üniversitesi İngilizce Mütercim Tercümanlık mezunu, İstanbul AUZEF Yönetim Bilişim Sistemleri'nde okuyorum. Bilişim sektörüne NETAŞ bünyesinde bulunan Probil ile başladım. Yaklaşık 9 yıldır bu sektördeyim. Cloud, Infrastructure ve Network Security uzmanlıklarında birçok proje tamamladım. Full-stack Citrix mühendisiyim. Kitaplarla aram iyidir, araştırma yapmayı severim. Öğrenir, öğretir, gelişir, geliştiririm. Bilginin paylaşıldıkça çoğaldığına inanıyorum.

Yazarın Profili

Bültenimize Katılın

Tıklayın, üyemiz olun ve yeni güncellemelerden haberdar olan ilk kişi siz olun.

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir