NFSv4 on Ubuntu 10.04

研究環境を準備するのに2台のリタイアしたパソコンをもらってきてUbuntu 10.04 serverをインストールした。これらのマシンはリタイアしたといっても、各々Quad-coreでメモリは8GBもある強力なマシンである。手元の端末はThinkpad T43というPentium Mのマシンでなかなかの骨董品であるが、科学計算をする以外には困ることはほとんどない。
さて、Quad-coreマシンに、1TBのハードディスクを裸族でミラーリングして/homeにマウントした。ここにいま手持ちのデータを全部コピーしたので、他のマシンからもアクセスしたい。sshfsでもいいけれど、なんとなくnfsv4を試してみた。

設定

ここ(https://help.ubuntu.com/community/NFSv4Howto)に書いているようにすれば問題なく動く。idmapdというidをマッピングしてくれそうなデーモンを動かす必要があるので、uidやgidもうまくマッピングしてくれるものだと思ったが、普通はそうではないらしい(kerberosを使えばいけるらしいけど)。uidやgidが違ってもユーザ名とグループ名はマッピングするようで、ちゃんとマウントできたように見えるが、実はuidやgidはマッピングできていない。その原因はバグではなくて、仕様ではないかと思われる(http://linux-nfs.org/pipermail/nfsv4/2009-January/009809.html)。

NFSv3との設定の違い

大きな違いは、NFSマウントされるNFSルートディレクトリ以下のディレクトリしか見えないようになったことだ。従って、いくつかのディレクトリをマウントさせたい場合は、NFSルートディレクトリ用のディレクトリを作り、そのディレクトリの下にそれらディレクトリをバインドする。このようにして、擬似ディレクトリ構造を作らなければならない。サーバ側で正しく設定してしまえば、ノード側からの見え方は同じである。ただし、ノード側でもidmapdを起動しておかないとNFSv4でマウントできない。

追記(2010-08-17)

Ubuntuのアップデートでカーネルが
Linux paris 2.6.32-24-server #39-Ubuntu SMP Wed Jul 28 06:21:40 UTC 2010 x86_64 GNU/Linux
になったあと、mount.nfs no such deviceと出力されbootの途中で止まるようになってしまった。シェルも起動していない。原因はカーネルではなくカーネルモジュールの起動とファイルシステムのマウントのタイミングの問題ではないかと思い、CDブートでnfs-kernel-serverをインストールしたところ、うまく起動するようになった。しかし、元々の推測は間違っているようで、mount.nfs no such deviceが出る。ところが、今度はスタックしない。ログインの段階ではnfsマウントも問題なく行われている。不思議。
ところで、CDブートのレスキューモードが超便利だった。aptitudeまで使えて驚いた。