nfs server側の設定は、公開するリソースの設定をshareコマンドで行うことと、rpcbindデーモンとnfsd、mountdデーモンを起動することです。公開するリソースの設定ファイルは、/etc/dfs/dfstabで、デーモン起動スクリプトは、/etc/rc2.d/S71rpc(rpcbind)と/etc/rc3.d/S15nfs.server(nfsd、mountd)です。また、shareコマンドのオプションには以下のようなものがあります。
オプション | 意味 |
---|---|
rw | すべてのクライアントに対してrw権限を許可 |
rw=c1:c2 | 特定のクライアントに対してrw権限を許可(:で複数指定) |
ro | すべてのクライアントに対してro権限を許可 |
ro=c1:c2 | 特定のクライアントに対してro権限を許可(:で複数指定) |
root=c1:c2 | rootアクセスを許可 |
anon=uid | unknown userでアクセスしたときに割り当てるuid |
log=tag | nfs log設定 |
nosuid | setuidをできないようにする |
public | パブリックファイルハンドル指定(F/W越しのnfs利用可能, WebNFSに使用) |
最低でもアクセス制限だけは行っておきましょう。でないと、全ホストからのアクセスを許可してしまうことになり危険です。
公開するリソースの設定を/etc/dfs/dfstabファイルにて行います。アクセスしてくるクライアントを/etc/hostsに記述しておいた方が無難です。設定が完了したら、起動スクリプトでデーモンを起動します。
# vi /etc/dfs/dfstab --- share -F nfs -o rw=client1:client2 -d "share dirs" /export/home/data # vi /etc/hosts --- 192.168.1.10 client1 192.168.1.11 client2 # /etc/rc2.d/S71rpc start # /etc/rc3.d/S15nfs.server start
念のため各種設定の確認をします。
どんなリソースが公開されているか確認するにはdfsharesコマンドを使用します。
# dfshares RESOURCE SERVER ACCESS TRANSPORT nfs-srv:/export/home/data nfs-srv - -
どのクライアントからアクセスされているかを確認するにはdfmountsコマンドを使用使用します。
# dfmounts --- RESOURCE SERVER PATHNAME CLIENTS - nfs-srv /export/home/data client1,client2
nfs serverのログを取りたい場合は、/etc/default/nfslogd、/etc/nfs/nfslog.conf、/etc/dfs/dfstabに設定を加えます。/etc/default/nfslogdはnfslogdデーモンの動作設定に関するもの、/etc/nfs/nfslog.confは、ログ設定に関するものです。いずれもデフォルト設定で構わないと思います。と言うことで、ログを取るためには、/etc/dfs/dfstabのオプションのlogでタグを指定するだけです。
globalタグで以下の設定がされています。
# cat /etc/nfs/nfslog.conf --- global defaultdir=/var/nfs \ log=nfslog fhtable=fhtable buffer=nfslog_workbuffer logformat=extended
ログの設定をするには、shareコマンドのオプションでログを取得するように設定します。log=globalのように指定します。
# vi /etc/dfs/dfstab --- share -F nfs -o rw=client1,log=global -d "share dirs" /export/home/data # /etc/rc2.d/S71rpc start # /etc/rc3.d/S15nfs.server start # ps -ef | gerp nfslogd # tail -f /var/nfs/nfslog
もっと詳しい内容が知りたい方は、Solaris Developer Connectionにレポートが有りますので、そちらをご参照下さい。登録(無料)が必要ですが、有益な情報が結構有ります。
nfs client側の設定は、マウント設定を行うこととrpcbindデーモンとlockd、statdデーモンを起動することです。マウント設定ファイルは、/etc/vfstabで、デーモン起動スクリプトは、/etc/rc2.d/S71rpc(rpcbind)と/etc/rc2.d/S73nfs.client(lockd、statd)です。また、mountコマンドのオプションには以下のようなものがあります。
オプション | 意味 |
---|---|
hard | レスポンスがない場合、マウント試行を続行する |
soft | レスポンスがない場合、エラーを返し終了する |
intr | 割り込みを許可する |
nointr | 割り込みを許可しない |
ro | リードオンリーマウント |
rw | 読み書き可能マウント |
fg | レスポンスがない場合、フォアグランドでリトライし続ける |
bg | レスポンスがない場合、バックグランドでリトライし続ける |
retry | マウントに失敗した際の試行回数 |
retrans | nfs要求の再送回数 |
timeo | タイムアウト値(0.n秒) |
rsize | 読込バッファサイズ(チューニングすることによってパフォーマンスが向上するかも) |
wsize | 書込バッファサイズ(チューニングすることによってパフォーマンスが向上するかも) |
rpcbindデーモンとlockd、statdデーモンを起動スクリプトから起動してマウントします。システムの起動時に自動マウントさせたい場合は、/etc/vfstabにも変更を加えておきます。
# /etc/rc2.d/S71rpc start # /etc/rc2.d/S73nfs.clientt start // lockd, statdが起動 # mount -F nfs -o soft,retry=3 nfs-srv:/export/home/data /mnt # vi /etc/vfstab --- nfs-srv:/export/home/data - /mnt nfs - - soft,retry=3