Details
-
Improvement
-
Resolution: Fixed
-
Minor
-
Lustre 2.7.0, Lustre 2.5.3
-
None
-
16757
Description
Currently a single mount helper, mount.lustre, is used to mount lustre on a client, as well as to start a lustre server (e.g. OST).
This makes it harder to see bugs in which client-side mount code is executed in a server context or vice versa, and cause undesirable side-affects.
An example seen at LLNL recently was with osd_init(). Client nodes could not mount a lustre filesystem because mount called osd_init(), which attempted to load the mount_osd_{zfs,ldiskfs} backfs modules. One of the modules failed to load, causing the mount to fail, even though the client does not use those modules at all.
That specific bug is being corrected by change http://review.whamcloud.com/#/c/12550/ for LU-5851, but there may well be other similar issues that have not yet surfaced; and creating more is not difficult with the current code structure.
The proposal here is to move server-side code from mount_lustre.c to mount_lustre_server.c, modify the build system to generate two separate binaries, mount.lustre and mount.lustre_server, and then update startup scripts, spec file, and documentation appropriately.