Andrew File System

Andrew File System (AFS) の詳細解説



Andrew File System (AFS) は、カーネギーメロン大学で開発された分散ファイルシステムです。大学創設者のアンドリュー・カーネギーアンドリュー・メロンの名にちなんで名付けられました。主に分散コンピューティング環境で使用され、高いセキュリティとスケーラビリティが特徴です。

AFS の主な特徴



AFS は、従来のネットワークファイルシステムと比べて、セキュリティとスケーラビリティにおいて大きな進歩を遂げました。主な特徴は以下の通りです。

堅牢なセキュリティ: ケルベロス認証システムによる認証と、ディレクトリ毎のアクセス制御リスト (ACL) を用いたアクセス制御により、高いセキュリティを実現しています。
優れたスケーラビリティ: クライアント側でのファイルキャッシュにより、サーバへの負荷を軽減し、大規模な環境への対応を可能にしています。キャッシュの一貫性は、callback機構によって維持されます。サーバやネットワーク障害発生時にも、影響を最小限に抑えることができます。
効率的なデータアクセス: ファイルへの読み書きは、まずローカルキャッシュに対して行われます。変更は、ファイルクローズ時にサーバに書き戻されます。この仕組みにより、アクセス速度の大幅な向上が実現されています。callback機構による再試行によって、システムの安定性も確保されています。
ボリューム管理: AFSでは、ボリュームと呼ばれる単位でファイルシステムを管理します。ボリュームはディレクトリツリーと、他のAFSボリュームへのリンクから構成され、物理的な位置を意識せずにファイル操作が可能です。管理者はボリュームの移動も容易に行え、ユーザへの影響はありません。リードオンリーレプリケーションもサポートし、可用性を高めています。
ファイル名空間の分離: Andrew ワークステーション上では、共有ファイル名空間とローカルファイル名空間が分離されています。共有ファイル空間は全ワークステーションで共通で、ローカルファイル空間は各ワークステーション固有です。
ファイルロック: ファイル単位でのファイルロックを採用しているため、データベースのように複数のクライアントが一つのファイル内のレコードを同時に更新するような用途には適していません。これは、大学のコンピュータ利用形態を考慮した設計上の決定です。

AFS の実装



AFSにはいくつかの実装が存在します。

トランザーク版 (IBM): 既にサポートは終了しています。
OpenAFS: オープンソースとして広く利用されています。
Arla: 別のAFS実装です。
Linuxカーネル 2.6.10 以降: レッドハットが開発した実装がありますが、完全な実装とは言い切れません。

カーネギーメロン大学では、後継ファイルシステムとしてCodaが開発されています。

AFS のパーミッション



AFSのACLには、以下のパーミッションが設定されます。

ディレクトリに対するパーミッション:

Lookup (l): ディレクトリの内容表示とサブディレクトリへのアクセス可否の確認
Insert (i): 新規ファイルやサブディレクトリの追加
Delete (d): ファイルやサブディレクトリの削除
Administer (a): ディレクトリのACL変更。ユーザは自身のホームディレクトリに対してこのパーミッションを保持します。

ファイルとサブディレクトリに対するパーミッション:

Read (r): ファイルの内容参照やサブディレクトリ一覧表示。通常のUNIXファイルパーミッションとの併用が必要です。
Write (w): ファイルの更新。通常のUNIXファイルパーミッションとの併用が必要です。
* Lock (k): flockを使ったプログラム実行

さらに、アプリケーション用の設定など、通常のファイルアクセスとは関係のないパーミッションも存在します。

AFS の歴史的影響



AFS は、サン・マイクロシステムズのNetwork File System (NFS) バージョン4に影響を与えました。また、1989年にはOSFがAFSをベースにDCE/DFSを開発しています。AFSは、現代の分散ファイルシステムの発展に大きく貢献した重要なシステムと言えるでしょう。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。