Unter dem Beitrag sammel ich mal ein paar Beispiele, für mich zum Nachlesen
Den Anfang macht die
ZFS-Replication
Ich hatte Am Anfang ein wenig Verständnisprobleme, bis es klar war, das diese Replication von Pool zu Pool funktioniert. Also brauchen wir zwei vorhandene ZFS-Pools.
root@pbs:/mnt/datastore/datapool/test# zfs list
NAME USED AVAIL REFER MOUNTPOINT
Backup_Home 222G 677G 222G /mnt/datastore/Backup_Home
datapool 2.36G 1.75T 2.36G /mnt/datastore/datapool
Wir erzeugen ein Dataset im datapool
zfs create datapool/docs -o mountpoint=/docs
Wir erzeugen eine Datei mit Inhalt
echo "version 1" > /docs/data.txt
Wir erzeugen einen Snapshot
zfs snapshot datapool/docs@today
Kontrolle
root@pbs:/mnt/datastore/datapool/test# zfs list -t snapshot
NAME USED AVAIL REFER MOUNTPOINT
datapool/docs@today 0B - 96K -
Wir replizieren den vorhandenen Snapshot zum ZFS-Pool Backup_Home und speichern ihn da im Dataset test.
zfs send datapool/docs@today | zfs receive Backup_Home/test
Nun befinden sich die Daten in dem anderen ZFS-Pool
root@pbs:/mnt/datastore/datapool/test# ls /mnt/datastore/Backup_Home/test/
data.txt
Und was mich am meisten interessiert, ist wie man das zu einem anderen Server schickt
zfs send datapool/docs@today | ssh otherserver zfs receive backuppool/backup
Den Test reiche ich dann später nach.
Quelle: https://www.howtoforge.com/tutorial/how-to-use-snapshots-clones-and-replication-in-zfs-on-linux/
ZFS inkrementelle Replication
Als, nur die geänderten Daten senden!
Wir erzeugen ein paar Dateien
root@pbs:/mnt/datastore/datapool/test# echo "data" > /docs/data1.txt
root@pbs:/mnt/datastore/datapool/test# echo "data" > /docs/data2.txt
root@pbs:/mnt/datastore/datapool/test# echo "data" > /docs/data3.txt
root@pbs:/mnt/datastore/datapool/test# echo "data" > /docs/data4.txt
Neuer Snapshot
zfs snapshot datapool/docs@17:02
Liste der Snapshots
root@pbs:/mnt/datastore/datapool/test# zfs list -t snapshot
NAME USED AVAIL REFER MOUNTPOINT
datapool/docs@today 56K - 96K -
datapool/docs@17:02 0B - 112K -
Wir senden dieinkrementelle Replication
zfs send -vi datapool/docs@today datapool/docs@17:02 | zfs receive Backup_Home/test
send from datapool/docs@today to datapool/docs@17:02 estimated size is 38.6K
total estimated size is 38.6K
cannot receive incremental stream: destination Backup_Home/test has been modified
since most recent snapshot
Dazu schreibt die Anleitung, die ich unten verlinkt habe, das die Daten verändert wurden. Warum, verstehe ich aktuell noch nicht. Mit -F im send Befehl erzwingt man einen Rollback zum letzten Snapshot.
zfs send -vi datapool/docs@today datapool/docs@17:02 | zfs receive -F Backup_Home/test
send from datapool/docs@today to datapool/docs@17:02 estimated size is 38.6K
total estimated size is 38.6K
Und Kontrolle
ls /mnt/datastore/Backup_Home/test/
data1.txt data2.txt data3.txt data4.txt data.txt
Quelle: https://klarasystems.com/articles/introduction-to-zfs-replication/