FlashBlade: configure S3 as a Veeam Backup & Replication repository - Scale-Out/SOBR Capacity Tier
Aktualisiert: 9. Mai 2021
Es ist zwar schon fast ein Jahr vergangen, jedoch findet man nur wenige Informationen zum Thema FlashBlade S3 in Verbindung mit Veeam Backup & Replication als Objektspeicher.

In der HCL "Veeam Ready database" von Veeam sind bereits mehrere Pure Storage Systeme in verschiedensten Kategorien gelistet:
FlashArray mit //X, //M und //FA-420 mit ihrer Storage Snapshot Integration.
FlashBlade als Backup Repository und "Object Ready" Objektspeicher/S3. Um letzteres soll es in diesem Beitrag gehen.

FlashBlade als "Veeam Ready Object" wird seit Veeam B&R 9.5.4.x unterstützt und ist seit May 2019 in der HCL (Veeam Knowledge Base > 2944) als getesteter, validierter und klassifizierter Objektspeicher für Cloud Tiers gelistet.
Das seinerzeit getestete Purity entsprach 2.2.11. und ich konnte in meiner Testumgebung mit einer FlashBlade Purity 3.0 während meiner Tests keine Probleme feststellen, daher gehe ich von einer Kompatibilität ab Purity 2.2.11 und neuer aus!

Allgemein
Ein Objektspeicher in B&R ist Bestandteil des "Capacity Tier" und erweitert Scale-Out Repositories mit der Möglichkeit vorhandene Sicherungen aus den "Performance Tier" direkt in Cloud-basierten Objektspeicher wie Amazon S3, Microsoft Azure Blog Storage, IBM Cloud Objektspeicher und weitere on-prem S3 kompatible Systeme auszulagern. Als ein on-prem S3 kompatibles System gilt prinzipiell jedes System, welches mit dem Amazon S3-Protokoll übereinstimmt (Veeam Support sollte zwingend in Produktivumgebungen vorausgesetzt sein).
Bei FlashBlade sprechen wir von "weitere on-prem S3 kompatible Systeme/S3 Compatible Object Storage".
Außerdem können Objektspeicher auch als Repository für NAS-Backups verwendet werden.
Scale-Out Backup Repository
Ein Scale-Out Backup Repository (SOBR) ist eine logische Einheit, welches mehrere Backup-Repositorys (DAS, NFS, SMB, S3...) - sogenannte Extents - gruppiert. Wenn man einen SOBR konfiguriert, erstellt man also einen Speicherpool aus mehreren Speichersystemen um deren Kapazität zu bündeln. Innerhalb des SOBR kann man dann einen Performance-Pool aka "Performance Tier" für maximalst-performanten und hochverfügbaren Speicher und auch einen Kapazitäts-Pool aka "Capacity Tier" bilden. Für die Langzeitaufbewahrung kann man B&R anweisen Daten aus Performance Tiers in Capacity Tiers zu verlagern, um so wertvolle Speicherressourcen des teureren Performance Tier einzusparen.
Außerdem ist es einem SOBR möglich beliebig zu skalieren, sodass Sie die Wahl haben Ihre bestehenden Repositorys (scale-in) aufzustocken oder durch das Hinzufügen ein neues Systems (scale-out) zu erweitern. Eine Verlagerung der bereits abgespeicherten Backupdaten auf ein neues Speichersystem wird somit hinfällig.

Extents
Ein SOBR kann ein oder mehrere Extents enthalten. Ein als Backup-Repository hinzugefügter Extent kann nicht mehr als reguläres Repository in anderen Jobs verwendet werden. Jobs welche den Extent nutzen sollen, müssen nun also auf den SOBR angepasst werden.
Die Richtlinie der Verteilung von Backupdaten zwischen den einzelnen Extends kann im SOBR eingestellt werden, hierbei kann zwischen zwei Policies gewählt werden:
Data locality
Performance

"Data locality" legt Sicherungsdaten einer Sicherungskette auf den gleichen SOBR Extent. Dadurch wird sichergestellt, dass die Backupketten immer Extent-unabhängig und vollständig sind.

Bei "Performance" hingegen, werden Sicherungsdaten/-ketten über die Extents hinweg verteilt. Man kann separate Extents für die Aufbewahrung von Voll-/Incrementelle-Sicherungen definieren. Durch die Performance-Richtlinie kann man eine verbesserte Performance erzielen, ebenso kann der I/O-Load auf den Backupspeichern minimiert/verteilt werden. Ausreichende Bandbreite bei der Anbindung der Speicher an den/die Proxyserver ist hier ein Muss.
Konfiguration
FlashBlade
Die Vorbereitung des S3-Buckets auf der FlashBlade ist rasch erledigt.
Wir wechseln in die Registerkarte Storage > Object Store und erzeugen einen neuen Account "veeam-s3" (man kann auch bestehende Accounts verwenden - dies ist jedoch nicht empfehlenswert, da dann andere bereits vorhandene Benutzer Zugriff auf den Veeam Bucket haben). Innerhalb des Accounts werden dann die Buckets und Benutzer durch uns angelegt, daher kann man es auch als logische Einheit an dieser Stelle sehen.
Unmittelbar danach erstelle ich einen Benutzer "user1" im "veeam-s3"-Account. Vorerst ohne Generierung eines Access Keys, dies holen wir am Ende nach. Fehlt nur noch der Bucket, dieser ist ebenfalls im Handumdrehen erledigt - + -> Create Bucket "bucket1".
Wie oben angesprochen, benötigen wir für die Einrichtung des Objektspeichers in Veeam noch einen Access und Access Secret Key. Der Secret Access Key muss zwingend abgespeichert werden, da dieser nicht mehr einsehbar ist - bei Verlust muss dieser neu generiert werden.
Man hat auch die Möglichkeit entsprechende Credentials per JSON oder CSV zu Dokumentationszwecken zu exportieren und gesichert abzulegen.
Veeam
1. Einrichtung Repository
Die Einbindung des S3 Repository ist ebenfalls unspektakulär. Das Wizard startet man in der VBR Konsole über Backup Infrastructure > Add Repository > Object storage > S3 Compatible.
Wir vergeben einen entsprechenden Repository Namen und wechseln mit Next in den Register "Account". Hier geben wir den Service Point an - dies ist das vorgesehene S3-Dateninterface (oder das "data interface") an der FlashBlade. Die IP-Adresse ist hier ausreichend, es muss kein Protokolltyp oder eine S3-URL angegeben werden.
Als Region geben wir on-prem ein (zwingend on-prem, sonst failed der Wizzard).
Die zuvor erzeugten Credentials für den Object-Account samt Access- und Secret Key hinterlegen wir hier ebenfalls. Eine Beschreibung (optional) dürfte in Produktivumgebung eine spätere Zuordnung vereinfachen.
Es kann nun sein, dass noch eine Zertifikatsmeldung erscheint: da es sich hier um eine Testumgebung handelt, fahre ich ohne Beachtung mit dem Setup fort. In Produktivumgebungen sollte man die Zertifikate entsprechend aus der FlashBlade (Settings > System) auf den Veeam-Servern importieren.

Veeam erkennt die angelegten Buckets für den hinterlegten Benutzer (Register Account) und man kann entsprechenden Bucket selektieren.
Wir müssen dann noch abschließend einen Ordner (Startverzeichnis) im Bucket für das Repository anlegen. Ich nannte diesen "veeam-s3-data". In den erzeugten Ordner werden dann unsere Backups abgelegt.
Optional wäre es uns noch möglich erweiterte Einstellungen vorzunehmen:
"Limit object storage consumption to": Einrichtung eines Limits für das S3-Repository. Je nach Definition steht die maximal definierte Kapazität zur Verfügung. Nach Überschreitung des Limits werden keine neuen Tasks mehr auf dieses Repository geschrieben - begonnene Tasks werden abgeschlossen.
"Make recent backups immutable for": hier können Sie die Löschung von Daten aus dem Objektspeicher für X Tage verbieten. Hier verwendet VBR das "S3 Object Lock"-Feature, welches der darunterliegende Objektspeicher unterstützen muss.
Der Backup-Objektspeicher ist nun als Repository eingerichtet.
2. Einrichtung Scale-Out Repository
Die Zielarchitektur bzw. die Backupstrategie soll folgende sein: die Sicherungen des Kunden (beispielhaft VMware Backups) werden täglich in das DR-Rechenzentrum auf ein ReFS-Volume (RDM der Volumes) an den Backupproxys abgelegt. Die ReFS-Volumes werden hier von einem dediziert angeschaften FlashArray für DR-Zwecke bereitgestellt. Backupdaten, welche seit 14 Tagen im SOBR Performance Tier verweilen, sollen auf den Capacity Tier/FlashBlade ausgelagert werden.
Das Vorhaben/Strategie (ein vollwertiges "FastRestore" Konzept) lässt sich wie folgt darstellen:

Die entsprechende Konfiguration des Scale-Out Repositorys wird wie folgt durchgeführt:
Ich vergebe einen Namen "SOBR1" für das Scale-Out Repository und füge noch eine kurze Beschreibung hinzu.
Im Performance Tier wählen wir mit "Add" unser primäres Backuptarget aus - im Beispiel das FlashArray mit seinem ReFS-Volume am Backupproxy (RDM).
In den erweiterten Einstellungen können für den Performance Tier noch Eigenschaften des Extents definiert werden. Diese sind selbsterklärend und wir belassen diese an der Stelle auf den Standardwerten.

Nun müssen wir eine Placement Policy definieren. Die Unterschiede beider Policies können Sie oben im Artikel unter Kapitel "Scale-Out Backup Repository" nachlesen.
Wir haben in der Testumgebung im Tier nur einen Extent und die Einstellung als Performance-Policy würde demnach an dieser Stelle keinen Sinn machen. In den erweiterten Einstellungen können oben angesprochene Einstellungen zur Verteilung nach Backupdatentyp (Full/Increment) nach Bedarf eingestellt werden.
Zuletzt müssen wir noch den Extent für den Capacity Tier - unseren Objektspeicher der Flashblade - hinzufügen und die Auslagerung der Backupdaten nach 14 Tagen einstellen. Es stehen noch weitere Konfigurationsoptionen zur Verfügung:
Definition eines Zeitfensters für die Verlagerung. Für uns bei on-prem S3 bei ausreichend interner Bandbreite in der Regel nicht interessant.
"Copy backups to object storage as soon as they are created": würde immer eine sofortige Übertragung (Kopie) der Backupdaten aus dem Performance Tier in den Capacity Tier initiieren.
"Move backups to object storage as they age out of the operational restore window" > Override: gibt die Möglichkeit Backupdaten vorzeitig aus dem Performance Tier auszulagern insofern der definierte Schwellwert des belegten Speichers erreicht würde (verhindert eine Überfüllung des Performance Tier).
"Encrypt data uploaded to object storage": Einrichtung einer Daten-Verschlüsselung bei der Übertragung auf S3 und auf Softwareebene/Veeam (macht bei on-prem S3 und FlashBlade keinen Sinn, da die Daten auf Hardwareebene - Purity übernimmt dies - verschlüsselt abgelegt werden).

Die Konfiguration des Scale-Out Backup Repository ist nun abgeschlossen und sie können diesen nun für Konfiguration Ihrer Backupjobs verwenden.

Fazit
Mit der Capacity Tier Option von Backup & Replication bietet Veeam eine Möglichkeit Backupdaten einfach und unkompliziert (ohne große Konfigurationen) in S3-Speicher zu verlagern. Mit der validierten Veeam S3-Kompatibilität bei FlashBlade hat man so die Möglichkeit auch auf hochperformanten S3-Speicher von Pure Storage zu verlagern. Ein Weg also auch die Vorteile von S3 und die Feature von FlashBlade (u. a. single namespace, compression) zu konsumieren und keine Kompromisse bei der Performance eingehen zu müssen.
Weitere Infos - Links
Sämtliche offiziell veröffentlichten Einstellungsmöglichkeiten in der GUI, aber auch CLI können über die "on-board" User Guides der Pure Storage Systeme nachgelesen werden.
Im Purity Hauptmenü hierzu auf "Help" klicken.
Der User Guide ist wie das Hauptmenü gegliedert und kann von Ebene zu Ebene geöffnet werden. Eine Suchfunktion ist auch integriert - hier kann mit Schlagworten gesucht werden.
WEB: Pure Storage (Pure1) Supportportal - Ticketsystem und Unterstützung *(erfordert registrierte FlashSysteme)
TEL: Pure Storage Telefonsupport: GER - (+49) (0)800 7239467; INTERNATIONAL - (+1) 650 7294088
WEB: Pure Storage OFFICIAL Blog