検索

第21章 Network File System (NFS)

download PDF
ネットワークファイル システム(NFS )により、リモートホストはネットワーク経由でファイルシステムをマウントし、そのファイルシステムをローカルにマウントされているかのように対話できます。また、システム管理者は、リソースをネットワーク上の中央サーバーに統合することができるようになります。
この章では、基本的な NFS の概念と補足的な情報に焦点を絞って説明します。

21.1. 仕組み

現在、NFS には 3 つのバージョンがあります。NFS バージョン 2 (NFSv2)は古く、広くサポートされています。NFS バージョン 3 (NFSv3)には、64 ビットファイルハンドル、Safe Async 書き込み、より堅牢なエラー処理など、より多くの機能があります。NFS バージョン 4 (NFSv4)はファイアウォールやインターネットを介して動作し、portmapper を必要とせず、ACL に対応し、ステートフルな操作を利用します。Red Hat Enterprise Linux は NFSv2、NFSv3、および NFSv4 クライアントをサポートしており、NFS 経由でファイルシステムをマウントする場合、Red Hat Enterprise Linux はデフォルトで NFSv3 を使用します(サーバーが対応している場合)。
NFS のすべてのバージョンは、IP ネットワーク上で実行中のTCP( Transmission Control Protocol )を使用することができます。この場合、NFSv4 ではこれが必要です。NFSv2 および NFSv3 では、IP ネットワークで実行している User Datagram Protocol (UDP)を使用して、クライアントとサーバー間のステートレスなネットワーク接続を提供できます。
UDP で NFSv2 または NFSv3 を使用する場合、通常の条件下でステートレスな UDP 接続では、TCP よりもプロトコルのオーバーヘッドが少なく、非常にクリーンで調整されていないネットワークでより優れたパフォーマンスに変換できます。NFS サーバーは、クライアントが共有ボリュームにアクセスすることを許可されている後に、ファイルハンドルをクライアントに送信します。このファイルハンドルはサーバー側に保存される不透明なオブジェクトであり、クライアントからの RPC 要求と共に渡されます。NFS サーバーはクライアントに影響を与えずに再起動でき、クッキーはそのまま残ります。ただし、UDP はステートレスのため、予期しないサーバーダウンなどが発生すると、UDP クライアントはサーバーの要求でネットワークを飽和させ続けます。このため、NFS サーバーへの接続時に TCP が推奨されるプロトコルになります。
プロトコルサポートは v4 プロトコルに組み込まれているため、NFSv4 では portmaprpc.lockd、および rpc.statd デーモンとの対話はありません。NFSv4 は、既知の TCP ポート 2049 をリッスンし、ポート マップ との対話が不要になります。マウントプロトコルおよびロックプロトコルが V4 プロトコルに組み込まれ、rpc.lockd および rpc.statd との対話が不要になりました。rpc.mountd デーモンは依然としてサーバーで必要ですが、ネットワーク上の操作には関与しません。
注記
TCP は、Red Hat Enterprise Linux における NFS のデフォルトのトランスポートプロトコルです。UDP は互換性に必要となる場合は使用できますが、その使用範囲についてはできるだけ限定することを推奨しています。
すべての RPC/NFS デーモンには、ポートを設定する -p コマンドラインオプションがあり、ファイアウォールの設定が容易になります。
クライアントが TCP ラッパーによるアクセスが付与されると、NFS サーバーは設定ファイル /etc/exports を参照して、クライアントがエクスポートしたファイルシステムにアクセスできるかどうかを判断します。アクセスが許可されると、ユーザーはファイルおよびディレクトリーの全操作を使用できます。
重要
NFS がファイアウォールを有効にして Red Hat Enterprise Linux のデフォルトインストールと連携するには、デフォルトの TCP ポート 2049 の IPTables を設定する必要があります。IPTables を正しく設定しないと、NFS が正しく機能しません。
NFS の初期化スクリプトおよび rpc.nfsd プロセスでは、システム起動中の指定ポートへのバインドが可能になりました。ただし、ポートが利用できない場合や、別のデーモンと競合すると、エラーが発生しやすくなります。

21.1.1. 必要なサービス

Red Hat Enterprise Linux は、カーネルレベルのサポートとデーモンプロセスの組み合わせを使用して、NFS ファイル共有を提供します。すべての NFS バージョンは、クライアントとサーバー間 RPC(Remote Procedure Call )に依存します。Linux の RPC サービスは、portmap サービスによって制御されます。NFS ファイルシステムの共有またはマウントには、実装されている NFS のバージョンに応じて、以下のサービスが連携します。
  • nfs -(/sbin/service nfs start)は、NFS サーバーと、共有 NFS ファイルシステムの要求を処理する適切な RPC プロセスを起動します。
  • nfslock -(/sbin/service nfslock start)は、適切な RPC プロセスを開始して、NFS クライアントがサーバー上のファイルをロックできるようにする必須のサービスです。
  • portmap: ローカルの RPC サービスからのポート予約を受け入れます。その後、これらのポートは公開され、対応するリモートの RPC サービスはそれらにアクセスします。Port map は RPC サービスの要求に応答し、要求された RPC サービスへの接続を設定します。
以下の RPC プロセスは、NFS サービスを容易にします。
  • rpc.mountd: このプロセスは NFS クライアントからマウント要求を受け取り、要求されたファイルシステムが現在エクスポートされていることを確認します。このプロセスは、nfs サービスにより自動的に起動されるため、ユーザー設定は必要ありません。
  • rpc.nfsd: サーバーが公開している明示的な NFS バージョンとプロトコルを定義できます。NFS クライアントが接続するたびにサーバースレッドを提供するなど、NFS クライアントの動的な要求に対応するため、Linux カーネルと連携して動作します。このプロセスは、nfs サービスに対応します。
  • rpc.lockd: NFS クライアントがサーバー上のファイルをロックできるようにします。rpc.lockd が起動しないと、ファイルのロックに失敗します。rpc.lockdNetwork Lock Manager (NLM) プロトコルを実装します。このプロセスは、nfslock サービスに対応します。このプロセスは NFSv4 では使用されません。
  • rpc.statd: このプロセスは、Network Status Monitor (NSM) RPC プロトコルを実装します。このプロトコルは、NFS サーバーが正常に停止せずに再起動すると NFS クライアントに通知します。このプロセスは、nfslock サービスにより自動的に起動されるため、ユーザー設定は必要ありません。このプロセスは NFSv4 では使用されません。
  • rpc.rquotad: このプロセスは、リモートユーザーのユーザークォータ情報を提供します。このプロセスは、nfs サービスにより自動的に起動されるため、ユーザー設定は必要ありません。
  • rpc.idmapd: このプロセスは、ネットワーク上の NFSv4 名(user@domain 形式の文字列)とローカル UID と GID の間のマッピングを行う NFSv4 クライアントおよびサーバーアップコールを提供します。idmapd が NFSv4 で機能するには、/etc/idmapd.conf を設定する必要があります。このサービスは、NFSv4 での使用に必要です。
システムで NFS を使用するには、nfs-utils パッケージ、nfs-utils -lib パッケージ、および portmap パッケージがインストールされていることを確認します。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.