MooseFS是一種容錯的,網絡分佈式文件遍及幾個物理服務器這是對用戶可見作為一個資源&NBSP數據系統;對於標準的文件操作MooseFS充當其他Unix的相似的文件系統。:
  *一個層次結構(目錄樹)
  *存儲POSIX文件屬性(權限,最後訪問時間和修改時間)
  *支持特殊文件(塊和字符設備,管道和套接字)
  *符號鏈接(文件名指向目標的文件,不一定MooseFS)和硬鏈接(文件不同的名稱這指的是相同的數據上MooseFS)
  *訪問到文件系統可以基於IP地址和/或口令有限
MooseFS與眾不同的特點是:
  *高可靠性(數據的多個副本可以存儲跨越不同的計算機上)
  *容量是通過附加新的計算機/磁盤擴展動態
  *被刪除的文件保留時間可配置週期(一個文件系統級別“垃圾桶”)
  *文件的相干快照,即使文件被寫入/訪問
MooseFS由四個部分組成:
  *管理服務器(主服務器)&ndash的;在一台機器管理整個文件系統,存儲元數據的每個文件(在大小信息,屬性和文件位置(S),其中包括關於非正規的文件,即目錄,插座,管道和設備的所有信息)。
  *數據服務器(塊服務器) - 任意數量的商用服務器存儲文件數據,並在它們之間進行同步(如果假設某個文件的多個副本存在)的。
  *元數據備份服務器(S)(metalogger服務器) - 所有這些任意數量的服務器,存儲元數據更新日誌,並定期下載主要的元數據文件;從而促進這些服務器的管理服務器的角色時,首要主停止工作。
  *訪問客戶端計算機(安裝)在MooseFS文件 - 任意數量的使用mfsmount流程與管理服務器進行通信機(接收和修改文件的元數據),並與大塊服務器(交換實際的文件數據)。
mfsmount是基於FUSE的機制(文件系統在用戶空間),所以MooseFS可以用每一個工作FUSE執行操作系統(Linux操作系統,FreeBSD的,MacOS X系統等)
元數據被存儲在管理服務器的存儲器,同時保存到磁盤(作為一個定期更新的二進制文件,並立即更新增量日誌)。主二進制文件以及日誌同步到metaloggers(如果存在的話)。
文件數據被劃分成片段(塊)與最大64MiB每個。每塊本身就是對數據服務器(大塊服務器)所選磁盤中的文件。
高可靠性是通過配置多個不同的數據服務器,適合於實現“目標”值對於給定的文件設置(拷貝保持的號碼)來實現的。
系統是如何工作
已安裝MooseFS一個客戶端計算機上的所有文件的操作是完全一樣的,因為它們會與其它文件系統。操作系統內核傳輸所有文件操作的熔斷器模塊,它與mfsmount過程進行通信。該mfsmount過程通過網絡隨後與管理服務器和數據服務器(塊服務器)進行通信。這整個過程中是完全透明的用戶。
mfsmount與管理服務器上的每個文件元數據操作時,必須有通信:
  *創建文件
  *刪除文件
  *閱讀目錄
  *閱讀和改變屬性
  *改變文件大小
  *在讀取或寫入數據的起始
  *上MFSMETA任何訪問特殊文件
mfsmount使用直接連接到數據服務器(塊服務器),其存儲一個文件的相關塊。當寫入文件,完成寫入過程後,管理服務器從mfsmount接收信息更新文件的長度和最後修改時間。
此外,數據服務器(塊服務器)彼此通信,以複製數據,以實現在不同的機器的文件的副本的適當數目。
 
容錯
 
管理命令允許系統管理員指定的“目標”,還是應該保持,在每個目錄或每個文件級別的份數。的目標設定為大於1,並具有一個以上的數據服務器將提供容錯。當該文件的數據存儲在多個副本(在一個以上的數據服務器),該系統是抗故障或單個數據服務器的臨時網絡故障。
這當然不是指文件具有“目標”設置為1,在這種情況下,該文件將只存在一個單一的數據服務器上,不論多少數據服務器部署在系統中。
特別重要的文件可能有他們的目標設定為一個數高於2,這將允許這些文件是抗多台服務器的細目一次。
在一般設置為可用的份數應比難以接近或亂序的服務器的預期數目多一個。
在其中單個數據服務器出現在網絡中的故障或斷開的情況下,該文件在其內存儲了至少有兩個拷貝,仍將從另一數據服務器訪問。這是現在的數據“下的目標”將是另一個數據訪問服務器上複製再次提供副本所需的數量。
應當指出的是,如果可用的服務器的數量是比“目標”為給定的文件中設置下,拷貝的所需數量不能被保留。同樣地,如果有服務器作為當前設置的目標,並且如果數據服務器已達到其容量的100%的相同數目,這將是無法開始保存文件,現在是低於其目標閾由於另一個的副本數據服務器脫機。在這些情況下,一個新的數據服務器應當以保持該文件的副本的所需數目盡快連接到系統。
一個新的數據服務器可以連接到該系統中的任何時間。新的生產能力將立即成為可用來存儲新的文件或文件持有來自其他服務器的數據複製副本。
行政事業存在的查詢文件系統中的文件的狀態,以確定是否有任何文件目前都低於他們的目標(套份數)。這個工具也可用於根據需要來改變的目標設定。
存儲在塊中的數據片段被版本化,從而重新連接數據服務器的數據的舊副本(例如,如果它已經脫機一段時間),不會造成文件變得語無倫次。數據服務器將同步本身持有的塊,其中,所述廢棄的塊將被刪除,該自由空間將被重新分配以保持新的塊的當前版本。
一個(在運行過程mfsmount)客戶機的故障不會對文件系統的一致性,或對其他客戶端的操作沒有影響。在最壞的情況下,尚未被發送從失敗的客戶端計算機中的數據可能會丟失。
 
PLATFORMS
  MooseFS可以用每一個工作FUSE實現操作系統:
  * Linux操作系統(Linux的2.6.14及以上有包括在官方內核FUSE支持)
  * FreeBSD的
  *的OpenSolaris
  *的MacOS X
主服務器,metalogger服務器和大塊服務器,也可以在Solaris或Windows與Cygwin的運行。不幸的是沒有FUSE它不會是可以安裝在這些操作系統的文件系統
什麼在此版本中是新的:
- < LI>最重要的變化包括固定信號處理多線程模塊,在mfsexport.cfg目標,trashtime限制,和一個簡單的檢查下載的元數據文件。
什麼是1.6.19版本的新:
- 在實質性變化介紹給metalogger機metarestore工具對元數據的更好的完整性。
- 在CS的掃描進度條增加了。
- 在主名稱現在,當連接失敗解決。
- 在當上一個丟失創建一個新的會話。
- 在很多其他的bug修復和改進。
什麼在1.6.17版本是新的:
- 在這個版本中,我們引入了一個自動數據高速緩存管理。
- 這足以只升級主服務器(在塊服務器沒有改變'或客戶代碼作了)。
- 在內核緩存機制總是一直存在,但到現在緩存是在打開一個文件總是被清零。現在MooseFS控制是否以清除它,或通過檢查,如果該文件是或不是由另一個客戶端修改。讓我們來看看一些場景。
- 在第一種方案:
- 1。計算機A讀取文件X
- 2。計算機B讀取該文件X
- 3。計算機A要讀取的文件X - 我們離開緩存(該文件沒有改變。)
- 在第二種情況:
- 1。計算機A讀取文件X
- 2。計算機A寫入文件X
- 3。計算機A想要器讀取文件X - 我們離開緩存(該文件被更改,但計算機A知道這些變化)
- 在第三種情況:
- 1。計算機A讀取文件X
- 2。計算機B寫入文件X
- 3。計算機A要讀取的文件X - 在這裡,我們要強制清空緩存(因為變化是由計算機B和計算機A做不知道他們)
- 在實際環境中的第一和第二情景發生遠遠往往比第三種情況,這就是為什麼它是合理的離開所述高速緩存的內容並獲得整個系統的性能。
- 當然也有一些平均情況(但也存在之前)像這樣的:
- 1。計算機A打開文件X完全讀取它(文件保留在緩存)
- 2。計算機B修改文件X
- 3。計算機A再次讀取該文件X(但沒有關閉或重新打開它 - 只是移動位置0和重讀吧)
- 在這種情況下計算機A將獲得相同的數據在步驟1中,但是同樣也發生在MooseFS之前。
- 的屬性nodatacache還推出即禁止緩存文件。從版本1.6.17的文件與nodatacache屬性表現得像文件做舊版本MooseFS的。該標誌可以使用的工具mfsseteattr,mfsdeleattr和mfsgeteattr。
- 在此標誌加入預防性,可能你不會需要使用它。如果一段時間後,看來這真的是沒用的,將被刪除。但是,如果你發現任何情況下/場景它要求禁用自動緩存機制,請與我們分享。
評論沒有發現