# VMware vSphere

VMware vSphere ist eine Virtualisierungs-Plattform für den Bereich Cloud-Infrastruktur, Rechenzentrums- und Servervirtualisierung. VMware vSphere besteht aus einer Sammlung von Software-Produkten des US-amerikanischen Unternehmens VMware Inc. Zentrale Bestandteile dieser Software-Produkte sind der Typ-1 Hypervisor VMware vSphere ESXi, der virtuelle Maschinen für x64-basierte Hardware und deren Betriebssysteme bereitstellt, sowie VMware vCenter für die grafische Verwaltung der gesamten Struktur aus Datacenter, Cluster, Netzwerk, Datastore, CPUs und virtuellen Maschinen in Form einer dynamischen und nahtlosen Betriebsumgebung.

## Funktionsweise

Die Software VMware vSphere ist ein Hypervisor und setzt somit als bare metal Hypervisor mit ca. 400 MB Footprint direkt auf die vom Hersteller zertifizierte x86-64-Hardware auf. Dabei bedient sich VMware sowohl Linux- und Open-Source-basierter Teile (Bootloader Grub, Treiber für die Hardware wie Netzwerkkarten, Chipset, Storage etc.) als auch des eigentlichen VMkernel, welcher proprietäre Technologie enthält.
Bis zur Version 5.0 gibt es die Software sowohl als schlanken Bare-Metal-Hypervisor (ESXi) als auch als ESX-Version mit einem sogenannten Konsolenbetriebssystem zum Management des Hypervisors. Mit der Version 5.1 wurde dieses Konsolenbetriebssystem aufgegeben und nur noch die ESXi-Version angeboten.
VMware vSphere speichert virtuelle Maschinen in sogenannten Datastores und dort in Verzeichnissen. Die wichtigsten Dateien sind Konfigurationsdateien (*.vmx) und virtuelle Festplatten (*.vmdk). Als Datastores kommen NFS-Shares oder Festplatten zum Einsatz. Letztere können lokale Festplatten oder über ein SAN (via HBA oder iSCSI) bereitgestellte LUN sein. Festplatten werden bei der Erstellung eines Datastore mit dem VMware-Dateisystem VMFS formatiert. Dabei handelt es sich um ein robustes clusterfähiges Dateisystem, welches auf den Einsatz von virtuellen Maschinen optimiert wurde. Die aktuelle Version trägt die Nummer 6, der Vorgänger, VMFS 3, hatte noch Einschränkungen im Zusammenhang mit Blockgröße und maximaler Volumengröße.
VMware vSphere wird in sechs Editionen (Essential, Essential Plus, Standard, Enterprise, Enterprise Plus und vSphere Desktop) angeboten. Diese unterscheiden sich neben dem Preis durch die bereitgestellten Funktionen wie maximale Anzahl virtueller CPU, Storage-API-Integration, automatisierte Lastverteilung, IO-Control (für Netzwerk und Storage) oder verteilten, virtuellen Switches. Dabei sind die Essential-Editionen für kleinere und mittlere Unternehmen (KMU bzw. SME) gedacht.
Daneben gibt es auch eine kostenlose Version, genannt VMware vSphere Hypervisor, mit aktuell folgenden wichtigsten Limitationen pro Server, die Einschränkung von maximal 32 GB RAM wurde in der Version 5.5 aufgehoben:
* maximal 2 CPU-Sockel (keine Limitationen bezüglich Cores)
* eingeschränkte Verwaltung (vCenter, Scripting) und Automatisierung.

### Detailfunktionen

Die folgenden, wichtigsten Funktionalitäten ermöglichen einen hohen Automatisierungsgrad und eine starke Konsolidierung von Ressourcen.

#### Snapshot

Ermöglicht das Einfrieren des Zustands einer virtuellen Maschine und somit die Möglichkeit zur Rückkehr zu diesem Zustand, zum Beispiel bei einem Test-Deployment von Software oder Patches.

#### vMotion

Bedingt den Einsatz von vCenter und shared Storage (NFS, iSCSI, SAN). Ermöglicht den unterbrechungslosen Umzug von laufenden virtuellen Maschinen zwischen verschiedenen vSphere-Servern, zum Beispiel bei notwendiger Hardware-Wartung oder zur manuellen Lastverteilung.

#### Storage vMotion

Bedingt den Einsatz von vCenter. Ermöglicht den Umzug der zu einer laufenden, virtuellen Maschine gehörenden Dateien. Zum Beispiel von einem Datenspeicher (Datastore) auf demselben Server oder auf einem anderen shared Storage bei Performance-Engpässen oder anstehender Wartung.

#### HA (High Availability)

HA (High Availability) ermöglicht eine hohe Verfügbarkeit, indem beim Ausfall eines Hosts die entsprechenden virtuellen Maschinen automatisch auf einem anderen, verfügbaren vSphere-Host neu gestartet werden. Die Funktionalität bedingt den Einsatz von vCenter und von shared Storage.

#### FT (Fault Tolerance)

FT (Fault Tolerance) ermöglicht in Zusammenspiel mit der entsprechenden Hardware und vCenter das Clustering von wichtigen Systemen. Dabei werden die Hardware-Ressourcen über zwei vSphere-Server gespiegelt und sämtliche Befehle redundant auch auf dem Spiegelserver ausgeführt. Fällt der Master-Server aus, übernimmt der Slave die weitere Verarbeitung der laufenden Anwendungen in Echtzeit. In der vSphere-Version 6.0 kann die virtuelle Maschine mit 4 vCPUs bestückt werden.

#### DRS (Distributed Resource Scheduler)

DRS (Distributed Resource Scheduler) ermöglicht die automatische Lastverteilung in einer mit vCenter verwalteten vSphere-Umgebung. Mittels vMotion werden virtuelle Maschinen aufgrund vordefinierter Regeln automatisch zwischen Servern verschoben, Server neu gestartet oder bei Nichtgebrauch angehalten.

### Verwaltungswerkzeuge

Die Verwaltung der unter vSphere laufenden Server kann mit folgenden VMware-Werkzeugen geschehen:
* vCenter Server
    Der vCenter Server stellt die zentrale Verwaltungslösung dar. Die Software kann auf einem Windows Server installiert werden und eine integrierte Datenbank (für kleine Umgebungen) oder eine externe MS SQL bzw. Oracle Datenbank als Backend nutzen. Seit vSphere 5.0 steht auch eine Linux-Version zur Verfügung, die als virtuelle Appliance (vApp; fertig vorkonfiguriertes System inklusive Datenbank) ausgeliefert wird. Die vCenter Appliance kann die integrierte Datenbank (DB2 in vSphere 5.0, Postgres in späteren Versionen) nutzen, oder an einen externen Oracle Server angebunden werden. Ab Version 7 steht der vCenter Server nur mehr als vApp zur Verfügung.
* PowerShell cmdlets
    Auf der VMware-Website lässt sich kostenlos die Windows PowerShell API (PowerCLI) herunterladen. Darüber können Management-Aufgaben übernommen werden. Es stehen Funktionen zur Verfügung, die in der GUI nicht angeboten werden.
    Seit Version 10 ist PowerCLI auch für Mac und Linux verfügbar. Voraussetzung ist jeweils die Installation von PowerShell Core.
* Perl
    Für Linux steht eine Perl-Implementierung der API zur Verfügung. Diese stellt allerdings nicht alle Funktionen zur Verfügung, die auch über die PowerShell cmdlets verfügbar sind.
* Orchestrator
    Die Steuerung erfolgt mittels Drag and Drop in einer Java-basierten GUI, mit JavaScript oder Java. Der Orchestrator kann viele IT-basierte Prozesse abbilden. Hierzu steht eine offene Erweiterungsschnittstelle zur Verfügung, die sowohl von 3rd Party Herstellern, als auch von Standardschnittstellen (PowerShell, Perl, SSH, SNMP, REST usw.) genutzt werden kann.
* 3rd Party Software, die sich an die öffentlich verfügbare API anschließt.
    Beispielsweise der Anschluss von MS System Center Suite ist möglich.

#### vSphere-Client

Der vSphere-Client ist eine Windows-Anwendung, welche interaktiv den Zugang zu den Ressourcen eines vSphere-Servers ermöglicht. Ermöglicht Funktionen wie Start/Stopp virtueller Maschinen, Erstellen/Löschen von virtuellen Maschinen etc.

#### vSphere-Web-Client

Browserbasierter Client, der den vSphere-Client abgelöst hat. Bedingt den Einsatz eines entsprechenden Servers, der die Befehle des Web-Clients umsetzt. Der vSphere Client (Windows), dessen Weiterentwicklung bereits seit der vSphere Version 5.1 eingestellt wurde, ist seit der vSphere Version 6.5 nicht mehr kompatibel und wurde vollständig durch den vSphere Web-Client abgelöst.

#### vSphere-Management-Assistant

Eine Linux-basierte virtuelle Management-Appliance, welche kommandozeilenbasierte Verwaltungswerkzeuge bereitstellt.

#### SDK für Clients

Für Management-Clients unter Linux (Perl) und Windows (Powershell) können SDK installiert werden, welche skriptgesteuerten Zugriff auf die vSphere-Server ermöglichen.

#### vCenter

Das separat erhältliche Produkt VMware vCenter ermöglicht den vollen Grad von Inventarisierung und Automatisation. Die Funktionen vMotion, HA, FT, DRS bedingen den Einsatz des vCenter.

### Whitebox

In Zusammenhang mit der kostenlosen Edition VMware Hypervisor wird gelegentlich auch nicht unterstützte Hardware eingesetzt. Dabei spricht man häufig von einer «Whitebox». Die Herausforderung für den Betrieb einer Whitebox ist seit den neueren Versionen von vSphere etwas gesunken, einerseits werden ältere, stabile Mainboards mit Standardchipsätzen meist unterstützt und andererseits können für exotischere Hardware (Netzwerkkarten) auch selbstkompilierte OSS-Treiber eingesetzt werden.