Tags: Storage, vSphere, Performance
VMware bietet ein so genanntes Fling an, mit dem sich die Performance von Storage messen lässt. Das Tool kann für Datastores die IOPS, Latenzen und CPU-Zyklen pro I/O des ESXi-Storage-Stacks erfassen. Anwender sind nicht auf die vorgegebenen Testreihen festgelegt, sondern können auch eigene erstellen.
Der Storage Performance Tester wurde konzipiert, um Probleme mit der Speicherleistung 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 benutzerdefinierten VM, die Ausführung der (Test) I/O-Workloads und die Analyse der Speicherleistung. Alle Schritte sind in der zentralen Konfigurationsdatei 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.
FIO kann verschiedene I/O-Workloads wie sequentielle Lesevorgänge oder zufällige Schreiboperationen (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 bereitzustellen.
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 paravirtualisierten SCSI-Controller von je 2 GB konfiguriert.
Die Gast-VM wird für jeden angegebenen Datastore des Ziel-Hosts bereitgestellt. Weist man also beim Programmaufruf 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
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 Konfigurationsdatei config.ini. Sie definiert Konfigurationen 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.
Alternativ kann man aber auch seine eigenen fio-Skripte und Konfigurationsdateien 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 Konfigurationsdatei die drei Schlüsselwörter: [iops *] [latency *] und [delay].
Die Testergebnisse 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.
Die Testergebnisse sehen aber in etwa so aus wie in folgender Abbildung von VMware:
Die Software kann kostenlos von der VMware-Website heruntergeladen werden.
Täglich Know-how für IT-Pros mit unserem Newsletter
Seine Themenschwerpunkte sind Virtualisierung und Cloud Computing, speziell VMware, Amazon Web Services, Google Cloud und Microsoft Azure. Thomas ist zertifizierter VMware Professional, Advanced Professional und wurde von VMware in den Jahren 2016, 2017, 2018, 2019 und 2020 mit dem Blogger-Status vExpert ausgezeichnet.
Thomas ist außerdem zertifizierter AWS Solutions Architect, Sysops Engineer und Devops Engineer sowie Microsoft Certified Azure Administrator.
Thomas führt aktuell jeden zweiten Montag einen 4-tägigen Grundlagenkurs in Cloud Computing mit AWS via Zoom-Meeting durch. Weitere Informationen und Anmeldung über sein AWS-Blog.
Verwandte Beiträge
- Virtuelle Disk-Controller für VMs auf VMware ESXi: LSI-Logic SAS oder VMware Paravirtual?
- Performance von VMware vSAN testen mit Hyper-Converged Infrastructure Benchmark (HCIBench)
- Leistung von VMware vSAN mit dem kostenlosen Performance Monitor auswerten
- Integrität und Leistung von VMware vSAN mit vRealize Operations Manager prüfen
- Performance und Health von VMware vSAN mit Bordmitteln überwachen
Weitere Links
1 Kommentar
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