NFSclient側でNFSを高速にアシストする仕組み
単にNFSclient側でローカルのストレージをキャッシュデバイスに仕立てている。
/home(NFS)とか/Appl(NFS)とかに有効かと思っているが、実際に早くなったかは未検証。
NFSクライアント側に設置します。
キャッシュ場所は、SSDデバイス由来になる /scratch/fscache を宛てた
そして、デーモンを起動する
[root@c101 ~]# yum -y install cachefilesd
[root@c101 ~]# mkdir /scratch/fscache
[root@c101 ~]# vi /etc/cachefilesd.conf
:
dir /scratch/fscache
:
[root@c101 ~]# systemctl enable cachefilesd
[root@c101 ~]# systemctl start cachefilesd
/etc/fstabを修正します。
NFSマウントを行う箇所にオプションとして「fsc」を加える。あとはremountとか再起動します
[root@c101 ~]# vi /etc/fstab
:
c:/home /home nfs fsc,hard,intr,defaults 0 0
c:/Appl /Appl nfs fsc,hard,intr,defaults 0 0
:
懸念箇所
NFSClientのローカルにNFSサーバのデータがキャッシュされるので、clientで繰り返し読み出されるデータなら有効かも
その際、NFSserver側のexportfsのオプションが気になる
/Appl 192.168.0.*(rw,async,no_root_squash)
/home 192.168.0.*(rw,async,no_root_squash)
このとき非同期なのでclinet側でのNFSの速度は速まるが、clientによって更新され、その更新データが読み込まれる場合、
CacheFSによって未同期のデータが読まれるのだろうか?
CacheFSを使うのなら、対象のデバイスは
/Appl 192.168.0.*(rw,sync,no_root_squash)
/home 192.168.0.*(rw,sync,no_root_squash)
とすべきなのか....