對遠端伺服器執行準確的快照和增量備份
我有一些 Ubuntu(可能還有 RHEL)伺服器,我想備份到中央備份伺服器(通過 rsh/SSH)。我想做快照和增量備份。目標是,如果其中一台備份伺服器突然當機,我可以安裝引導映像,從備份中恢復,然後理想情況下立即啟動並執行。
這些伺服器具有唯一的使用者和組以及相同名稱的一些不同的 gid 和 uid。我正在考慮 rsync(本地備份工作正常,並且我有細粒度的控制,因此我也可以備份 xattrs 和 ACL),但後來我意識到 rsync 到遠端伺服器可能不會像預期的那樣保留這些細微差別。
那麼,有什麼更好的方法來實現這一點呢?是否有為此目的常用的軟體包?
Yes
rsync
具有保留 ACL、擴展屬性、ext2 屬性、硬連結、數字使用者 ID、稀疏性的選項…我曾經有一個系統將文件系統同步到帶有
btrfs
文件系統的備份伺服器上(在備份伺服器上做快照),由於穩定性問題,移到了 zfs-on-linux (不幸的是它還不支持 POSIX ACL ,但有變通方法)。
rsync
您可能感興趣的選項:--archive --one-file-system --xattrs --hard-links --delete --numeric-ids --sparse --acls
以及可能用於就地同步的選項。rsync 不做的一件事是檢測重命名(雖然有一個更新檔,但我不確定它可以信任多少,它只檢測文件重命名)。
zfs
必須zfs send
僅發送自給定快照以來所做的修改(使用 發送到另一個 zfs zpoolzfs receive
)。如果我理解正確,那麼最近也添加了該功能btrfs
。因此,如果將 FS 備份到最新核心上的btrfs
另一個btrfs
FS 上,這可能是一種選擇。
查看rsnapshot,它是
rsync
命令行實用程序的 perl 包裝器。Rsnapshot 為 rsync 添加了一個額外的配置層,使增量備份變得容易。(文件的舊版本在未更改時會硬連結到目前版本。因此,備份文件系統的每個增量版本看起來都像是一個完整副本。)另一種類似的可能性是重複性,它是基於
librsync
. 我知道這有一個更精緻的使用者界面,但我沒有使用它。或者rdiff-backup,我認為它來自同一個開發者,或者至少曾經是真的。當然有很多很多的備份系統。這是FreeBSD 上可用的列表,其中大部分也將在 Linux 上可用。但我認為我上面提到的三個如果你習慣了自然可以考慮
rsync
。(一個很棒的工具。)