Network File System
Network File System(NFS)は主にUNIXで利用される分散ファイルシステムおよびそのプロトコルである。1984年にサン・マイクロシステムズによって実質的な最初の規格となるNFS version 2 (NFS v2) が発表され、RFC 1094・RFC 1813・RFC 3530などによって定義されている。
@see Wikipedia
NFSでディレクトリのネットワーク共有ができるようになります。
ファイルサーバやバックアップなど用途は無限大で色々な用途に大活躍していて私が大好きな機能です。他に似たようなものにSSHFSなど色々あるのですが、今回はNFSのご紹介。
環境
- CentOS7
- NFSサーバ
192.168.100.1
共有ディレクトリ/nfs_share - NFSクライアント
192.168.100.2
マウントポイント/mnt/share
NFSサーバ
1 |
# yum install nfs-utils rpcbind |
共有ディレクトリの作成
1 2 |
# mkdir -p /nfs_share # chmod 777 /nfs_share |
ファイアウォールの設定
1 2 3 4 5 6 7 |
# systemctl enable firewalld # systemctl start firewalld # firewall-cmd --zone=internal --permanent --add-source=192.168.100.0/24 # firewall-cmd --add-service=nfs --permanent --zone=internal # firewall-cmd --reload |
TCP Wrapper
1 2 3 4 5 6 7 8 9 |
# vi /etc/hosts.allow ALL :127.0.0.1 # CentOS6からはrpcbind 5まではportmap rpcbind : 192.168.100.0/24 lockd : 192.168.100.0/24 mountd : 192.168.100.0/24 stated : 192.168.100.0/24 |
1 2 3 4 5 6 7 |
# vi /etc/hosts.deny # CentOS6からはrpcbind 5まではportmap rpcbind : ALL lockd : ALL mountd : ALL stated : ALL |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# vi /etc/idmapd.conf [General] #Verbosity = 0 # The following should be set to the local NFSv4 domain name # The default is the host's DNS domain name. #Domain = local.domain.edu Domain = example.local ←ドメインを設定してね [Mapping] #Nobody-User = nobody #Nobody-Group = nobody Nobody-User = nobody Nobody-Group = nobody |
共有設定
1 2 3 |
# vi /etc/exports /nfs_share 192.168.100.0/24(rw,sync,no_wdelay,root_squash,anonuid=1000,anongid=100) |
sync,no_wdelayで書き込み性能をよくしています。
反映の実行
1 |
# exportfs -ra |
反映実行の確認
1 2 3 4 |
# exportfs -v /nfs_share 192.168.100.0/24(rw,sync,no_wdelay,hide,no_subtree_check,anonuid=1000,anongid=100,sec=sys,root_squash,no_all_squash) |
起動させましょう。
1 2 |
# systemctl restart rpcbind nfs-server nfslock # systemctl enable rpcbind nfs-server nfslock |
1 |
# chmod 777 -R /nfs_share |
NFSクライアント
1 |
# yum install nfs-utils |
1 2 3 4 5 6 7 8 |
# vi /etc/idmapd.conf [General] #Verbosity = 0 # The following should be set to the local NFSv4 domain name # The default is the host's DNS domain name. #Domain = local.domain.edu Domain = example.local ←ドメインを設定してね |
TCP Wrapper
1 2 3 4 5 6 7 |
# vi /etc/hosts.allow ALL : 127.0.0.1 # CentOS6からrpcbind CentOS5はportmap rpcbind: 192.168.100.1 |
1 2 3 4 |
# vi /etc/hosts.deny # CentOS6からrpcbind CentOS5はportmap rpcbind : ALL |
マウントディレクトリの作成
1 2 |
# mkdir -p /mnt/share # chmod 777 /mnt/share |
起動させます。
1 2 |
# systemctl restart rpcbind # systemctl enable rpcbind |
いざ、マウント!
NFSサーバのディレクトリをマウントします。
1 |
# mount -t nfs -o hard,intr,bg,nofail,noatime 192.168.100.1:/mnt_share /mnt/share |
確認します。
1 2 3 4 5 6 7 8 9 10 11 |
# df -h ファイルシス サイズ 使用 残り 使用% マウント位置 /dev/mapper/cl-root 14G 1.1G 13G 8% / devtmpfs 910M 0 910M 0% /dev tmpfs 920M 0 920M 0% /dev/shm tmpfs 920M 8.5M 912M 1% /run tmpfs 920M 0 920M 0% /sys/fs/cgroup /dev/sda1 1014M 139M 876M 14% /boot tmpfs 184M 0 184M 0% /run/user/0 192.168.100.1:/mnt_share 14G 1.1G 13G 8% /mnt/share |
マウントできてますね。
ネットワークとか機能と機能が繋がる感じって気持ち良いね。
自動起動時のマウント設定
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# vi /etc/fstab # # /etc/fstab # Created by anaconda on Tue Oct 24 10:05:31 2017 # # 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/cl-root / xfs defaults 0 0 UUID=79b1eec7-107b-45e4-bed6-92552e5be79e /boot xfs defaults 0 0 /dev/mapper/cl-swap swap swap defaults 0 0 192.168.100.1:/nfs_share /mnt/share nfs hard,intr,bg,nofail,noatime 0 0 |
設定を行ったら、再起動したりしてみて下さい、うまくマウントできていたらOK!
お疲れ様です。