Performance von VMware vSAN testen mit Hyper-Converged Infrastructure Benchmark (HCIBench)

    HCIBench LogoHCIBench soll die maxi­mal mögliche vSAN-Leistung anhand eines synthe­tischen Bench­marks ermitteln. Das kosten­lose Tool stellt die Test-VMs bereit, koordiniert die Workload-Läufe, aggregiert die Test­ergeb­nisse der Leistungs­analyse und die erfasst die für die Fehler­behebung erforderlichen Daten.

    Bei dieser Software handelt es sich im Wesentlichen um einen Wrapper für die bewährten Open-Source-Benchmark-Tools Oracle Vdbench und Fio, mit denen das Testen in einem HCI-Cluster recht einfach automatisiert werden kann.

    Was macht HCIBench?

    Die Leistungs­bewertung ist ein wichtiger Bestandteil bei der Prüfung von Speicher­lösungen. Leider ist es oft schwierig bis unmöglich, direkt vergleichbare Leistungs­ergebnisse aus öffentlich zugänglichen Informationen zu erhalten. Es gibt unendlich viele mögliche Testszenarien, und viele Anbieter raten aus Marketing- und Wettbewerbs­gründen vom Publizieren der Benchmarks ab.

    IT-Admins müssen daher in der Regel eigene Tests durchführen und die Ergebnisse interpretieren. Allerdings stellen hyper­konvergente Speicher­lösungen wie VMware vSAN bei der Evaluierung gänzlich andere Anforderungen als externe Speicher-Arrays.

    In einer hyper­konvergenten Architektur soll ja jeder Server möglichst viele Anwendungs-VMs unterstützen und gleichzeitig zum Speicher-Pool beitragen. Um einen ausgelasteten Cluster zu simulieren, muss man daher Dutzende Test-VMs modellieren, von denen jede auf mehrere gespeicherte VMDKs zugreift.

    Leider unterstützen gängige Tools zum Testen der Speicher­leistung ein solches Setup meist nicht direkt. Um ein ausgelastetes Produktions-Cluster nachzubilden, ist viel Aufwand erforderlich, etwa um die Lastgenerierung, Überwachung und Datenerfassung nachträglich zu automatisieren. Diese Schritte verschlingen meist nicht nur mehr Zeit und Aufwand als die eigentlichen Tests, sie können sogar Fehler in den Prozess einbringen.

    Um dieser Situation entgegen­zuwirken, hat VMware für Speicher­leistungstests das Automatisierungs-Tool HCIBench auf Basis von Vdbench und Fio entwickelt. Benutzer geben einfach die Test­parameter an, die sie ausführen möchten, und HCIBench weist diese Workload-Generatoren an, was auf jedem Cluster-Knoten zu tun ist.

    Komponenten von HCIBench

    Auch HCIBench wird in Form einer Open Virtualization Appliance (OVA) ausgeliefert. Diese Controller-VM besteht aus der Ruby vSphere Console (RVC), einem Graphite- und einem Grafana-Container, dem RVC-basierten vSAN Observer, einem Automation-Bundle, einer Reihe von Konfigurations­dateien, dem Fio-Binary und einem Linux-Test-VM-Template.

    Die Komponenten sind auf der Controller-VM bereits installiert, wobei RVC den Kern repräsentiert, der die Gast-VMs erzeugt, Vdbench- oder Fio-Läufe startet, die Ergebnisse erfasst und vSAN mithilfe von vSAN-Observer überwacht.

    Aufbau und Funktionsprinzip von HCIBench

    Das Automatisierungs­paket liest benutzer­definierte Konfigurations­informationen zur Testumgebung und zum Workload-Profil ein und kommuniziert dann bei Bedarf mit RVC für folgende Aufgaben:

    • Herstellen einer Verbindung zur vSphere-Umgebung. Das Tool selbst kann in einer separaten vSphere-Installation bereitgestellt werden, muss jedoch Zugriff auf den getesteten Ziel-Cluster erhalten.
    • Bereitstellen von Linux-Test-VMs im Ziel-Cluster auf Basis der Benutzer­eingaben (Anzahl der Gast-VMs und virtuellen Festplatten pro VM).
    • Optional kann der Nutzer  jedes virtuelle Laufwerk vorbereiten, um den Storage zu initialisieren, ähnlich wie bei Thick Provisioning Eager Zero oder beim sequentiellen Schreiben in den Speicher, um vor dem Benchmarking die so genannte First-Write-Penalty zu vermeiden.
    • Übertragen der Parameterdatei auf jede Gast-VM. Sie enthält die Ziel-Workload- und Laufzeit­spezifikation.
    • Starten des vSAN-Observers vor dem Testen und Generieren der vSAN-Statistiken nach Abschluss des Tests.
    • Starten der Vdbench- oder Fio-Instanzen für jede virtuelle Festplatte auf jeder Gast-VM und Ausführen der Workloads für die festgelegte Dauer.

    Was die Anforderungen betrifft, benötigt die Photon-basierte Controller-VM 8 vCPUs, 8 GB RAM und eine 216 GB Disk (2,5 GB Thin-provsioned). Jede Photon-basierte Guest VM veranschlagt 4 vCPUs, 8GB RAM und eine 16 GB Disk.

    Installation

    Die Controller-VM verfügt über zwei virtuelle Netzwerk­karten. Hier ordnet man das Management-Netzwerk dem Netzwerk zu, über das man auf HCIBench zugreift. Wenn das für Gast-VMs vorbereitete Netzwerk nicht über den DHCP-Dienst verfügt, kann man das VM-Netzwerk demselben Netzwerk zuweisen. Andernfalls ignoriert man das VM-Netzwerk.

    Zuweisen von VM- und Management-Netzwerk zu den vNICs beim OVA-Import

    Auf der Customize template-Seite legt man dann die gewünschte IP-Konfiguration und das gewünschte root-Passwort fest.

    IP-Konfiguration und root-Passwort beim OVA-Import festlegen

    Nach erfolgreicher Bereitstellung des OVA kann man das HCIBench-Webinterface unter https://<IP-HCIBench>:8443 aufrufen, um die Konfiguration und anschließend den Test zu starten. Dazu muss man der Benutzer root und das eben vergebene Passwort zur Authentifizierung verwenden.

    Für die initiale Konfiguration sind auf der Seite Configuration die vier Bereiche vSphere environment, Benchmarking tool, Guest vm configuration und Testing configuration zuständig.

    Erstkonfiguration von HCIBench über das Web-Interface nach dem Start der Appliance.

    Bei vSphere environment sind alle nicht als Optional gekenn­zeichneten Felder auszufüllen, einschließlich der vCenter-IP-Adresse, der vCenter-Credentials, des Namens des Datencenters, des Namens des Ziel-Clusters oder des Datastores.

    Im Abschnitt Benchmark configuration richtet man Fio oder Vdbench als Performance-Workload-Generator ein. Bei Vdbench muss man die Vdbench-Zip-Datei von Oracle herunter- und auf HCIBench hochladen, wozu man zunächst auf Download Vdbench klickt. Nach erfolgreichem Download lädt man die Zip-Datei auf den Sever hoch, der diese automatisch unter /opt/output/vdbench-source ablegt.

    Dieser Schritt ist eine einmalige Aktion, somit ist der abgebildete Dialog ist nur sichtbar, solange die Vdbench-Datei noch nicht erfolgreich hochgeladen wurde.

    Der Abschnitt Guest VM-Configuration erwartet als einzigen Parameter die Anzahl der für den Test gewünschten Gast-VMs. Bei Angabe mehrerer Datastores werden diese VMs gleichmäßig in den Datenspeichern bereitgestellt. Die übrigen Parameter sind optional und in der guten Dokumentation ausreichend beschrieben.

    Im Abschnitt Testing Configuration geht es um die Konfiguration des eigentlichen Test-Szenarios. Hier legt man zunächst bei Testname einen Namen fest.

    Bei Workload-Parameter File lässt sich eine zuvor in die Controller-VM hochgeladene Parameter­datei für Vdbench oder Fio per Dropdown-Liste auswählen.

    Prinzipiell gibt es also immer zwei Möglichkeiten, die Parameter­datei zur Dropdown-Liste hinzuzufügen: Entweder der Nutzer generiert selbst eine, indem er hier auf Hinzufügen klickt. Nach dem jeweiligen Klick auf Submit muss man die Dropdown-Liste mit Refresh aktualisieren.

    Die zweite Möglichkeit besteht, wie oben erwähnt, darin, eine selbstdefinierte Parameterdatei hochzuladen. Auch hier klickt man nach dem erfolgreichen Upload auf Refreh, um die hochgeladene Datei in der Dropdown-Liste anzuzeigen. Ausreichende Informationen zum Vdbench- oder Fio-Parameter­datei­format finden sich im Fio-Benutzerhandbuch.

    Test starten

    Nach dem Sichern der Testkonfiguration kann der gewünschte Benchmark gestartet werden. Da das Testen in der Regel sehr zeitaufwändig ist, kann der Nutzer die Leistung von den in Grafana angezeigten Gast-VMs live beobachten, indem er auf Here to monitor klickt. Das Diagramm ist nur verfügbar, während der Test ausgeführt wird.

    Die Leistungsdaten lassen sich während des Testlaufs live anzeigen.

    Nach Abschluss des Vdbench- oder Fio-Tests werden die Testergebnisse von allen Gast-VMs gesammelt. Die Ergebnisse kann man unter https://<IP-HCIBench>/results im Browser abrufen oder alternativ direkt auf die Registerkarte Results klicken.

    Jedes der Unterverzeichnisse unter /opt/output/results/<TestName> verwendet den Namen der benutzer­definierten Parameterdatei und enthält alle ursprünglichen Ergebnisse, die von jeder Vdbench- oder Fio-Instanz sowie von vSAN Observer-Daten erstellt wurden.

    Das aggregierte Ergebnis eines Testlaufs wird in der Textdatei mit dem Namen "<DIR_NAME>-res.txt" abgelegt. Sie enthält den Namen des Datastores und vier Statistiken: number of VMs used for testing, IOPS, throughput, latency details und host resource consumption. Wenn vSAN aktiviert ist, wird auch die von vSAN verwendete CPU berechnet.

    Zusätzlich zu den Textdateien gibt es ein weiteres Unterverzeichnis namens "~iotest-hcibench/fio-<VM#>vm". Dies ist das von vSAN-Observer generierte Statistikverzeichnis. Außerdem sollten folgende Dateien existieren: die Datei HCIBench-VERSION-logs.tar.gz enthält die HCIBench-Vorvalidierungs- und Testprotokolle,  hcibench.cfg beherbergt die Konfigurations­parameter und in vdbench.cfg / fio.cfg stecken die Parameterprofile von Vdbench bzw. Fio.

    Ergebnisdateien nach einem Testlauf von HCIBench

    Die Datei performance_diag_result.html schließlich wird nur generiert, wenn man die Tests mit vSAN 6.6U1 oder höher und HCIBench 1.6.6 oder höher bei aktivem CEIP (Customer Experience Improvement Program) sowie aktivierten vSAN Performance Services durchführt.

    In diesem Fall werden bei jedem HCIBench-Lauf die Testergebnisse sowie die Konfiguration an VMware Cloud gesendet, um den Benutzer bei der Analyse potenzieller Probleme zu unterstützen. Über den in dieser Datei enthaltenen Hyperlink können Benutzer auf die jeweilige vCenter-Seite und den KB-Artikel zu potenziellen Problemen zugreifen.VMware vSAN testen mit Hyper-Converged Infrastructure Benchmark (HCIBench).

    Keine Kommentare