標準のLinuxファイルシステムのセットアップとNFSv4サーバーの構成-パート2


Linux Foundation認定エンジニア(LFCE)は、Linuxシステムでネットワークサービスをセットアップ、構成、管理、トラブルシューティングするように訓練されており、システムアーキテクチャの設計と実装、および日常の関連する問題の解決に責任を負います。

Linux Foundation認定プログラム(LFCE)の紹介。

このシリーズのパート1では、NFS(ネットワークファイルシステム)サーバーをインストールする方法と、起動時にサービスが自動的に開始するように設定する方法について説明しました。まだ行っていない場合は、その記事を参照し、概要を説明した手順に従ってから先に進んでください。

  1. Installing Network Services and Configuring Automatic Startup at Boot – Part 1

ここでは、 NFSv4 サーバーを(認証セキュリティなしで)適切に構成して、Linuxクライアントで使用するネットワーク共有をそれらのファイルシステムがローカルにインストールされているかのように設定できるようにする方法を示します。認証の目的でLDAPまたはNISを使用できますが、どちらのオプションもLFCE認定の範囲外であることに注意してください。

NFSv4サーバーの構成

NFSサーバーが稼働したら、次のことに注意を向けます。

  1. specifying and configuring the local directories that we want to share over the network, and
  2. mounting those network shares in clients automatically, either through the /etc/fstab file or the automount kernel-based utility (autofs).

どちらの方法を選択するかについては、後で説明します。

実行する前に、 idmapd デーモンが実行および構成されていることを確認する必要があります。このサービスは、 NFSv4 名( [メール保護] )のユーザーIDとグループIDへのマッピングを実行し、NFSv4サーバーを実装するために必要です。

/etc/default/nfs-common を編集してidmapdを有効にします。

NEED_IDMAPD=YES

そして、ローカルドメイン名(デフォルトはホストのFQDN)で /etc/idmapd.conf を編集します。

Domain = yourdomain.com

次に、idmapdを起動します。

# service nfs-common start 	[sysvinit / upstart based systems]
# systemctl start nfs-common 	[systemd based systems]

/etc/exports ファイルには、NFSサーバーの主な構成ディレクティブが含まれ、リモートホストにエクスポートされるファイルシステムを定義し、使用可能なオプションを指定します。このファイルでは、各ネットワーク共有は個別の行を使用して示されます。この行は、デフォルトで次の構造になっています。

/filesystem/to/export client1([options]) clientN([options])

ここで、/filesystem/to/export はエクスポートされたファイルシステムへの絶対パスですが、 client1 (clientNまで)は特定のクライアント(ホスト名またはIPアドレス)またはネットワークを表します(ワイルドカードを使用できます)共有のエクスポート先。最後に、optionsは、共有をエクスポートするときにそれぞれ考慮されるコンマ区切りの値(オプション)のリストです。各ホスト名とその前の括弧の間にはスペースがないことに注意してください。

最も頻繁に使用されるオプションとそれぞれの説明のリストを次に示します。

  1. ro (short for read-only): Remote clients can mount the exported file systems with read permissions only.
  2. rw (short for read-write): Allows remote hosts to make write changes in the exported file systems.
  3. wdelay (short for write delay): The NFS server delays committing changes to disk if it suspects another related write request is imminent. However, if the NFS server receives multiple small unrelated requests, this option will reduce performance, so the no_wdelay option can be used to turn it off.
  4. sync: The NFS server replies to requests only after changes have been committed to permanent storage (i.e., the hard disk). Its opposite, the async option, may increase performance but at the cost of data loss or corruption after an unclean server restart.
  5. root_squash: Prevents remote root users from having superuser privileges in the server and assigns them the user ID for user nobody. If you want to “squash” all users (and not just root), you can use the all_squash option.
  6. anonuid / anongid: Explicitly sets the UID and GID of the anonymous account (nobody).
  7. subtree_check: If only a subdirectory of a file system is exported, this option verifies that a requested file is located in that exported subdirectory. On the other hand, if the entire file system is exported, disabling this option with no_subtree_check will speed up transfers. The default option nowadays is no_subtree_check as subtree checking tends to cause more problems than it is worth, according to man 5 exports.
  8. fsid=0 | root (zero or root): Specifies that the specified file system is the root of multiple exported directories (only applies in NFSv4).

この記事では、 192.168.0.10 (NFSサーバー)のディレクトリ/NFS-SHARE /NFS-SHARE/mydir を使用します。テストファイルシステム。

次のコマンドを使用して、NFSサーバーで使用可能なネットワーク共有をいつでも一覧表示できます。

# showmount -e [IP or hostname]

上記の出力では、 192.168.0.10 /NFS-SHARE および/NFS-SHARE/mydir 共有がエクスポートされていることがわかります。 IPアドレス 192.168.0.17 のクライアントへ。

エクスポートされたディレクトリの初期構成(NFSサーバーの/etc/exports ディレクトリを参照)は次のとおりです。

/NFS-SHARE  	192.168.0.17(fsid=0,no_subtree_check,rw,root_squash,sync,anonuid=1000,anongid=1000)
/NFS-SHARE/mydir    	192.168.0.17(ro,sync,no_subtree_check)

構成ファイルを編集した後、NFSサービスを再起動する必要があります。

# service nfs-kernel-server restart 		[sysvinit / upstart based system]
# systemctl restart nfs-server			[systemd based systems]

を使用してリモートNFS共有をオンデマンドでマウントする方法の詳細については、LFCSシリーズのパート5 (「Linuxでローカルおよびネットワーク(SambaおよびNFS)ファイルシステムをマウント/アンマウントする方法」)を参照してください。 mount コマンドまたは/etc/fstab ファイルを介して永続的に。

これらの方法を使用してネットワークファイルシステムをマウントすることの欠点は、共有を常にマウントしたままにするために、または少なくとも手動でマウント解除するまで、システムが必要なリソースを割り当てる必要があることです。別の方法は、 autofs を介して( mount コマンドを使用せずに)必要なファイルシステムをオンデマンドで自動的にマウントすることです。これにより、使用時にファイルシステムをマウントし、後でアンマウントできます。非アクティブな期間。

Autofsは /etc/auto.master を読み取ります。これは次の形式です。

[mount point]	[map file]

ここで、 [マップファイル] は、 [マウントポイント] 内の複数のマウントポイントを示すために使用されます。

次に、このマスターマップファイル( /etc/auto.master )を使用して、定義されているマウントポイントを決定し、各マウントポイントに指定されたパラメーターを使用して自動マウントプロセスを開始します。

/etc/auto.master を次のように編集します。

/media/nfs	/etc/auto.nfs-share	--timeout=60

次の内容の /etc/auto.nfs-share という名前のマップファイルを作成します。

writeable_share  -fstype=nfs4 192.168.0.10:/
non_writeable_share  -fstype=nfs4 192.168.0.10:/mydir

/etc/auto.nfs-share の最初のフィールドは、/media/nfs 内のサブディレクトリの名前であることに注意してください。各サブディレクトリは、autofsによって動的に作成されます。

ここで、autofsサービスを再起動します。

# service autofs restart 			[sysvinit / upstart based systems]
# systemctl restart autofs 			[systemd based systems]

最後に、 autofs が起動時に開始できるようにするには、次のコマンドを実行します。

# chkconfig --level 345 autofs on
# systemctl enable autofs 			[systemd based systems]

autofs を再起動すると、 mount コマンドは、マップファイル( /etc/auto.nfs-share )が指定された場所にマウントされていることを示します。 /etc/auto.master のディレクトリ:

実際にはまだディレクトリがマウントされていないことに注意してください。ただし、 /etc/auto.nfs-share で指定された共有にアクセスしようとすると自動的にマウントされます。

ご覧のとおり、autofsサービスは、いわばマップファイルを「マウント」しますが、ファイルシステムに実際にマウントするように要求されるまで待機します。

anonuid および anongid オプションと、最初の共有で設定された root_squash を使用すると、rootユーザーによって実行されたリクエストをサーバーのローカルアカウントへのクライアント。

つまり、クライアントのrootがエクスポートされたディレクトリにファイルを作成すると、その所有権はUIDおよびGID u003d 1000のユーザーアカウントに自動的にマップされます(そのようなアカウントがサーバーに存在する場合)。

結論

この記事をガイドとして使用して、ご使用の環境に適したNFSサーバーを正常にセットアップおよび構成できたことを願っています。さらにヘルプが必要な場合は、関連するマニュアルページを参照することもできます(たとえば、 man exports man idmapd.conf )。

前に概説した他のオプションやテストケースを自由に試してみてください。コメント、提案、質問を送信するには、以下のフォームを使用することを躊躇しないでください。ご連絡をお待ちしております。

全著作権所有。 © Linux-Console.net • 2019-2022