Andrew File System ( AFS ) は、信頼できるサーバー群を用いて、すべてのクライアントワークステーションに均一で場所を意識させないファイル名空間を提供する分散ファイルシステムです。カーネギーメロン大学によってAndrewプロジェクトの一環として開発されました。[1]元々は「Vice」という名称でしたが、[2] 「Andrew」はAndrew CarnegieとAndrew Mellonを指します。主な用途は分散コンピューティングです。
AFS [3]は、従来のネットワークファイルシステムに比べて、特にセキュリティとスケーラビリティの面でいくつかの利点があります。モルガン・スタンレーでは、25,000台を超えるクライアントを抱えるエンタープライズAFSを導入しています。[4] AFSは認証にKerberosを使用し、ディレクトリにはユーザーとグループのアクセス制御リストを実装しています。各クライアントは、同じファイルへの後続のリクエストの速度を向上させるために、ローカルファイルシステムにファイルをキャッシュします。これにより、サーバークラッシュやネットワーク障害が発生した場合でも、ファイルシステムへのアクセスを制限できます。
AFSは弱い一貫性モデルを採用しています。[5]オープンファイルへの読み取りおよび書き込み操作は、ローカルにキャッシュされたコピーに対してのみ行われます。変更されたファイルが閉じられると、変更された部分がファイルサーバーにコピーされます。キャッシュの一貫性はコールバック機構によって維持されます。ファイルがキャッシュされると、サーバーはこれを記録し、他の誰かがそのファイルを更新した場合にクライアントに通知することを約束します。コールバックは破棄され、タイムアウトを含むクライアント、サーバー、またはネットワークの障害発生後に再確立する必要があります。コールバックの再確立にはステータスチェックが含まれ、ファイル自体の再読み取りは必要ありません。
ファイルロック戦略の結果として、AFS は大規模な共有データベースや、クライアントシステム間で共有されるファイル内のレコード更新をサポートしていません。これは、大学のコンピューティング環境のニーズに基づいて意図的に設計されたものです。例えば、Andrew プロジェクトのオリジナルの電子メールシステムである Andrew Message System では、メールボックスごとに 1 つのファイル(mboxなど)を使用するのではなく、メッセージごとに 1 つのファイル( maildirなど)を使用しています。共有データベースの処理については、「AFS とバッファ付き I/O の問題」を参照してください。
AFS の重要な機能の一つは、ボリュームです。ボリュームは、ファイル、サブディレクトリ、AFSマウントポイント(他の AFS ボリュームへのリンク)のツリーです。ボリュームは管理者によって作成され、AFS セル内の特定の名前付きパスにリンクされます。ボリュームが作成されると、ファイルシステムのユーザーは、ボリュームの物理的な位置を気にすることなく、通常どおりディレクトリやファイルを作成できます。ボリュームには、消費されるスペースを制限するためにクォータを割り当てることができます。必要に応じて、AFS 管理者はユーザーに通知することなく、そのボリュームを別のサーバーやディスクに移動できます。この操作は、ボリューム内のファイルが使用中でも実行できます。
AFSボリュームは、読み取り専用のクローンコピーに複製できます。読み取り専用ボリューム内のファイルにアクセスする場合、クライアントシステムは特定の読み取り専用コピーからデータを取得します。ある時点でそのコピーが利用できなくなった場合、クライアントは残りのコピーを探します。繰り返しますが、データのユーザーは読み取り専用コピーの場所を意識する必要はありません。管理者は必要に応じてそのようなコピーを作成し、再配置することができます。AFSコマンドスイートは、すべての読み取り専用ボリュームに、読み取り専用コピーが作成された時点の元の読み書き可能ボリュームの正確なコピーが含まれることを保証します。
Andrewワークステーション上のファイル名空間は、共有名前空間とローカル名前空間に分割されています。共有名前空間(通常、Unixファイルシステムでは/afsとしてマウントされます)はすべてのワークステーションで同一です。ローカル名前空間は各ワークステーションに固有のものです。ローカル名前空間には、ワークステーションの初期化に必要な一時ファイルと、共有名前空間内のファイルへのシンボリックリンクのみが含まれます。
Andrewファイルシステムは、サン・マイクロシステムズの人気ネットワークファイルシステム(NFS)バージョン4に大きな影響を与えました。さらに、AFSの派生形であるDCE分散ファイルシステム(DFS)は、1989年にOpen Software Foundationの分散コンピューティング環境の一部として採用されました。最終的に、AFS(バージョン2)はCodaファイルシステムの前身となりました。
オリジナルの他に、いくつかの実装が開発されました。OpenAFS は、 2000年にTransarc(IBM )がリリースしたソースコードから構築されました。[6] Transarcのソフトウェアは廃止され、サポートも終了しました。[いつ? ] Arlaは、1990年代後半から2000年代初頭にかけてストックホルムの王立工科大学 で開発されたAFSの独立した実装です。 [7] [8]
Linuxカーネルの ソースコードには、少なくともバージョン2.6.10以降にAFSクライアントの4番目の実装が存在します。 [9] Red Hatによってコミットされたこの実装は、2024年1月時点ではまだ不完全な、かなりシンプルなものです[アップデート]。[10]
次のアクセス制御リスト (ACL) 権限を付与できます。
ファイルとサブディレクトリに影響する権限には次のものがあります:
さらに、AFS には、ファイルへのアクセスに影響を与えないアプリケーション ACL (A) ~ (H) が含まれています。