NFSによるファイルサーバの運用

NFS(Network File System)とは他のホストのディスク上のファイルシステムを 自分のディスクのようにマウントして利用することです。 この機能を使ってファイルを共有すれば、ファイルサーバ上に あるファイルを共有する、他のホストにログインした場合でも、 同じ環境で同じファイルにアクセスすることが可能になります。

サーバ側の設定

まず/etc/exporfsにアクセスを許可するディレクトリについて、 どのホストにマウントを許すか、またread onlyアクセスなのか read writeアクセスかなどを設定します。FreeBSDとLinuxでは 記述の方法が異なります.

/etc/exportsの記述例
Linux用 FreeBSD用
/	panda(rw)
/home	192.168.0.*(rw)
/usr	*.fc-lab.com(ro)
/	-maproot=root panda
/home	-maproot=root 192.168.0 -mask 255.255.255.0
/usr	-ro bear.fc-lab.com

最初の行は/をpandaにマウントを許しrwアクセスさせるという設定です. 2行めは192.168.0.*にマウントさせる設定です。 FreeBSDの-maproot=userという設定はクライアントのrootが マウントされたファイルシステムを扱う場合userのアクセス権限が 与えられるという設定です。

この設定で注意しなければならないのは、pandaとかbear.fc-lab.com などのホスト名を使うときには/etc/hostsで設定か 逆引きできるようにしておかなければならないことです。

逆引きできているか確認するには、クライアントのホストから telnetでログインしてwhoコマンドを実行するとわかります.

% tty
/dev/pts/0
% whoami
fujiki
% who
fujiki  pts/0    Feb  9 07:03 (bear.fc-lab.com)
%

この場合bearとだけ書いておいてもうまくいかないことに注意してください。 と表示されるなら、bearという名前でなくbear.fc-lab.com出てくれば, /etc/exportsで、bear.fc-lab.comと書かなければならず、 bearという設定だけではうまくいかないことがあります。 /etc/hostsに記述がある場合は、whoを実行した時、 ドメインまで含めた名前でなく単にbearとだけ出るかもしれません. この場合はbearについての記述を行ってください.

以上の設定が済んだらrootになって以下のコマンドを実行します。

Linux用 FreeBSD用
# exportfs -a
# /usr/sbin/rpc.mountd
# /usr/sbin/rpc.nfsd 8
# exportfs -a
# mountd

以上でサーバの設定はOKです

クライアント側の設定

クライアントではまず、マウントポイントのディレクトリを作成して、 そこにNFS mountするとサーバのファイルシステムを使うことができる ようになります。以下はマウントの例です

# mkdir /panda_home
# mount panda:/home /panda_home

この例ではpandaというサーバの/homeを、このコマンドを実行している マシンの/panda_homeにマウントしています。これこのホストでは /panda_homeディレクトリを読み書きすると、実際はサーバのファイルに アクセスするようになります。

FreeBSD4.2での設定

サーバ側の設定

# portmap
# nfsd -u -t -n 4
# mountd -r
-u オプションはUDPのサービスを行う事を指定し、 -t オプションはTCPのサービスを行う事を指定しています。 -n 4 は4つのデーモンを起動させることを意味します。

クライアント側

# nfsiod -n 4 # mount panda:/cdrom /mnt panda はサーバの名前です。

FC Labのホームへ Copyright(c) 2001 Takeshi FUJIKI All rights reserved.