Linux

在電腦上保留 nfs mount 的本地副本

  • July 22, 2011

當我的筆記型電腦在我的家庭網路上時,我會在我的筆記型電腦上掛載我所有的主目錄和其他任何東西。我想知道當我的筆記型電腦斷開網路時,是否有辦法保留 nfs 掛載的本地副本。

一個好處是能夠合併更改的文件夾和文件等。

離線記憶體是一回事,但您要求的更困難。如果在兩台機器未連接的情況下同時在伺服器和客戶端上修改文件,則必須有人決定保留哪個版本,或者合併兩個版本。當兩台機器重新連接時要求這種使用者輸入不適合文件系統模型。

有幾種NFS 記憶體工具,但大多數都是為線上記憶體而設計的,以加快訪問速度。當文件在任一端被修改時,它們需要伺服器和客戶端之間的通信,因此它們不適合離線場景。AFS也是如此。

正在努力建構一個支持斷開連接操作的可用分佈式文件系統:

  • Coda是一個分佈式文件系統,具有許多高級功能,特別是支持斷開連接的操作。這是一個比較老的項目,相當成熟,並且集成在 Linux 核心中。當客戶端離線時,其修改儲存在隊列中。當客戶端重新連接時,如果可能,這些修改會被集成,並且 Coda 帶有工具來在發生衝突時協助合併。
  • Tsumufs是一個相對較新的項目。它在現有的分佈式文件系統(例如 NFS)之上添加了斷開連接的操作。我認為它還沒有完全準備好生產。

我不相信文件系統是解決這個問題的正確地方。衝突處理很困難並且需要使用者輸入。

對於技術含量較低的解決方案,我推薦Unison雙向文件同步器。在伺服器和筆記型電腦上保留文件的本地副本。在連接筆記型電腦後和斷開連接之前,立即執行以同步兩側。如果有衝突,Unison 會告訴你(如果沒有衝突,它會靜默執行);只要在連接和斷開時始終保持同步,就不會發生衝突。

提供更多服務但確實需要一些學習的解決方案是使用一些分佈式版本控制軟體。在每台機器上保留一個儲存庫,在您更改文件時送出,並且不要忘記盡可能推送/拉取更改。

引用自:https://unix.stackexchange.com/questions/17216