11/08/2006

NFS启动慢的问题

用linux开发的朋友对这个问题一定很有体会,有时候开机时在start NFS这一步会停很长的时间,这个问题困扰了我很长的时间,今天终于忍不住上google搜索了一把,答案是因为每次客户端mount过NFS而又没有正常umount后,在/var/lib/nfs/rmtab里会留下记录,每次NFS启动的时候都会去check以前的IP,如果不通,要等到timeout才行。我cat rmtab看了一下,hoho,从上海,konka,TCL,Changhong用过的IP都在里面记着,难怪慢的象蜗牛一样!删了后试了一下,马上就起来了!

Slow Reboots of NFS Server

After several years of use, the server for my development machines developed a problem. If I rebooted the machine without an internet connection, it would pause for several minutes while starting the NFS service.

The Linux NFS server keeps track of status in several files. Whenever a client mounts a filesystem, the server records this in /var/lib/nfs/rmtab. If the server reboots, exportfs passes this list to the kernel to ensure that the reboot is invisible to the clients. So far, this is harmless.

If the server is used with clients that do not send clean unmount requests, such as diskless machines in a development lab, then rmtab fills up with entries for machines that aren't around anymore. This is mostly harmless.

The final part of the problem is that on reboot exportfs performs a reverse DNS lookup for each entry in rmtab. If the DNS server is unavailable, the request waits for a timeout. This can take a very long time.

And the moral of the story? If NFS clients come and go on your network, check rmtab for clutter.
-- Humboldt Solutions Ltd.

没有评论: