Seit der Version 13.1 von Veeam Backup & Replication werden WORM Speicher als Repository supported. Die Anbindung erfolgt hierbei wahlweise per CIFS oder NFS. Als Referenzarchitektur in diesem Bereich gilt die NetApp WORM Lösung SnapLock, selbstverständlich sind aber auch andere Anbieter supported.
Im folgenden Beitrag zeige ich die Einrichtung von NetApp SnapLock im Kombination mit Veeam, in meinem Beispiel nutze ich ein CIFS Share. Die Schritte für NFS unterscheiden sich nur an den protokollspezifischen Stellen wie z.B. den Export-Policies.
Veeam hat hierbei das Rad nicht neu erfunden und setzt auf die üblichen Mechanismen um eine Datei im WORM speicher zu schützen. Die Software setzt dafür das Attribut „Read-only“, um die jeweilige Datei vom beschreibbaren in einen unveränderlichen Zustand zu versetzen. Der Zeitstempel im „atime“-Attribut, also die Last Access Time entspricht der Dauer der Immutability. Sobald die Datei immutable ist, kann die Datei nicht mehr geändert oder gelöscht werden. Ausnahme ist das Dateiattribut „atime“ – damit kann das Ablaufdatum der Unveränderlichkeit verlängert werden, ein nachträgliches verkürzen ist logischerweise nicht möglich.
Folgende Bedingungen müssen auf dem NetApp System erfüllt sein:
- SnapLock Lizenz (In ONTAP One Lizenz Bundle enthalten)
- Korrekte Uhrzeit auf dem ONTAP System
- Snaplock Compliance Clock muss initialisiert sein/werden
Best-Practices für die SnapLock Konfiguration:
- autocommit-period: none
- minimum-retention-period: 0 bzw. deaktiviert
- maximum-retention-period: identisch oder am besten etwas länger als die geplante Retention in Veeam.
- snaplock-type enterprise oder compliance
- NetApp: Initialisieren der SnapLock Compliance Clock
demo-cl1::> snaplock compliance-clock show
Node ComplianceClock Time
----------- -----------------------------------
demo-cl1n1 ComplianceClock is not configured.
demo-cl1n2 ComplianceClock is not configured.
2 entries were displayed.
demo-cl1::> snaplock compliance-clock initialize -node demo-cl1n1
Warning: You are about to initialize the secure ComplianceClock of the node "demo-cl1n1" to the current value of the node's system clock. ComplianceClock re-initialization requires all nodes in the cluster to be healthy, all volumes are in online state, no volumes are
present in the volume recovery queue and there are no SnapLock volumes or volumes with "snapshot-locking-enabled" set to true or S3 buckets with object locking enabled. Ensure that the system time is set correctly before proceeding. The current node's system clock
is: Wed Aug 5 10:34:32 CEST 2026
Do you want to continue? {y|n}: y
demo-cl1::> snaplock compliance-clock initialize -node demo-cl1n2
Warning: You are about to initialize the secure ComplianceClock of the node "demo-cl1n2" to the current value of the node's system clock. ComplianceClock re-initialization requires all nodes in the cluster to be healthy, all volumes are in online state, no volumes are
present in the volume recovery queue and there are no SnapLock volumes or volumes with "snapshot-locking-enabled" set to true or S3 buckets with object locking enabled. Ensure that the system time is set correctly before proceeding. The current node's system clock
is: Wed Aug 5 10:34:40 CEST 2026
Do you want to continue? {y|n}: y
demo-cl1::> snaplock compliance-clock show
Node ComplianceClock Time
----------- -----------------------------------
demo-cl1n1 Wed Aug 05 10:34:43 CEST 2026 +02:00
demo-cl1n2 Wed Aug 05 10:34:43 CEST 2026 +02:00
2 entries were displayed.
2. NetApp: SnapLock Volume anlegen
demo-cl1::> volume create -volume vol_DEMO5_CIFS_snaplock_repo
-junction-path /vol_DEMO5_CIFS_snaplock_repo -snaplock-type enterprise
-size 500gb -state online -aggregate n1_aggrSSD -security-style ntfs
3. NetApp: CIFS Share anlegen
demo-cl1::> vserver cifs share create -share-name DEMO5_CIFS_snaplock_repo
-path /vol_DEMO5_CIFS_snaplock_repo
Anschließend ist das Repository einsatzbereit und kann in Veeam eingebunden werden.
1. Veeam: Neues Repository hinzufügen

2. Veeam: NFS oder CIFS wählen

3. Veeam: Repository Namen & Beschreibung vergeben

4. Veeam: UNC Pfad + User zum Share angeben

5. Veeam: Immutability & Task Settings
Hier kommt der eigentlich relevante Punkt. Hier wird die gewünschte Immutability Dauer konfiguriert. Um genau diese angegebene Tagesanzahl wird später das Last Access Date der Backup Daten in die Zukunft gesetzt. In Kombination mit SnapLock wird so der Schutz vor Löschen erreicht.
Wichtig: WORM / SnapLock muss auf dem Volume aktiviert sein, andernfalls setzt Veeam zwar das Read-Only Flag und das Last Access Date, die Daten sind aber trotzdem löschbar. Wie man das prüfen kann zeige ich später.

6. Veeam: Repository speichern

Das Repository ist nun erfolgreich angelegt und wird können wie gewohnt einen Backup Job konfigurieren, welcher das Repository verwenden soll. Der Test Job lief erwartungsgemäß durch, nun sollten wir aber auch prüfen ob alle WORM Funktionen wie gewünscht genutzt wurden.

Aus Sicht von Veeam wurde die Immutability korrekt gesetzt.

Wirft man nun ein Blick in den Windows Explorer sieht man zwei Dateien. Die *.vbm Datei ist die Metadaten Datei der VM. Die *.vbk Datei ist die eigentliche Full Backup Datei der VM.

Da die *.vbm Datei bei jedem Backup Lauf aktualisiert und damit geändert wird, ist diese nicht durch SnapLock geschützt. Das Verhalten ist identisch z.B. zu Hardened Linux Repositories.

Die *.vbk Datei enthält die eigentlichen Backup Daten und lässt sich auch ohne Metadaten Datei wiederherstellen. Hier sieht man das die WORM Infos korrekt gesetzt wurden. Das Last Access Date ist in der Zukunft, in Kombination mit dem Read-only Flag.

Das wichtigste zum Schluss – Kann man die Datei löschen? Glücklicherweise nicht, ONTAP verhindert dank Snaplock das ich die *.vbk Datei löschen kann.

Fazit: Mit der SnapLock Integration in Veeam lässt sich eine weitere Portion Sicherheit in NFS oder CIFS basierte Repositories bringen. Den Einsatz von NFS oder CIFS als Repository sollte man jedoch generell genauer beleuchten, bevorzugt kommen hier Hardened Linux Repositories zum Einsatz, da man hier ebenfalls Immutable Backups erzeugen kann, zusätzlich aber noch alle Vorteile von Fast Block Cloning hat.