NFSのインストール・設定・使い方
初めに
NFS(Network File System)サーバーとは、別サーバーとの間でファイルの共有を、ローカルファイルと見え方が同じ様に出来る様にする機能です。
ファイルを転送するとかの処理を入れる位なら、ファイルを共有する設定(=マウント)する方が楽&費用的にも安くつくという事もあります。
この文章では、NFSのサーバー側と使う側のインストール・設定・使い方について説明していきます。
ファイルを共有する側のサーバーの設定
dnfの部分はubuntu系ならaptに変えて下さい。
dnf install -y nfs-utils;
/etc/exports
を編集して、共有したいディレクトリと共有を許可するホストを定義する。
analyzer1というサーバーとanalyzer2というサーバーと共有させたい場合
/var/log analyzer1(ro,async,root_squash) analyzer2(ro,async,root_squash)
オプションの意味としては
rw = 読み書き許可 / 読みだけならro
async = 非同期書込 / 同期させるのならsync
root_squash = root権限をマウント側に持たせない / 持たせるのなら no_root_squash
NFSに必要なサービスを立ち上げる
systemctl start rpcbind; systemctl enable rpcbind; systemctl start nfs-server; systemctl enable nfs-server;
ファイルの共有を受ける側(マウントする側)の設定
dnf -y install nfs-utils;
マウント用ディレクトリの作成
マウント元のサーバー名をprod-lb1としたら、単なる例ですが以下の様なディレクトリを作る
mkdir -p /mnt/prod-lb1/var/log;
/etc/fstab
を編集して、起動する時にマウントする設定にする
prod-lb1:/var/log /mnt/prod-lb1/var/log nfs defaults 0 0
defaultsは複数のオプションの集合体で
async = 非同期入出力
auto = mount -a でマウントされる
exec = バイナリの実行を許可
nouser = 一般ユーザーのマウントを許可しない
rw = 読み書き可能
suid = SUIDとSGIDを有効に
を意味する
その状態からのマウントは
mount -a;
マウントできたことを確認
df -kh;
以下の様な結果が表示され、prod-lb1:/var/log が /mnt/prod-lb1/var/log にマウント出来てることが確認できます。
Filesystem Size Used Avail Use% Mounted on devtmpfs 475M 0 475M 0% /dev tmpfs 490M 0 490M 0% /dev/shm tmpfs 490M 50M 441M 11% /run tmpfs 490M 0 490M 0% /sys/fs/cgroup /dev/vda1 25G 22G 3.1G 88% / /dev/vdb 50G 21G 30G 41% /disk_psql prod-lb1:/var/log 25G 9.9G 16G 40% /mnt/prod-lb1/var/log tmpfs 98M 0 98M 0% /run/user/1000