ネットワークファイルシステム(NFS):分散ファイルアクセスプロトコル
ネットワークファイルシステム(NFS)は、ネットワーク経由でファイルを共有し、リモートファイルをローカルファイルのように扱えるようにするプロトコルです。複数のバージョンとセキュリティ機能を備え、Unix/Linux環境で広く利用されています。
概要
ネットワークファイルシステム(NFS)は、コンピュータがネットワーク経由で、あたかもローカルディスクに保存されているかのようにファイルへアクセスできるようにするクライアント・サーバープロトコルです。もともとSun Microsystemsで開発されたNFSは、UnixおよびUnix系システム間でファイルシステムを共有するための事実上の標準となりました。このプロトコルはリモートプロシージャコールと、オープン標準として公開された一連の正式仕様に基づいているため、複数のベンダーやオープンソースプロジェクトが互換性のあるサーバーとクライアントを実装できます。
画像ギャラリー
1 画像設計と中核的な特性
NFSでは、ディレクトリをエクスポートするサーバーと、エクスポートされたファイルシステムをマウントして操作するクライアントとの間で役割を分担します。主な特性は次のとおりです。
- プロトコルの仕組み:NFSは、システム間でファイル操作を行うためにリモートプロシージャコール(RPC)の仕組みを使用します。バージョンや設定に応じて、UDPまたはTCPによる転送が可能です。
- ステートレスとステートフル:初期のNFSバージョンは、障害からの復旧を簡素化するため、大部分がステートレスでした。後の改訂版では、統合されたファイルロックや委任など、ステートフルな機能が導入されました。
- キャッシュと性能:クライアントはネットワーク負荷を減らすため、ファイルデータと属性データをキャッシュします。一貫性を保つための方策やキャッシュ無効化は、性能と正確性に影響します。
- セキュリティ:認証には単純なUID/GIDマッピングから、Kerberosベースの認証、より新しい改訂版における暗号化転送まで、さまざまな方式があります。
バージョンと進化
NFSは複数の主要バージョンを通じて進化してきました。各版では機能が拡張され、以前のリリースにおける制約が解決されてきました。本番環境で一般的に利用される種類には、NFSv2、NFSv3、NFSv4があります。後のバージョンでは、ファイルロックと状態管理が統合され、広域ネットワークでの性能が改善されるとともに、より堅牢なセキュリティ機能が追加されました。プロトコルは公開標準およびRFCで記述されており、実装間の相互運用性が可能です。
導入と典型的な用途
管理者はサーバーからディレクトリをエクスポートしてクライアントにアクセス権を付与し、クライアントはこれらのエクスポートをローカルのファイルツリーにマウントします。典型的な用途には、学内ネットワーク上のホームディレクトリ、共同プロジェクト用ストレージ、多数のマシンが同一ファイルにアクセスする必要があるWebホスティングやアプリケーションホスティング、複数のホストがディスクイメージまたは共有ストレージにアクセスする仮想化環境などがあります。日常の運用では、クライアントコンピュータのユーザーはリモートファイルをローカルファイルとほぼ同様に扱い、一般的なファイル操作を実行できます。性能と信頼性は、基盤となるネットワークおよびサーバーの動作によって決まります。
比較と注目すべき事実
NFSはUnix環境で広く採用された最初のネットワークファイルシステムであり、SMB/CIFSやAndrew File System(AFS)などの代替方式と並んで、現在も重要な位置を占めています。NFSはオープン標準であるため、主要なオペレーティングシステムには独立した実装が存在します。リモートファイルシステムを選択する際には、性能、ロックの意味論、クロスプラットフォーム互換性、セキュリティ機能、管理の複雑さを考慮します。プロトコルの詳細や実装の指針については、プロトコル仕様またはNFSプロトコルの資料にあるベンダー文書を参照してください。
実用上の考慮事項
NFSを適切に導入するには、キャッシュ方針、ネットワークの信頼性、セキュリティ制御の均衡を取る必要があります。管理者はエクスポート、アクセス制御(たとえばホスト単位またはユーザーマッピングによる制御)を設定し、必要に応じてより強力な認証を統合します。サーバー障害は多数のクライアントに影響する可能性があるため、バックアップ方針と監視は重要です。プロトコルには複数のバージョンと拡張機能があるため、本番導入前にサーバーとクライアントの実装間で互換性試験を行うことが推奨されます。
関連項目
著者
AlegsaOnline.com ネットワークファイルシステム(NFS):分散ファイルアクセスプロトコル Leandro Alegsa
URL: https://ja.alegsaonline.com/art/69281
出典
- citeseer.ist.psu.edu : "Design and Implementation of the Sun Network Filesystem"