#author("2017-11-29T18:32:40+00:00","default:okkun-lab","okkun-lab") #author("2024-02-18T01:32:58+09:00;2017-11-30T03:32:40+09:00","default:okkun-lab","okkun-lab") *NFS [#a3da5bf4] -餅は餅屋 --ファイルはファイルサーバに --処理はwebサーバに **環境 [#y7289361] -ファイルサーバ(サーバ) : Katae.JamFunk.jp -webサーバ(クライアント) : Hibaru.JamFunk.jp --共にTurbolinux 10 server -最近のディストリビューションへのインストール --yum install nfs-utils **NFS 立ち上げ [#p0fcda1f] -''サービス許可(サーバ側)'' --vi /etc/hosts.allow # NFS portmap : 172.16.0.0/255.255.0.0 lockd : 172.16.0.0/255.255.0.0 mountd : 172.16.0.0/255.255.0.0 rquotad : 172.16.0.0/255.255.0.0 statd : 172.16.0.0/255.255.0.0 ---最近のディストリ(CentOSとか)は書かなくても動いた。 ---TLは書かないと動かなかった。 --vi /etc/exports /home/namazu (client_address)/255.255.255.255(rw,anonuid=(namazuUID),anongid=(namazuGID)) /home 172.16.0.0/255.255.0.0(rw,no_root_squash,async) ---/home : 公開するディレクトリ ---172.16.0.0/255.255.0.0 : アクセスを許可するIPアドレス/マスク ---rw : 読み書き可能 ---(namazuUID) (namazuGID) はサーバ側のディレクトリ持ち主の UID, GID ---これを設定すればクライアントは全員その UID, GID の権限を持つ。 ---#ここから ( ) 内のオプション ---ro : 読み出し専用(default) ---rw : 読み書き両方 ---no_root_squash : クライアントのユーザ名そのままでアクセスできる~ デフォルトでは全てのユーザが nobody になる。 ---sync: NFS が書き込み処理をファイルシステムに渡した段階で、クライアントに書き込み完了通知を行う。~ デフォルトでは async(書き込みが実際に完了した時点で完了通知) ---書き換えたらexportsfsしましょう。 exportfs -r ---確認 cat /proc/fs/nfs/exports ---マウント状況を確認するには showmount -e -''サービス許可(クライアント側)'' --vi /etc/hosts.allow portmap: localhost lockd: localhost mountd: localhost rquotad: localhost statd: localhost ---書かなくても良いと思うけどね。 --vi /etc/exports (改行1つでも入れておく) ---なぜか NFS デーモンが起動しなかったが、改行を入れたら起動した。(TL10s,TL11s) -''サービスの起動(両方)'' --/etc/init.d/portmap start --/etc/init.d/nfslock start --/etc/init.d/nfs start ---順番があるみたい -''マウント(クライアント側)'' --mount -t nfs 172.16.0.2:/home /home -o rw,rsize=1024,wsize=1024,hard,intr **起動時に nfs をマウントする [#ba10896c] -上の許可したサービスに加えて以下のサービスを自動起動 --netfs -/etc/fstabにマウントを定義 172.16.0.2:/home /home nfs rw,auto,bg,rsize=1024,wsize=1024,hard,intr 0 0 --rsize=(num),wsize=(num) : バッファサイズ~ デフォルトは512bytes。倍々で増やしながらddでベンチでもしてみると良い。 --hard,intr : NFSが落ちると固まり、復活すると再開する。~ intrで固まったプロセスをkillできるようにする。~ 逆のオプションにsoftがあるが、壊れたデータを量産するのでおすすめできない。 --bg : マウント失敗してもマウントを繰り返す。 **iptablesなどのためにポート番号を固定する [#r59e10e0] -NFS本体はポート番号が固定されているが、関連するいくつかのサービスがポートマッパーを使って動的なポートに割り当てられている。 --iptablesできない。。。 -ポート番号を固定する --vi /etc/sysconfig/nfs ---以下の行があるので、コメントを外す RQUOTAD="/usr/sbin/rpc.rquotad" RQUOTAD_PORT=875 LOCKD_TCPPORT=32803 LOCKD_UDPPORT=32769 MOUNTD_PORT=892 STATD_PORT=662 --/etc/init.d/nfslock stop --/etc/init.d/nfs restart --/etc/init.d/nfslock start -もしnfsのrestartに失敗するときは --他のプロセスがポートを使っているかも ---サーバ再起動とか lsof -i:(ポート番号) とかで調べてみる **NFSv4 [#ab8774d5] -mount -t nfs4または -o nfsvers=4 --サーバ側のexportのオプションにfsid=0を追加 --性能はあまり変わらない模様