Er is vaak verwarring over de vraag wat I/O virtualisatie (IOV) nu precies is en waar je het voor nodig hebt. Vanaf 10.000 meter hoogte ziet het plaatje er ongeveer als volgt uit (alhoewel geredeneerd wordt vanuit VMware zijn de basisprincipes ook voor de andere hypervisors toepasbaar):
Allereerst stond VMware al bij het begin voor het probleem hoe je meerdere virtuele machines toegang kunt geven naar één Network Interface Card (NIC). Immers, elke virtuele machine meent de hardware volledig te bezitten, inclusief alle I/O apparaten. En bestaande NIC’s waren nooit gebouwd voor een situatie dat ze vanuit meerdere virtuele machines met elk een eigen operating systeem en drivers benaderd zouden worden. De oplossing hiervoor was relatief eenvoudig. VMware bouwde eerst een virtuele NIC waarmee elke virtuele machine ‘naar buiten’ kon communiceren. Zo’n vNIC gedraagt zich net als een fysieke NIC en heeft bijvoorbeeld ook een eigen uniek MAC adres. Vervolgens bouwde VMware een virtuele switch om alle vNIC’s te kunnen koppelen met die ene (of meerdere) fysieke NIC. Als neveneffect werd daarmee tevens bereikt dat verkeer tussen virtuele machines binnen dezelfde fysieke server niet meer over het fysieke netwerk hoefde te lopen, maar volledige binnen het virtuele netwerk kon blijven. Belangrijk is je te realiseren dat zowel de vNIC’s als de vSwitches volledig in software zijn gemaakt en draaien op de CPU’s van de computer. Er komt dus geen andere hardware en firmware aan te pas.
Vervolgens ontstond er een beheerprobleem. Het beheer van vNIC’s en vSwitches kwam namelijk in handen van de serverbeheerders en stond daarmee los van de netwerkbeheerders. Bovendien ziet een vSwitch er toch anders uit dan welke fysieke switch dan ook. Dit zorgde ervoor dat ook netwerkbeheerders niet precies wisten wat ze in handen hadden. Ook voor security-specialisten is zo’n constructie al snel een doorn in het oog. Cisco loste dit recent samen met VMware op door het bouwen van een virtuele switch die exact gelijk is aan een fysieke switch. Het gaat in dit geval om de Nexus 1000V, met dezelfde software als de Nexus 5000 fysieke variant. Deze switch kan dus die van VMware vervangen en heeft ook nog eens als voordeel dat het een gedistribueerde switch is. Dit laatste houdt in dat de switch verspreid over meerdere fysieke servers kan bestaan (op hypervisor niveau), maar door de beheerder als één switch gezien kan worden. De Nexus 1000V brengt de virtuele switch dus volledig terug in de handen van de netwerkbeheerders. Alle policies die voor het fysieke netwerk worden opgesteld kunnen één op één in de virtuele switch worden doorgevoerd.
Een ander probleem dat veroorzaakt werd door serverconsolidatie is de relatief beperkte bandbreedte van de NIC vanuit de fysieke machine naar het netwerk. Zo’n NIC werd immers in het verleden gebruikt door slechts één machine. In een geconsolideerde server echter door misschien wel tientallen virtuele machines. VMware loste dat op middels NIC-teaming. Dit houdt in dat meerdere fysieke NIC’s parallel gebruikt kunnen worden, op een voor de virtuele machines transparante manier. Echter, het aantal fysieke NIC’s dat je op een server kunt aansluiten is beperkt. Dit geldt zeker voor Blade Servers. Daarom komen momenteel oplossingen beschikbaar in de vorm van server-interfaces met een zeer hoge snelheid (denk aan InfiniBand of 10 Gb Ethernet), die vervolgens buiten de server verder doorgeschakeld worden naar interfaces met lagere snelheden (1 Gb Ethernet, 100 Mb Ethernet, Fibre Channel). Als je hierbij meerdere protocollen ondersteunt (zoals Ethernet en Fibre Channel) dan wordt zoiets een Unified Fabric genoemd.
Al deze oplossingen hebben gemeen dat ze nogal wat CPU-power van de server afsnoepen. Immers, de vNIC’s en vSwitches draaien allemaal als software op de server. Daarom hebben de NIC-fabrikanten besloten om NIC’s te bouwen die zich naar de server toe gedragen alsof ze wel uit meerdere NIC’s bestaan. Fysiek is het dus één NIC naar buiten, logisch kun je elke virtuele machine een virtuele NIC geven die volledig in de firmware van de NIC wordt uitgevoerd. Je kunt dus stellen dat zo’n NIC eigenlijk een eigen switch aan boord heeft. Deze oplossingen worden door PCI-SIG onder de namen ‘Single-root IOV’ en ‘Multi-root IOV’ gestandaardiseerd. Er is sprake van de relatief eenvoudige ‘Single root IOV’ variant als de NIC zich naar slechts één fysieke server toe gedraagt als meerdere NIC’s. De meer complexe ‘Multi-root IOV’ variant zou ook meerdere fysieke servers (met name Blade Servers) moeten kunnen ondersteunen.
Samenvattend is de stelling gerechtvaardigd dat virtualisatie een ‘disruptive technology’ is. Wat begint bij serverconsolidate eindigt uiteindelijk in een volledige herziening van je ICT-infrastructuur, vanaf de desktop tot het datacenter, inclusief alles wat er tussen zit.
[...] De nieuwe Nexus 1000V virtuele switch van Cisco (zie ook hier) [...]
[...] ook ‘I/O virtualisatie in een notendop‘ voor meer informatie rond de relatie tussen virtualisatie en [...]
[...] meer details gepubliceerd over Cisco’s virtuele switch voor VMware ESX: de Nexus 1000V. Zoals eerder gemeld kan deze virtuele switch de door VMware standaard meegeleverde vSwitch vervangen. Het is dan ook [...]
[...] ook I/O virtualisatie in een notendop voor een eerder geplaatst kort overzicht van I/O virtualisatie. Possibly related posts: [...]