Linux 就地備份(無解除安裝)解決方案
我有一個想要每天備份的 Ubuntu 伺服器。我希望能夠通過點擊幾個按鈕(或擊鍵)來恢復整個系統。另外,我不想關閉/解除安裝我的分區來備份它們。到目前為止,我想出的是 cron、perl、LVM 和 FSArchiver 的組合。
- Cron 觸發 perl 腳本以…
- 使用 lvcreate -s 創建每個分區的快照
- 掛載每個快照
- 執行 FSArchiver 將每個 ext4 分區備份到 CIFS / SMB 共享
- 解除安裝快照
- lv刪除快照
- 保存日誌文件等。
所以我可以像我描述的那樣自己推出所有這些,但是如果那裡已經存在一個解決方案(也許有更多的功能,比如差異備份),我會去的。rysnc 不會備份已安裝驅動器上正在使用的系統文件(對嗎?),所以它已經過時了。我四處搜尋,但我還沒有找到一個像我上面描述的那樣做的單一解決方案。您在已安裝的系統分區上使用的任何解決方案?
首先,不要嘗試推出自己的備份解決方案。
真正的備份軟體經過廣泛的測試,多年來一直被企業系統管理員擊敗。您可以確信,當您使用它時,您將能夠恢復您備份的內容。
至於掛載的文件系統/活動文件問題 - 任何備份軟體(rsync、tar、bareos/bacula,甚至是古老的
cp
命令)都會複製 Unix 系統上“正在使用”的文件。出現的問題是,如果這些文件正在被主動修改,您不知道您抓取它們的狀態 - 您可能在備份文件時完全重寫文件,並最終將無用的垃圾放在磁帶上.
作為一般規則,為了確保良好、一致的備份,您的文件系統(或至少要備份的子集)必須處於靜止狀態。
我在野外知道的唯一全自動解決方案是Windows VSS。您提出的 LVM 快照/掛載/備份/解除安裝/銷毀過程基本上就是 VSS 通過其 API 所做的。
您可以使用真正的備份軟體和一點創意來實現您描述的快照解決方案(在使用 bareos 的情況下,您可以使用
ClientRunBeforeJob
和ClientRunAfterJob
腳本來實現),因此它本質上是透明的,而且它是一個很好的解決方案 - 我衷心贊同它。請注意,這仍然不是“一鍵式”恢復。從備份恢復後,您幾乎可以肯定仍然需要做一些手動工作以恢復到正在執行的系統。這就是您執行還原測試的原因。
就我的觀點而言,我認為“一鍵還原”不存在,任何告訴你它存在的人都是試圖向你推銷軟體。可能是昂貴的軟體。
最接近一鍵還原的方法是將系統作為虛擬機執行,定期對它們進行快照,然後像 Zoredache 建議的那樣備份快照。當您獲取 VM 快照時,我的答案頂部關於使用Real Backup Software
的相同警告仍然適用(但您可能不需要執行 LVM 快照,因為 VM 快照在創建後根據定義將處於靜止狀態。
為虛擬機管理程序選擇備份軟體留給讀者作為練習——它可以是 Linux 上的 bareos、Windows 上的 ArcServe 或VMWare 集群上的vSphere Data Protection,具體取決於您的需求和預算……