<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > Linux 網(wǎng)絡(luò )文件系統的數據備份及恢復機制實(shí)現

Linux 網(wǎng)絡(luò )文件系統的數據備份及恢復機制實(shí)現

作者: 時(shí)間:2016-09-12 來(lái)源:網(wǎng)絡(luò ) 收藏

系統簡(jiǎn)介

本文引用地址:http://dyxdggzs.com/article/201609/304200.htm

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

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

圖 1 系統簡(jiǎn)圖

圖 1 網(wǎng)絡(luò )文件系統簡(jiǎn)圖

NFS 的客戶(hù)機與服務(wù)器之間通過(guò) RPC 進(jìn)行通信,通信過(guò)程如下所示:

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

客戶(hù)訪(fǎng)問(wèn) NFS 目錄中的文件時(shí),NFS 客戶(hù)端向 NFS 服務(wù)器端發(fā)送 RPC 請求。

NFS 服務(wù)端接收客戶(hù)端發(fā)來(lái)的 RPC 請求,并將這個(gè)請求傳遞給本地文件訪(fǎng)問(wèn)程序,然后訪(fǎng)問(wèn)服務(wù)器主機上的一個(gè)本地的磁盤(pán)文件。NFS 服務(wù)器可以同時(shí)接收多個(gè) NFS 客戶(hù)端的請求,并對其進(jìn)行并發(fā)控制。

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

NFS 下的、恢復的主要功能

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

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

通過(guò)對系統重要數據的快速備份,切實(shí)保證系統數據的安全;

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

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

NFS 多版本備份技術(shù)

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

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

為了保證引入多版本特性后文件系統仍具有較好的性能,以及保證較高的空間利用率,我們開(kāi)發(fā)了一種高效的惰性版本生成算法。主要思想是:生成版本時(shí)不進(jìn)行文件的復制,僅復制目錄結構,在新版本生成后到下一版本生成前,如果有文件需要修改,則第一次修改時(shí)對該文件進(jìn)行復制,從而保證該文件狀態(tài)與對應的版本保持一致。

在一般情況下,目錄結構的數據量遠遠小于文件的數據量,因而這種方法可以大大降低版本生成時(shí)需要復制的數據量,因而具有較高的性能。同時(shí),這種把單個(gè)文件版本生成的實(shí)際操作推后到非做不可的時(shí)候,并且任意文件在兩次版本之間最多生成一次版本,因此這種惰性策略可以使需要實(shí)際生成版本的文件數量達到最少,同時(shí)還可以把多個(gè)文件版本生成操作分散到具體的文件操作中,從而避免了集中的一次性版本生成方法可能造成的服務(wù)暫時(shí)停頓的問(wèn)題。

版本生成后的結構如圖 2 所示。

圖 2 多版本生成示意圖

圖 2 多版本生成示意圖

具體算法包括兩個(gè)部分,即版本生成算法和文件第一次修改處理算法,版本生成算法主要完成版本生成工作,主要過(guò)程如下:

找到需要形成版本的最高層目錄作為原目錄;

利用文件系統提供的函數,生成新的目錄節點(diǎn),稱(chēng)為新目錄;


上一頁(yè) 1 2 3 4 5 6 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>