Vmware presentatie NGN virtualisatiedag Bouke Groenescheij Notities door Kees Stravers Overzicht Vmware is begonnen met virtualisatie voor het Intel platform: Vmware workstation. Dit draait op een host als programma onder het besturingssysteem van de host, Linux of Windows. Maar draaien op een besturingssysteem op een host kost veel nodeloze energie van het werkstation. Het is beter als het virtualiseren kan zonder een besturings systeem er tussen. Vanuit die gedachte is Vmware ESX ontworpen. Hierbij draait er op de computer alleen een zgn. hypervisor die de virtuele machines beheert. Vmware ESX is onderdeel van het pakket Vmware Virtual Infrastructure. Virtual infrastructure – ESX server (met virtuele multiprocessor mogelijkheden, maar daar wordt een vm niet echt sneller van) – Virtual Center (het management platform, kan meerdere ESX servers beheren) – Vmotion (het verplaatsen van een draaiende virtuele machine naar een andere host) – HA (high availability) – DRS (distributed resource scheduler) – Consolidated backup (Kan zeer snel backups maken van virtuele machines zonder downtime ervan. Werkt met een aparte virtuele machine die op het SAN kan kijken en zo de andere virtuele machines backupt. Er zijn opties voor het consistent backuppen van bv databases.) Opbouw van ESX server Onderin zit de hypervisor, de virtualisatielaag. Deze laag is dikker dan die van Microsoft, er zitten drivers voor de hardware al ingebouwd. De MS laag is 70k, de Vmware laag is 24mb. De manier waarop Vmware virtualiseert is ook totaal anders. Vmware virtualiseert op basis van binary translation. Dit betekent dat Vmware kan draaien op een willekeurige CPU, want de software vertaalt de aanroepen die door de virtuele machine naar de virtuele CPU gedaan worden, in de equivalente aanroepen naar de processsor waar het systeem daadwerkelijk op staat. Het nadeel is dat er dan grotere overhead is, maar het voordeel is dat je geen speciale hardware nodig hebt. Over het algemeen is dit toch wel snel want de meeste processors stemmen aardig overeen met de virtuele processor. Voor de toegang tot de virtuele machine bestanden gebruikt Vmware een eigen filesystem op de disk, vmfs. Dit is een multiple access filesystem, dit wil zeggen dat meerdere ESX servers van het filesystem gebruik kunnen maken. Dit filesystem wordt meestal op een SAN geplaatst en is dan met name geschikt voor Vmotion, het verplaatsen van een virtuele machine van de ene host naar de andere. De kernel van ESX kan on the fly resources verdelen, hij kan zelf bepalen welke virtuele machine belangrijker is dan een andere. Kan werken met kleine en grote vm's, grootste is 4 virtuele cpu's en 16gb geheugen. Kan werken met terabytes aan storage. Het enige wat de hypervisor kan doen is virtualiseren, verder niets. Hierdoor is hij zeer stabiel, hij crasht nooit. Begrijpt alleen CPU, memory, netwerk en disk i/o. Zaken zoals muis en toetsenbord zijn niet bekend, en hij kan zelf ook geen vm's opstarten. Vandaar dat er gebruik wordt gemaakt van een service console. Deze communiceert met de vmkernel en start de vm's op. Serviceconsole begrijpt wel 1 NGN Virtualisatiedag - Vmware
muis, toetsenbord, beeldscherm en kan daarom de virtuele machines benaderen. De service console is gebaseerd op Red Hat Linux. Een nadeel hiervan is dat er security patches voor de console uitkomen, die moet je goed in de gaten houden. Je kan de machine waar deze console op draait patchen door eerst met vmotion de vm's die er ook op staan naar een andere host te sturen. Beperkingen ESX server – Tot 128 virtuele cpu's per server – Kan tot 32 fysieke cpu core's adresseren per server (of HT cpu's) – Kan tot 8 virtuele cpu's op een fysieke core draaien – Tot 64 GB geheugen in de server – Tot 32 Intel e1000 gigabit netwerkkaarten, of 20 Broadcom gigabit kaarten (Broadcom driver is groter) Samenstelling van de virtuele machine – Intel BX440 chipset – tot 4 virtuele cpu's – tot 16GB geheugen – 5 beschikbare PCI slots waarvan – tot 4 scsi adapters, met maximaal 15 disks per adapter (2TB) – tot 4 ethernet adapters – een zesde PCI slot is in gebruik door de VGA kaart – 4 IDE devices (CDROMs), kan werken met ISO bestanden – 2 floppies (floppy images) – 2 parallele & serieele poorten – Muis & toetsenbord Uitbreiden van de virtuele machine – Offline kan je alles uitbreiden, bv nieuwe disk, meer geheugen, nieuwe netwerkkaart enz. – Online kan je uitbeiden: – disk toevoegen aan een draaiende machine – netwerk configuratie kan worden aangepast, van de ene virtuele switch naar de andere – cdrom/iso bestand vervangen – resources (reservering , limiet, shares) kunnen worden aangepast Het beheer wordt gedaan vanuit een centrale plek, het Virtual Center. Je kan een voorgeinstalleerde virtuele machine, reeds voorzien van backup client en applicaties, aanwijzen als een template en keer op keer uitrollen. Dit doe je met de Guest Customization Wizard, een soort sysprep. Daarmee worden hostname, IP adres, welke virtuele switch enz enz aan de vm toegewezen. Met het Virtual Center doe je oa ook de Vmotion akties, en het balancen van de vm's met DRS. Vmotion – online verplaatsen van vm's tussen fysieke hosts – geen downtime en geen verlies van netwerk verbinding – ideaal voor onderhoud zonder downtime en verdelen van de resources (iedere host gelijk belasten) DRS 2 NGN Virtualisatiedag - Vmware
Het gelijk belasten van de hosts kan ook automatisch dmv DRS. Dit houdt rekening met de nog vrije capaciteit op de hosts, en met de instellingen van de vm's, en of er op de doelhost nog wel ruimte is voor de vm gezien de instellingen die deze heeft, bv de vm wil meer geheugen dan gebruikelijk. Ook kan je instellen welke vm's niet bij elkaar op dezelfde host mogen komen (affinity / anti affinity), bv je wilt niet dat allebei je DNS servers op dezelfde fysieke hardware draaien, of welke vm's wel altijd samen moeten zijn. DRS werkt tijdens het starten van de vm, en kan ook dynamisch werken met vmotion. HA High Availability, dit start na een crash van een host zo snel mogelijk de virtuele machines op een host die het nog wel doet. HA is geen clustering, het is niet zo dat de vm op de nieuwe host verder gaat waar hij gebleven is. Dit wordt geconfigureerd met Virtual Center. Tijdens het draaien van het systeem is Virtual Center niet nodig, het is alleen voor instellen, ook zonder Virtual Center zal HA vm's zo snel mogelijk starten op een andere host in geval van calamiteiten. Het moet natuurlijk wel zo zijn dat de vm opstartbaar is vanaf alle hosts, hiervoor is de shared storage met vmfs nodig. VM Importer Gratis tool om fysieke machines te importeren naar een virtuele machine. Kan ook werken van vm van een ander merk naar Vmware vm, en met third party images zoals bv Ghost. VDI Virtual Desktop Infrastructure, het centraal aanbieden van de desktops aan de eindgebruikers. Zoiets als terminal services/Citrix, maar dan met virtuele machines. Gaat met RDP of VNC naar de clients. Maakt gebruik van alle Vmware mogelijkheden zoals HA en vmotion. Dit kan handiger zijn dan Citrix want voor Citrix moeten de applicaties multi user aware zijn, bij VDI hoeft dit niet, iedere desktop staat op zichzelf. Resource management Er staan meerdere vm's op een host dus de resources moeten verdeeld worden. Het verdelen gaat via – Limiet, wat mag een vm maximaal verbruiken – Reservering, wat moet hij altijd beschikbaar krijgen – Shares De reservering is wat de vm minimaal moet hebben om te kunnen werken en de limiet is het maximum wat de beheerder vindt dat hij mag gebruiken. Glijdende schaal voor bv meer geheugen of cpu snelheid toekennen aan de vm. Je stelt bv een minimum van 200 mb in en een maximum van 1 gb. Wat er meer is dan het minimum kan dan bijvoorbeeld geswapt worden. Dit betekent dat je in Vmware kan overcomitten, je kan aan vm's meer geheugen toekennen dan wat er totaal in de server zit. Swappen is zeer traag dus dit moet zo veel mogelijk worden voorkomen. Vmware heeft hiervoor transparent page sharing. Het geheugen wordt continu gescand op zoek naar dubbele pages. Een dubbele page wordt maar 1 keer in het fysieke geheugen geplaatst, en voor de andere exemplaren refereert hij naar dat ene exemplaar. Hierdoor bespaar je geheugen en kan je meer geheugen aan de vm's geven zonder dat er performance problemen door swapping komen. Als er met de page sharing niet uit te komen is moet er toch geswapt gaan worden. Het swappen wordt gedaan door de vmkernel hypervisor. Maar die weet niet welk geheugen het belangrijkst is. Hiervoor is 3 NGN Virtualisatiedag - Vmware
een techniek bedacht genaamd ballooning, het host os in de virtuele machine zelf krijgt de opdracht te gaan swappen, via een speciale driver van vmware die er in geinstalleerd is. Iedere vm geeft aan welke processen het belangrijkst zijn en niet geswapt mogen worden, en welke er wel geswapt mogen worden, en zo komen de vm's er samen uit zonder dat de vmkernel hoeft te gaan swappen. Pas als dat niet meer afdoende is gaat de vmkernel zelf swappen. Maar dan heb je al lang allerlei alarm meldingen gehad dat er te weinig geheugen in de server zit. Het kan voorkomen dat vm's gaan strijden om cpu kracht. Met behulp van shares kan je processorkracht aan vm's toewijzen. Iedere vm krijgt een aantal aandelen van de cpu toegewezen (Dus niet de shares van filesharing, maar de shares van aandelen wordt hier bedoeld.), bv 3 vm's met ieder 1000 shares processor, krijgen dan ieder 33,3% van de cpu snelheid van de host. Je kan dynamisch het aantal aandelen veranderen, zodat je bv aan een vm meer shares geeft. Dan wordt de totale cpu kracht van de server meteen totaal anders verdeeld over de vm's. De verdeling wordt ook anders bij het er bij starten of stoppen van vm's. Maar iedere vm blijft het percentage cpu kracht behouden waar hij op basis van zijn aantal shares recht op heeft. Deze shares gelden voor cpu, memory en disk. Zo kan je bepalen wie er voorrang krijgt bij het verdelen van resources. Een resource pool is een vooraf ingestelde hoeveelheid resources (shares) waaronder je virtuele machines kan hangen. Je hebt dan bijvoorbeeld de pools productie en test, waarbij je test maar op 10% instelt en productie op 90%. Hiermee zorg je dat de productie altijd snel blijft tijdens je testen. Er is zelfs een boomstructuur in deze resource pools mogelijk. Netwerkbeheer Er wordt in Vmware ESX gewerkt met virtuele switches. Er zijn 3 soorten. Allleen intern, met 1 connectie naar een fysieke netwerkkaart, met 2 of meer connecties naar fysieke netwerkkaarten. Dit laatste is voor load balancing of failover. Binnen in een virtuele switch zijn verschillende connecties mogelijk. Poort naar virtuele machine, service console poort (de Red Hat Linux die naast de hypervisor draait) of een vmkernel port, voor vmotion, iscsi en nfs. Voordeel van virtuele switch is dat er geen collisions zijn tussen vm's. Dus vm's kunnen zeer snel onderling met elkaar communiceren, er is geen beperking meer van de lijnsnelheid, dit is ideaal voor bv een database server en de client die in de database moet kijken. Met de affinity kan je er voor zorgen dat die twee vm's altijd bij elkaar blijven zodat de verbinding supersnel blijft. Tot 1016 poorten per virtuele switch en 4096 poorten per ESX server. Iedere virtuele poort heeft een mac adres en die worden ook naar buiten gepubliceerd, dus je kan vanuit je netwerk de vm's aansturen. Vmware ondersteunt VLAN tagging, dit is uniek en werkt goed. Allerlei security settings zijn mogelijk, zoals bv spoofing of forge transmitting voor ms netwerk load balancing. Zelfs firewall configuraties zijn mogelijk, je kan een firewall voor een virtuele machine zetten. Ook is load balancing mogelijk, het verkeer over meerdere fysieke netwerkkaarten laten lopen voor bv snellere toegang tot een ftp server. De virtuele switches zijn ongevoelig voor allerlei aanvallen via het netwerk. Een virtuele switch kan teamen, dit is het netwerk verkeer over meerdere fysieke kaarten verdelen, bv een vm vast aan een netwerkkaart toewijzen. Dit kan op basis van de virtuele switch poort, vm mac adres, source & destination ip numbers, of manual load balancing. Storage 4 NGN Virtualisatiedag - Vmware
ESX kan werken met SCSI, fibrechannel SAN, iSCSI SAN, NFS. Werkt niet op IDE/SATA! Dit is met opzet, want deze standaard verandert veel te vaak. De andere standaarden zijn veel stabieler. Er zijn tegenwoordig iSCSI oplossingen die zo snel zijn dat ze fibrechannel bij kunnen houden, ook al lopen ze maar over 1 gb ethernet verbindingen. NFS zou iets kunnen zijn voor je ISO bestanden of template vm's. De storage kan je op verschillende manieren aan de vm's aanbieden. – virtuele disk, dan staat er een groot bestand op de vmfs shared storage – raw device mapping, dit is een lun vanuit je storage aanbieden aan een vm, zodat die dit kan formatteren en als eigen disk gebruiken. Als je gebruik maakt van san snapshotting kan je dan dat ene lun van die vm gaan snapshotten. Als je het vmfs zou gaan snapshotten, heb je meteen alle vm's tegelijk meegenomen, dat hoeft niet altijd de bedoeling te zijn. ESX VMFS Eigen filesystem, gemaakt voor multiple access, meerdere vm's kunnen tegelijk op 1 filesystem werken. Lage overhead, vms kunnen compleet in directories, 2 TB maximale grootte, met 32 extents is het maximum 64 TB. Eenvoud en beheer Helaas geen demo van de ESX omgeving want er werkt iets niet. Toekomst De volgende stap is ESX3I, met de I van integrated. Binnenkort komen er servers waar ESX preinstalled op staat, in 32MB flash op het moederbord. Je kan meteen met Virtual Center aan de gang om er vm's op te zetten. Er is geen service console met parent os meer, er is alleen de hypervisor, dus geen zorgen meer over patching van de Linux service console. Dit scheelt veel werk. Dell, HP, IBM, Fujitsu Siemens zullen servers hiermee leveren. Een andere nieuwe ontwikkeling is storage vmotion, het online verplaatsen van de virtuele disk van het ene storage medium naar het andere. Het nieuwste waar aan gewerkt wordt is de “online standby”. (Hier is de officiele marketing naam nog niet van bekend.) Je hebt dan twee ESX servers en op beide servers draait dezelfde virtuele machine. Een ervan is de master, daar gebeurt al het werk, en alle handelingen die verricht worden, worden gekopieerd naar de andere vm, het loopt synchroon. Valt de master dan uit, dan neemt de kopie meteen het werk over. Dit is veel beter dan HA, want bij HA wordt de vervanger zo snel mogelijk opgestart, maar met dit systeem draait de vervanger al die tijd al mee. Verdere toekomstplannen: CPU en memory snelheid zijn bij alle virtualisatie systemen gelijk. De bottleneck zit in disk io en netwerk io. Deze io wordt nu gedaan door de driver in de hypervisor. In de toekomst zal er hardware zijn waar de virtualisatie van al die io al in de hardware zit. Hierdoor kan de driver veel kleiner worden en zal alles nog sneller gaan, want de hardware kan al omgaan met al de verschillende io van de vm's en de driver hoeft het verkeer niet meer te regelen. Dit zal bij netwerk en disk controllers er aan komen, maar dat duurt nog wel even. Einde presentatie.
5 NGN Virtualisatiedag - Vmware