Network File System(NFS)

ネットワーク経由で取得されたデータをローカルのディスクにキャッシングしますFS-Cache

単純にNFSサーバを作る

CentOS7の一部のフォルダか、あるいは追加したHDDをNFSとして供出する。
ここでは/dev/sdbと/etc/sdcを供出した。
*HDD全体を使うので、パーティション操作は不要かな?って思うのだが、、良くわからない

[root@nfs ~]# mkfs -t xfs /dev/sdb
[root@nfs ~]# mkfs -t xfs /dev/sdc
 
[root@nfs ~]# blkid | grep -e sdb -e sdc
/dev/sdb: UUID="5fa03bdf-5f7b-4cc4-9448-4a742edb97fc" TYPE="xfs"
/dev/sdc: UUID="e510e1fc-50c4-43bb-aa00-a81651bc810b" TYPE="xfs"
[root@nfs ~]#
 
[root@nfs ~]# mkdir -p /home /Appl
[root@nfs ~]# vi /etc/fstab
(略)
UUID=5fa03bdf-5f7b-4cc4-9448-4a742edb97fc /home xfs defaults 0 0
UUID=e510e1fc-50c4-43bb-aa00-a81651bc810b /Appl xfs defaults 0 0
 
[root@nfs ~]# mount -a
[root@nfs ~]# mount | grep -e sdb -e sdc
/dev/sdb on /home type xfs (rw,relatime,attr2,inode64,noquota)
/dev/sdc on /Appl type xfs (rw,relatime,attr2,inode64,noquota)
 
[root@nfs ~]#

NFS機能を提供するパッケージをインストールして起動させます。
*事前にrpcbind.socketを起動しないとエラーになる
加えて、マシンが再起動したら自動的にNFSサービスも起動するように調整します。

[root@nfs ~]# yum install nfs-utils
 
[root@nfs ~]# systemctl start rpcbind.socket
[root@nfs ~]# systemctl start nfs-server.service
 
[root@nfs ~]# systemctl enable nfs-server.service

*rpcbind.socketは、nfs-utilsインストール時に enable になっている
次に、供出するファイルシステムを /etc/exportfs に記載します。書式は従来のままでも擬似ファイルシステムの形式でも構わない。
ここでは簡単に従来様式で記述する

[root@nfs ~]# vi /etc/exports
/Appl 192.168.0.0/24(rw,no_root_squash)
/home 192.168.0.0/24(rw)
[root@nfs ~]#

/ApplはNFS mountしたクライアントのrootでも操作可能にした。

これを反映させるために exportfs -av を実行する

[root@nfs ~]# exportfs -av
exporting 192.168.0.0/24:/Appl
exporting 192.168.0.0/24:/home
[root@nfs ~]#

NFS mount

クライアントからNFSサーバが提供しているファイルシステムをマウントしてみる。

インストールするパッケージは nfs-utils

[root@client ~]# yum -y install nfs-utils

再起動するか、rpcbind.socketを起動させて、mount操作を行う

[root@client ~]# systemctl start rpcbind.socket
[root@client ~]# mkdir -p /home /Appl
[root@client ~]# mount -t nfs nfs:/Appl /Appl
[root@client ~]# mount -t nfs nfs:/home /home

確認を行う

[root@client ~]# df | grep nfs
nfs:/Appl         16766976  32768 16734208    1% /Appl
nfs:/home         16766976  32768 16734208    1% /home
[root@client ~]#
 
[root@client ~]# mount | grep nfs
nfs:/Appl on /Appl type nfs4 (rw,relatime,vers=4.0,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,port=0,timeo=600,
                               retrans=2,sec=sys,clientaddr=192.168.0.20,local_lock=none,addr=192.168.0.41)
nfs:/home on /home type nfs4 (rw,relatime,vers=4.0,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,port=0,timeo=600,
                               retrans=2,sec=sys,clientaddr=192.168.0.20,local_lock=none,addr=192.168.0.41)
[root@client ~]#

clientマシンを再起動しても/Applと/homeをmountさせるには /etc/fstabを修正する

[root@client ~]# umount /Appl /home
 
[root@client ~]# vi /etc/fstab
(略)
nfs:/Appl /Appl nfs defaults 0 0
nfs:/home /home nfs defaults 0 0
 
[root@client ~]# mount -a
[root@client ~]# df | grep nfs
nfs:/Appl         16766976  32768 16734208    1% /Appl
nfs:/home         16766976  32768 16734208    1% /home
[root@client ~]#

no_root_squashのテスト

/ApplはNFSサーバ側で no_root_squash としたので、clientのroot権限で操作可能である。

[root@client ~]# cd /Appl
[root@client Appl]# ls
[root@client Appl]# touch sample
[root@client Appl]# ls -l
合計 0
-rw-r--r-- 1 root root 0  3月  6 14:19 sample
[root@client Appl]#

次に、no_root_squashを付けていない /home で同様の操作を行うと

[root@client ~]# cd /home
[root@client home]# touch sample
touch: `sample' に touch できません: 許可がありません
[root@client home]#

となる。


トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS
Last-modified: 2017-02-16 (木) 00:03:04 (187d)