ドキュメントを保存する小さなホームサーバーを実行しています。このサーバーのディスクはRAID1構成(Linux mdを使用)であり、ディスクを紛失しないように定期的に外付けハードドライブにバックアップされています。ただし、私は常にSMB共有を使用して、ホームネットワーク上の他のコンピューターからファイルにアクセスしているため、速度が大幅に低下します(特に、WLAN経由で接続している場合)。これは非常に面倒です。たとえば、デジタルカメラのRAWなどの大きなファイルを編集する場合。
私はこの問題の解決策を探していました。ファイルアクセスを高速化するには、ある種のローカルキャッシュを提供する必要があります。クライアントは、サーバー上にすべてのデータのコピーを保持しないことが望ましいです。これは、非常に大量の写真のコレクションで構成されており、そのほとんどに頻繁にアクセスすることはないためです。代わりに、アクセスされたファイルのみをキャッシュし、変更をバックグラウンドで同期する必要があります。理想的には、スマートな先読み(たとえば、現在開いているファイルと同じディレクトリにあるファイルをキャッシュする)も実行しますが、それは少し多くのことを求めていると思います。同期は自動である必要があります(ファイルの変更時)。私のユースケースでは、(異なるクライアントで同時に)競合するファイルの変更が発生する可能性は低いですが、適切に処理される(ユーザーへの通知)ことが望ましいです。
これまでに、次のオプションに出くわしました。
dropboxに似たもの。 iFolder が近づいている唯一のもののようですが、その評判(安定性)と要件は私を先延ばしにしました。
OpenAFS などの分散ファイルシステム。これによりファイルアクセスが高速化されるかどうかはわかりません。それはおそらく私が必要とするものにはやり過ぎです。
たぶんNFSやSambaでさえこれらの可能性を提供します。 Windowsのオフラインファイルについて少し読みましたが、その操作は制限されているようです(少なくともWindows XPでは)。
これは個人的な使用のためだけなので、私はたくさんのお金を使うつもりはありません。無料のソリューションが望ましいでしょう。また、サーバーはLinuxで実行する必要があり、少なくともWindows用のクライアントが必要です。
編集:それ以来、OpenAFS(非常に複雑なプロセス)をセットアップしました。それは私のニーズのほとんどに対応しているようです。ファイルはローカルにキャッシュされ、キャッシュされたファイルへのアクセスを高速化します。もちろん、ファイルへの最初のアクセスはまだ遅いです。 Disconnected AFSが将来のOpenAFSリリースで計画されているのを楽しみにしています。これにより、ファイルの事前キャッシュが可能になります。これは、カメラRAWなどの大きなファイルのセットを編集するのに最適です。
FS-Cacheを使用してNFSv4の読み取りと書き込みをキャッシュできます。 Red Hatは 優れたドキュメント と書いています。
FS-Cacheは、ファイルシステムがネットワーク経由で取得したデータを取得し、ローカルディスクにキャッシュするために使用できる永続的なローカルキャッシュです。これにより、ネットワーク経由でマウントされたファイルシステム(NFSなど)からデータにアクセスするユーザーのネットワークトラフィックを最小限に抑えることができます。
切断モードで動作するファイルシステムの問題は、1)同時アクセスと2)同期です。同時アクセスが必要ない場合は、リムーバブルハードドライブを入手して持ち運びます。同時アクセスが必要な場合は、同期に問題が発生します。ローカルコピーを操作しているクライアントは、ネットワーク上のコピーが古くなったことを他のクライアントにどのように通知するのでしょうか。考えてみれば、同期に近づくほど、キャッシュを使用する意味が少なくなります。したがって、2つの極端な点が通常勝ちます。ポータブルドライブを入手するか、キャッシュしないファイルシステムを使用することができます。
写真の場合、おそらく実際に必要なのはローカルインデックスです。これにより、インデックス内でローカルに検索できますが、ネットワークから実際のファイルをフェッチできます。これはファイルシステム自体よりも高いレベルで動作するものなので、探しているものが見つからない理由は、間違ったものを探しているためです。 :)おそらく画像インデックスプログラムを探しているはずです。私が思い出すように、これはいくつかの方法で解決された問題です。
より一般的な解決策としては、SubversionやCVSなどに触発されたものがおそらくかなりうまく機能するでしょう。