NFSはNetworkFileSystemの略で、1990年にSUNMicrosystemsによって開発されたLinux/ Unixシステム間でファイルやフォルダを共有するのに役立ちます。NFSを使用すると、リモート共有をローカルにマウントできます。
このガイドは、CentOS 7 /RHEL7でNFSサーバーをセットアップするのに役立ちます。
NFSのメリット
- *nixシステム間でのファイル/フォルダの共有
- リモートファイルシステムをローカルにマウントできます
- 集中型ストレージシステムとして機能できます
- VMwareおよびその他の仮想化プラットフォームのストレージドメイン(データストア)として使用できます。
- アプリケーションが構成ファイルとデータファイルを複数のノードと共有できるようにします。
- 共有全体でファイルを更新できるようにします。
重要なサービス
以下は、nfs-utilsパッケージに含まれている重要なNFSサービスです。
rpcbind :rpcbindサーバーは、RPCプログラム番号をユニバーサルアドレスに変換します。
nfs-server :クライアントがNFS共有にアクセスできるようにします。
nfs-lock / rpc-statd :NFSファイルロック。 NFSサーバーがクラッシュして再起動したときにファイルロック回復を実装します。
nfs-idmap :ユーザーとグループのIDを名前に変換し、ユーザーとグループの名前を
IDに変換します
重要な構成ファイル
主に以下の構成ファイルで作業して、NFSサーバーとクライアントをセットアップします。
/ etc / exports:これはメインの構成ファイルであり、リモートホストにエクスポートされるファイルシステムを制御し、オプションを指定します。
/ etc / fstab:このファイルは、システムの起動時にNFSディレクトリを含むどのファイルシステムをマウントするかを制御するために使用されます。
/ etc / sysconfig / nfs:このファイルは、必要なRPCサービスを実行するポートを制御するために使用されます。
/etc/hosts.allowおよび/etc/hosts.deny:これらのファイルはTCPラッパーと呼ばれ、NFSサーバーへのアクセスを制御します。これは、別のIPアドレスからの接続を受け入れるかどうかを決定するためにNFSによって使用されます。
環境
ここでは、このデモに最小限のCentOS7を使用します。このガイドは、OracleLinuxおよびFedoraシステムでも機能するはずです。
NFSサーバー
ホスト名: server.itzgeek.local(CentOS 7)
IPアドレス: 192.168.1.10/24
NFSクライアント
ホスト名: client.itzgeek.local(CentOS 7)
IPアドレス: 192.168.1.20 / 24
NFSサーバーの構成
NFSサーバーのインストール
yumコマンドを使用してNFSサーバー用の以下のパッケージをインストールします。
yum install -y nfs-utils
パッケージがインストールされたら、NFSサービスを有効にして開始します。
systemctl start nfs-server rpcbind systemctl enable nfs-server rpcbind
NFS共有の作成
それでは、NFSクライアントと共有するディレクトリを作成しましょう。ここでは、/パーティションにnfsfileshareという名前の新しいディレクトリを作成します。
既存のディレクトリをNFSと共有することもできます。
mkdir /nfsfileshare
NFSクライアントが作成されたディレクトリの読み取りと書き込みを許可します。
chmod 777 /nfsfileshare/
/ etc / exportsファイルを変更して、共有するディレクトリ/nfsfileshareのエントリを作成する必要があります。
vi /etc/exports
以下のようなNFS共有を作成します。
/nfsfileshare 192.168.1.20(rw,sync,no_root_squash)
/ nfsfileshare :共有ディレクトリ
192.168.1.20 :クライアントマシンのIPアドレス。 IPアドレスの代わりにホスト名を使用することもできます。 192.168.1.0/24のようなサブネットを持つクライアントの範囲を定義することも可能です。
rw :共有フォルダへの書き込み可能なアクセス許可
同期 :対応するファイルシステムへのすべての変更は、すぐにディスクにフラッシュされます。それぞれの書き込み操作が待機されています。
no_root_squash : デフォルトでは、クライアントマシンのユーザーrootによって行われたファイル要求は、サーバー上のユーザーnobodyによって処理されます。 (要求がマップされる正確なUIDは、クライアントではなくサーバー上のユーザー「nobody」のUIDによって異なります。)no_root_squashが選択されている場合、クライアントマシンのrootは、上のファイルへの同じレベルのアクセス権を持ちます。サーバー上のルートとしてのシステム。
manページのmanexportsまたはここですべてのオプションを知ることができます。
次のコマンドを使用して共有ディレクトリをエクスポートします。
exportfs -r
その他:
exportfs -v:サーバー上の共有ファイルとエクスポートオプションのリストを表示します。
exportfs-a:/ etc/exportsにリストされているすべてのディレクトリをエクスポートします。
exportfs -u:1つ以上のディレクトリのエクスポートを解除します。
exportfs -r:/ etc / exportsを変更した後、すべてのディレクトリを再エクスポートします。
NFSサーバーを構成した後、その共有ディレクトリをNFSクライアントにマウントする必要があります。
ファイアウォールの構成
NFSクライアントがNFS共有にアクセスできるように、NFSサーバーでファイアウォールを構成する必要があります。これを行うには、NFSサーバーで次のコマンドを実行します。
firewall-cmd --permanent --add-service mountd firewall-cmd --permanent --add-service rpc-bind firewall-cmd --permanent --add-service nfs firewall-cmd --reload
NFSクライアントの構成
NFSクライアントのインストール
リモートNFS共有をマウントするには、NFSクライアントにNFSパッケージをインストールする必要があります。以下のコマンドを使用してNFSパッケージをインストールします。
yum install -y nfs-utils
NFS共有を確認する
NFS共有をマウントする前に、NFSクライアントで次のコマンドを実行して、NFSサーバーで使用可能なNFS共有を確認するようにお願いします。
IPアドレスをNFSサーバーのIPアドレスまたはホスト名に置き換えます。showmount -e 192.168.1.10
出力:
Export list for 192.168.1.10: /nfsfileshare 192.168.1.20
出力によると、/ nfsfileshareは、NFSクライアント(192.168.1.20)のNFSサーバー(192.168.1.10)で使用できます。
その他:
showmount -e:ローカルマシン(NFSサーバー)で使用可能な共有を表示します。
showmount -e
NFS共有のマウント
次に、NFSクライアントにディレクトリを作成して、NFSサーバーに作成したNFS共有/nfsfileshareをマウントします。
mkdir /mnt/nfsfileshare
以下のコマンドを使用して、NFSクライアントの/ mnt/nfsfileshareにあるNFSサーバー192.168.1.10からNFS共有/nfsfileshareをマウントします。
mount 192.168.1.10:/nfsfileshare /mnt/nfsfileshare
マウントコマンドを使用して、NFSクライアントにマウントされた共有を確認します。
mount | grep nfs
出力:
ssunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime) nfsd on /proc/fs/nfsd type nfsd (rw,relatime) 192.168.1.10:/nfsfileshare on /mnt/nfsfileshare type nfs4 (rw,relatime,vers=4.1,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.20,local_lock=none,addr=192.168.1.10)
また、df -hTコマンドを使用して、マウントされたNFS共有を確認できます。
df -hT
出力:
Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/centos-root xfs 50G 1.2G 49G 3% / devtmpfs devtmpfs 485M 0 485M 0% /dev tmpfs tmpfs 496M 0 496M 0% /dev/shm tmpfs tmpfs 496M 6.7M 490M 2% /run tmpfs tmpfs 496M 0 496M 0% /sys/fs/cgroup /dev/mapper/centos-home xfs 47G 33M 47G 1% /home /dev/sda1 xfs 1014M 154M 861M 16% /boot tmpfs tmpfs 100M 0 100M 0% /run/user/0 192.168.1.10:/nfsfileshare nfs4 50G 1.2G 49G 3% /mnt/nfsfileshare
マウントされたディレクトリにファイルを作成して、NFS共有での読み取りおよび書き込みアクセスを確認します。
touch /mnt/nfsfileshare/test
上記のコマンドでエラーが返されない場合は、NFSセットアップが機能しています。
NFS共有の自動マウント
再起動のたびに共有を自動的にマウントするには、NFSクライアントの/ etc/fstabファイルを変更する必要があります。
vi /etc/fstab
以下のようなエントリを追加します。
# # /etc/fstab # Created by anaconda on Wed Jan 17 12:04:02 2018 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # /dev/mapper/centos-root / xfs defaults 0 0 UUID=60a496d0-69f4-4355-aef0-c31d688dda1b /boot xfs defaults 0 0 /dev/mapper/centos-home /home xfs defaults 0 0 /dev/mapper/centos-swap swap swap defaults 0 0 192.168.1.10:/nfsfileshare /mnt/nfsfileshare nfs nosuid,rw,sync,hard,intr 0 0
ファイルを保存して閉じます。
クライアントマシンを再起動し、共有が自動的にマウントされるかどうかを確認します。
reboot
マウントコマンドを使用して、NFSクライアントにマウントされた共有を確認します。
mount | grep nfs
出力:
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime) 192.168.1.10:/nfsfileshare on /mnt/nfsfileshare type nfs4 (rw,nosuid,relatime,sync,vers=4.1,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.20,local_lock=none,addr=192.168.1.10)
ファイル共有が完了した後でその共有ディレクトリをNFSクライアントからアンマウントする場合は、umountコマンドを使用してその特定のディレクトリをアンマウントできます。
umount /mnt/nfsfileshare
結論
CentOS 7 /RHEL7でNFSサーバーとNFSクライアントを正常にセットアップしました。静的マウントを使用したくない場合は、ユーザーがアクセスしたときにのみNFS共有をマウントするようにCentOS7でAutoFSを構成できます。