簡介
計算機通過檔案系統管理、存儲數據,而信息爆炸時代中人們可以獲取的數據成指數倍的增長,單純通過增加硬碟個數來擴展計算機檔案系統的存儲容量的方式,在容量大小、容量增長速度、數據備份、數據安全等方面的表現都差強人意。分散式檔案系統可以有效解決數據的存儲和管理難題:將固定於某個地點的某個檔案系統,擴展到任意多個地點/多個檔案系統,眾多的節點組成一個檔案系統網路。每個節點可以分布在不同的地點,通過網路進行節點間的通信和數據傳輸。人們在使用分散式檔案系統時,無需關心數據是存儲在哪個節點上、或者是從哪個節點從獲取的,只需要像使用本地檔案系統一樣管理和存儲檔案系統中的數據。
決定因素
檔案系統最初設計時,僅僅是為區域網路內的本地數據服務的。而分散式檔案系統將服務範圍擴展到了整個網路。不僅改變了數據的存儲和管理方式,也擁有了本地檔案系統所無法具備的數據備份、數據安全等優點。判斷一個分散式檔案系統是否優秀,取決於以下三個因素:
l 數據的存儲方式,例如有1000萬個數據檔案,可以在一個節點存儲全部數據檔案,在其他N個節點上每個節點存儲1000/N萬個數據檔案作為備份;或者平均分配到N個節點上存儲,每個節點上存儲1000/N萬個數據檔案。無論採取何種存儲方式,目的都是為了保證數據的存儲安全和方便獲取。
l 數據的讀取速率,包括回響用戶讀取數據檔案的請求、定位數據檔案所在的節點、讀取實際硬碟中數據檔案的時間、不同節點間的數據傳輸時間以及一部分處理器的處理時間等。各種因素決定了分散式檔案系統的用戶體驗。即分散式檔案系統中數據的讀取速率不能與本地檔案系統中數據的讀取速率相差太大,否則在本地檔案系統中打開一個檔案需要2秒,而在分散式檔案系統中各種因素的影響下用時超過10秒,就會嚴重影響用戶的使用體驗。
l 數據的安全機制,由於數據分散在各個節點中,必須要採取冗餘、備份、鏡像等方式保證節點出現故障的情況下,能夠進行數據的恢復,確保數據安全。
系統分類
網路檔案系統
(NFS) 最早由Sun微系統公司作為TCP/IP網上的檔案共享系統開發。Sun公司估計大約有超過310萬個系統在運行NFS,大到大型計算機、小至PC機,其中至少有80%的系統是非Sun平台。
Andrew系統
(AFS) 結構與NFS相似,由卡內基·梅隆大學信息技術中心(ITC)開發、現由前ITC職員組成的Transarc公司負責開發和銷售。AFS較NFS有所增強。
KASS系統
KASS File System(簡稱KFS)是開始軟體自主研發基於JAVA的純分散式檔案系統,功能類似於DFS、GFS、Hadoop,通過HTTP WEB為企業的各種信息系統提供底層檔案存儲及訪問服務,搭建企業私有雲存儲服務平台。
DFS系統
(DFS) 是AFS的一個版本,作為開放軟體基金會(OSF)的分散式計算環境(DCE)中的檔案系統部分。
如果檔案的訪問僅限於一個用戶,那么分散式檔案系統就很容易實現。可惜的是,在許多網路環境中這種限制是不現實的,必須採取並發控制來實現檔案的多用戶訪問,表現為如下幾個形式:
唯讀共享 任何客戶機只能訪問檔案,而不能修改它,這實現起來很簡單。
受控寫操作 採用這種方法,可有多個用戶打開一個檔案,但只有一個用戶進行寫修改。而該用戶所作的修改並不一定出現在其它已打開此檔案的用戶的螢幕上。
並發寫操作 這種方法允許多個用戶同時讀寫一個檔案。但這需要作業系統作大量的監控工作以防止檔案重寫,並保證用戶能夠看到最新信息。這種方法即使實現得很好,許多環境中的處理要求和網路通信量也可能使它變得不可接受。
NFS和AFS的區別
NFS和AFS的區別在於對並發寫操作的處理方法上。當一個客戶機向伺服器請求一個檔案(或資料庫記錄),檔案被放在客戶工作站的高速快取中,若另一個用戶也請求同一檔案,則它也會被放入那個客戶工作站的高速快取中。當兩個客戶都對檔案進行修改時,從技術上而言就存在著該檔案的三個版本(每個客戶機一個,再加上伺服器上的一個)。有兩種方法可以在這些版本之間保持同步:
無狀態系統 在這個系統中,伺服器並不保存其客戶機正在快取的檔案的信息。因此,客戶機必須協同伺服器定期檢查是否有其他客戶改變了自己正在快取的檔案。這種方法在大的環境中會產生額外的LAN通信開銷,但對小型LAN來說,這是一種令人滿意的方法。NFS就是個無狀態系統。
回呼(Callback)系統 在這種方法中,伺服器記錄它的那些客戶機的所作所為,並保留它們正在快取的檔案信息。伺服器在一個客戶機改變了一個檔案時使用一種叫回叫應答(callbackpromise)的技術通知其它客戶機。這種方法減少了大量網路通信。AFS(及OSFDCE的DFS)就是回叫系統。客戶機改變檔案時,持有這些檔案拷貝的其它客戶機就被回叫並通知這些改變。
無狀態操作在運行性能上有其長處,但AFS通過保證不會被回叫應答充斥也達到了這一點。方法是在一定時間後取消回叫。客戶機檢查回叫應答中的時間期限以保證回叫應答是當前有效的。回叫應答的另一個有趣的特徵是向用戶保證了檔案的當前有效性。換句話說,若一個被快取的檔案有一個回叫應答,則客戶機就認為檔案是當前有效的,除非伺服器呼叫指出伺服器上的該檔案已改變了。
數據軟體
Yonghong Z-Data Mart
Yonghong Data Mart是一款數據存儲、數據處理的軟體。
Yonghong Data Mart採用基於ZDFS的分散式列存儲系統,就是將數據分散存儲在多台獨立的設備上。傳統的網路存儲系統採用集中的存儲伺服器存放所有數據,存儲伺服器成為系統性能的瓶頸,也是可靠性和安全性的焦點,不能滿足大規模存儲套用的需要。分散式網路存儲系統採用可擴展的系統結構,利用多台存儲伺服器分擔存儲負荷,利用位置伺服器定位存儲信息,它不但提高了系統的可靠性、可用性和存取效率,還易於擴展。
Yonghong Data Mart的分散式檔案存儲系統 (ZDFS)是在Hadoop HDFS基礎上進行的改造和擴展,將伺服器集群內所有節點上存儲的檔案統一管理和存儲。這些節點包括唯一的一個NamingNode,在 ZDFS 內部提供元數據服務;許多MapNode,提供存儲塊。存儲在 ZDFS 中的檔案被分成塊,然後將這些塊複製到多個計算機中(Map Node)。這與傳統的 RAID 架構大不相同。塊的大小和複製的塊數量在創建檔案時由客戶機決定。Naming Node監控存在伺服器集群內所有節點上的檔案操作,例如檔案創建、刪除、移動、重命名等等。
Network File System
NFS介紹
NFS定義
(NFS)(Network File System)是個分散式的客戶機/伺服器檔案系統。NFS的實質在於用戶間計算機的共享。用戶可以聯結到共享計算機並像訪問本地硬碟一樣訪問共享計算機上的檔案。管理員可以建立遠程系統上檔案的訪問,以至於用戶感覺不到他們是在訪問遠程檔案。
NFS是個到處可用和廣泛實現的開放式系統。
NFS設計目標
允許用戶象訪問本地檔案一樣訪問其他系統上的檔案。提供對無盤工作站的支持以降低網路開銷。
簡化應用程式對遠程檔案的訪問使得不需要因訪問這些檔案而調用特殊的過程。
使用一次一個服務請求以使系統能從已崩潰的伺服器或工作站上恢復。
採用安全措施保護檔案免遭偷竊與破壞。
使NFS協定可移植和簡單,以便它們能在許多不同計算機上實現,包括低檔的PC機。
大型計算機、小型計算機和檔案伺服器運行NFS時,都為多個用戶提供了一個檔案存儲區。工作站只需要運行TCP/IP協定來訪問這些系統和位於NFS存儲區內的檔案。工作站上的NFS通常由TCP/IP軟體支持。對DOS用戶,一個遠程NFS檔案存儲區看起來是另一個磁碟驅動器盤符。對Macintosh用戶,遠程NFS檔案存儲區就是一個圖示。
NFS部分功能
伺服器目錄共享 伺服器廣播或通知正在共享的目錄,一個已分享資料夾通常叫做出版或出口目錄。有關已分享資料夾和誰可訪問它們的信息放在一個檔案中,由作業系統啟動時讀取。
客戶機訪問 在已分享資料夾上建立一種連結和訪問檔案的過程叫做裝聯(mounting),用戶將網路用作一條通信鏈路來訪問遠程檔案系統。
NFS的一個重要組成是虛擬檔案系統(VFS),它是應用程式與低層檔案系統間的接口。
VFS操作
close檔案關閉操作
create 檔案生成操作
fsync將改變保存到檔案中
getattr 取檔案屬性
link 用另一個名字訪問一個檔案
lookup 讀目錄項
mkdir建立新目錄
open 檔案打開操作
rdwr 檔案讀寫操作
remove 刪除一個檔案
rename 檔案改名
rmdir刪除一目錄
setattr 設定檔案屬性
AFS伺服器
Andrew File System(AFS)Andrew檔案系統(AFS)
AFS是專門為在大型分散式環境中提供可靠的檔案服務而設計的。它通過基於單元的結構生成一種可管理的分散式環境。一個單元是某個獨立區域中檔案伺服器和客戶機系統的集合,這個獨立區域由特定的機構管理。通常代表一個組織的計算資源。用戶可以和同一單元中其他用戶方便地共享信息,他們也可以和其他單元內的用戶共享信息,這取決於那些單元中的機構所授予的訪問許可權。
檔案伺服器進程 這個進程回響客戶工作站對檔案服務的請求,維護目錄結構,監控檔案和目錄狀態信息,檢查用戶的訪問。
基本監察(BOS)伺服器進程 這個進程運行於有BOS設定的伺服器。它監控和管理運行其他服務的進程並可自動重啟伺服器進程,而不需人工幫助。
卷宗伺服器進程 此進程處理與卷宗有關的檔案系統操作,如卷宗生成、移動、複製、備份和恢復。
卷宗定位伺服器進程 該進程提供了對檔案卷宗的位置透明性。即使卷宗被移動了,用戶也能訪問它而不需要知道卷宗移動了。
鑑別伺服器進程 此進程通過授權和相互鑑別提供網路安全性。用一個“鑑別伺服器”維護一個存有口令和加密密鑰的鑑別資料庫,此系統是基於Kerberos的。
保護伺服器進程 此進程基於一個保護資料庫中的訪問信息,使用戶和組獲得對檔案服務的訪問權。
更新伺服器進程 此進程將AFS的更新和任何配置檔案傳播到所有AFS伺服器。
AFS還配有一套用於差錯處理,系統備份和AFS分散式檔案系統管理的實用工具程式。例如,SCOUT定期探查和收集AFS檔案伺服器的信息。信息在給定格式的螢幕上提供給管理員。設定多種閾值向管理者報告一些將發生的問題,如磁碟空間將用完等。另一個工具是USS,可創建基於帶有欄位常量模板的用戶帳戶。Ubik提供資料庫複製和同步服務。一個複製的資料庫是一個其信息放於多個位置的系統以便於本地用戶更方便地訪問這些數據信息。同步機制保證所有資料庫的信息是一致的。
KFS 檔案庫
KFS(KASS File System )
實現價值
1、高性能和高可靠性。支持通過增加伺服器實現高並發、大存儲量、大吞吐量,且有效避免單點故障。
2、可作為多個系統之間的檔案共享存放平台,多個系統均可遠程訪問 KFS 檔案庫,避免檔案孤島。
3、檔案得到有效保護,多副本方式有效防止檔案因單點故障導致無法及時訪問或丟失、損壞的問題。
4、支持廣域網異地分散式存儲,同時控制流與數據流分離的模式,有效解決多網點辦公環境下公司文檔集中管理分散訪問的問題,極大的最佳化文檔管理模式與傳輸速度。
功能特點
1、完全基於 JAVA 實現,支持跨平台部署。
2、可獨立運行,也可內嵌至任何支持 JAVA 的 WEB 容器中運行。
3、不依賴任何第三方程式,也不依賴任何資料庫。
4、 二次開發非常簡單。客戶端只需傳送簡單的 HTTP 請求至 KFS 伺服器的指定 URL 地址,即可完成 KFS 功能的遠程調用。開發人員可以通過 IE 瀏覽器來完成所有的 KFS 功能調用。
5、提供了豐富的功能。與作業系統提供的檔案操作功能比較,我們提供了豐富的高級功能,如版本管理、檔案刪除恢復、檔案副本、檔案日誌、事件驅動等等。
6、系統高可靠性。優異的架構,無單點故障的設計,集群同步的支持,信息流與數據流的分離設計,多副本機制,從多方面保障了整個系統的高可靠性和可用性。
7、系統高可擴展性。系統通過簡單配置即可實現檔案存儲空間的擴展,可通過擴展名稱伺服器集群來提高名稱伺服器的並發性能,可通過增加副本檔案來實現存儲伺服器的 I/O 吞吐量擴展。
8、支持跨廣域網檔案存儲。由於檔案有多項副本存在,支持多項副本存儲在不同城市的數據伺服器,以實現各地快速訪問檔案目的。
相關名詞
相關條目:Distributed Computing分散式計算;Distributed Computing Environment,OSF開放軟體基金會(OSF)的分散式計算環境;Distributed Database分散式資料庫;File Systems in the Network Environment 網路環境中的檔案系統。