Problems Re-Starting mountd
Jason Keltz
jas at cse.yorku.ca
Wed Jan 9 18:36:46 UTC 2013
On 01/09/2013 07:55 AM, Andrey Simonenko wrote:
>
> When mountd starts it flushes NFS export settings for all file systems,
> for each mount point it calls nmount(), even if /etc/exports is empty
> it will call nmount() for all currently mounted file systems.
>
> When mountd loads export settings into NFS server it calls statfs() and
> lstat() for each pathname from /etc/exports (number of lstat() calls depends
> on number of '/' in each pathname), then it calls nmount() for each
> address specification for each pathname from /etc/exports. It uses
> nmount() interface for communication with kern/vfs_export.c that is
> responsible for NFS export settings for file systems. For the NFSv4
> root directory mountd uses nfssvc() to update its settings, that
> calls kern/vfs_export.c:vfs_export().
>
> When mountd receives SIGHUP it flushes everything and loads /etc/exports.
> This signal is sent by mount(8) when it mounts any file system.
>
> This delay in above described example came from ZFS kernel code, since
> the same configuration for 2000 nullfs(5) file systems takes ~0.20 second
> (less than second) by mountd in nmount() system calls. At least on
> 9.1-STABLE I do not see that this delay came from mountd code, it came
> from nmount() used by mountd.
>
Hi Andrey,
Thanks for your message.
If this is the case, I wonder if there's really any change that needed
at all. Maybe one of the ZFS filesystem maintainers might have some
idea why 2000 nullfs filesystems take ~0.20 second to process with
nmount(), yet the same number of ZFS filesystems take so much longer to
process. Maybe there's a bug somewhere?
Jason.
More information about the freebsd-fs
mailing list