Het grote VMware ESXi/vSphere Topic

VMware ESXi is een enterprise-class, type-1 hypervisor ontwikkeld door VMware voor het uitrollen en draaien van virtuele computers. Een type-1 hypervisor onderscheidt zich van een type-2 hypervisor door de plek van de hypervisor ten opzichte van de hardware. Bij een type-1 hypervisor draait deze direct op de hardware en heeft dus rechtstreekse toegang tot de hardware. Bij een type-2 hypervisor (zoals. bijv. VMware Workstation) draait de hypervisor bovenop het onderliggende besturingssysteem (bijv Windows). De toegang tot de hardware moet dan door het besturingssysteem worden geregeld. Het mag vanzelfsprekend zijn dat een type-1 hypervisor sneller is dan een type-2 hypervisor, maar door de rechtstreekse toegang tot de hardware wel meer eisen hieraan stelt. Als type-1 hypervisor is ESXi dus geen software applicatie die men installeert in een besturingsysteem, maar bevat het onderdelen van een besturingssysteem zoals een kernel. VMware ESXi is beschikbaar als gratis versie met bepaalde (enterprise) functies uitgeschakeld. De ondersteuning (HCL wizard) van hardware is met name voor netwerk en storage wat beperkter dan we van besturingssystemen gewend zijn, maar voor sommige netwerkkaarten en AHCI controllers zijn er community of 3rd party drivers beschikbaar.
HCL/Whitebox:
Als je ESXi thuis wilt gebruiken kun je een (micro)server kopen die op de HCL staat, maar je kunt ook onderdelen gebruiken die op de HCL staan, of die door anderen reeds getest zijn (eventueel met een community driver) a.k.a een Whitebox.Minimale benodigdheden:
Om ESXi te kunnen draaien heb je een computer nodig met minimaal de volgende componenten cq specificaties:Processor:
![]() | 64-bit processor, minstens 2 cores. Hyperthreading mag, dit wordt door VMware aanbevolen, maar is dus geen eis. Hyperthreading levert wel een tiental procent extra performance op. De processor moet tevens voorzien zijn van hardware virtualisatie ondersteuning, bij Intel is dat VT-x, bij AMD RVI. |
Geheugen:
![]() | VMware stelt 4GB RAM als minimum, maar gezien de lage prijzen voor geheugen is 8GB toch wel echt het benodigde werkbare minimum. |
Netwerk kaart:
![]() | ESXi vereist een ondersteunde netwerkkaart om te kunnen werken. Zonder netwerkkaart zal ESXi niet eens installeren. |
Storagecontroller:
![]() | ESXi moet een ondersteunde storage controller aantreffen zodat je ESXi ergens kan installeren en virtuele machines kan opslaan. Aangezien ESXi een enterprise oplossing is zie je hier vaak iSCSI, Fibre Channel, SAS, FCoE controllers e.d. Gelukkig worden consumer like controllers zoals SATA en USB ook ondersteund, maar in beperkte mate. |
Videokaart:
![]() | Je hebt een videokaart nodig om op de ESXi console te kunnen kijken. Verder wordt de videokaart niet gebruikt. De meest eenvoudige videokaart zal dus volstaan. (Uitzondering is als je video GPU's gaat doorzetten naar een VM, maar dat is een ander verhaal). |
Storage:
![]() | ESXi vereist een boot device van minstens 1GB. Indien je ESXi op een USB stick zet, is het slimmer om voor minimaal 4GB (16GB aanbevolen) te kiezen voor toekomstige upgrades en voor de coredump partitie. Voor je virtuele machines is de storage afhankelijk van hoeveel virtuele machines je gaat aanmaken. Een gemiddelde Windows 10 virtuele machine kost je 30-40GB, daar komt nog storage bij voor memory en swap, zeg totaal 50GB. Gezien de lage prijzen van opslag is een 1TB disk aan te bevelen, of desnoods een kleinere SSD (voor super performance). |
BIOS:
![]() | ESXi ondersteund zowel UEFI als Legacy BIOS mode. |
Moederborden:
Aangezien VMware ESXi in oorsprong een enterprise oplossing is gericht op de zakelijke markt, is de support voor hardware ook daaraan gekoppeld. Aangezien het voor VMware onmogelijk is om voor elk product een driver te maken en deze te testen is de support op hardware beperkt tot "enterprise class" hardware, zoals servers, netwerkkaarten en storage. Alle ondersteunde hardware (o.a. processors, storage adapters, netwerkkaarten en complete systemen) heeft VMware ondergebracht in de Hardware Compatibility List (HCL). Hierop staat alle hardware waarvoor door VMware drivers zijn gemaakt, die is getest en goedgekeurd. Dat wil gelukkig niet zeggen dat consumer class hardware niet werkt. Zolang de consumer hardware maar gebruik maakt van componenten die ook in interprise class hardware gebruikt worden, is er een grote kans dat je consumer moederbord gewoon werkt. De laatste jaren zien we dat de het onderscheid tussen enterprise hardware en consumer hardware aan het verkleinen is. Op consumer moederborden kom je regelmatig (eenvoudigere) versies van enterprise producten tegen, zoals toegepaste chipsets, Intel NIC's, storage devices e.d. Met wat mazzel kom je dus wel een consumer bordje tegen dat zal werken. Dit is ook terug te vinden op internet bij de zo genaamde whiteboxes.Concreet: moederborden/systemen op de HCL werken 100% zeker, voor consumer moederborden hangt het af van de aanwezige hardware en ervaringen op internet en of de aanwezige componenten op het moederbord terug te vinden zijn op de HCL. Er zijn een aantal moederbord leveranciers die moederborden maken die op de HCL staan en ook voor consumenten te koop zijn, dit zijn o.a. :
- Supermicro
Er zijn ook uitzonderingen, moederborden waarbij de ACPI tables niet goed samenwerken met POSIX besturingssystemen (meestal DSDT->OSPM). Vaak worden deze bij veel klachten alsnog aangepast via een BIOS upgrade. Borden waarbij zelfs met de laatste BIOS problemen bekend zijn:
- Asrock B150, problemen met power management.
- Sommige Supermicro C612 borden, problemen met softwarematige shutdown.
- Sommige Asus C612 borden, problemen met IPMI module. (module uit te schakelen)
Met een Intel Xeon Processor E5/E7 v4 of Xeon D-1500 series kun je last krijgen van PSOD's zonder de laatste CPU microcode. Dit is geen VMware issue maar een bug in de Intel microcode, Supermicro heeft beta biosen beschikbaar.
Netwerk:
Alleen de volgende netwerk drivers zitten out of the box in ESXi:- Broadcom NetXtreme (II)
- Cisco VIC Ethernet
- Emulex
- Intel 8254x, 8256x, 8257x, 8258x, 82598, 82599 (X520), X540, i210, i211, i217, i218, i219, i350, i354
- Mellanox
- NetXen
- nVidia CK804, MCP51/55/73/77/79
- QLogic
Opslag:
Boot:
ESXi kan booten vanaf ATA/SATA/SAS/SCSI/NVMe zolang er een driver aanwezig is, mocht je een custom driver nodig hebben kun je die in de iso integreren.Naast reguliere storage devices kan er ook geboot worden via PXE, iSCSI, SAN, USB (OHCI/UHCI) of SD (EHCI/XHCI).
SATA:
Out of the box heeft ESXi een gefilterde generic AHCI driver waarbij het filter (etc/vmware/driver.map.d/ahci.map) de volgende controllers bevat:- AMD FCH/SB7x0/SB8x0/SB9x0
- Apple AHCI PCIe SSD (Samsung based)
- Intel 5/6/7/8/1xx, Atom C2000/NM10, ICH 6/7/8/9/10, C20x/21x/22x/60x(X79)/61x(X99), 31/32/5400
- nVidia MCP78/MCP89
- ALi ULi M5288
- Unknown (1b62:2923, Toshiba/Sandisk based Apple AHCI PCIe SSD?)
- Samsung SM951 AHCI
Verder zitten er in ESXI niet AHCI SATA drivers voor:
- Adaptec AAR-1210SA (Silicon Image)
- Apple
- nVidia CK804, MCP04/51/55/61/65/67, nForce2/3
- Promise 376/378/779/TX2(xxx)/TX4(xxx)
- Serverworks K2, Raidcore xC4000, HT1000, HT1100
- Silicon Image 3112, 3114, 3124, 3132, 3512, 3531
ATA:
Alleen AMD/ATI, Intel, Highpoint, Promise, Serverworks, Silicon Image en VIA PATA drivers zitten out of the box in ESXi. (Let op dat sommige SATA in IDE mode zijn!)USB:
Standaard is USB alleen beschikbaar als boot device, maar als je het niet erg vind om USB passthrough op te offeren kun je USB ook als datastore gebruiken.SAS/SCSI/HW iSCSI:
Alleen Adaptec (+DEC, Dell en IBM), QLogic (iSCSI), Cisco (VIC FCoE), HP (Smart Array) en LSI (+veel subvendors) drivers zitten out of the box in ESXi.NVMe:
Er zit een generic NVMe driver in ESXi, voor de Intel 750/P3500/P3600/P3700 kun je qua performance beter de Intel VIB installeren.Shared Storage:
Diverse InfiniBand, FCoE, FC, iSCSI HW adapters van Broadcom, Emulex, Intel, Mellanox en QLogic, hiernaast is het mogelijk om software iSCSI of NFS te gebruiken. Ook is het met de juiste licentie mogelijk om shared storage te virtualiseren met VSAN.I/O HW Virtualisatie:
Er zijn momenteel drie manieren om vanuit hardware I/O beschikbaar te maken voor een virtuele machine.- IOMMU (Device -> 1 virtuele machine op dezelfde host)
- SR-IOV (Device -> n virtuele machines op dezelfde host)
- MR-IOV (Device -> n virtuele machines op n hosts)
Input/Output Memory Management Unit (IOMMU):
Met Intel® Virtualization Technology for Directed I/O (VT-d) of AMD I/O Virtualization Technology (AMD-Vi) kan er een DMA translation gedaan worden op chipset niveau waardoor er directe communicatie mogelijk is tussen het geheugen van één virtuele machine en een IO hub. Er zit dus geen software tussen, de hypervisor vraagt het alleen aan, maar doet zelf geen translation.
Een manier om dit te begrijpen is als een soort van VLAN voor IO devices per virtuele machine op PCIe niveau.
Om het te kunnen gebruiken moeten meerdere onderdelen het ondersteunen: Chipset, BIOS, CPU en je PCI(e) device moet te resetten (flr, d3d0, link, bridge of default) zijn. Op socket 1151 en 2011 ondersteunen alle chipsets, BIOS-en en CPU's VT-d.
IOMMU wordt meestal gebruikt om virtuele machines directe toegang te geven tot storage controllers (bijvoorbeeld voor ZFS), USB hubs of GPU's. ESXi heeft een filterlijst (/etc/vmware/passthru.map) met devices die doorgegeven kunnen worden, deze is aan te passen met bijvoorbeeld een Intel SATA controller. Mocht het een storage controller zijn dan mag het niet je bootdevice en er geen datastores op staan om hem door te kunnen geven.
Single-Root I/O Virtualization (SR-IOV):
Met SR-IOV kan een device zich voor doen als meerdere identieke 'devices' (maximaal 256 Virtual Functions). SR-IOV vereist ondersteuning in BIOS, hypervisor en een beschikbare client driver voor het gast OS. ESXi heeft momenteel alleen ondersteuning voor AMD MxGPU en netwerkkaarten met SR-IOV (inclusief HW virtual switching in de NIC).
Nesting is niet mogelijk omdat er geen client drivers in ESXi zitten.
SR-IOV wordt ook voor storage gebruikt, maar nog niet met ESXi.
Multi-Root I/O Virtualization (MR-IOV):
MR-IOV is gelijk aan SR-IOV maar kan dan via 'external' PCIe met meerdere hosts communiceren, dit zie je vooral in blades. ESXi heeft nog geen ondersteuning voor MR-IOV.Graphics:
Soft3D is een software GPU (emulatie op de CPU). Mocht dit niet voldoende zijn dan zijn er drie manieren om hardware graphics te gebruiken:vDGA (Passthrough met VT-d/IOMMU):
Hiermee geef je één GPU direct door naar één virtual machine, alles wat op de kaart zit is beschikbaar voor de virtuele machine (ook de outputs zoals HDMI), de standaard vendor driver installeer je alleen in de VM. vDGA is mogelijk met:- AMD
- Bepaalde nVidia Quadro's:
- [list]
- 1000M, 3000M, 5000
- K2000/K4000/K5000/K6000
- K3100M
- K2200/K4200/K5200
- [/list]
- nVidia Grid K1/K2 of Tesla M6/M10/M60
- Intel Xeon E3's v3 Haswell met P4700 of v4 Broadwell met P6300. (GVT-d)
vSGA:
vSGA is een software GPU (installeer je in de VM's) die API calls doorstuurt naar de kaart die een driver in de hypervisor heeft. vSGA is mogelijk met nVidia Grid K1/K2 of Tesla M6/M60 kaarten, Intel P4700/P6300 (GVT-s) en AMD FirePro s7000/w7000/s9000/s9050.vGPU/MxGPU/GVT-g:
Het delen van GPU's met meerdere virtuele machines.vGPU is een nVidia software driver in de virtuele machine en hypervisor die samen werken. Het verdelen van de GPU resources gebeurd in de hypervisor driver en de virtuele machine driver kan daar direct mee communiceren.

vGPU is mogelijk met nVidia Grid K1/K2 of Tesla M6/M10/M60 kaarten.
AMD's Multi User GPU werkt net iets anders en lost het verdelen van de resources in de hardware (SR-IOV, Single Root I/O Virtualization) op. In de praktijk werkt het hetzelfde, alleen is het nog niet mogelijk dit grafisch te configureren (commandline).

MxGPU is mogelijk met AMD FirePro™ S7150 (X2).
Intel's GVT-g met P6300 is nog niet mogelijk met ESXi.
Licenties:
Free:
De gratis versie van ESXi is in principe gelijk aan de betaalde versie, alleen zijn de API's read only waardoor geavanceerd managen (vCenter, PowerCLI, etc) niet mogelijk is. Management is alleen mogelijk per host via de web of vSphere Client.Eval Experience:
Via de VMware User Group kun je voor $200 per jaar licenties voor niet productie omgevingen krijgen. Inbegrepen zijn:- VMware vCenter Server Standard for vSphere 6
- VMware vSphere® with Operations Management™ Enterprise Plus
- VMware vCloud Suite® Standard
- VMware vRealize Orchestrator
- VMware vRealize Operations™
- VMware vRealize Log Insight™
- VMware vRealize Operations for Horizon®
- VMware Horizon® Advanced Edition
- VMware Virtual SAN™
Commercial:
vSphere licenties gaan per CPU (socket) en zijn te krijgen in de volgende uitvoeringen:- Standard
- Enterprise
- Enterprise with Operations Management
VMware vCenter is een aparte licentie, inbegrepen in de kit versies.
Voor uitgebreide info over de verschillen, zie deze site.
Installatie:

Zoals eerder aangegeven heb je om ESXi te kunnen installeren in elk geval een ondersteunde storage controller en netwerkkaart nodig.

ESXi wordt normaal gesproken geïnstalleerd vanaf een CD. Het is ook mogelijk om de ISO via IPMI/AMT te mounten of om de ISO om te zetten naar USB met bijvoorbeeld Rufus.

De machine waarop je ESXi installeert hoeft niet gelijk te zijn aan de machine waarop je ESXi gaat uitvoeren. Ook is het mogelijk om de installatie te starten vanaf een PXE server of zelfs te booten vanaf PXE, maar dit is buiten de scope van deze post.
Remote Management:
ESXi Host Client
Het beheren van ESXi kan via de webbased host client:
vCenter Web Client
Het beheren van vCenter kan via de webbased client:
Windows C Client
Beide kunnen ook nog steeds (zei het iets beperkt) gemanaged worden door de 'oude' Windows client:
PowerCLI
vSphere PowerCLI is een command-line en scripting tool op Windows PowerShell en heeft meer dan 400 cmdlets voor het beheren en automatiseren van vSphere.
SSH
SSH staat standaard uit op ESXi, maar kan ingeschakeld worden met een client of via een console. Daarna kan ook SSH voor beheer gebruikt worden. Voorbeeld met de Intel Data Center tool:code:
1
2
3
4
5
6
7
8
| [root@localhost:~] /opt/intel/isdct/isdct load -intelssd 0 WARNING! You have selected to update the drives firmware! Proceed with the update? (Y|N): Y Updating firmware... - Intel SSD 750 Series CVCQ51350096400CGN - Status : Firmware Updated Successfully. Please reboot the system. |
Virtual Networking:
Virtual Switches:
Een virtuele switch werkt in basis niet veel anders dan een normale switch, duurdere switches voeren veel taken uit in ASICs, een virtuele switch doet alles in software. Een virtuele switch heeft dus ook een MAC:port tabel en forward een frame naar één of meerdere poorten. Echter hoeft een virtuele switch in principe niets te doen voor unicast/multicast en heeft geen spanning tree protocol nodig. Communicatie naar buiten gaat via 'uplinks' die je kunt koppelen aan netwerkkaarten. Communicatie naar VM's of kernel adapters gaat via 'port groups' naar een virtuele netwerkkaart.Standard vNetwork Switch

Support:
- 802.1Q VLAN
- Teaming
- L2 Security
- Outbound Traffic Shaping
Distributed vNetwork Switch

Distributed vNetwork Switches (vereist Enterprise Plus licentie en vCenter!) kunnen hetzelfde als Standard vSwitches plus:
- Centraal management
- Inbound Traffic Shaping
- PVLAN
- Netflow
- dvMirror
- LLDP
- Enhanced link aggregation met keuze in hashing algorithmes
- Verbeterde poort security met traffic filtering ondersteuning
- Verbeterde single-root I/O virtualization (SR-IOV) ondersteuning en 40Gbit netwerkkaart ondersteuning
- Network IO Control
- Multicast Snooping (MLD/IGMP snooping)
- Multiple TCP/IP Stack met vMotion
Virtual NICs:
Virtuele netwerkkaarten (puur layer 2) hebben hun eigen MAC adres en unicast/multicast/broadcast filters.De snelheid en duplex aangegeven door het besturingsysteem maakt niet uit, de gegevens gaan via RAM van en naar de switch.

Er zijn vijf verschillende in ESXi, dit zijn de twee meest gebruikte:
e1000(e)
Een virtueel apparaat dat strict de Intel E1000(E) zal emuleren. Voordeel is de drivers van deze kaarten in de meeste besturingssystemen reeds beschikbaar zijn.VMXNET3
Een para-gevirtualiseerd apparaat gemaakt voor hoge performance, eentje die weet dat hij op een hypervisor draait en bepaalde gedeeltes door de virtuele switch heen direct aan de fysieke netwerkkaart kan doorgeven en gebruik kan maken van offloading indien beschikbaar. Aanbevolen netwerkkaart, heeft wel een driver nodig die meestal standaard niet aanwezig is.Virtual Storage:
Virtual Controllers:
Terwijl IDE, SATA of LSI vaak de gemakkelijkste optie voor een gast virtuele machine zijn omdat je geen driver hoeft te installeren geven ze niet de beste prestaties:
In het algemeen is de aanbeveling om PVSCSI (Para-Virtual SCSI) te gebruiken, tenzij het gast besturingssysteem BSD is of er een harddisk als fysieke storage gebruikt wordt, in die gevallen kun je beter de LSI virtuele controller gebruiken. Bij PVSCSI wordt een storage laag 1:1 doorgegeven tussen gast en host, dit zorgt voor een lagere CPU belasting en hogere performance.
Disk Formaat:
ESXi kent twee disk formaten, Thin en Thick, waarbij Thin disks het voordeel hebben dat alleen de gebruikte ruimte echt van de beschikbare opslag af gaat. In het algemeen (met name op flash) is het performance verschil zo klein dat de voordelen van Thin disks groter zijn. Op een spinning disk met veel ruimte zou je Thick Eager Zeroed kunnen overwegen.RDM:
Een RDM (Raw Device Mapping) is een speciale link file in een VMFS volume dat metadata voor het gekoppelde apparaat beheerd. Door de management software wordt het als een normaal disk bestand gezien, maar voor virtuele machines ziet de storage virtualisatie laag het als een virtueel SCSI apparaat.Daar waar je met VT-d een gehele controller doorgeeft kun je met RDM een gehele disk doorgeven en mocht je er een clustered filesystem op zetten, dan kan het ook aan meerdere machines.
RDM is niet beschikbaar met alle controllers (met name RAID en DAS niet).

RDM heeft twee compatibiliteitsmodi:
Physical
Physical mode geeft minimale SCSI virtualisatie, eigenlijk wordt alleen REPORT LUNs afgevangen zodat de VMkernel de LUN kan isoleren. Verder wordt alles direct van de hardware doorgegeven.Virtual
Virtual mode doet volledige virtualisatie en geeft alleen READ en WRITE direct door.SMART data en dergelijke zijn niet beschikbaar.
Guest Optimalisatie:
VMware OS Optimization Tool
Met de VMware OS Optimization Tool kun je Windows 7/8/2008/2012/10 geautomatiseerd optimaliseren.
Het verschil kan oplopen tot 20% (20% meer VM's op je host kunnen draaien).
TCP Offload
Standaard zet OSOT TCP Offloading uit, omdat als netwerkkaarten dit niet ondersteunen de software afwikkeling van offloading zwaarder is. Tegenwoordig kunnen de meeste server netwerkkaarten prima offloaden en is het aan te bevelen de stap in Optimization Tool uit te zettten.Software GPU
Internet Explorer en Microsoft Office kunnen GPU acceleratie gebruiken, mocht je geen hardware GPU hebben dan is het verstandig dit uit te schakelen.
Simulatie van HW in de hypervisor laag is zwaarder dan direct software in de browser/Office.
Zero free space/hole punching
Het grote voordeel van Thin disk is dat niet gebruikte ruimte vrij blijft. Echter zal een disk alleen groeien en niet krimpen. Als je bijvoorbeeld Windows 2012 R2 op een VM zet en patched dan zal de Thin Disk tot zo'n 60GB of de maximale grootte groeien. Gebruik je deze dan vervolgens als template dan lopen je disks snel vol. Als je in Windows eerst de vrije ruimte met nullen vult (sdelete /Z [drive]:, Linux secure-delete) en dan ESXi hole punching (vmkfstools -K [/path/to/disk-name].vmdk) in de VMDK laat doen zul je zien dat de template nog maar een Gigabyte of 12 is:
Transparent Page Sharing
Met TPS worden er hashes bij gehouden van memory pages. Zodra er weinig geheugen beschikbaar is worden de hits bit voor bit vergeleken en indien identiek wordt er nog maar één kopie gebruikt en is de rest weer beschikbaar als vrij geheugen. Omdat er een vrijwel niet toepasbare mogelijkheid bestaat om toegang te krijgen tot data waar je eigenlijk niet bij zou moeten kunnen staat worden standaard alleen pages binnen een VM geshared. In een lab met weinig vrij geheugen is er behoorlijk wat winst te behalen door dit ook buiten de VM te doen via Mem.ShareForceSalting = 0.Nesting:
Het is mogelijk om ESXi op ESXi te draaien en zo met een enkele host een omgeving met meerdere hosts te simuleren of het voordeel te behalen snapshots te kunnen maken van ESXi machines.
ESXi heeft nog geen driver voor de PVSCSI controller, kies dus een LSI Logic controller. Verder is het belangrijk dat hardware assisted virtualization doorgegeven wordt aan de VM:

MAC Learning Fling
Virtuele switches weten normaal gesproken welke MAC adressen er aan welke poort zitten, maar bij nested weten ze dit natuurlijk niet, om toch netwerk verkeer naar de nested VM's mogelijk te maken moet je promiscuous mode aan zetten, maar dit heeft het nadeel dat het verkeer naar alle VM's op de switch gestuurd wordt. Om dit te voorkomen is er een MAC Learning dvFilter Fling dat als filter ingeladen kan worden op de host.Op de nested ESXi VM's zet je dan twee advanced properties op elke virtuele NIC:
ethernet0.filter4.name=dvfilter-maclearn
ethernet0.filter4.onFailure=failOpen
Er is ook een Nested ESXi6u2 Appliance waar alles al in staat. (Nog wel even de dvFilter op de host zetten en de vswitch in promiscuous mode).
Sample Builds
Mini
Small
Medium
Large
Extra Large
Guides
Passthrough van Intel AHCI Controller
XPenology (Synology DSM) op ESXi
Custom ESXi ISO
[ Voor 255% gewijzigd door |sWORDs| op 12-02-2017 18:29 ]
Te Koop:24 Core Intel Upgradeset