2つのミラー化ディスクで構成されたZFSプールを使用します。オフサイトバックアップ用にディスクを2枚以上購入しました。
元の計画は、3番目のディスクをミラーに接続してオフサイトバックアップを作成し、ZFSが再同期するのを待ってからドライブを取り外してオフサイトにすることでした。これはうまくいきますが、驚くほど行われているようです。いっぱい再同期はディスクが接続されるたびに発生します。すべての接続が増分またはデルタの再同期を引き起こすことを読んだが、誤解を招く可能性があります。これにより、バックアップが許容可能な時間より長くかかることがあります。
私の要件は、毎日回転できるように私のzpoolとすべてのスナップショットのオフサイトコピーを持つことです。これは、再同期化に最大24時間かかることを意味します。現在はこれに近いですが、プール拡張計画によると、その時間を超える予定です。
完全な再同期操作を必要としないオフサイトバックアップをどのように保存しますか?バックアップドライブで別のファイルシステムを使用する必要があります(例:イメージをZFSプールの一部にするのではなくイメージをエクスポートするなど)。バックアップを別のプールに入れ、新しいスナップショットが作成されたら、そのプールに送信する必要がありますか?
ベストアンサー1
zfsがリモートZFSシステムにスナップショットを送信しないのはなぜですか?これには単純なbashスクリプトを使用します。
#!/usr/local/bin/bash
# ZFS Snapshot BASH script by Shawn Westerhoff
# Updated 1/14/2014
### DATE VARIABLES
# D = Today's date
# D1 = Yesterday's date
# D# = Today less # days date
Y=$(date -v-1d '+%m-%d-%Y')
D=$(date +%m-%d-%Y)
D1=$(date -v-1d '+%m-%d-%Y')
D10=$(date -v-10d '+%m-%d-%Y')
D20=$(date -v-20d '+%m-%d-%Y')
# Step 1: Make the snapshots
for i in $( zfs list -H -o name ); do
if [ $i == tier1 ]
then echo "$i found, skipping"
else
zfs snapshot $i@$D
fi
done
# Step 2: Send the snapshots to backup ZFS sever
for i in $( zfs list -H -o name ); do
zfs send -i $i@$D1 $i@$D | ssh -c arcfour [email protected] zfs recv $i
done
# Step 3: Destroy snapshots that are 20 days old
for i in $( zfs list -H -o name ); do
if [ $i == tier1 ]
then echo "$i found, skipping"
else
zfs destroy $i@$D20
fi
done