Virtuelle maskiners «hellige gral»

Innlegget er skrevet av Pål Gaute Wiik, intern løsningsarkitekt og Erik Tessem, Wyse End User Computing-ansvarlig i Dell

Produksjonsklare 3D-aksellererte, virtualiserte arbeidsstasjoner har lenge vært en myteomspunnet ønskedrøm blant IT-avdelinger og teknologitilbydere. Virtual Desktop Infrastructure (VDI)-konseptet har eksistert noen år, og er implementert hos en rekke bedrifter og organisasjoner i dag, men for tunge ingeniørhus med CAD-brukere og andre grafikkintensive virksomheter har dette ikke vært et alternativ. Datasikring av verdifulle ingeniøreres ømfintlige filer spredt rundt i kontorlandskap og svidde DVD plater rundt omkring i landet har vært driftsansvarliges mareritt. Samarbeid og datautveksling har gått på mail, usb-pinner, dropbox, torrents og andre ad-hoc løsninger for deling av store datafiler.

Hos Dell Norge har vi bygd en løsning som demonstrere at tunge arbeidsoppgaver på virtualiserte arbeidsstasjoner ikke lenger er en drøm. Her er historien om hvordan vi har satt det opp:

«Are we there yet? »

Fig 1 Power On, Utstyr montert (bilde manipulert)

Dell 720 with Logos

Dell PowerEdge R720 med Dual 6 core CPU, 128 GB minne, Dual NVidia Grid, Apex2800, Fusion IODrive2 600 GB, Intel 600 GB SSD drive. Får man råere 2U server idag. Undertegnede tviler.

Ignition on

Det er noen år siden jeg først snakket med kunder om å få aksellerert grafikk på virtuelle maskiner til å kjøre Windows Vista sitt nye Aero grensesnitt. Den gang (rundt 2010) var det mye snakk om fremtidig teknologi som Windows RemoteFX (hovedsakelig for Windows nye Areo grensesnitt) og Vmwares Software 3D oppdatering i forbindelse med lansering av vSphere 5.

Noen petabits har strømmet gjennom nettet siden den gang, og ved starten på vårt eget lille «Proof of Concept» med VMware vSphere 5.5 og VwWare Horizon View 5.3.0, må jeg vel innrømme at jeg var skeptisk. Vi startet med følgende levert på Skøyen-kontoret:

Konfigurasjon maskinvare:

  • Dell PowerEdge R720 2 U Rack server (med tøffeste CPU man fikk p.t med 128 GB minne
    • 2 x 600 GB 2,5 15k SAS drives i RAID 1, 1 x 600 GB Intel SSD på raidkontroller (Raid0 med 1 disk), og Fusion IO Iodrive2 600 GB.
    • 1 x nVIdia Grid K1, 4 GPU, 16 GB minne, 768 CUDA cores.
    • 1 x nVidia Grid K2, 2 GPU, 8 GB minne, 3072 CUDA cores.
    • Teradici PCoIP APEX2800 Offload card.
  • VMWare vSphere 5.5.0 (Dell ESXi r01 image på onboard SD)
  • VMWare Horizon View 5.3.0
  • Klienter
    • Wyse P45 Zero Client
    • P25 Zero Client
    • VMWare View Horizon Windows 7 Business Laptop 64 bit
    • VMWare View Linux (Gentoo 64 bit).
  • Nettverk på standard PowerConnect nettverksswitcher.

Forventninger

Forventningene i forkant var å se en «tick in the box» på tilgjengelig 3D displayadapter, og kanskje en og annen frame pr. sekund på Google Earth eller Google Sketchup, men at opplevelsen igjen var noe som kom til å skuffe en reell sluttbruker (Proof of concepts bruker ofte teoretiske definerte sluttbrukere som kan «simuleres»). Alt materiell tilsa at dette burde fungere, men av erfaring i en pratsom IT verden, så hadde jeg ikke tenkt å la marketing materiell og halleluja-presentasjoner fra diverse events farge meg. Det så lovende ut dog:
Fig 2 Green lights across the board:

Øverst Teradici Apex 2800, nederst Fusion Iodrive2 600 GB.

Øverst Teradici Apex 2800, nederst Fusion Iodrive2 600 GB.

Oppsett:

Vi var to ivrige sjeler som mottok Dell-server pluss noen kolli demovare fra partnere, og fant at det var vanskelig å GRID-kort var vanskelig å velge uten å kjøre noen tester. Vi besluttet derfor å installere ett av hver type, hvorav forskjellene hovedsakelig er antall GPU (4 vs 2 på K1 og K2), og antall Cuda Cores (768 på K1 og 3072 (!) på K2). Begge kortenes GPUer har 4 GB minne hver. Tanken var å sammenligne vSphere 5.5 og Horizon View 5.3.0 på delt grafikk og direkte addressert GPU.

Etter at all hardware var installert, og boksen plassert i racket, begynte vi installasjonen. Vi installerte siste Dell OEM vSphere image på on-board SD brikke (5.5.0 r1), og oppdatert denne via Update manager. Virtual Center kjører som en OVA template. nVIDIA drivere ble oppdatert til siste versjon, som man gjør. Det samme ble Dell PowerEdge R720s firmware via en Dell Open manage Plug-In for vCenter.

«ReadOnly» replica boot disk ble definert på Intel SSD drive, mens virtuelle maskiners «Linked Clone» ble lagt på Fusion IO kortet. View Storage Accelerator ble også brukt for å øke hastighetene ytterligere på les fra virtuelle desktops boot disk.

Disk latency sammenligning:

Disktype Read Latency Write Latency
Fusion Iodrive2 47 µs 15 µs
SSD 50 µs 60 µs
600 GB 15k SAS 2.5 3,4 ms (3.400 µs) 3,9 ms (3.900 µs)

Disk Latency-sammenligning. (Kilder Fusion IO, Intel, Dell)

Ready, set, GO!

Fig 3, Powertrip much, nVidia ?

Kortene passer akkurat inn i PCI-Express riserene i serveren. De var litt kronglete å få på plass, men har man installert grafikkkort i en maskin før, så er dette ikke noe problem. Legg merke til powersupply kablene mot kortene. K1 krever inntil 130W mens K2 krever 225W (max power).

Kortene passer akkurat inn i PCI-Express riserene i serveren. De var litt kronglete å få på plass, men har man installert grafikkkort i en maskin før, så er dette ikke noe problem. Legg merke til powersupply kablene mot kortene. K1 krever inntil 130W mens K2 krever 225W (max power).

Oh boy, oh boy, oh boy, oh boy!

Ok. Det er for nerds som det er for bilentusiaster. Ny maskinvare har alltid, og vil alltid medføre litt julaften og 17.mai-stemning på én og samme dag. Hardwaremessig hadde vi nå satt opp noe som må kunne beskrives som en blodtrimma gatebilutgave av en Dell PowerEdge R720 server. VDI-miljøet skulle nå testes, og vi hadde både «from scratch» Windows 7 64 bit maskiner, og maskiner definert på eksisterende Win7 template fra labbens driftsbibliotek.

De virtuelle maskinene

    • Virtual VM version 10 (krever vSphere Web Client og vSphere 5.5)
      • VDGA 1 (Manual Assignment)
        • Windows 7 x64 (template basert), 60 GB HDD på Fusion IO VMware PV SCSI, Direct IO GPU Grid K2 chip, 6 vCPU, 32 GB minne,
          Den kraftigste av de oppsatte maskinene med Direct IO GPU, og en følge av en intern konkurranse på å ha den raskeste demomaskinen før EnergyWorld i Stavanger skulle av stabelen tidlig i mars.
      • VDGA2 (Manual Assignment)
        • Windows 7 x64 (bare vMetal install), 60 GB HDD på Fusion IO. Standard VMWare LSI Logic SAS, Direct IO GPU Grid K2 chip, 4 vCPU (HT), 12 GB minne.
          Maskin satt opp med tanke på demonstrasjon av 3D aplikasjoner med høy krav til ytelse (og demonstrasjon av CUDA enabled Rendering).
      • VSGA 1-4 (Linked clones)
        • Windows 7 x64 (template) med 4, 20 og 32 GB disk, 2 GB minne, 2 vCPU, 3D Hardware enabled, 512 MB Videominne mot Shared GPU (nVidia Grid K1)
          Maskin satt opp for å teste grensene med delte 3D ressurser mot nVidia Grid kortene.
      • SW_3D (Linked clones)
        • Windows 7 x64 (template) med 4, 20 og 32 GB disk, 2 GB minne, 2 vCPU, 3D VMWare Software 3D, 512 MB Videominne
          Maskin satt opp for å teste VMwares egen Software 3D rendering med ønske om å sammenligne vSGA teknologi mot Sofware 3D.

Det ble i tillegg satt opp maskiner med Windows 8.1 (vSGA) for å teste mot touchskjerm og google Earth ytelse på denne platformen. Vi sjekket ikke om dette var supportert enda, men gøy å prøve. Fungerte fint med View agent på Dell Venue 10 Pro (Windows 8.1), men fikk ikke kontakt med touchskjerm via Wyse P25 / P45 (antatt driver / bruker problematikk). Det ble ikke gjort noen store steg for å feilsøke dette da listen over ting som måtte gjøres og tid tilgjengelig før «show-off» var knapp.

Har du skrudd på 3D-bryteren?

Det er noe med forventinger som gir oss mennesker motsatt proposjonell tilfredsstillelse når vi skal oppleve noe nytt og etterlengtet. Dersom forventningene er i skyene, så kan ofte opplevelsen føles skuffende selv om medmennesker og kollegaer rundt oss roser innsatsen. I motsatt fall, kan opplevelsen frembringe englekor og jubelsus i hardisken mellom øra.

Ved første blikk var våre toppspekkede virtuelle maskiner med direkteadressert 3D-tilgang hverken imponerende eller særlig slikemyke i opplevelsen. Vår målsetning om at maskinene skulle sprenge grenser for hva en virtuell arbeidsstasjon kunne formidle ble en snuble-fra-startgropa affære. Hadde vi misset noe, eller var teknologien enda ikke moden ?

Tuning må til, sa gitaristen og spilte på fela.

Som hobbygitarist og gitartekniker vet jeg noe om arbeidet som ligger bak å få nye instrumenter til å spille rent og lett. Dette er en erfaring jeg også har sett og opplevd innenfor andre områder der teknologi og mennesker skal spille på lag.

Det er med standard oppsett på både instrumenter og programvare. Man får «tick in the box», men ingen skinnet-av-pølsa-opplevelse. Når vi kikket nærmere på tilgjengelige parametere skjønte vi at vi ikke var i nærheten av å benytte kapasiteten vi var i besittelse av. Den virtuelle hardwaren ble tunet. Det samme ble protokollen og offload kort, samt vurderinger på oppsett av nettverksswitcher og drivere. Kort fortalt var målsetningen «native» arbeidsstasjonopplevelse. Vi spisset følgende etter tur:

      • Nye drivere fra nVidia ble implementert. Stor effekt på 3D-rendering og hastighet lokalt på maskinen.
      • PcoIP tuning basert på båndbredde tilgjengelig (1 Gb, default setting var 100 Mb, og ønsket framerate på samme frekvens som skjermen. 60 Hz = 60 FPS eller høyere.
      • APEX kort tuning og testing.
      • Fraps ble installert på testmaskinene for å se FPS på maskin, og sammenligne med FPS over PcoIP.

Vi fulgte det vi fant av dokumentasjon angående oppsett av VMware med GPU-aksellerert 3D, både fra offisielle kilder, samt en del bloggposter og forumartikler av medsammensvorne IT-fiklere som ønsket seg høyttytende og ubegrensende opplevelse av hva som er mulig på Virtuell maskinvare. Mye tid gikk med, lekser ble lært, og levert. Til slutt kom vi frem til nåværende implementerte Demomiljø i labben hos Dell Norge.

This one goes up to eleven.

Dæggu (eller tilsvarende utsagn) ble ytret, og vi satt endelig med virtuelle maskiner som bydde på den opplevelsen vi hadde søkt så lenge.

«Dette begynner å ligne produksjonsklart.» – Erik Bjerregaard, Løsningsarkitekt Vmware Dell Norge.

«Wow, er det på virtuelt du sitter og spiller (i arbeidstiden)?» -Jan Bjelde, ESG direktør Norge.

«Jeg skjønner hva dere driver med, og jeg liker det ikke» – Jon Rossland, Workstation-spesialist i Dell.

Etter installasjon av Mediaplayer kunne vi også kjøre Windows Performance index på maskinene for å få en pekepinn på hva de var god for. Skalaen på denne går p.t. opp til et maksimum av 7.9 på parameterene, og som det heter på folkemunne. Et bilde sier mer enn 1000 ord.

Fig 4 Windows Performance Index vDGA2
Grafikk på 7.9. Det  blir ikke stort bedre i følge Windows Performance Index  skala
Fig 5 Windows Performance Index vSGA

Dette resultatet krever noe mer forskning da det tilsynelatende er verre broker opplevelse på vSGA (Shared graphics) enn på Software 3D. Noe bedre på Gaming og Business graphics dog med et resultat på 3.6.

Dette resultatet krever noe mer forskning da det tilsynelatende er verre broker opplevelse på vSGA (Shared graphics) enn på Software 3D. Noe bedre på Gaming og Business graphics dog med et resultat på 3.6.

Fig 6 Windows Performance Index Software 3D

Tradisjonell Software 3D rendering gir ganske forventet resultat.

Tradisjonell Software 3D rendering gir ganske forventet resultat.

Konklusjon

Fig 7 Blender 2.69 CUDA render enabled.

3D applikasjon Blender med eksempelfil nedlastet og live rendering på CUDA basert renderengine.

3D applikasjon Blender med eksempelfil nedlastet og live rendering på CUDA basert renderengine.

Personlig har jeg jobbet og lekt litt med tunge grafiske applikasjoner (spill), modelleringsverktøy (3d Studio Max, Blender, G-Max) gjennom ca 20 år, og vet forholdsvis nøyaktig hvor skoen trykker når det gjelder akseptabelt brukergrensesnitt.

Man har ikke tålmodighet for den minste «lag» (forsinkelse) på bildeoppdatering til skjermen eller fra input devices (mus, tastatur, tegnebrett, og spillkontroller). Man kan faktisk se forsinkelsen i responsen på skjermen i form av scrollbars som henger etter musepeker ved aggressiv testscrolling.

På spørsmålet «Are we there yet?», så vil jeg vel si at vi er fremme når det gjelder direkte-aksessert GPU via Grid (og andre direkte aksesserbare) GPUer, og LAN/WAN på raske linjer (bygg til bygg). Latency-messig, tåler man lite fra nettverkets side, men vi kjørte akseptabel opplevelse på stand i Stavanger med en bitteliten Jensen 8 port switch. I Stavanger, så fikk vi noen tall fra xFiber som tyder på at man kan få tunet forholdsvis grei ytelse mellom Stavanger og Oslo, og Stavanger og London eksempelvis (hvis man er snill og setter grensen oppover mot 50 ms tur retur).

Er vi på nett ?

Når det gjelder nettverk, så kan man tune til akseptabel ytelse med nettverksrespons på 20-30ms. Når det gjelder båndbredde så greide vi å dytte oppunder 60 Mb/s på en PcoIP-sesjon. Nettverk er med det nøkkelen til akseptabel ytelse. Høyere latency enn 20-30 ms, vil ødelegge opplevelsen betraktelig, og man har nesten nulltoleranse for variance (responsforskjeller i nettverkstrafikken).

For de som vil jobbe med hjemmekontor på Bali, så er det nok et stykke igjen for ingeniører og tunge grafiske produksjonsarbeidere, men vi får håpe det utvikles noe i det hengende snøret (nettverk over lange avstander).

For selskaper og IT administratorer som ønsker å sentralisere infrastruktur og investeringer i datarommet, og ikke til den enkelte bruker (8 til 1 på R720 med 2 x nVIDIA Grid K1 kort og direkteadressert GPU), så bør funnene i denne posten være av stor interesse.

Ustyr står p.t live hos Dell på Skøyen, og kan besigtiges etter ønske fra kunder. Ta kontakt med Erik Tessem eller Pål Gaute Wiik for å avtale dette.

Lyst å vite enda mer? Sjekk disse lenkene

 

0 replies

Legg igjen et svar

Want to join the discussion?
Feel free to contribute!

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *