Linux
如何大規模備份 Gitlab?
當向 Gitlab 支持人員詢問如何在本地 Gitlab 上進行 3TB 備份時,他們回答使用我們的生成 tarball 的工具。
這對我來說在各個層面都是錯誤的。這個 tarball 包含 postgres 轉儲、docker 圖像、repo 數據、GIT LFS 等配置等等。將 TB 的靜態數據與 KB 非常動態的數據一起備份並不正確。然後是問題,我們想每小時做一次備份。
問題
我真的很想從其他人那裡知道他們是如何做到的,以獲得一致的備份。
如果這是解決方案的一部分,Linux 上的 ZFS 對我來說會很好。
對於如此短的備份間隔時間(1 小時),您最好的選擇是依賴文件系統級別的快照和
send/recv
支持。如果在您的環境中使用ZoL不是問題,我強烈建議您使用它。ZFS 是一個非常健壯的文件系統,您會非常喜歡它提供的所有附加功能(例如:壓縮)。與 結合使用時
sanoid/syncoid
,它可以提供非常強大的備份策略。主要缺點是它不包含在主線核心中,因此您需要單獨安裝/更新它。或者,如果你真的需要限制自己使用包含主線的東西,你可以使用 BTRFS。但一定要了解它的(許多)缺點和皮塔餅。
最後,另一種解決方案是使用
lvmthin
定期備份(例如:withsnapper
),依靠第三方工具(例如:bdsync
,blocksync
等)僅複製/發送增量。另一種方法是擁有兩台複製的機器(通過
DRBD
),您可以在其中通過lvmthin
.