Aix

備份、JFS2 快照和斷電

  • July 31, 2009

我最近的任務是通過基於終端的界面改進支持 150 個使用者的舊伺服器的備份策略。目前的問題是伺服器在凌晨 2 點進行了一次備份,並且由於應用程序套件的性質和所涉及的語言(每個數據文件是離散的,數據文件之間沒有強制引用完整性,但記錄可以傳播跨多個數據文件 - 每個數據文件都按順序寫入應用程序套件中,因此您可能會更新一個文件而另一個文件不更新,從而創建不一致的記錄),在此期間需要不使用伺服器。

因此,如果伺服器在工作日結束時以某種方式出現故障,但在清晨進行備份之前,我們將失去大量工作。

由於伺服器執行的是 AIX 5.x,我決定在需要備份的文件系統上實現 JFS2 快照,這意味著我可以將清晨備份中的“系統關閉時間”減少到實際進行 hte 備份所需的時間. 這將是我們的“保證備份”。

但是,我還希望嘗試通過在白天進行兩次“非保證備份”來降低全天數據失去的風險,而無需從系統中刪除使用者。

這裡的理由是,如果我們在伺服器上遇到完全斷電的情況,很大一部分數據文件將被損壞——這發生在一個月前(UPS 燒毀了受保護的電路,關閉了伺服器——其中之一不應該發生的事情)。但是,拍攝快照的行為不會導致快照中的數據文件損壞,只會導致目前正在處理的損壞記錄的可能性。或者,換句話說,如果每個人都知道它首先存在,則可以檢查可控制、可管理的腐敗水平。

所以,我需要問的問題是:

JFS2 快照處理完全斷電情況的能力如何?在上個月發生的事件中,我們因損壞失去了大約 60% 的數據,但該分區的快照將如何處理?它還會遭受腐敗嗎,還是會沒事?

例如,我有 /mydata/,並在下午 6 點將其快照到 /mysnapshot。晚上 7 點,我們遇到了“最壞的情況”,並且 /mydata 嚴重損壞。快照也會損壞嗎?AIX 和 JFS2 如何在後台處理這個問題?快照可以使用嗎?

我趕緊補充一下,在凌晨 2 點的時間段內還會進行磁帶和遠端文件複製備份,因此我們不依賴快照作為實際備份,這只是改進備份的一種手段。白天的額外快照具有一定的準確性,而不是我們依賴的任何東西。

理論上,只要將快照送出到磁碟(還假設管理快照的 FS 或 LVM 部分通常不被寫入),您應該沒問題。

但是聽起來您的應用程序使用 fsync 很差,並且可以通過明智地使用正確的 posix 文件語義來改進(儘管它會稍微慢一些)。

請參閱 Stewart Smith 在 linux.conf.au 2007 上的“吃掉我的數據”演講: http ://www.linux.org.au/conf/2007/talk/278.html

引用自:https://serverfault.com/questions/34388