hajichan.net technical version

サーバ管理

NFS

nfs server設定

nfs server側の設定は、公開するリソースの設定をshareコマンドで行うことと、rpcbindデーモンとnfsd、mountdデーモンを起動することです。公開するリソースの設定ファイルは、/etc/dfs/dfstabで、デーモン起動スクリプトは、/etc/rc2.d/S71rpc(rpcbind)と/etc/rc3.d/S15nfs.server(nfsd、mountd)です。また、shareコマンドのオプションには以下のようなものがあります。

【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 log設定

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設定

nfs client側の設定は、マウント設定を行うこととrpcbindデーモンとlockd、statdデーモンを起動することです。マウント設定ファイルは、/etc/vfstabで、デーモン起動スクリプトは、/etc/rc2.d/S71rpc(rpcbind)と/etc/rc2.d/S73nfs.client(lockd、statd)です。また、mountコマンドのオプションには以下のようなものがあります。

【NFSに関する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
ページのトップへ戻る