Contents
進階馬里蘭自動化網絡碟盤備份器(Advanced Maryland Automatic Network Disk Archiver)
傳統地,備份都會被編排在週末進行完整的傾印,然後在週間作漸進式的備份。這個策略有數個缺點:
- 週末的備份需時比週間的長很多。
- 週間採用的磁帶用量很少,但由於週日的備份很大,你必須有巨大的磁帶。這等於在週間浪費了磁帶。
- 整全地還原星期五的某個目錄必須應用星期日、一、二、三、及四的磁帶。
Amanda 改變這個模式。Amanda 的主要目標是平衡每晚的磁帶用量。為了這個目的,它改動在哪些日子某些備份「項目」(稍後再討論)會被完整傾印,好讓每晚所備份的數據量大致相等。意思就是:
- 每晚的備份時間大約相同。
- 磁帶用量是均勻的,所以較細小的讀帶機亦適用,不必浪費磁帶。
- 要整全地還原星期五的目錄也許只須一卷磁帶,最壞是應用一個「傾印週期」內的磁帶(也是稍後討論)。
在這份文章內,你會經常看見「磁帶」被提及。請知道它不一定指磁帶。Amanda 支援以硬盤備份(透過檔案驅動程式),甚至乎採用 RAIT:當中可以是多卷磁帶、多個硬盤、或者是兩者的組合。
1. 重要詞匯
無論探討任何題目,最好是擁有其同的用詞。下列是一些須要被理解的重要詞匯。
- Level 0
一組檔案的完整傾印或備份。意思就是每一個檔案都被儲存供日後取用。
- Level 1
一組檔案的首個漸進式備份。意思就是只有自上一次 Level 0 備份後被更改的檔案才會被儲存供日後取用。
- Level n
自上一次 Level n-1 備份後進行的漸進式檔案備份。 註:「Level」有時很難去理解,因此這裡有個例子。
- 碟盤列表項目 Disklist Entry(DLE)
Amanda 把要備份的項目放在一個 disklist 檔內,因此每個項目成為一個「碟盤列表項目」。
- 傾印週期 dumpcycle
- 每個 DLE 獲 Level 0 備份的最長間隔。(多數是 1 星期)
- 每期執行量 runspercycle
- Amanda 在每個傾印週期內的執行次數。(假設傾印週期是 1 星期,這多數是 7 來代表每個晚上,或 5 來代表每個週間晚上)
- 磁帶週期 tapecycle
- Amanda 要採用多少卷磁帶後才把它們「遁環再用」。(這個最理想是 2*runspercycle+1。這樣你便會擁有兩套整全的備份,及一卷應急用的額外磁帶)
2. Amanda 是個排序程式
很多時有人會問:「Amanda 會否支援我的 ACME 2000 超級專業讀帶器?」。答案是:「你的操作系統是否支援它?」
這是由於 Amanda 並不會直接與讀帶器溝通。它依賴操作系統的 dd、tar 及各款的 dump 工具程式來做完成這項工作。Amanda 只是按照參數來計算需要備份的數據,並且作出適切的排序。事情是如何安排的?先前的詞匯定義應該給了一點提示,但我們會在這部份更詳盡地解釋。
Amanda 排序備份主要環繞上述三個變數:dumpcycle、runspercycle 及 tapecycle。Amanda(盡它所能地)確保每個 DLE 在一個 dumpcycle 內至少獲一次 Level 0 備份。這裡說「至少」一次,因為 Amanda 可能會讓某個項目「提早」獲 Level 0 備份(記得 Amanda 的首要目標 —— 平衡磁帶用量嗎?)來平衡數據的大小。runspercycle 這個變數讓 Amanda 知道它在一個 dumpcycle 內有多少個機會把一切安置好。tapcycle 是個保險來確保你不會蓋過那些還不應被覆寫的數據。
3. CentOS 上的 Amanda
後久之前,有人決定 Amanda 的客戶端不須進行任何設定。假如你有數百台機器,這是很好的,但缺點就是某些選項必須被編譯進客戶端的執行檔內。這些包括你的讀帶機及目錄伺服器的地址/名稱。對於包裝 Amanda 執行檔的人來說(即差不多所有 Linux 發行版本),這構成一個有趣的問題:你們在編譯時不可能知道設定,因此必須作出假設。最嚴重的問題就是採用 localhost 作為伺服器的名稱。(要知道為何這是個問題,請參閱十大名單)。因此我們建議你針對自己的環境重建 Amanda 的 RPM。
新發行的 Amanda(2.5.1 或以上)打破了這個傳統,讓客戶端可以採用一個設定檔。有關這個檔案的詳情請參閱 http://wiki.zmanda.com/index.php/Amanda-client.conf 。
對於 CentOS 3 及 4 來說,更改預設值涉及編輯 .spec 檔。由 CentOS 5 開紿,上游以經修改了 .spec 來舒緩這個問題。詳細來說,%defconfig、%tapeserver 及 %indexserver 這些變數現在可以透過 define 來設定(例如:rpmbuild --rebuild --define "defconfig Dailies" --define "tapeserver fqdn.com" amanda-2.5.0p2-4.i386.rpm)
如果你不希望在你的 CentOS 3 或 4 系統上重建 2.4.5 或更新版本的 Amanda,你可以這樣為你的環境重建現有的套件(以 CentOS 4 為例):
- 下載 amanda-2.4.4p3-1.src.rpm 這個檔案。
安裝源代碼 RPM:rpm -i amanda-2.4.4p3-1.src.rpm。這樣會把內容解縮到你的 rpm 目錄(請參閱 Yum 與 RPM 關於如何設置你的編譯系統)
- 編輯 SPECS/amanda.spec 這個檔案來填入適當的伺服器,與及其它你想做的改動。我們亦建議你更改 Release: 這個標籤(利用縮寫或其它方串)來表示你曾作出修改。
- 重建套件:rpmbuild -ba SPECS/amanda.spec
- 享用你剛剛自訂的 RPM
4. 連結
5. 最新發佈
最新的穩定發佈版本已收錄在 http://www.zmanda.com/download-amanda.php。
Translation of revision 19