Leistung von vSphere-Speicher überprüfen mit VMware Storage Performance Tester

    Storage Performance TesterVMware bietet ein so genanntes Fling an, mit dem sich die Perfor­mance von Storage messen lässt. Das Tool kann für Datastores die IOPS, Latenzen und CPU-Zyklen pro I/O des ESXi-Storage-Stacks er­fas­sen. Anwender sind nicht auf die vor­ge­gebenen Test­reihen fest­gelegt, sondern können auch eigene er­stellen.

    Der Storage Performance Tester wurde konzipiert, um Probleme mit der Speicher­leistung zu identifizieren und zu beheben. Er kann aber auch verwendet werden, um die maximale Leistung neuer Speicher-Hardware, von Treibern oder Setups von vSphere zu überprüfen.

    Das kostenlose Tool automatisiert sämtliche Schritte, die zur Messung der Performance notwendig sind. Dazu zählen die Bereitstellung einer benutzer­definierten VM, die Ausführung der (Test) I/O-Workloads und die Analyse der Speicherleistung. Alle Schritte sind in der zentralen Konfigurations­datei config.ini anpassbar.

    Die gemessene Leistung wird durch verschiedene grafische Diagramme über einen Web-Server angezeigt. Der VMware Performance Tester verwendet das Drittanbieter-Werkzeug Flexible IO Tester Tool (FIO), ein Open-Source-Tool für synthetische Benchmarks, das ursprünglich von Jens Axboe entwickelt wurde.

    Komponenten von VMwares Storage Performance Tester

    FIO kann verschiedene I/O-Workloads wie sequentielle Lesevorgänge oder zufällige Schreib­operationen (synchron oder asynchron) auf Basis der vom Benutzer bereitgestellten Optionen generieren.

    Ferner enthält der Storage Performance Tester VMwares ovftool. Dieses verwendet er, um die Workload-VMs automatisiert auf dem ESXi-Host bereit­zustellen.

    Die erzeugten Test-VMs sind so konzipiert, dass sie sehr I/O-intensive Workloads generieren und werden mit Linux ubuntuMiniv1 4.15.0-109-generic -Kernel, 8 vCPUs, 8 GB RAM und vier virtuellen SCSI-Disks (VMDK) am para­virtualisierten SCSI-Controller von je 2 GB konfiguriert.

    Die Gast-VM wird für jeden angegebenen Datastore des Ziel-Hosts bereitgestellt. Weist man also beim Programm­aufruf vier Datenspeicher für den angegebenen Host zu, stellt das Tool vier VMs bereit und startet die FIO-Tasks in jeder VM.

    Einrichten von Storage Performance Tester

    Die Voraussetzungen für das Tool sind überschaubar. Für die eigentliche Engine braucht man lediglich eine Linux-VM (der Kernel darf nicht neuer als 2.6.31 sein) mit Ubuntu/Debian bzw. CentOS/Fedora. Auf dieser müssen die Software-Pakete fio 3.2, ovftool, python 3 und sshpass installiert sein.

    Nach dem Herunterladen entpackt man die ZIP-Datei in den Ordner sperf auf der Ziel-VM.

    Dann installiert man sshpass

    sudo apt install sshpass

    oder unter CentOs/Fedora mit

    yum install sshpass

    Zudem kann man wie folgt noch prüfen, ob FIO bereits vorhanden ist:

    fio --version

    Andernfalls installiert man es unter Ubuntu mit

    sudo apt-get install fio

    Anschließend versichert man sich, ob das ovftool da ist und ob es funktioniert:

    /ovftool/ovftool –version

    Vor dem Start des Performance-Testers sollte man die Verfügbarkeit aller Komponenten prüfen.

    Arbeiten mit sperf

    Im sperf-Ordner findet sich nach dem Entpacken das in Python geschriebene Tool. Sperf.py benötigt Benutzer, um das root-Passwort des Hosts einzugeben. Danach führt es den Test automatisch durch und liefert das Ergebnis per Voreinstellung nach zirka 20 Minuten.

    Man kann einen oder mehrere Datastores testen:

    sperf.py HOSTNAME -d datastore1 -d datastore2 -d datastore3 -d datastore4

    In diesen Fall werden, wie oben erwähnt, entsprechend viele Test-VMs erzeugt. Bei Bedarf kann der Nutzer eine eigene Konfiguration anhängen:

    sperf.py HOST -d datastore1 -i config_private.ini

    Standardmäßig erfolgt das Anlegen und Steuern der Test-Workloads über die mitgelieferte Konfigurations­datei config.ini. Sie definiert Konfigu­rationen für 4k-, 8k- und 64k-Workloads mit zufälligem Lesen, Lesen, Schreiben, zufälligem Schreiben sowie IOPS-Workloads (512, 4k, 8k) * (Lesen, Schreiben) und Latenz-Workloads.

    Abschnitte der mitgelieferten Konfigurationsdatei im INI-Format

    Alternativ kann man aber auch seine eigenen fio-Skripte und Konfigu­rations­dateien schreiben, diese übergibt man mit dem Parameter --configfile an das Tool. Auf diese Weise lassen sich Workloads einrichten, die am besten die eignen Use-Case abbilden. Wie in der Abbildung zu sehen, unterstützt die Konfigurations­datei die drei Schlüssel­wörter: [iops *] [latency *] und [delay].

    Die Tester­gebnisse landen in der output.html und lassen sich über einen HTTP-Server anzeigen. Wer keinen Web-Server in seiner Umgebung hat, kann als kurzfristigen Workaround aber auch Folgendes eingeben:

    cd results && nohup ./sperfhttp.sh &

    Das Script startet einen einfachen HTTP-Dienst auf Port 8000. Dann kann man die Testergebnisse ebenfalls über  http://<IP-Linux-Engine-Host>:8000 abrufen.

    Ich konnte das Setup für diesen Beitrag allerdings nicht komplett durchspielen und die konfigurierten Tests durchführen, weil mir keine passende Speicher-Hardware (FC- oder iSCSI-SAN) zur Verfügung stand.

    Aufruf des Python-Scripts, das in diesem Beispiel jedoch zu einer Fehlermeldung führt.

    Die Testergebnisse sehen aber in etwa so aus wie in folgender Abbildung von VMware:

    Der Storage Performance Tester präsentiert seine Ergebnisse über eine Ausgabe im HTML-Format.

    Die Software kann kostenlos von der VMware-Website heruntergeladen werden.

    Täglich Know-how für IT-Pros mit unserem Newsletter

    Wir ver­wenden Ihre Mail-Adresse nur für den Ver­sand der News­letter.
    Es erfolgt keine per­sonen­be­zogene Auswertung.

    1 Kommentar

    Karl Wester-Ebb... sagt:
    11. Februar 2021 - 11:49

    Hallo Thomas,
    danke für deinen hilfreichen Artikel mich wundert, dass die VM den paravirtuellen SCSI Adapter nutzt anstelle von NvME. Nach eigenen Messungen und auch von Dienstleistern wie Thomas Krenn bietet dieser, nicht nur, aber vor allem bei modernen Storages mit Flash Cache / oder Full Flash deutlich bessere Performance.
    Ich kann nur vermuten, dass dieses Tool sich somit selbst ausbremst.

    Wäre es daher nicht ratsam den Controller zu tauschen?
    https://www.thomas-krenn.com/en/wiki/VMware_Performance_Comparison_SCSI_...

    Beste Grüße
    Karl