Virtualisation:définitions Ensembletechniqueslogiciellesetmatérielles permettantdefournirunensemblede ressourcesinformatiquesutilisable indépendammentdelaplateformematériel Domainesconcernés: RessourcesCPUetmémoire Stockage Surcouchepermettantdes'abstrairedes contraintesmatérielles Exemple:lesgestionnairesdevolumes logiquesvslesdisquesphysiques
Problèmedesdatacentersactuels Serveurssous utilisés(enmoyenne5à15%) Sécurité:1service=1serveur Coûtd'achat Coûtd'exploitation Impliqueunemultiplicationdesserveursphysiques Énergie:alimentation(#80 /an/serveur), climatisation(>alimentation) Gestion,placeoccupée,... Facilitéedegestion Tolérancedepanne Plandereprised'activitédifficileetcoûteux
LeDataCenterd'hier L'ensemble des serveurs est coûteux et difficile à gérer 1 server = 1 application Stockage parcellaire non mutualisé App Server App Server Mail Server Service Data base Data base Application OS Server Data Center Management NETWORK Charge moyenne par serveur: 5 à 15% Developer Client Storage Source:Sunmicrosystems
LeDATACenteraujourd'hui Client App Server ERP App Server EMAIL Mail Server CRM ERP Databas e Databas e Service Application OS Server Datacenter Management Network Developer Web Storage Sourceschéma:Sunmicrosystems
Apportdelavirtualisation Coût Acquisition Exploitation Mais:attentionaucôutdeslicencesdesOS,... Facilitédegestion Sauvegardedesmachinesvirtuelles Déplacementdemachinesvirtuelles Sécurité Isolationdesmachinesvirtuelles 1machinevirtuelle=1service
Historiquedelavirtualisation 1965IBMM44/44Xpagingsystem 1965IBMSystem/360 67virtualmemoryhardware 1967IBMCP 40(January)andCP 67(April)time sharing 2005IntelVT 2006AMDVT 2005XEN 1972IBMVM/370runVMunderVM 2006VMWareServer 1997ConnectixFirstversionofVirtualPC 2006VirtualPC2006 1998VMWareU.S.Patent6,397,242 2006HPIVMVersion2.0 1999VMwareVirtualPlatformfortheIntelIA 32 2006VirtualIron3.1 architecture 2007InnoTekVirtualBox 2000IBMz/VM 2007KVMinLinuxKernel 2001ConnectixVirtualPCforWindows 2007XENinLinuxKernel 2003MicrosoftacquiredConnectix 2008microsoftHyperV 2003EMCacquiredVmware 2003VERITASacquiredEjascent
I Lesdifférentestechniques Virtualisationapplicative Redondance Virtualisationdustockage Réimplémentationdelibrairies Isolateur Noyauenespaceutilisateur Superviseurenmodenatif Superviseurenmodeémulé Hyperviseur(para virtualisation) Virtualisationmatérielle Virtualisationdupostedetravail
Virtualisationapplicative Auniveaudechaqueapplication,ausenslarge Exemples: Web:VirtualhostsApache IP:LinuxVirtualServer(ipvsadm) Java(horssujet) Stockage:hal,lvm,xvm High-Level Language
ServeurWeB:apache Unemêmemachine hébergeplusieurssitesweb Secomportecommesionavaitplusieursserveurs Lesdifférentssitessontdistingués: Parleurnom Parleuradressesip Entréednsnom >serveur Machineavecplusieurscartesréseauouavecplusieurs adressesipparcarte Danslesdeuxcas:configd'apacheaussi
Redondanceettolérancedepanne: exempledesrouteurs Faitenliveautableau HSRP/VRRP/CARP MacetIPvirtuelles ProtocoleHello ProblèmedesétatsdurouteursHS(NAT,FW)
Virtualisationdustockage Gestionnairedevolumeslogiques Ajouteunecouchequipermetdeneplusvoirles périphériquesphysique Volumelogique: Composerdeplusieursvolumesphysiquesprovenantde sources(disques)variés Extensibles,supportduRAID,...
Virtualisationdustockage NAS/SAN NAS: Connectéauréseau Proposeunaccèsviadesprotocolesdepartagesréseau (CIFS,NFS,AFS,...) Accèsenmodefichiers SAN Lesbaiesapparaissentcommeundisquelocal Accèsenmodebloc
Virtualisationdustockage:SAN SAN: Gestionglobaleetmutualiséedel'espacedisque pourl'ensembledesserveurs:souplesse Ajoutfaciled'espaceàunserveurdonné Ajoutfaciled'espacesurleSAN(ajoutdedisques, debaies,...) Sauvegarde,tolérancedepannefacilitées(raid, redondancedelaliaisonaveclesan) Réplicationversuneautrebaie(éventuellement distante),historisation,snapshot,... Coûtélevé:engénéral6chiffresenEUR
Virtualisationdustockage:SAN ProtocolesdesSAN:Lienserveurs SAN Fiberchannel:rapidemaischer Iscsi:scsisurTCP/IP,supportéparlesOStanten clientqu'enserveur RFC3720 InternetSmallComputerSystemsInterface (iscsi),avril2004. RFC3721 InternetSmallComputerSystemsInterface (iscsi)naminganddiscovery,avril2004. RFC3722 StringProfileforInternetSmallComputer SystemsInterface(iSCSI)Names,Avril2004. AoE:ATAsurethernet(peuutilisé)
Virtualisationdustockage
Virtualisationdustockage:choixde latailledesdisques Paramètres: Espacedisque Débitdudisques Nombred'I/Oparseconde Danslavraievie: SATA: Del'espacepourpascher Vitessederotationmodeste Tempsd'accèsélevé(8ms) Nbd'I/Oparsecondedmodeste Filed'attenteinexistanteoulimitéesurlesdisques
Virtualisationdustockage:choixde latailledesdisques SAS: Vitessederotationèlevée(15Krpm) Tempsd'accèsfaible(4ms) Nbd'I/Oparsecondeèlevé CoûtauGoèlevé(maisoncommenceàtrouver desdisquesabordables) Filed'attentedetaillecorrecte Tempsd'accèsfaible LienSASbicanal
Virtualisationdustockage:choixde latailledesdisques SSD: Capacitémodeste CoûtauGotrèsèlevé Duréedevie? Choixdelatailledesdisques Tempsd'accèstrèstrèsfaible(0,1ms)sur certainsmodèles Déterminerlefacteurbloquant(I/O/s,capacité,) Prendredesdisquesdetaillemodestepour augmenterlenombred'o/i/sdel'ensemble Raid0,raid5,6,10,01, permettentde combinerdesdisquespour«additionner»les
choixdelatailledesdisques: exemplesconcretsd'architecture Serveurdesauvegarde Serveurdeboîtesauxlettres Serveurdecourrierentrant
Réimplémentationdelibrairies Réécrituredeslibrairiesd'unOSpourfaire fonctionnerdesprogrammessousunautreos Exemple:Wine(utiliserdesapplications windowssousunix)
ArchitecturedeWine Suitl'architecturedeNT Le Wineserver fournit l'infrastructurent: Implèmentetoutesles core DLLs(ntdll,user32, kernel32) Transmissionde messages Synchronization Handlesdesobjects
Isolateur Cloisonnementd'environnements(ou contextes)auseind'unos Uneseuleinstancedunoyaudel'OScommune àtouslesenvironnements Exemples(detechnologiesdifférentes): Chroot:changementderacine(faible) BSDJail:isolationenespaceutilisateur Linux Vserver,OpenVZ,SolarisZones: partitionnementauniveaudunoyaudel'os Trèsperformantmaislecloisonnementest il
Noyauenespaceutilisateur Lenoyaudel'OSdelamachinevirtuelleest lancécommen'importequelleapplicationde l'oshôte Exemples: UserModeLinux(UML) colinux Adeos L4Linux Faiblesperformances(onempile2noyaux)
Superviseurenmodenatif Appelléaussi machinevirtuelle,enmode natif.logicielcomplexequipermetl'exécution deplusieursosinvitésdemêmearchitecture processeurquelamachinehôteenoffrantun accèsgénérique(émulé)auxressources physiques. Exécutiondesinstructionsenmodenatif(sauf exceptionsdifficilesàgérer) Bonnesperformances OSinvitésdifférentspossibles
Superviseurenmodenatif Exemples: VmwarePlayer,workstation,fusion SunVirtualbox VmwareServer MicrosoftVirtualPC
Vmwareworkstation
Vmwareworkstation VMMdoesnothaveaccesstoI/O I/Oin hostworld LowlevelI/Oinstructions(issuedbyguestOS)aremerged tohigh leveli/osystemcalls VMApplicationexecutesI/OSysCalls VMDriverworksasthecommunicationlinkbetween VMMandVMApplication Worldswitchneedsto save and restore machine state Additionaltechniquestoincreaseefficiency
Vmware workstation
Processeursx86etvirtualisation 2modesdefonctionnementsurunprocesseur X86: Moderéel:utiliséaudémarrage,compatibilité8086 Modeprotégé: Modeprotégé: 4niveauxdeprivilègespourassurerlaprotection: UtilisépartouslesOSmodernes Ajoutedesmécanismesdeprotectionmémoireà l'architecture Niveau0:modenoyau,leplusprivilégié Niveau1et2:peuoupasutilisés Niveau3:applications
Processeursx86etvirtualisation Niveau0:onpeutexécutertoutesles instructionsdontlagestionmémoire, interruptions,changementd'état,...):réservé aunoyaudel'os Niveau3:certainesinstructionssontinterdites pourassurerlafiabilitédusystèmevisàvisdes utilisateurs Pouraccèderàuneressourcedeniveau0,ilfaut passerparunpointdecontrôle(syscall)
Processeursx86etvirtualisation L'hyperviseurs'exécuteenniveau0,LesOSinvitésà unautreniveau Lecodeexécutabledel'OSinvitésedécomposeen3 catégoriesd'instructions: Lecodeinviténonprivilégiéetnondangereux:s'exécute directementparleprocesseurpourdesraisonsdeperformances Lecodeinvitéenmodeprivilégié Desinstructionssensibles,nonprivilégiéesmaisincompatibles avecunenvironnementdevirtualisation. 17instructionsquirendentlesprocesseursX86non virtualisables Cfhttp://www.ecsl.cs.sunysb.edu/~susanta/slides/virt.pptpour plusdedétails.
Processeursx86etvirtualisation 2stratégiespossibles: Supprimerlesinstructionsprivilégiéesetcelles posantproblèmes Ilfautréécrireunepartiedel'OSinvité Solutionutiliséeparlesversions1et2deXen Intercepterlesinstructionssensiblespourlesfaire exécutersouslecontrôledel'hyperviseuroules réécrireauvol Facilepourlesinstructionsprivilégiées(viades exceptions) Délicatpourlesautres:plusvaluedessolutionsde virtualisationcommevmware
Processeursx86etvirtualisation: supportmatérieldelavirtualisation Leprocesseurfournitdesfonctionnalitéspour faciliterlapriseenchargedelavirtualisation IntelVTouAMD V(incompatibles: )) 2impacts: Améliorerlesperformances Simplifielamiseenoeuvredessolutionsde virtualisation =>iln'yaplusdevaleurajoutéeàproposerseulement delavirtualisation
Superviseurenmodeémulé Appelléaussi machinevirtuelle,enmode émulé ouencore émulateur Aladifférencedelamachinevirtuelleenmode natif,leprocesseurestaussiémulérandant ainsipossiblel'éxécutiond'ospourdes plateformesdifférentesdecelledel'hôte Pb:performancesmodestes Exemples: QEMU,Plex86,Bochs Kego fusion(émulateurconsolesega) Executor(émulateurMacsurpc):
Hyperviseur(para virtualisation) C'estunnoyaudédiéàlagestiondemachines virtuelles.c'estuneoptimisationdela technique superviseur :aulieud'avoirunos etunlogicieldevirtualisation,onadirectement unnoyaudédiéàlavirtualisation. Exemples: VmwareESXserver XEN Hyper V Hardware Level
Virtualisationmatérielle Supportdelavirtualisationdirectementdansle processeur.pourlesx86,ils'agitsurtoutde rendrepossiblel'éxécutiondesinstructions privilégiéesdumodeprotégéparlesguests directementafind'optimiserlesperformances oudenepasavoiràmodifierl'osinvité. Exemples: MainframesVM/CMS IntelVT
Virtualisationdupostedetravail Multiple Users Per Server Each User With Dedicated Blade Each User With Dedicated VM (VDI)
Virtualisation:définitions Ensembletechniqueslogiciellesetmatérielles permettantdefournirunensemblede ressourcesinformatiquesutilisable indépendammentdelaplateformematériel Domainesconcernés: RessourcesCPUetmémoire Stockage Surcouchepermettantdes'abstrairedes contraintesmatérielles Exemple:lesgestionnairesdevolumes logiquesvslesdisquesphysiques
Problèmedesdatacentersactuels Serveurssous utilisés(enmoyenne5à15%) Sécurité:1service=1serveur Coûtd'achat Coûtd'exploitation Impliqueunemultiplicationdesserveursphysiques Énergie:alimentation(#80 /an/serveur), climatisation(>alimentation) Gestion,placeoccupée,... Facilitéedegestion Tolérancedepanne Plandereprised'activitédifficileetcoûteux
LeDataCenterd'hier L'ensemble des serveurs est coûteux et difficile à gérer 1 server = 1 application Stockage parcellaire non mutualisé App Server App Server Mail Server Service Data base Data base Application OS Server Data Center Management NETWORK Charge moyenne par serveur: 5 à 15% Developer Client Storage Source:Sunmicrosystems
LeDATACenteraujourd'hui Client App Server ERP App Server EMAIL Mail Server CRM ERP Databas e Databas e Service Application OS Server Datacenter Management Network Developer Web Storage Sourceschéma:Sunmicrosystems
Apportdelavirtualisation Coût Acquisition Exploitation Mais:attentionaucôutdeslicencesdesOS,... Facilitédegestion Sauvegardedesmachinesvirtuelles Déplacementdemachinesvirtuelles Sécurité Isolationdesmachinesvirtuelles 1machinevirtuelle=1service
Historiquedelavirtualisation 1965IBMM44/44Xpagingsystem 1965IBMSystem/360 67virtualmemoryhardware 1967IBMCP 40(January)andCP 67(April)time sharing 2005IntelVT 2006AMDVT 2005XEN 1972IBMVM/370runVMunderVM 2006VMWareServer 1997ConnectixFirstversionofVirtualPC 2006VirtualPC2006 1998VMWareU.S.Patent6,397,242 2006HPIVMVersion2.0 1999VMwareVirtualPlatformfortheIntelIA 32 2006VirtualIron3.1 architecture 2007InnoTekVirtualBox 2000IBMz/VM 2007KVMinLinuxKernel 2001ConnectixVirtualPCforWindows 2007XENinLinuxKernel 2003MicrosoftacquiredConnectix 2008microsoftHyperV 2003EMCacquiredVmware 2003VERITASacquiredEjascent 2005HPIntegrityVirtualMachines
I Lesdifférentestechniques Virtualisationapplicative Redondance Virtualisationdustockage Réimplémentationdelibrairies Isolateur Noyauenespaceutilisateur Superviseurenmodenatif Superviseurenmodeémulé Hyperviseur(para virtualisation) Virtualisationmatérielle Virtualisationdupostedetravail
Virtualisationapplicative Auniveaudechaqueapplication,ausenslarge Exemples: Web:VirtualhostsApache IP:LinuxVirtualServer(ipvsadm) Java(horssujet) Stockage:hal,lvm,xvm High-Level Language
ServeurWeB:apache Unemêmemachine hébergeplusieurssitesweb Secomportecommesionavaitplusieursserveurs Lesdifférentssitessontdistingués: Parleurnom Parleuradressesip Entréednsnom >serveur Machineavecplusieurscartesréseauouavecplusieurs adressesipparcarte Danslesdeuxcas:configd'apacheaussi
Redondanceettolérancedepanne: exempledesrouteurs Faitenliveautableau HSRP/VRRP/CARP MacetIPvirtuelles ProtocoleHello ProblèmedesétatsdurouteursHS(NAT,FW)
Virtualisationdustockage Gestionnairedevolumeslogiques Ajouteunecouchequipermetdeneplusvoirles périphériquesphysique Volumelogique: Composerdeplusieursvolumesphysiquesprovenantde sources(disques)variés Extensibles,supportduRAID,...
Virtualisationdustockage NAS/SAN NAS: Connectéauréseau Proposeunaccèsviadesprotocolesdepartagesréseau (CIFS,NFS,AFS,...) Accèsenmodefichiers SAN Lesbaiesapparaissentcommeundisquelocal Accèsenmodebloc
Virtualisationdustockage:SAN SAN: Gestionglobaleetmutualiséedel'espacedisque pourl'ensembledesserveurs:souplesse Ajoutfaciled'espaceàunserveurdonné Ajoutfaciled'espacesurleSAN(ajoutdedisques, debaies,...) Sauvegarde,tolérancedepannefacilitées(raid, redondancedelaliaisonaveclesan) Réplicationversuneautrebaie(éventuellement distante),historisation,snapshot,... Coûtélevé:engénéral6chiffresenEUR
Virtualisationdustockage:SAN ProtocolesdesSAN:Lienserveurs SAN Fiberchannel:rapidemaischer Iscsi:scsisurTCP/IP,supportéparlesOStanten clientqu'enserveur RFC3720 InternetSmallComputerSystemsInterface (iscsi),avril2004. RFC3721 InternetSmallComputerSystemsInterface (iscsi)naminganddiscovery,avril2004. RFC3722 StringProfileforInternetSmallComputer SystemsInterface(iSCSI)Names,Avril2004. AoE:ATAsurethernet(peuutilisé)
Virtualisationdustockage
Virtualisationdustockage:choixde latailledesdisques Paramètres: Espacedisque Débitdudisques Nombred'I/Oparseconde Danslavraievie: SATA: Del'espacepourpascher Vitessederotationmodeste Tempsd'accèsélevé(8ms) Nbd'I/Oparsecondedmodeste Filed'attenteinexistanteoulimitéesurlesdisques Tempsd'accèsèlevé LienSATAunique
Virtualisationdustockage:choixde latailledesdisques SAS: Vitessederotationèlevée(15Krpm) Tempsd'accèsfaible(4ms) Nbd'I/Oparsecondeèlevé CoûtauGoèlevé(maisoncommenceàtrouver desdisquesabordables) Filed'attentedetaillecorrecte Tempsd'accèsfaible LienSASbicanal
Virtualisationdustockage:choixde latailledesdisques SSD: Capacitémodeste CoûtauGotrèsèlevé Duréedevie? Choixdelatailledesdisques Tempsd'accèstrèstrèsfaible(0,1ms)sur certainsmodèles Déterminerlefacteurbloquant(I/O/s,capacité,) Prendredesdisquesdetaillemodestepour augmenterlenombred'o/i/sdel'ensemble Raid0,raid5,6,10,01, permettentde combinerdesdisquespour«additionner»les débitset/oulesnombred'i/oparsecondedes disques
choixdelatailledesdisques: exemplesconcretsd'architecture Serveurdesauvegarde Serveurdeboîtesauxlettres Serveurdecourrierentrant
Réimplémentationdelibrairies Réécrituredeslibrairiesd'unOSpourfaire fonctionnerdesprogrammessousunautreos Exemple:Wine(utiliserdesapplications windowssousunix)
ArchitecturedeWine Suitl'architecturedeNT Le Wineserver fournit l'infrastructurent: Implèmentetoutesles core DLLs(ntdll,user32, kernel32) Transmissionde messages Synchronization Handlesdesobjects
Isolateur Cloisonnementd'environnements(ou contextes)auseind'unos Uneseuleinstancedunoyaudel'OScommune àtouslesenvironnements Exemples(detechnologiesdifférentes): Chroot:changementderacine(faible) BSDJail:isolationenespaceutilisateur Linux Vserver,OpenVZ,SolarisZones: partitionnementauniveaudunoyaudel'os Trèsperformantmaislecloisonnementest il suffisammentsolide?
Noyauenespaceutilisateur Lenoyaudel'OSdelamachinevirtuelleest lancécommen'importequelleapplicationde l'oshôte Exemples: UserModeLinux(UML) colinux Adeos L4Linux Faiblesperformances(onempile2noyaux) Machinesvirtuellesissuesdumêmenoyau
Superviseurenmodenatif Appelléaussi machinevirtuelle,enmode natif.logicielcomplexequipermetl'exécution deplusieursosinvitésdemêmearchitecture processeurquelamachinehôteenoffrantun accèsgénérique(émulé)auxressources physiques. Exécutiondesinstructionsenmodenatif(sauf exceptionsdifficilesàgérer) Bonnesperformances OSinvitésdifférentspossibles
Superviseurenmodenatif Exemples: VmwarePlayer,workstation,fusion SunVirtualbox VmwareServer MicrosoftVirtualPC
Vmwareworkstation
Vmwareworkstation VMMdoesnothaveaccesstoI/O I/Oin hostworld LowlevelI/Oinstructions(issuedbyguestOS)aremerged tohigh leveli/osystemcalls VMApplicationexecutesI/OSysCalls VMDriverworksasthecommunicationlinkbetween VMMandVMApplication Worldswitchneedsto save and restore machine state Additionaltechniquestoincreaseefficiency
Vmware workstation
Processeursx86etvirtualisation 2modesdefonctionnementsurunprocesseur X86: Moderéel:utiliséaudémarrage,compatibilité8086 Modeprotégé: Modeprotégé: 4niveauxdeprivilègespourassurerlaprotection: UtilisépartouslesOSmodernes Ajoutedesmécanismesdeprotectionmémoireà l'architecture Niveau0:modenoyau,leplusprivilégié Niveau1et2:peuoupasutilisés Niveau3:applications
Processeursx86etvirtualisation Niveau0:onpeutexécutertoutesles instructionsdontlagestionmémoire, interruptions,changementd'état,...):réservé aunoyaudel'os Niveau3:certainesinstructionssontinterdites pourassurerlafiabilitédusystèmevisàvisdes utilisateurs Pouraccèderàuneressourcedeniveau0,ilfaut passerparunpointdecontrôle(syscall)
Processeursx86etvirtualisation L'hyperviseurs'exécuteenniveau0,LesOSinvitésà unautreniveau Lecodeexécutabledel'OSinvitésedécomposeen3 catégoriesd'instructions: Lecodeinviténonprivilégiéetnondangereux:s'exécute directementparleprocesseurpourdesraisonsdeperformances Lecodeinvitéenmodeprivilégié Desinstructionssensibles,nonprivilégiéesmaisincompatibles avecunenvironnementdevirtualisation. 17instructionsquirendentlesprocesseursX86non virtualisables Cfhttp://www.ecsl.cs.sunysb.edu/~susanta/slides/virt.pptpour plusdedétails.
Processeursx86etvirtualisation 2stratégiespossibles: Supprimerlesinstructionsprivilégiéesetcelles posantproblèmes Ilfautréécrireunepartiedel'OSinvité Solutionutiliséeparlesversions1et2deXen Intercepterlesinstructionssensiblespourlesfaire exécutersouslecontrôledel'hyperviseuroules réécrireauvol Facilepourlesinstructionsprivilégiées(viades exceptions) Délicatpourlesautres:plusvaluedessolutionsde virtualisationcommevmware
Processeursx86etvirtualisation: supportmatérieldelavirtualisation Leprocesseurfournitdesfonctionnalitéspour faciliterlapriseenchargedelavirtualisation IntelVTouAMD V(incompatibles: )) 2impacts: Améliorerlesperformances Simplifielamiseenoeuvredessolutionsde virtualisation =>iln'yaplusdevaleurajoutéeàproposerseulement delavirtualisation
Superviseurenmodeémulé Appelléaussi machinevirtuelle,enmode émulé ouencore émulateur Aladifférencedelamachinevirtuelleenmode natif,leprocesseurestaussiémulérandant ainsipossiblel'éxécutiond'ospourdes plateformesdifférentesdecelledel'hôte Pb:performancesmodestes Exemples: QEMU,Plex86,Bochs Kego fusion(émulateurconsolesega) Executor(émulateurMacsurpc): http://www.emaculation.com/executor.php
Hyperviseur(para virtualisation) C'estunnoyaudédiéàlagestiondemachines virtuelles.c'estuneoptimisationdela technique superviseur :aulieud'avoirunos etunlogicieldevirtualisation,onadirectement unnoyaudédiéàlavirtualisation. Exemples: VmwareESXserver XEN Hyper V Historiquement:IBMCP,VM Hardware Level
Virtualisationmatérielle Supportdelavirtualisationdirectementdansle processeur.pourlesx86,ils'agitsurtoutde rendrepossiblel'éxécutiondesinstructions privilégiéesdumodeprotégéparlesguests directementafind'optimiserlesperformances oudenepasavoiràmodifierl'osinvité. Exemples: MainframesVM/CMS IntelVT AMD V
Virtualisationdupostedetravail Multiple Users Per Server Each User With Dedicated Blade Each User With Dedicated VM (VDI)