摘要:文章針對物流項目管理中的文件管理,利用unix下的免費開源包Rsync+crontab實現基于文件級備份策略,以盡最大可能地節約備份成本(軟件費用、系統存儲資源、系統性能開銷),為企業提供一種幾乎零開銷的、高效的備份策略方案。
關鍵詞:文件級增量備份;crontab工具;rsync開源包;硬鏈接
隨著物流行業的快速發展,大量的數據信息,如BOM、各種單證、報表等在企業的各個生產、運作環節中產生。這些都是企業的核心資源。管理好這些資源,使得信息的冗余最小,同時保留最有用的信息,當不可預知的災難發生時,如何直觀、高效地恢復數據,都是每個企業運營過程中所必須面臨的問題。我們需要設計一種備份策略系統來解決這個問題。在Unix(Linux)下有功能強大的版本控制工具MKS(CVS)可以使用,但是當MKS(CVS)服務器發生不可預期的物理錯誤時候,資源就有丟失的危險。作為補充,需要尋找一種免費的、容易部署的、方便實用的工具來自動完成代碼的本地或者異地的備份和遷移。
Rsync是UNIX/Linux系統下的數據鏡像備份工具。它的特性如下:可以鏡像保存整個目錄樹和文件系統;可以很容易做到保持原來文件的權限、時間、軟硬鏈接等等;無須特殊權限即可安裝;優化的流程,文件傳輸效率高;可以使用rcp、ssh等方式來傳輸文件,當然也可以通過直接的socket連接;支持匿名傳輸。為了配合定時的策略機制,我們可以選擇搭配crontab命令工具,實現計劃任務的備份。本文介紹的所有工具都是免費并且開源的,所以對企業的開銷只存在于人工維護,同樣此系統策略也適合家庭和個人使用。以下將從模型設計、核心技術、策略實施出發,詳細分析說明備份策略的實現過程。
一、模型設計
對于數據人們最直觀的認識是文件。在對數據備份過程中,我們也希望在不改變文件夾結構的基礎上實現對重復冗余的數據進行刪減,從而節省磁盤空間;同時,沒有改變的數據就不需要花額外的時間處理。提高空間效率和時間效率是最重要的目標。圖1是針對需求所設計的模型。圖1中橢圓形是文件的文件域,陰影長方格是文件的數據域。這個模型反映幾個問題:備份結果文件結構必須與備份目標文件結構相同;備份過程需要判斷數據是否改變。當數據沒有改變時,文件不需要進行數據拷貝,只需要建立一個新的文件域指向原來的數據域;當數據改變時,文件需要建立新的文件域和數據域。
二、備份策略工作原理
(一)建立Rsync備份策略
圖2是備份策略的模型。為了實現增量備份,需要在數據的操作端即A端擁有可對文件夾的移動、刪除權限,如果把備份服務器放在Rsync Server即B端就不能實現。備份后的文件夾結構清晰明了,能夠很容易恢復。但是這樣的設計也存在一定的不足,它增加了數據存儲主機B的運算負荷。
(二)文件結構
圖3就是文件模塊的功能結構圖,它反映了所有程序文件之間的關系。
(三) Rsync_exe處理流程(見圖4)
這個方案的核心是三個:采用Rsync算法同步備份遠程數據,利用計算來換取最小的網絡傳輸開銷;采用硬鏈接控制重復文件對磁盤空間的開銷;采用這樣的流程,產生的文件夾可以利用其本身的創建時間作為時間戳,可以對用戶產生很直觀的時間概念。
同時這個設計也存在一個問題:硬鏈接不能跨越文件系統,就算是同一種文件系統也不可以,所以系統的擴展性受到制約。如果使用在本地備份,那么這個方案還是可行的。如果利用到網絡中多個存儲節點的時候就會產生問題。為了解決這種問題,數據在進行遠程遷移的時候采用Rsync算法來實現差異備份遷移。
三、物流企業實際運用中的體驗
貴州商業儲運(集團)有限公司是一家有五十余年歷史的國有企業,由于客戶網絡的日趨復雜,貴州商儲必須借用先進的信息技術改造傳統的管理體系。在實施文件級備份策略后,當采用策略是每周五個工作日的周循環備份,每周六上午1:00做全備份,剩下4個工作日作增量備份。例如,當前目標的數據量是10GB,按照全備份策略,所需要的空間是10GB×5=50GB,然而使用增量備份,每次增量備份大小為原數據大小的50%,需要的數據空間約為10GB+5GB+5GB+5GB+5GB=30GB,即可以節約40%的空間,而且隨著備份頻率的增加,備份的效率能進一步提高。圖5顯示了效率提高過程。
四、結束語
本策略已成功實現并使用,在幾乎零開支的基礎上高性能地提高企業的數據資源安全性、穩定性。雖然有跨文件系統的限制,但是相信隨著Unix/Linux技術的進步,不久的將來就能產生更好的替代解決方案。
參考文獻:
1.(美)W.Richard Stev