Linux

文件伺服器複製選項

  • July 28, 2011

我正在嘗試在基於 centos 的 linux 伺服器上的不同地理位置設置文件伺服器。目前我計劃現在擁有兩台這樣的伺服器,並將在不久的將來將其擴展到其他領域。當文件被添加到任何位置時,文件伺服器應該鏡像自身(我還沒有得出刪除策略,但只是想在從主伺服器刪除文件時應該允許刪除文件)。目前我在想我會有 apache“目錄列表”和 rsync 來完成這項工作。我只是想知道是否有更好的工具來完成上述工作。此外,我想听聽一些關於更好的目錄列表腳本(基於 php/python)的建議。如果此工具具有一些搜尋功能、上傳文件的選項等(我要求太多了嗎?;)),那就太好了。

注意:目前伺服器還託管一個顛覆複製。我還考慮將所有文件送出到 subversion 並在輔助位置簽出。但是我覺得空間會是一個限制,因為我會不斷刪除一些不需要的文件,以便我可以控制磁碟空間,這是不可能的,因為 svn 的版本歷史將保存數據

提前致謝。

在一般情況下,這是一個非常難以解決的問題。地理分佈的多主複製文件系統是一個即使您沒有解決整個問題也可以獲得博士學位的主題,因此 PHP 或 Python 的一小段程式碼不太可能走得很遠。

如果您只處理文件添加(沒有修改)並且沒有文件名衝突的可能性,那麼問題就會變得容易得多,您可以使用一個小的 shell 腳本來解決問題。但請注意,這不是一種常見的情況——您可能認為現在是,但我敢打賭使用者的想法會有所不同。

我的建議:找一個了解這類事情的人,給他們一些錢來進行徹底的需求分析並提出解決方案。

如果“文件伺服器”意味著使用者通過 Samba 或 NFS 之類的方式將驅動器映射到該伺服器,那麼這就是 Womble 描述的非常困難的問題。我已經看到一些系統有點接近這個,但它們不涉及掛載卷;他們在複製方案中涉及的每個目錄樹上使用一個特定的客戶端,並使用一些複雜的衝突檢測算法來確保事情不會被踩到。在這種情況下,像 Access 數據庫這樣的多次打開文件根本無法正常工作。

如果“文件伺服器”意味著動態網站的靜態文件伺服器,那就容易多了。DRBD 和 Rsync 就是為這種工作負載而設計的。不過,您必須做很多牽手,這表明可能會發生其他事情。

引用自:https://serverfault.com/questions/292577