Из чистого любопытства, просто для ознакомления, поднял две виртуалки CentOS 8.2 (15 Гб под систему lvm), 4 виртуальных диска такого же размера в ZFS RAID 10.
zfs-0.8.5-1
zfs-kmod-0.8.5-1
В систему говноскриптом поставил LAMP, подмонтировал ZFS-пулл для его файлов.
Стащил скрипт со stackexchange
#!/bin/sh
#Setup/variables:
#Each snapshot name must be unique, timestamp is a good choice.
#You can also use Solaris date, but I don't know the correct syntax.
snapshot_string=DO_NOT_DELETE_remote_replication_
timestamp=$(/usr/bin/date '+%Y%m%d%H%M%S')
source_pool=data
destination_pool=data
new_snap="$source_pool"@"$snapshot_string""$timestamp"
destination_host=hostname
# Initial send:
# Create first recursive snapshot of the whole pool.
zfs snapshot -r "$new_snap"
# Initial replication via SSH.
zfs send -R "$new_snap" | ssh "$destination_host" zfs recv -Fdu "$destination_pool"
# Incremental sends:
# Get old snapshot name.
old_snap=$(zfs list -H -o name -t snapshot -r "$source_pool" | grep "$source_pool"@"$snapshot_string" | tail --lines=1)
# Create new recursive snapshot of the whole pool.
zfs snapshot -r "$new_snap"
# Incremental replication via SSH.
zfs send -R -I "$old_snap" "$new_snap" | ssh "$destination_host" zfs recv -Fdu "$destination_pool"
# Delete older snaps on the local source (grep -v inverts the selection)
delete_from=$(zfs list -H -o name -t snapshot -r "$source_pool" | grep "$snapshot_string" | grep -v "$timestamp")
for snap in $delete_from; do
zfs destroy "$snap"
done
На ВМ-источнике создаю в подмонтированном каталоге текстовый файл. Запускаю скрипт.
Выхлоп:
cannot receive new filesystem stream: destination has snapshots (eg. data@DO_NOT_DELETE_remote_replication_20201207101336)
must destroy them to overwrite it
cannot create snapshot 'data@DO_NOT_DELETE_remote_replication_20201207103101': dataset already exists
no snapshots were created
WARNING: could not send data@DO_NOT_DELETE_remote_replication_20201207103101:
incremental source (data@DO_NOT_DELETE_remote_replication_20201207103101) is not earlier than it
cannot receive: failed to read from stream
Хотя на целевой ВМ никаких снепшотов, конечно, нет.
ЧЯДНТ?