如果數據集(dataset)存在快照(snapshot),則不能銷毀該數據集。
如果已從快照創建克隆(Clone),則必須先銷毀克隆,才能銷毀快照。
- 建立快照
創建 tank/home/ahrens 的快照,其名稱為 friday。# zfs snapshot poolname/home/ahrens@friday # zfs snapshot zroot@20210922
-r 選項可為所有後代文件系統創建快照。
# zfs snapshot -r tank/home@now # zfs list -t snapshot
- 檢查dataset
#zfs list
- 讓snapshot可讀
# zfs set snapdir=visible poolname
會出現/poolname/.zfs
- 備份快照
1. 將備份的 snapshot 放在本機的其他 zfs 區域:# zfs send mypool@backup1 > /backup/backup1 '會傳輸在快照 backup1 中所有的資料到儲存池 backup (備份以封存檔案儲存) # zfs send -v zroot@20210922 | zfs receive SSD/zroot_backup '會在 SSD 的目錄新增 zroot_backup 的目錄來備份 zroot@20210922 # zfs send -v zroot/ROOT/default@20210922 | zfs receive SSD/zroot_backup # df -h Filesystem Size Used Avail Capacity Mounted on zroot 9.6G 805M 8.8G 8% / Seagate_3T 2.7T 32k 2.7T 0% /Seagate_3T Seagate_3T/zroot_backup 2.7T 805M 2.7T 0% /Seagate_3T/zroot_backup # zfs list -t snapshot NAME USED AVAIL REFER MOUNTPOINT Seagate_3T/zroot_backup@root 27K - 805M - zroot@root 186K - 805M -
2. 遠端備份:
先讓 S HOST 使用rsa key登入D HOST# zfs send poolname@date | ssh (destination IP) zfs receive poolname/backup
可用 netstat 1 觀察 D host狀況
- 壓縮快照
zfs 也提供將 snapshot 壓縮的功能:# zfs send pool/fs@snap | gzip > backupfile.gz # zfs send zroot@20210922 | gzip > /Backup/zroot_snap_20210922.gz
- 增量備份
# zfs send -i poolname@snap1 poolname@snap2 | ssh host2 zfs recv poolname/backup
第一個參數是較早的快照,第二個參數是較晚的快照。在這種情況下,poolname/backup dataset必須存在,增量接收才能成功
- 倒回快照 # zfs rollback
- 刪除快照 # zfs destroy 快照名稱
# zfs list -H -o name -t snapshot | xargs -n1 zfs destroy '刪除所有的快照
參考資料:Oracle Solaris ZFS 管理指南
FreeBSD: Z 檔案系統 (ZFS)
Please follow and like us:
0 comments on “[FreeBSD] ZFS 快照(snapshot)”
1 Pings/Trackbacks 於 "[FreeBSD] ZFS 快照(snapshot)"
[...] [FreeBSD] ZFS 快照(snapshot) 二月 [...]