Einen Geschwindigkeitsvergleich zwischen ReFS und NTFS hatte ich bereits schon einmal durchgeführt.
- Exchange 2016: Storage Performance mit Jetstress testen (Vergleich NTFS zu ReFS) Teil 1
- Exchange 2016: Storage Performance mit Jetstress testen (Vergleich NTFS zu ReFS) Teil 2
- Exchange 2016: Storage Performance mit Jetstress testen (Vergleich NTFS zu ReFS) Teil 3
Den Test habe ich allerdings im Jahr 2015 mit Windows Server 2012 R2 durchgeführt. Daher ist ein Update nötig…
Vorwort
Nun ist es an der Zeit den Test mit Windows Server 2016 zu wiederholen. Das Testsetup hat sich gegenüber 2015 etwas geändert. Für den Vergleich zwischen ReFS und NTFS habe ich eine Windows Server 2016 VM auf ESXi 6.0 U2 Server installiert.
Der ESXi Server verfügt über 2 x Xeon E5-2690v4 CPUs und 256 GB RAM. Die Windows Server 2016 VM bekommt davon 32 GB RAM, 8 vCPUs und 2 x 200 GB Storage für die Tests. Der ESXi Server greift via 2 x 16 GBit FibreChannel auf ein DellEMC XtremIO AllFlash Array (1 X-Brick) zu. Die beiden 200 GB Disks der VM liegen auf der gleichen XtremIO LUN.
ESXi ist auf die XtremIO optimiert worden und verfügt über die aktuelle PowerPath Version. Alle aktuellen Firmwares, Treiber und Patches aller beteiligten Systeme sind installiert.
Da es sich in diesem Fall um ein neu implementiertes System handelt, muss das Setup eh getestet werden, daher kann ich in diesem Fall auch direkt den aktuellen Vergleich zwischen ReFS und NTFS durchführen. Eine jungfräuliche Umgebung, auf der noch keine anderen Workloads rumorgeln, hat man ja nicht alle Tage.
In diesem Fall heißt es also: Eine VM, ein Array, zwei Dateisysteme, zeigt was ihr könnt!
Vergleich mit IOMeter
Zunächst einmal ein Test mit IOMeter gegen eine Disk die kein Dateisystem enthält, die Disk von der XtremIO LUN ist also nur an die Windows VM angehangen, aber nicht formatiert. Dies gilt als Referenzwert für den Geschwindigkeitsvergleich zwischen ReFS und NTFS.
Disk ohne Dateisystem
IOMeter meldet etwas über 140.000 IOPS gegen die unformatierte Disk:
Die XtremIO GUI liefert ähnliche Werte:
Getestet wurde mit 4K Blöcken, 75 % Lesen und 25 % Schreiben.
NTFS
Die gleiche IOMeter Konfiguration nun gegen eine mit dem NTFS Dateisystem formatierte Disk. Hier sind es 127.000 IOPS:
Die XtremIO GUI meldet wieder ähnliche Werte. Hier sieht man ganz gut die IOMeter Konfiguration, exakt 25 % Schreiben und 75 % Lesen:
ReFS (Ohne FileIntegrity)
Wieder die gleiche IOMeter Konfiguration gegen eine mit ReFS formatierte Disk. Das ReFS Feature “FileIntegrity” ist nicht aktiv. IOMeter meldet 116.000 IOPS:
Zum Vergleich wieder die XtremIO GUI mit ähnlichen Werten:
ReFS (Mit FileIntegrity)
Wieder die gleiche Konfiguration, aber diesmal mit ReFS und FileIntegrity. IOMeter meldet 45.000 IOPS:
Hier passiert jetzt etwas interessantes aus Storage Sicht:
Es kommen am Storage keine 4K IOs mehr an, sondern 16K und 64K IOs. Ohne FileIntegrity waren hier nur 4K IOs zu sehen. IOMeter ist unverändert auf 75% Lesen und 25 % Schreiben eingestellt, am Storage sind nun aber bei den 64K IOs 50% Write IOs sichtbar.
Die Ergebnisse als Tabelle
Zur besseren Übersicht hier noch einmal die Ergebnisse als Tabelle:
ohne Dateisystem | NTFS | ReFS (Ohne FileIntegrity) | ReFS (Mit FileIntegrity) | |
IOMeter | 142420 | 127818 | 116540 | 45503 |
XtremIO | 144674 | 129144 | 118184 | 59526 |
Fazit
Mit NTFS als Dateisystem können pro Sekunde etwas über 127000 IOs durch das Storage verarbeitet werden. Mit ReFS ohne FileIntegrity Feature sind es gut 10000 IOs weniger. NTFS hat also im reinen Durchsatzvergleich die Nase vorn. Bitter wird es mit eingeschaltetem FileIntegrity Feature, dann werden nur noch 45000 IOs verarbeitet. Dass in diesem Fall der IO Durchsatz so massiv reduziert wird, liegt an der Größe der IOs die zum Storage gesendet werden, anstatt 4K sind die IOs nun 16K und 64K groß.
Im zweiten Teil teste ich die beiden Dateisysteme dann noch einmal mit Jetstress. Mal sehen ob sich die Werte dort widerspiegeln. Das NTFS und das ReFS Laufwerk waren übrigens in Hinblick auf Jetstress bereits mit 64K Zuordnungseinheiten (Block Size) formatiert, ich werde den Test noch einmal mit 4K Zuordnungseinheiten wiederholen und diese Tabelle dann ergänzen.
Servus Frank,
wie sieht das unter 2019 aus?
Wir stehen aktuell vor dieser Entscheidung.
Grüße
Daniel
Hi Franky,
mich würde die Raidconfig im Testscenario noch interessieren. Die Hardwarekonfiguration kann ja schon einen erheblichen Teil ausmachen.
Gruß
Carsten
Hi Carsten,
Beim Storage Array handelt es sich um eine Dell/EMC XtremIO, die XtremIO verwendet kein klassisches RAID, sondern eine eigene Implementierung (XDP). Details finden sich hier:
https://www.emc.com/collateral/white-paper/h13036-wp-xtremio-data-protection.pdf
Gruß,
Frank
Hallo!
Müsste man beim letzten Test nicht die 16k Blöcke durch4 teilen und die 64k durch 16, damit man auf die gleiche Datenmenge wie bei 4k Blöcken kommt?
35556 16k Blöcke pro Sekunde sollten doch der Datenmenge von 142224 4k Blöcken entsprechen, oder habe ich da etwas komplett falsch verstanden?