新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > Linux 網絡文件系統(tǒng)的數據備份及恢復機制實現(xiàn)

Linux 網絡文件系統(tǒng)的數據備份及恢復機制實現(xiàn)

作者: 時間:2016-09-12 來源:網絡 收藏

基于分布版本的快速恢復:當停頓時間太長而不存在一個相同的版本,或文件服務器數據出現(xiàn)損壞(如磁盤故障造成數據損毀)時,需要采用此種方法。具體辦法如下:直接把正常服務器上的最新版本傳送到退出服務器,然后按照上述的第 2 種情況進行同步數據文件的同步。

正如上面所述,全部服務器均出現(xiàn)問題的概率是很小的,但是,不能簡單的排除這種情況的出現(xiàn),特別是本方案采用數據同步機制,即多個站點的數據是保持快速同步的,這雖然能保證動態(tài)遷移的順利完成,但是也帶來較大的風險,就是會出現(xiàn)數據”污染”的自動傳播,當主文件服務器中的文件數據因為某些原因(主要是對文件的非法訪問)造成數據非法修改時,會立即傳播到其他備份節(jié)點,這樣的話,不管服務遷移到哪臺機器均會出現(xiàn)錯誤。

針對這種情況,我們采取了以下措施:當發(fā)現(xiàn)非法修改造成數據污染時,系統(tǒng)可以自動命令各站點恢復到指定的版本,如前一版本(可以由管理員配置成前一、二、三個版本);管理員也可以干預這一過程,強制各站點恢復到同一指定的版本,從而保證全局文件系統(tǒng)使用同一正確版本。

NFS 文件細粒度恢復技術

在傳統(tǒng)恢復技術中,一方面由于不是實時進行的,當出現(xiàn)事故需要恢復時,最新的備份數據與最新數據之間存在一個時間差,這樣就造成了該時間段內數據的丟失(見圖 5);同時,傳統(tǒng)的是一定時間段后數據的增量備份,是一段時間內所有文

系統(tǒng)簡介

系統(tǒng)(NFS)協(xié)議是由 Sun MicroSystem 公司在 20 世紀 80 年代為了提供對共享文件的遠程訪問而設計和實現(xiàn)的,它采用了經典的客戶機/服務器模式提供服務。為了達到如同 NFS 協(xié)議通過使用 Sun 公司開發(fā)的遠在本機上使用本地文件系統(tǒng)一樣便捷的效果,NFS 通過使用遠程過程調用協(xié)議(RPC Protocol)來實現(xiàn)運行在一臺計算機上的程序來調用在另一臺遠程機器上運行的子程序。同時,為了解決不同平臺上的數據交互問題,它提供了外部數據表示(XDR)來解決這個問題。為了靈活地提供文件共享服務,該協(xié)議可以在 TCP 協(xié)議或者是 UDP 協(xié)議上運行,典型的情況是在 UDP 協(xié)議上運行。在此基礎上,NFS 在數據的傳送過程中需要 RPC 命令得到確認,而且在需要的時候會要重傳,這樣既可以通過 UDP 協(xié)議獲得較高的通信效率,也能通過 RPC 來獲得較高的通信可靠性。

由于 NFS 基于 C/S 模式提供服務,所以它的核心組件主要包括客戶機和服務器兩部分。圖 1 詳細說明了 NFS 的主要組件以及主要的配置文件。在服務器端,portmap、mountd、nfsd 三個監(jiān)控程序將在后臺運行。portmap 監(jiān)控程序用來注冊基于 RPC 的服務。當一個 RPC 的監(jiān)控程序啟動的時候,它告訴 portmap 監(jiān)控程序它在哪一個端口進行偵聽,并且它在進行什么樣的 RPC 服務。當一個客戶機向服務器提出一個 RPC 請求,那么它就會和 portmap 監(jiān)控程序取得聯(lián)系以確定 RPC 消息應該發(fā)往的端口號。而 Mountd 監(jiān)控程序的功能是來讀取服務器端的/etc/exportfs 文件并且創(chuàng)建一個將服務器的本地文件系統(tǒng)導出的主機和網絡列表,因而客戶機的掛接(mount)請求都被定位到 mountd 監(jiān)控程序(daemon)。當驗證了服務器確實具有掛接所請求的文件系統(tǒng)的權限以后,mountd 為請求的掛接點返回一個文件句柄。而 nfsd 監(jiān)控程序則被服務器用來處理客戶機端發(fā)送過來的請求。由于服務器需要同時處理多個客戶機的請求,所以在缺省情況下,操作系統(tǒng)將會自動啟動八個 nfsd 線程。當然,如果 NFS 服務器特別忙的時候,系統(tǒng)有可能根據實際情況啟動更多的線程。

圖 1 系統(tǒng)簡圖

圖 1 網絡文件系統(tǒng)簡圖

NFS 的客戶機與服務器之間通過 RPC 進行通信,通信過程如下所示:

用戶將 NFS 服務器的共享目錄掛載到本地文件系統(tǒng)中。

客戶訪問 NFS 目錄中的文件時,NFS 客戶端向 NFS 服務器端發(fā)送 RPC 請求。

NFS 服務端接收客戶端發(fā)來的 RPC 請求,并將這個請求傳遞給本地文件訪問程序,然后訪問服務器主機上的一個本地的磁盤文件。NFS 服務器可以同時接收多個 NFS 客戶端的請求,并對其進行并發(fā)控制。

NFS 客戶端向服務器主機發(fā)出一個 RPC 調用,然后等待服務器的應答。NFS 客戶端收到服務器的應答后,把結果信息展現(xiàn)給用戶或應用程序。

NFS 下的、恢復的主要功能

對數據進行備份與恢復是保證數據安全和業(yè)務連續(xù)性的非常成熟的做法。在 下的本地文件系統(tǒng)(例如 Ext2、Ext3 等)中,數據備份和恢復一般采用常規(guī)的辦法來進行操作,例如使用 Tar、Archive 等。而對于 NFS 來說,其數據備份需要采用量身定制的方法來進行。

為了保證數據在災難環(huán)境中的可用性和業(yè)務連續(xù)性,針對它的數據備份、恢復方案應具備如下重要功能:

通過對系統(tǒng)重要數據的快速備份,切實保證系統(tǒng)數據的安全;

可以根據指令完成備份系統(tǒng)的實時切入,保證服務不被中斷,保持系統(tǒng)持續(xù)運行的能力;

通過實時記錄所有文件的操作日志,系統(tǒng)管理員能夠在發(fā)生災難的情況下對日志進行分析和取證,從而發(fā)現(xiàn)入侵者的蛛絲馬跡。

NFS 多版本備份技術

為了保證服務器出現(xiàn)故障后能迅速恢復,要求系統(tǒng)數據能快速恢復到一個最近的正確狀態(tài),所有這些都需要多版本技術的支持,通過同步記錄文件的在某些時刻的狀態(tài),在整個系統(tǒng)范圍內建立起類似于數據庫系統(tǒng)的”檢查點”,以保證上述目標的實現(xiàn)。

對于多版本系統(tǒng)而言,需要較好地解決兩個方面的問題:性能和空間利用率。對于前者,最主要的是保證在生成版本的時候能夠快速完成,同時恢復時也具有較好的性能。此外,系統(tǒng)引入多版本造成的整體開銷也應該比較理想。對于第二點,主要考慮是節(jié)約磁盤空間,雖然隨著硬件技術的不斷發(fā)展,磁盤空間越來越大,性價比也越來越高,但是當版本較多而且文件數量較多、較大時,引入多版本增加的開銷也可能相當可觀,同時,較大的空間也意味著版本生成時可能需要更多的寫操作,這樣也必將影響總體性能。



評論


相關推薦

技術專區(qū)

關閉