Dies ist ein mehrteiliger Artikel rund um das Produkt VMware Bitfusion. Ich werde eine Einführung in die Technik geben, wie man einen Bitfusion Server einrichtet und wie man dessen Dienste aus Kubernetes Pods nutzen kann.
- Teil 1 : Eine Einführung in Bitfusion
- Teil 2 : Bitfusion Server Setup (dieser Beitrag)
- Teil 3 : Bitfusion aus Kubernetes Pods und TKGS ansprechen.
Bitfusion Server Setup Vorbereitungen
Ein Bitfusion Server Cluster muss folgende Anforderungen erfüllen:
- vSphere 7 oder neuer
- 10 GBit LAN Minimum für das Bitfusion Netzwerk für kleinere Anwendungen. Hohe Bandbreite und geringe Latenz sind elementar wichtig. Empfohlen werden 40 Gbit oder gar 100 Gbit.
- Nvidia GPU mit CUDA Funktionalität und DirectPath I/O Unterstützung:
- Pascal P40
- Tesla V100
- T4 Tensor
- A100 Tensor
- mindestens 3 Bitfusion Server pro Cluster für Hochverfügbarkeit
Diese Setup Anleitung setzt voraus, daß die Grafikkarten in den ESXi 7+ Servern bereitgestellt wurden und die Hosts einem Cluster in vCenter beigetreten sind.
Ermitteln der vCenter TLS Zertifikats-Signatur
Im Verlauf des Setup Vorgangs wird die Zertifikats Signatur (Thumbprint) des vCenter Servers benötigt. Dazu logen wir uns mit dem vSphere-Client am vCenter ein. Links neben der URL im Browser klicken wir auf das (not) Secure-Icon. Im folgenden Abschnitt wird das Verfahren für die Browser Chrome und Firefox geschildert.
Chrome
Neben der URL auf das Icon “Secure” bzw. “Not secure” bei selbstsignierten Zertifikaten klicken.
Auf Certificate klicken. Dieses kann valid oder invalid sein, abhängig davon ob die Zertifikatskette von einer vertrauenswürdigen CA signiert wurde.
Tab “Details” wählen und zum Bereich “Fingerabdruck bzw. Thumbprint gehen. Den Fingerabdruck aus dem Fenster kopieren und notieren.
Firefox
Links neben der URL auf das Sicherheitssymbol klicken.
Den Pfeil neben der Sicherheitsinfo klicken (rote Markierung). Nicht sicher bedeutet, dass der Browser dem selbstsignierten Zertifikat nicht vertraut.
Im unteren Bereich auf “Weitere Informationen” klicken.
Im Dialogfenster den Abschnitt “Sicherheit” wählen und dort auf “Zertifikat anzeigen” klicken.
Firefox öffnet einen neuen Tab mit Details zum Zertifikat. Herunter scrollen bis zum Abschnitt “Fingerabdrücke” und dort den SHA-1 Fingerabdruck kopieren und notieren.
Ermitteln der vCenter GUID
Bei der Bereitstellung der Bitfusion Server Appliance wird die GUID des vCenters benötigt. Die kann einfach aus der URL des vSphere-Clients ermittelt werden. Dazu loggen wir uns in den vSphere-Client ein, selektieren ein beliebiges Objekt und kopieren dann die URL aus der Adresszeile. Die gesuchte GUID findet sich nach der Objekt-ID. Im Beispiel unten ist dies ein ESXi Host mit der ID host-76017
https://vc.lab.local/ui/app/host;nav=h/urn:vmomi:HostSystem:host-76017:d89f0896-2f64-4ebb-8232-de45a28b6392/summary
Die gesuchte GUID des vCenters ist also:
d89f0896-2f64-4ebb-8232-de45a28b6392
Die GUID wird für die spätere Installation des ersten Bitfusion Servers notiert.
Vorbereitung der GPU für Passthrough
Um eine Grafikkarte in einem vSphere-Bitfusion-Server zu verwenden, muss das Gerät für den Passthrough-Modus aktiviert werden. Dieser Vorgang ermöglicht den direkten Zugriff auf die GPU durch den Bitfusion-Server unter Umgehung des ESXi-Hypervisors, wodurch eine Leistung erreicht wird, die der Leistung des Grafikprozessors auf einem nativen System entspricht.
Bei Verwendung des Passthrough-Modus ist jede Grafikkarte einer Virtuellen Maschine (VM) des vSphere Bitfusion-Servers dediziert zugeordnet. Es können mehrere physische GPUs im Passthrough-Modus verwendet werden. Alle GPU eines ESXi Hosts können entweder einer Bitfusion-Server Appliance zugeordnet, oder auf mehrere verteilt werden. Der folgende Ablauf muss für alle GPU-Geräte durchgeführt werden, die einem Bitfusion-Server zugeteilt werden sollen.
Im vSphere-Client wählen wir einen ESXi-Host aus, der über Grafikkarten verfügt. Configure > Hardware > PCI Devices > Configure Passthrough.
Im Dialog wird eine oder mehrere GPU für Passthrough ausgewählt. Optional kann ein Hardware Tag definiert werden.
Im Dialog “Edit PCI Device Availability” setzen wir die Checkbox in der Spalte ID bei den ausgewählten Grafikkarten. Danach erscheint die GPU in der Liste der “Passthrough enabled devices”. Der ESXi-Host muss danach neu gestartet werden.
In diesem Host wurden zwei Tesla Karten für Passthrough konfiguriert.
Bereitstellung der ersten Bitfusion Server Appliance
Die Bitfusion Server Appliance wird als OVF Template bereitgestellt und kann bei VMware Downloads bezogen werden (Login erforderlich). Der Bereitstellungsprozess unterscheidet sich für die erste und folgende Bitfusion Server Appliances.
Bereitstellung des OVA im Cluster.
Als Ziel wird ein Host mit physischer GPU ausgewählt, die zuvor für Passthrough aktiviert wurden. Die Bitfusion Server VM wird fortan auf diesem Host bleiben und kann nicht mit vMotion verschoben werden.
Die ersten Schritte sind selbsterklärend und entsprechen allgemein der Bereitstellung einer virtuellen Appliance.
Achtung! Auch wenn der vCenter Username mit administrator@vsphere.local bereits vorgegeben scheint (hellgrau), muss dieser dennoch eingegeben werden.
Für den automatischen Download der Nvidia Treiber ist es notwendig, dass das vCenter eine Verbindung ins Internet aufbauen kann. Bei Installationen in restriktiven Dark-Datacentern darf dieser Haken nicht gesetzt werden und die Pakete müssen später manuell übertragen werden.
Im folgenden Schritt wird die Netzwerkeinstellung des Management-Netzwerks konfiguriert. Die Konfiguration von Adapter 1 (Management) ist obligatorisch. Alle weiteren Adapter (2, 3 und 4) sind für die Bitfusion Client-Server Datenkommunikation und können später konfiguriert werden. Der Bitfusion Server wählt selbst das am besten geeignete Netz für den Datenverkehr aus. Management- und Datennetze sollten im Produktivbetrieb unbedingt getrennt werden.
Hier gibt es eine Diskrepanz in der Benennung der Netze: Während die offizielle Dokumentation von Management und Data spricht, bezeichnen die Produktentwickler diese als Web Network und Management/Data. Das führte bei Telefonkonferenzen und e-mails mit den Entwicklern immer wieder zu Missverständnissen.
Ich werde daher die Adapter funktional beschreiben: Der 1. Adapter ist für die Kommunikation mit vCenter zuständig und der 2. und alle folgenden Adapter werden für die Bitfusion-Client zu Bitfusion-Server Kommunikation verwendet.
Abschluss der Aktion und Übersicht der gewählten Einstellungen.
Appliance anpassen und GPUs bereitstellen
Damit die Appliance zukünftig Arbeitspakete aus dem LAN auf einer GPU berechnen kann, müssen wir ihr Grafikkarten aus dem Host zuordnen, die wir zuvor für Passthrough konfiguriert hatten. Die Bitfusion Server VM muss hierfür ausgeschaltet sein.
In den Einstellungen der Bitfuson VM wählen wir Virtual Hardware > Add new Device > Other Devices > PCI Device.
Im Dropdown können wir die GPU wählen. Falls mehere GPU hinzugefügt werden sollen, so sind die individuellen PCI Adressen der Karten auszuwählen.
CPU und Memory Ressourcen
Auf dedizierten Bitfusion Hosts sollte CPU und Arbeitsspeicher der Bitfusion VM auf das mögliche Maximum gesetzt werden. Hierbei sollte die NUMA Konfiguration der VM, der des Hosts entsprechen.
Werden auf dem Host neben der Bitfusion-Server noch weitere Arbeitslasten oder mehrere Bitfusion Server betrieben, so errechnen sich die minimalen Ressourcen der VM nach folgender Faustregel:
vCPU = Anzahl physischer GPU x 4
RAM = Summe des GPU RAM aller Karten x 1,5 // jedoch Minimum 32 GB
Haben wir beispielsweise zwei GPU mit je 16 GB RAM, so müsste der Bitfusion Appliance mindestens 48 GB RAM zugeteilt werden 1.5 x (16 + 16).
Der konfigurierte Gastarbeitsspeicher der VM muss komplett reserviert werden.
Memory Mapped i/O Size (MIMO)
In der VM muss eine erweiterte Eigenschft konfiguriert werden.
MIMO Size = Summe des GPU RAM -> aufgerundet auf nächste Potenz von 2.
Beispiel: 2 Karten mit je 32 GB RAM: 2x32GB = 64 GB -> nächste Potenz von 2 ist 128 GB.
Die erweiterten Parameter werden in der VM gesetzt unter:
VM > Edit Settings > VM Options > Advanced > Configuration Parameters > Edit Configuration.
pciPassthru.use64bitMMIO = true pciPassthru.64bitMMIOSizeGB = 128
Nach dem Speichern der Einstellungen wird die Bitfusion-Server Appliance gestartet.
Sobald die erste Bitfusion Appliance bereitgestellt, konfiguriert und gestartet wurde, integriert sich das Bitfusion Plugin in den vSphere-Client. Dazu ist es möglicherweise notwendig, sich am vSphere-Client neu anzumelden.
Bereitstellung weiterer Bitfusion Server
Der erste Bitfusion Server stellt das vCenter Plugin bereit, welches danach unter “Menu” sichtbar wird.
Weitere Bitfusion Server Appliances müssen über das Plugin des vSphere Clients bereitgestellt werden. Nur dann bilden sie mit der ersten Appliance einen Cluster. Dazu wählt man in der Ansicht “Hosts & Clusters” einen ESXi Host mit freien GPU Karten aus, wählt im Kontextmenü Bitfusion > Add Bitfusion Server. Der Assistent
Verfügbare GPU im Host werden angezeigt und können dem neuen Bitfusion Server zugeteilt werden. Falls keine Onlineverbindung zum Download der Nvidia Treiber besteht, müssen diese manuell übertragen werden.
Jede weitere GPU Karte wird mit “Add GPU” hinzugefügt. Der Wert für GPU Memory muss ggf. angepasst werden.
Der Vorgang wird wiederholt, bis mindestens drei Bitfusion Server im Cluster verfügbar sind (Quorum).
Bitfusion UI
Nach Installation des ersten Bitfusion Servers integriert sich das Bitfusion-Plugin in den vSphere-Client. Unter Menu > Bitfusion gelangt man in die Bitfusion Einstellungen. Das Menü gliedert sich in Cluster, Servers, Clients, Tokens, Settings und About.
Cluster UI
Gesamtansicht des Bitfusion Clusters mit Bitfusion Servern und Bitfusion Clients, sowie die GPU Buchung im zeitlichen Verlauf.
Servers UI
Liste aller Bitfusion-server im Cluster mit IP Adresse, Anzahl der aktuell gebuchten GPU, Systemstatus und Metriken aller GPU (RAM Buchung und Core Auslastung). Die Auslastung kann in einen Zeitfenster von 5 Minuten, einer Stunde, 24 Stunden und 30 Tagen angezeigt werden.
Im Bild oben sehen wir die Auslastung eines Bitfusion Servers mit zwei physischen GPU (0 und 1). Die Schattierung zeigt die prozentuale Buchung der GPU. Die Anzeige bezieht sich auf das GPU-RAM, nicht auf die GPU Cores.
Die genauere Auslastung der GPU Ressource zeigt eine weitere Kurve.
Clients UI
Alle Bitfusion Clients, die GPU Ressourcen anfordern, oder kürzlich angefordert haben. Dabei spielt es keine Rolle, ob es sich um Container-Pods oder um VMs handelt.
Tokens UI
Registrierte Security Tokens, welche für den Zugriff auf Bitfusion Server benötigt werden. Tokens können über ein Schaltelement (grün) aktiviert oder deaktiviert werden.
Das Token kann neu erstellt, heruntergeladen, editiert (Beschreibung) oder gelöscht werden.
Settings UI
Im Register Settings finen wir die aktuellen Server und Client-Einstellungen. Dazu Healthcheck-Parameter, sowie die Backup und Restore Funktion. Letztere ist beim Upgrade von Bitfusion bedeutsam, da Bitfusion aktuell noch kein rollendes Update erlaubt und so der Cluster komplett neu bereitgestellt werden muss.
Healthcheck Parameter
In der Sektion Healthcheck-Parameter kann konfiguriert werden, welche Parameter im Healthcheck berücksichtigt werden sollen und welche nicht.
Backup/Restore
Die Backup Restore Funktion ist nicht nur für Notfälle wichtig, sonder derzeit auch für den Updateprozess der Bitfusion Server VMs. Dieser ist disruptiv, d.h. alle Server Appliances müssen beendet und neu ausgerollt werden. Das Restore eines zuvor gespeicherten Backups ermöglicht die Übernahme der Einstellungen. Backups können in der GUI heruntergeladen werden.
About UI
Dieser Dialog liefert Informationen zur aktuellen Bitfusion Version und Build-Nr.
Weitere Artikel aus dieser Serie
- Teil 1 : Eine Einführung in Bitfusion
- Teil 2 : Bitfusion Server Setup (dieser Beitrag)
- Teil 3 : Bitfusion aus Kubernetes Pods und TKGS ansprechen.