Coda

Coda は、カーネギーメロン大学の Mahadev Satyanarayanan らが1987年から続けている研究プロジェクトの一環として開発した分散ファイルシステムAndrew File System (AFS) の直接の後継であり、機能的にも多くの類似点がある。LinuxNetBSDFreeBSD で動作する。Coda に影響を受けたファイルシステムとして InterMezzo がある。Coda は現在も開発が続けられており、研究というよりも商用の頑健な製品を作ることに中心が移っている。

機能

Coda にはネットワークファイルシステムにふさわしい機能が多くあり、その一部は独特のものである。

  1. モバイル・コンピューティングのための接続断操作
  2. 比較的フリーなライセンス条件で利用可能
  3. クライアント側の永続性キャッシュによる高性能
  4. サーバレプリケーション
  5. 認証、暗号化、アクセス制御などのセキュリティモデル
  6. サーバネットワークの一部がダウンしても運用継続可能
  7. ネットワーク帯域幅への順応
  8. 高いスケーラビリティ
  9. ネットワークに障害があってもうまく機能する共有の仕組み

Coda は、ネットワークのコネクションが失われたとき、サーバデータへのアクセス手段としてローカルキャッシュを使う。通常の運用では、ユーザーのファイルシステムでの読み書きによって、クライアントはサーバとデータをやり取りし、ユーザーが重要と指定したデータを接続断に備えてキャッシュしておく。ネットワーク接続が途切れたとき、Coda のクライアントはローカルキャッシュを使って運用を続け、その間の更新を記録しておく。ネットワークが再び接続されたとき、クライアントは更新記録をサーバに送り、同期処理を行う。その後、再び通常の運用に戻る。

AFSとは、データのレプリケーション方法が異なる。AFSは悲観的レプリケーション戦略を採用していて、読み書きが可能なサーバは1台だけで、他はリードオンリーの複製になっていた。Coda では、どのサーバも読み書き可能になっている。このためAFSよりも可用性が大幅に向上している。

このような機能があるため、同じファイルやディレクトリでありながら、個々のクライアントやサーバが独自に更新を行って、いわゆるコンフリクトが発生することがある。Coda ではコンフリクトに手動または自動で対処するための各種ツールを用意している。

外部リンク