Linux
ZFS 快照發送增量
我一直很高興地以類似於網站上描述的腳本方式將zfsnap與 CentOS 和 ZFSonLinux 一起使用,但遇到了一個問題。不幸的是,幾天前沒有執行備份,現在我陷入了一個奇怪的境地。我在我的主 ZFS 伺服器上的備份 ZFS 伺服器上有一系列增量備份,在主伺服器上有一些更新的快照。不幸的是,由於主伺服器上舊快照的失去備份和自動銷毀,兩個系統之間不再有一個共同的快照來執行增量發送。即備份有:
backuppool/x@snap2 backuppool/x@snap3 backuppool/x@snap4
在主 zfs 伺服器上有:
mainpool/x@snap6 mainpool/x@snap7 mainpool/x@snap8
有什麼方法可以讓它們再次同步,還是我必須銷毀備份中的所有內容並執行完整備份(沒有足夠的空間進行兩個完整備份)?我嘗試從主伺服器指定一個引用遠端備份伺服器上的 snap4 名稱的發送,但由於主伺服器沒有 snap 4,它無法計算增量。我還嘗試將 snap4 從備份發送到主伺服器,但似乎唯一的方法是將其作為完整髮送(沒有足夠的空間),並且我需要清除現有的快照。如果快照不匹配,刪除所有備份歷史記錄似乎很不方便,在這種情況下有什麼解決方案嗎?
由於您的設置中沒有通用基線快照,因此您將無法再執行增量
zfs send
。您需要銷毀數據集backuppool
:zfs destroy -r backuppool/x
並將最新的快照重新發送到備份池
zfs send mainpool/x@6 | [transfer magic] | zfs recv backuppool/x
如果快照不匹配,刪除所有備份歷史記錄似乎很不方便,在這種情況下有什麼解決方案嗎?
“解決方案”只是不刪除源快照,除非這些快照已被驗證已成功傳輸(即顯示在遠端的
zfs list -tall
輸出中)。我不知道 zfsnap 是否會為此提供支持,但即使不支持,您也可以在讓 zfsnap 刪除任何內容之前使用 shell 腳本執行這種檢查。