Pernix FVP für Storage und VMs leistet erhebliche Beschleunigung für Storage und VMs in klassischen vSphere Clustern. Durch Verwendung von RAM oder Flash Speicher können Latenzen drastisch reduziert und IO erheblich verbessert werden. Dabei können VMs entweder im Write-Through Modus (Lesecache), oder im Write-Back Modus (Lese- und Schreibcache) betrieben werden. Bei letzterem werden Write-IO im Cache und auf einem oder mehreren weiteren Hosts (Peers) gehalten. Die VM kann bereits fortfahren, noch ehe der Block auf den Datastore geschrieben wurde. Storage Latenzen werden somit abgefangen und die Daten zu einem späteren Zeitpunkt geschrieben.
Cave Backup!
Genau in diesem cleveren Prinzip liegt jedoch ein potenzieller Fallstrick beim Backup. Befindet sich eine VM im WriteBack Modus und Veeam Backup erzeugt darauf einen Snapshot zur Sicherung, so ist die Konsistenz des Snapshots nicht gewährleistet. D.h. es gibt unter Umständen noch ausstehende Writes auf den Datastore, die dann im Backup fehlen und dieses im schlimmsten Fall korrupt werden lassen.
Es ist daher wichtig, unmittelbar vor einem Backup die VMs vom Modus Write-Back (WB) auf Write-Through (WT) zu überführen. D.h. der Schreibcache wird vollständig auf den Datastore geschrieben und nur Leseanfragen werden zwischengespeichert. Damit dies schlank abläuft und nur die vom aktuellen Backupjob betroffenen VMs in den WT Modus gesetzt werden, hat PernixData ein Pre- und Post-Skript für Veeam-Backup bereitgestellt: . An dieser Stelle nochmals Danke an Patrick Schulz (vTricks) von Pernixdata für die Unterstützung.
Voraussetzungen
- Installierter FVP Cluster
- Benutzerkonto des Pernix Management Servers bekannt
- Pernix PowerShell Modul (prnxcli) auf dem Veeam Server installiert
- Powershell Version >3
Setup auf Veeam Server
Mit Veeam Server ist der Hauptserver gemeint, welcher die Jobs verwaltet. Auf diesem wird zunächst das Pernix Powershell Modul installiert.Dazu startet man das Setup des Management Servers und wählt Custom-Setup. Der Management Server wird abgewählt, da wir nur die CLI Tools installieren möchten.
Wichtig, ist auch hier auf die aktuelle Version zu achten! Ich hatte zunächst Probleme mit dem Skript, da auf meinem Veeam-Server eine ältere Version der CLI-Tools installiert war. Also immer bei Update des Management Servers auch an die Powershell Module auf dem Veeam Server denken.
Für das Skript wird ein Verzeichnis C:\veeamprnx erstellt und kopiert das Powershell-Skript backup-veeam.ps1 dort hinein. Im Skript müssen drei Parameter editiert werden:
$fvp_server = "FVP_SERVER_NAME" $vcenter = "VCENTER_NAME" $username = "domain\logon"
Username ist das Konto mit welchem der Pernix Management Server eingerichtet wurde.
Damit die Zugangsdaten nicht im Klartext im Skript stehen, wird ein verschlüsseltes Passwortfile fvp_enc_pass.txt generiert, welches ebenfalls im Ordner C:\veeamprnx abgelegt werden muss.
Passwordfile generieren
Auf dem Veeam-Server eine Powershell Konsole starten und ins Verzeichnis C:\veeamprnx wechseln.
cd C:\veeamprnx
Nun wird das Passwordfile im Powershell Fenster generiert
Read-Host -AsSecureString -prompt "Enter password" | ConvertFrom-SecureString -key $([Byte[]](1..16))| Out-File fvp_enc_pass.txt
Job mit Skripten ausstatten
Damit das Skript aktiv wird, muss es im Veeam Job hinterlegt werden. Die Einstellung ist unter Storage > Advanced zu finden.
Der Skript Reiter befindet sich ganz rechts und muss ggf. mit den Pfeilfeldern erreicht werden.
Der Aufruf der Skripte erfolgt über folgende Strings:
before Job (eine Zeile)
C:\windows\system32\WindowsPowerShell\v1.0\powershell.exe -Command C:\veeamprnx\backup-veeam.ps1 -Mode WriteThrough
after Job (eine Zeile)
C:\windows\system32\WindowsPowerShell\v1.0\powershell.exe -Command C:\veeamprnx\backup-veeam.ps1 -Mode WriteBack
Beide Aufrufe verwenden das selbe Skript. Nur der Parameter ändert sich. Im pre-script (before job) werden die VMs auf WriteTRough gesetzt und im post-script (after job) wieder auf WriteBack. Das Skript legt im Verzeichnis c:\veeamprnx eine CSV Datei an, in der alle VMs notiert werden, welche zuvor im Modus WB waren. Das Post-Skript liest diese CSV Datei aus und schaltet selektiv die VMs wieder in den ursprünglichen WB Modus.
PS Version
Sollte es bei der Ausführung des Skriptes zu Fehlern kommen, sollte man einen Blick auf die Powershell Version werfen.
$PSVersionTable
Sollte hier unter PSVersion Value 2.0 stehen, muss zunächst die Powershell Version angehoben werden. Durch Installation des Management Frameworks wird Powershell Version 4 installiert.
Dieses Vorgehen ist laut PernixData nur notwendig, wenn Veeam mittels SAN Transport sichert. Bei NBD oder HotAdd ist das nicht notwendig. Beim HotAdd Mode, muss die Backup-Proxy VM als VADP Appliance in FVP konfiguriert werden (blacklist). Bei NBD ist keine weitere Konfiguration notwendig.