次のページ 前のページ 目次へ

1. はじめに

Coda 分散ファイルシステムの鍵となる構成要素はキャッシュマネージャ Venus です。

システムで Coda が有効な場合、プロセスが Coda ファイルシステム内のファイ ルにアクセスする際に、要求はオペレーティングシステム内のファイルシステム 層に転送されます。プロセスの要求をサービスするために、オペレーティングシ ステムは Venus と通信するでしょう。Venus はオペレーティングシステムから の要求を受信し、これをサービスするために永続的なクライアントキャッシュを 管理し、Coda ファイルサーバおよび (認証サーバのような) 関連するサーバへ リモートプロシージャコールを行います。Venus が要求のサービスを完了した場 合、適切なリターンコードおよび要求に関連するデータをオペレーティングシス テムへ応答します。実装は任意ですが、Coda のカーネルサポートは Venus との 会話を減らすために、最近処理した要求のミニキャッシュを保持するようにも出 来ます。Venus はそのミニキャッシュの要素が無効になった際に、そのことをカー ネルに通知する機構を持っています。

この文書はカーネルと Venus 間のコミュニケーションの細部について記述しま す。upcall および downcall と呼ばれる機構の定義を、それらが扱うデータの フォーマットとともに説明します。コールの結果の意味の不変部も記述します。

歴史的に Coda は Mach 2.6 の BSD ファイルシステムで実装されました。カー ネルと Venus 間のインターフェースは BSD VFS インターフェースにとても似て います。同様の機能性を提供し、引き数および返されるデータのフォーマットも BSD VFS にとても似ています。これは BSD システムで Coda 用カーネルレベル ファイルシステムドライバを実装するためのとても自然な環境をもたらします。 しかしながら、Linux や Windows95, NT のような他のオペレーティングシステ ムは、異なるインターフェースを備えたバーチャルファイルシステムを持ってい ます。

これらのシステム上で Coda を実装するには、Venus/カーネルプロトコルのリバー スエンジニアリングが必要です。さらに、プロトコルに対するいくつかの小さな 最適化や修正により、他のシステムでは著しく性能の向上が図れることが明らか になっています。この作業を促進し将来の移植を容易にするために、Venus とカー ネル間のコミュニケーションはもっと詳しい文書が必要なはずです。 これがこ の文書の目標です。


次のページ 前のページ 目次へ