2012-06-21 173 views
1

我將解釋我正在努力實現的目標。我想要的可能是沒有正確描述爲分佈式文件系統。Ubuntu中的分佈式文件系統

我們有5個人在運行Ubuntu 12.04。我們每個人都有大約200-500GB的文件,我們希望不時分享。每個工作站都擁有文件的所有權。我們不時想分享文件。我還希望一個工作站能夠在另一個工作站上編輯文件。

我想要做的是有一個統一的分佈式文件系統,以便如果我們去統一的文件系統路徑它將列出每個工作站的所有文件。

我知道有可能創建網絡共享來獲得類似的結果。這有一個問題,它需要用戶檢查每個共享的適當文件。

我寧願創建一個顯示所有共享文件的單一統一共享,然後重定向到合適的計算機。

例如 CD/unifiedshare LS 將採取用戶到最高級別的目錄,並從5級不同的計算機

CD/unifiedshare/COMP1 LS 會列出所有的文件是顯示所有的共享文件由comp1共享

我已經看過一些分佈式文件系統,如Chirp,它似乎並不完全是我想要的。我不希望跨服務器/計算機保存文件。我寧願將comp1擁有的文件保留在comp1上。

我並不太擔心訪問控制或限制。我們都在同一棟大樓裏。 建議?

我確實通過類似的問題找到了這個問題,但沒有機會閱讀它。 http://www.openafs.org/main.html

+0

那麼,你想讓所有3000多個文件看起來像他們在一個目錄?如果機器1和機器2都有一個名爲'README'的文件,會發生什麼? – sarnold

+0

我不想讓所有的文件都在一個目錄中,而是每個工作站都有目錄或某種結構。在閱讀更多有關啁啾聲之後,看起來可以做到這一點。 – RSolis

+0

我想我很困惑'/ unifiedshare /'的作用是什麼。 – sarnold

回答

1

我會建議尋找NFS共享其中一臺機器。

或者,使用像unison這樣的軟件,您可以設置一個類似於Dropbox的客戶端 - 服務器系統,每個文件都將共享文件的副本同步到中央位置並返回給每個客戶端。

1

如果最大的問題是要知道五個工作站中哪個工作站有你想編輯的文件,可能最簡單的方法就是巧妙地使用locate(1)updatedb(8)程序。

讓每臺機器在其自己的一組導出文件上運行updatedb(8);使用-U選項來構建僅導出文件的數據庫,並使用-o將數據庫輸出到頂層導出目錄。例如,通過cron,/etc/cron.daily/重建這些。

讓每臺機器上的每個用戶在shell中設置LOCATE_PATH環境變量,以引用每個數據庫由所有五臺機器導出。然後,每個用戶只需運行locate README即可在所有五臺機器上查找名爲README的所有文件。

+0

感謝大家的建議。這很有幫助。我將不得不做更多的閱讀。 – RSolis

2

還有Unionfs。每個人都會提供文件的NFS導出。然後你會使用的unionfs加入他們的行列,然後裝入它像任何other filesystem

mount -t unionfs -o dirs=/Mine:/His:/Yours:/Theirs none /mnt/everyones 

在多個自述文件的上述情況下,/礦山/ README,因爲/我的是第一個上市的將是一個存在。