zfs最吸引人的地方就是可以建立快照並傳輸到遠端机器, 達到增量備份, 並且隨時從任一備份檔還原
完全不怕勒索病毒
將vm 建立在zfs碟上
Step 1
建立一vm 的基準快照
zfs snapshot zfspool/vm-9991-disk-0@base
Step 2
傳送到遠端, 異地備份
zfs send rpool/data/vm-9991-disk-0@base | ssh 192.168.2.17 zfs recv local-zfs/vm-9991-disk-0
確認是否將資料傳輸過去
host b
zfs list
Step 3
建立批次備份
3-1
ssh 自動登入
#ssh-keygen
將產生的 ~/.ssh/id_rsa.pub 上傳到 host b中, 並加入
authorized_keys 中
#cat id_rsa.pub >> ~/.ssh/authorized_keys
3-2 建立批次檔
#!/bin/bash #host a 上的 file system hostazfs="zfspool/vm-9991-disk-0" #host b 上欲備份的位置 hostbzfs="local-zfs/vm-9991-disk-0" #第一個建立的snapshot base_snapshot="base" #遠端備份机的ip remote_ip="192.168.2.17" #產生時間戳記做為 tag %N做為測試用, 定期備份用%F日期區分即可 timestamp="$(date +"%F-%N")" #以下不用變更 /sbin/zfs snapshot "$hostazfs@$timestamp" echo "$hostazfs@$timestamp has been created" zfs send -RI $base_snapshot "$hostazfs@$timestamp" | ssh $remote_ip zfs recv $hostbzfs echo "$hostazfs@$timestamp has been sent"
Step 4
restore
on hostb,
pick a snapshot, and clone as a file
zfs clone local-zfs/vm-9991-disk-0@2021-04-22-188237971 local-zfs/vm-9991-disk-99
create a new vm, send and receive to new vm disk, force.
# zfs send local-zfs/vm-9991-disk-99 | zfs recv -F local-zfs/vm-100-disk-0