NFSはNetwork File Systemの略で、1990年にSUN Microsystemsによって開発されたLinux/Unixシステ NFSを使用すると、リモート共有をローカルにマウントできます。このガイドは、CentOS7/RHEL7でNFSサーバーをセットアップするのに役立ちます。
NFSの利点
- *nixシステム間のファイル/フォルダ共有
- リモートファイルシステムをローカルにマウントすることができます
- 集中型ストレージシステムとして機能することができます
- VMwareやその他の仮想化プラットフォームのストレージドメイン(データストア)として使用することができます。
- は、アプリケーションが複数のノードで構成ファイルとデータファイルを共有できるようにします。
- 共有全体でファイルを更新することができます。
重要なサービス
nfs-utilsパッケージに含まれる重要なNFSサービスを次に示します。
rpcbind:rpcbindサーバーはrpcプログラム番号をユニバーサルアドレスに変換します。
nfs-server:クライアントがNFS共有にアクセスできるようにします。
nfs-lock/rpc-statd:NFSファイルロック。 NFSサーバーがクラッシュして再起動したときにファイルロック回復を実装します。
nfs-idmap:ユーザー idとグループidを名前に変換し、ユーザー名とグループ名
をids
重要な設定ファイル
主に以下の設定ファイルでNFSサーバーとクライアントを設定します。
/etc/exports: これはメインの設定ファイルで、リモートホストにエクスポートするファイルシステムを制御し、オプションを指定します。
/etc/fstab:このファイルは、システムの起動時にNFSディレクトリを含むどのファイルシステムがマウントされるかを制御するために使用されます。/Etc/sysconfig/nfs:このファイルは、必要なRPCサービスを実行するポートを制御するために使用されます。
/etc/hosts.許可および/etc/hosts。deny:これらのファイルはTCP wrappersと呼ばれ、NFSサーバーへのアクセスを制御します。 これは、NFSが別のIPアドレスからの接続を受け入れるかどうかを決定するために使用されます。
環境
ここでは、このデモにCentOS7minimalを使用します。 このガイドは、Oracle LinuxおよびFedoraシステムでも動作するはずです。NFSサーバー
ホスト名:サーバー。イッツギークローカル(CentOS7)
IPアドレス: 192.168.1.10/24
NFSクライアント
ホスト名:クライアント。イッツギークローカル(CentOS7)
IPアドレス: 192.168.1.20/24
Nfsサーバーの構成
NFSサーバーのインストール
yumコマンドを使用してNFSサーバー用の以下のパッケージをインストールします。
yum install -y nfs-utils
パッケージがインストールされたら、NFSサービスを有効にして起動します。
systemctl start nfs-server rpcbindsystemctl enable nfs-server rpcbind
NFS共有の作成
さて、NFSクライアントと共有するディレクトリを作成しましょう。 ここでは、/partitionにnfsfileshareという名前の新しいディレクトリを作成します。
既存のディレクトリをNFSと共有することもできます。
mkdir /nfsfileshare
NFSクライアントが作成したディレクトリの読み取りと書き込みを許可します。
chmod 777 /nfsfileshare/
共有したいディレクトリ/nfsfileshareのエントリを作成するには、/etc/exportsファイルを変更する必要があります。
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:共有フォルダへの書き込み可能な権限
sync:該当するファイルシステムへのすべての変更はすぐにディスクにフラッシュされ、それぞれの書き込み操作が待機されています。
no_root_squash:デフォルトでは、クライアントマシン上のユーザー rootによって行われたファイル要求は、サーバー上のユーザー nobodyによって処理されます。 (要求がどのUIDにマップされるかは、クライアントではなくサーバー上のユーザー”nobody”のUIDに依存します。 No_root_squashが選択されている場合、クライアント・マシン上のrootは、サーバー上のrootと同じレベルのシステム上のファイルへのアクセス権を持ちます。
manページman exportsまたはhereですべてのオプションを知ることができます。
次のコマンドを使用して共有ディレクトリをエクスポートします。Extras:
exportfs-v:サーバー上の共有ファイルとエクスポートオプションのリストを表示します。
exportfs-a:/etc/exportsにリストされているすべてのディレクトリをエクスポートします。
exportfs-u:1つ以上のディレクトリをアンエクスポートします。
exportfs-r:/etc/exportsを変更した後、すべてのディレクトリを再エクスポートします。
NFSサーバーを設定した後、NFSクライアントにその共有ディレクトリをマウントする必要があります。
ファイアウォールの設定
NFSクライアントがNFS共有にアクセスできるように、NFSサーバー上のファイアウォールを設定する必要があります。 これを行うには、NFSサーバーで次のコマンドを実行します。
firewall-cmd --permanent --add-service mountdfirewall-cmd --permanent --add-service rpc-bindfirewall-cmd --permanent --add-service nfsfirewall-cmd --reload
NFSクライアントの設定
NFSクライアントのインストール
リモートNFS共有をマウントするには、NFSクライアントにNFSパッケージをインス 以下のコマンドを使用してNFSパッケージをインストールします。
yum install -y nfs-utils
NFS共有の確認
NFS共有をマウントする前に、NFSクライアントで次のコマンドを実行して、NFSサーバーで使用可能なNFS共有を確認するように要求します。
showmount -e 192.168.1.10
:
Export list for 192.168.1.10:/nfsfileshare 192.168.1.20
出力によると、/nfsfileshareはNFSサーバー(192.168.1.10)でNFSクライアント(192.168.1.20)で使用できます。Extra:
showmount-e:ローカルマシン(NFSサーバー)で使用可能な共有を表示します。
showmount-e<server-ip or hostname>:リモートサーバーで使用可能な共有を一覧表示します
次に、NFSクライアント上にディレクトリを作成して、NFSサーバーで作成したNFS share/nfsfileshareをマウ
mkdir /mnt/nfsfileshare
以下のコマンドを使用して、NFSクライアントの/mnt/nfsfileshareにNFSサーバー192.168.1.10からNFS共有/nfsfileshareをマウントします。
mount 192.168.1.10:/nfsfileshare /mnt/nfsfileshare
MOUNTコマンドを使用して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% /devtmpfs tmpfs 496M 0 496M 0% /dev/shmtmpfs tmpfs 496M 6.7M 490M 2% /runtmpfs 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% /boottmpfs tmpfs 100M 0 100M 0% /run/user/0192.168.1.10:/nfsfileshare nfs4 50G 1.2G 49G 3% /mnt/nfsfileshare
マウントされたディレクトリにファイルを作成して、NFS共有の読み取りおよび書き込みアクセスを確認します。
touch /mnt/nfsfileshare/test
上記のコマンドがエラーを返さない場合は、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 0UUID=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 0192.168.1.10:/nfsfileshare /mnt/nfsfileshare nfs nosuid,rw,sync,hard,intr 0 0
ファイルを保存して閉じます。
クライアントマシンを再起動し、共有が自動的にマウントされているかどうかを確認します。
reboot
mountコマンドを使用して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コマンドを使用してその特定のディレクトリをアンマウントすることができます。Centos7/RHEL7でNFSサーバーとNFSクライアントを正常にセットアップしました。 静的マウントを使用しない場合は、CentOS7でAutoFSを設定して、ユーザーがNFS共有にアクセスしたときにのみNFS共有をマウントすることができます。