CentOSで作ったNFSサーバで/homeディレクトリを共有している。さすがにディストリビューションが異なるUbuntuで/homeそのものを共有するとアプリケーションの設定などに不整合が出そうだが、データファイルの共有のためUbuntuでもマウントしたい。NFSはバージョン4を使っている。
まずNFSのクライアント用パッケージをインストールする。
ishii@ubuntu:~$ sudo aptitude install nfs-common
これだけでとりあえずマウントはできるようになる。ただしユーザID、グループIDがマップできていないので書き込みには問題がある。
ishii@ubuntu:~$ sudo mount -t nfs4 -o proto=tcp,port=2049 storage1:/ /mnt ishii@ubuntu:~$ mount ... storage1:/ on /mnt type nfs4 (rw,proto=tcp,port=2049,addr=192.168.0.24,clientaddr=192.168.0.130) ishii@ubuntu:~$ ls /mnt -l 合計 24 drwxr-xr-x 51 4294967294 4294967294 4096 2008-08-20 17:47 ishii drwx------ 2 4294967294 4294967294 16384 2007-10-31 01:49 lost+found ishii@ubuntu:~$
ユーザID、グループIDのマッピングはidmapdで行う。先ほどインストールしたnfs-commonで一緒にインストールされているので、設定をする。
ishii@ubuntu:~$ sudo vi /etc/idmapd.conf [General] Verbosity = 0 Pipefs-Directory = /var/lib/nfs/rpc_pipefs Domain = grandarbre.net [Mapping] Nobody-User = nobody Nobody-Group = nogroup
ishii@ubuntu:~$ sudo vi /etc/ldap/ldap.conf ... base dc=grandarbre,dc=net uri ldap://ns1 ldap://ns2 ...
ishii@ubuntu:~$ sudo vi /etc/default/nfs-common ... NEED_IDMAPD=yes ...
ここまでやってservice nfs-common restartでNFSを再起動し、マウントしなおすとファイルのオーナ、グループが正しくなっている。
ishii@ubuntu:~$ ls -l /mnt 合計 24 drwxr-xr-x 51 ishii ishii 4096 2008-08-20 17:47 ishii drwx------ 2 root root 16384 2007-10-31 01:49 lost+found
ところがマウントしたフォルダにアクセスしても、otherとしてのアクセスしかできない。よく考えてみれば、LDAPでのユーザIDは500、ubuntuで作ったユーザIDは1000だった。とりあえず/etc/passwdと/etc/groupでIDを500にしたらうまく行った。