ReFS-Clustergröße für Veeam Backup & Replication 64 KB oder 4 KB?

ReFS ab v3.1 unterstützt bekanntlich zwei verschiedene Clustergrößen: 4 KB und 64 KB. Welches nimmt man für ein B&R Repository?

tl;dr: 64KB für ReFS als Veeam-Repository

Aber warum?

Unter anderem Microsoft hat 2019 in einem Technet-Artikel einige Empfehlungen zur Clustergröße für ReFS und NTFS veröffentlicht. Die Standard-Clustergröße beider Dateisysteme ist 4K, was bis heute die Vorgabe ist, wenn man ein neues Volume formatiert. Der Artikel enthält aber auch eine detaillierte Erklärung, warum man eine bessere Performance mit 64K großen Zuordnungseinheiten erhält, wenn man große Dateien ließt oder schreibt.

64-KB-Cluster sind grundsätzlich immer dann sinnvoll, wenn man mit großen, sequentiellen E/A-Vorgängen (auf HDDs) arbeitet. Viel weniger Verwaltungsaufwand bei der Adressierung, mehr Payload und damit höherer Durchsatz bei deutlich weniger Last (etwa ein sechzehntel). Sicherungen und Wiederherstellungen erfolgen naturgemäß in aller Regel sequentiell, daher sind Veeam-Blöcke schon immer größer gewesen, nämlich 1Mbyte.

Insbesondere die „brutto“ Read/Write-Leistung unterscheidet sich erheblich, wenn dasselbe Volume auf derselben Hardware mit einer Clustergröße von 64 KB statt mit 4 KB formatiert wird. Eine bis zu vierfachen Steigerung der Netto-Geschwindigkeit von Merge-Vorgängen (Inkremental-Forever, Synthetic-Fulls …) ist üblich. Beide Vorgänge sind dank der Block-Cloning-API (ReFS-only!) immer noch erheblich schneller als „normales“ i/o, aber der Unterschied ist gewaltig. Die reine Backup-Schreibleistung hängt meist von der Quelle ab, daher fällt der gefühlte Unterschied hier ncht so groß aus.

Nachteile?

Ein Nachteil ist der zusätzliche Speicherplatzverbrauch. Dier beträgt, aus Erfahrung, etwa 5–10% der Dateigröße (nicht Volumengröße). Der Grund dafür ist, dass von Veeam erstellte Blöcke zunächst eine feste Größe von 1MB haben. In den allermeisten Veeam-Jobs ist aber standardmäßig die Komprimierung aktiv, die „im Durchschnitt“ die Größe nachträglich um etwa etwa 50% reduziert. Je nach Quelldaten fällt das natürlich leicht unterschiedlich aus, was in variabler „Verwendung“ von Cluster-„Rändern“ mündet.

Wir halten den Preis von <10% Speicherplatz für die Geschwindigkeits-Vervielfachung für hinnehmbar und empfehlen daher ebenfalls die 64KB Blockgröße.

HPE Alletra / Nimble Storage software update „Precheck Fail“

Manchmal schlagen Firmware-Updates auf Alletra 5000 Storages (früher Nimble AF und HF) fehl. Die Fehlermeldung dazu lautet im GUI und an der Shell wenig hilfreich:

One of the HPE Nimble Storage services has become unreachable. If this occurred during a failover or planned outage, wait a minute and then refresh the GUI. This may also occur during security certificate update for group or array name changes or management ip and discovery ip changes. Wait a minute and then refresh the GUI. In some cases, you may also need to clear browser cache. If the service does not become reachable in a few minutes, contact HPE Nimble Storage Support.

Lösung

Es sieht so aus, als ob die Boot-Devices auf den aktiven (!) Controllern manchmal eine Zeitüberschreitung veraursachen. Das verursachte dann den Dienstfehler „Storage services has become unreachable“.

Dies kann man in den allermeisten Fällen durch einen Neustart des Controllers beheben – also durch einen einfachen Failover. Normalerweise kann man das im Web-GUI mit dem Button „Make active“ tun, was in diesem Fall aber ebenfalls nicht funktioniert.

Es hilft aber den Failover auf den anderen Controller an der SSH-Shell zu erzwingen:

failover --array <ARRAYNAME> --force

Und nach wenigen Minuten ist der Failover fertig, der Controller frisch neu gebootet und das Update läuft ohne Probleme durch.

VMware Speicherrichtlinie neu anwenden – Ungültige Konfiguration der virtuellen Maschine.

Problem:

Man hat frisch eine Storage Policy konfiguriert und auf eine VM angewendet. Es wurden allerdings nicht alle Einstellungen sofort übernommen (z.B. die NimbleStorage AppSync Konfiguration).
Nach dem Korrigieren dieser, möchte man die Richtlinie neu anwenden. VMware zeigt einem jedoch den Fehler:

Ungültige Konfiguration der virtuellen Maschine.

Lösung:

Die VM hat vermutlich noch einen Snapshot. Nach dem entfernen klappt das erneute Anwenden der Richtlinien sofort.

HPE NimbleStorage Snapshots von VMware VVols mit VSS AppSync

Problem:

Man hat gerade ein frisches Nimble Array in Betrieb genommen, iSCSI konfiguriert, einen VVol Datastore erstellt und VMs dorthin migriert.
Nun möchte man z.B. von einem Windows Server 2012 R2 mit installiertem SQL-Server 2014 Snapshots mit VSS (im Nimble-Jargon: „Application Synchronization“) konfigurieren.
Dazu gibt es von HPE auch einen brauchbaren Guide allerdings scheitert es in dem Moment in dem man im Nimble Plugin für den vSphere Client AppSync für die Maschine aktivieren möchte:
Der vSphere Client braucht einen Moment und zeigt einem dann den Fehler:

Ein allgemeiner Systemfehler ist aufgetreten: java.lang.IllegalStateException: Could not find guest iqn to add to initiator group

Lösung:

Die VM muss über das iSCSI-Netz mit der Nimble reden können. Da wir in unserem Fall ein Separates VLAN für unser Storage-Netz angelegt haben, empfiehlt HPE eine VM-Portgruppe auf dem „Storage-vSwitch“ hinzuzufügen und der Maschine eine zusätzliche vNIC in dieser Portgruppe hinzuzufügen. (Im Windows kann man dort dann auch alle Elemente außer TCP/IPv4 für diese Netzwerkkarte ausschalten).

Der Guide besagt außerdem bei der Installation des Nimble Windows Toolkits (NWT), für VMware/VVol umgebungen wird MPIO auf dem ESXi geregelt, daher solle man die „Nimble DSM for MPIO“ (und somit auch „Nimble Connection Manager for iSCSI“) Option abwählen.
Leider gibt es derzeit (getestet mit NimbleOS 5.0.5.0-585753-opt) einen (mehr oder weniger bekannten) Bug im AppSync, welcher dafür sorgt, das derzeit *immer* der Nimble Connection Manager (NCM) benötigt wird.

Daher:

  1. Portgruppe auf dem iSCSI vSwitch hinzufügen
  2. der VM eine Netzwerkkarte in dieser Portgruppe hinzufügen
  3. Netzwerkkarte in Windows konfigurieren (nur TCP/IPv4 aktivieren, feste IP-Adresse vergeben)
  4. das Windows Feature „Multipath-I/O“ (Multipfad-E/A) auf der Maschine hinzufügen
  5. das NWT-Setup erneut ausführen und den NCM nachinstallieren. Das Setup behauptet dann, es wäre noch ein Neustart erforderlich, das AppSync funktioniert aber auch ohne selbigen.
  6. Dann AppSync erneut über das vSphere Client Nimble Plugin aktivieren. Dieses mal ohne Fehlermeldung