mbox series

[nfs-utils,v2,0/4] nfsdctl: new nfs-utils tool for managing the kernel NFS server

Message ID 20240416-nfsdctl-v2-0-9a4367b710d2@kernel.org (mailing list archive)
Headers show
Series nfsdctl: new nfs-utils tool for managing the kernel NFS server | expand

Message

Jeff Layton April 16, 2024, 4:48 p.m. UTC
Lorenzo posted an updated version of his netlink interface patches
yesterday [1]. This is an update to adapt to those changes, and to bring
the tool closer to feature completion for release.

This series first adds Lorenzo's original userland nfsdctl tool to the
nfs-utils tree, and then converts it to a subcommand-based interface, in
the spirit of tools like nmcli or virsh.

This version should be at feature parity with rpc.nfsd. This posting
also includes a manpage and an update to the nfs-server.service to
start using the new interface when possible.

I've also included a patch that adds the manpage source. It's much nicer
to edit that and regenerate it if we have to update it later. We can
drop that patch if you just want to keep the result though.

Assuming we're good with the new kernel interfaces, this should be
pretty close to ready for merge.

[1]: https://lore.kernel.org/linux-nfs/cover.1712853393.git.lorenzo@kernel.org/

Signed-off-by: Jeff Layton <jlayton@kernel.org>
---
Changes in v2:
- Adapt to latest kernel netlink interface changes (in particular, send
  the leastime and gracetime when they are set in the config).
- More help text for different subcommands
- New nfsdctl(8) manpage
- Patch to make systemd preferentially use nfsdctl instead of rpc.nfsd
- Link to v1: https://lore.kernel.org/r/20240412-nfsdctl-v1-0-efd6dcebcc04@kernel.org

---
Jeff Layton (3):
      nfsdctl: convert it to a command-line based interface
      nfsdctl: asciidoc source for the manpage
      systemd: use nfsdctl to start and stop the nfs server

Lorenzo Bianconi (1):
      nfsdctl: add the nfsdctl utility to nfs-utils

 configure.ac               |   13 +
 systemd/nfs-server.service |    4 +-
 utils/Makefile.am          |    4 +
 utils/nfsdctl/Makefile.am  |   13 +
 utils/nfsdctl/nfsdctl.8    |  274 +++++++++
 utils/nfsdctl/nfsdctl.adoc |  140 +++++
 utils/nfsdctl/nfsdctl.c    | 1401 ++++++++++++++++++++++++++++++++++++++++++++
 utils/nfsdctl/nfsdctl.h    |  186 ++++++
 8 files changed, 2033 insertions(+), 2 deletions(-)
---
base-commit: 117102ee541f38fd7d9274feb8b5586f88d4f655
change-id: 20240412-nfsdctl-fa8bd8430cfd

Best regards,

Comments

Steve Dickson April 21, 2024, 12:17 p.m. UTC | #1
Hello,

On 4/16/24 12:48 PM, Jeff Layton wrote:
> Lorenzo posted an updated version of his netlink interface patches
> yesterday [1]. This is an update to adapt to those changes, and to bring
> the tool closer to feature completion for release.
> 
> This series first adds Lorenzo's original userland nfsdctl tool to the
> nfs-utils tree, and then converts it to a subcommand-based interface, in
> the spirit of tools like nmcli or virsh.
> 
> This version should be at feature parity with rpc.nfsd. This posting
> also includes a manpage and an update to the nfs-server.service to
> start using the new interface when possible.
> 
> I've also included a patch that adds the manpage source. It's much nicer
> to edit that and regenerate it if we have to update it later. We can
> drop that patch if you just want to keep the result though.
> 
> Assuming we're good with the new kernel interfaces, this should be
> pretty close to ready for merge.
> 
> [1]: https://lore.kernel.org/linux-nfs/cover.1712853393.git.lorenzo@kernel.org/
> 
> Signed-off-by: Jeff Layton <jlayton@kernel.org>
> ---
> Changes in v2:
> - Adapt to latest kernel netlink interface changes (in particular, send
>    the leastime and gracetime when they are set in the config).
> - More help text for different subcommands
> - New nfsdctl(8) manpage
> - Patch to make systemd preferentially use nfsdctl instead of rpc.nfsd
> - Link to v1: https://lore.kernel.org/r/20240412-nfsdctl-v1-0-efd6dcebcc04@kernel.org
> 
> ---
> Jeff Layton (3):
>        nfsdctl: convert it to a command-line based interface
>        nfsdctl: asciidoc source for the manpage
>        systemd: use nfsdctl to start and stop the nfs server
> 
> Lorenzo Bianconi (1):
>        nfsdctl: add the nfsdctl utility to nfs-utils
> 
>   configure.ac               |   13 +
>   systemd/nfs-server.service |    4 +-
>   utils/Makefile.am          |    4 +
>   utils/nfsdctl/Makefile.am  |   13 +
>   utils/nfsdctl/nfsdctl.8    |  274 +++++++++
>   utils/nfsdctl/nfsdctl.adoc |  140 +++++
>   utils/nfsdctl/nfsdctl.c    | 1401 ++++++++++++++++++++++++++++++++++++++++++++
>   utils/nfsdctl/nfsdctl.h    |  186 ++++++
>   8 files changed, 2033 insertions(+), 2 deletions(-)
> ---
> base-commit: 117102ee541f38fd7d9274feb8b5586f88d4f655
> change-id: 20240412-nfsdctl-fa8bd8430cfd
> 
> Best regards,
I'm not sure this is ready for prime time....

nfsdctl status
[nothing and there is a mount]

nfsdctl version
Error: Operation not supported

nfsdctl listener
Error: Operation not supported

nfsdctl threads 256
Error: Operation not supported

The command does bring up the server.

These are examples from the man page

I have not invested why... but it just makes
me nervous that examples in the man page
do not work.

I have everything queued up ready to go
so lets work on this during the Bakeathon
next week.

steved.
Jeff Layton April 23, 2024, 11:44 a.m. UTC | #2
On Sun, 2024-04-21 at 08:17 -0400, Steve Dickson wrote:
> Hello,
> 
> On 4/16/24 12:48 PM, Jeff Layton wrote:
> > Lorenzo posted an updated version of his netlink interface patches
> > yesterday [1]. This is an update to adapt to those changes, and to bring
> > the tool closer to feature completion for release.
> > 
> > This series first adds Lorenzo's original userland nfsdctl tool to the
> > nfs-utils tree, and then converts it to a subcommand-based interface, in
> > the spirit of tools like nmcli or virsh.
> > 
> > This version should be at feature parity with rpc.nfsd. This posting
> > also includes a manpage and an update to the nfs-server.service to
> > start using the new interface when possible.
> > 
> > I've also included a patch that adds the manpage source. It's much nicer
> > to edit that and regenerate it if we have to update it later. We can
> > drop that patch if you just want to keep the result though.
> > 
> > Assuming we're good with the new kernel interfaces, this should be
> > pretty close to ready for merge.
> > 
> > [1]: https://lore.kernel.org/linux-nfs/cover.1712853393.git.lorenzo@kernel.org/
> > 
> > Signed-off-by: Jeff Layton <jlayton@kernel.org>
> > ---
> > Changes in v2:
> > - Adapt to latest kernel netlink interface changes (in particular, send
> >    the leastime and gracetime when they are set in the config).
> > - More help text for different subcommands
> > - New nfsdctl(8) manpage
> > - Patch to make systemd preferentially use nfsdctl instead of rpc.nfsd
> > - Link to v1: https://lore.kernel.org/r/20240412-nfsdctl-v1-0-efd6dcebcc04@kernel.org
> > 
> > ---
> > Jeff Layton (3):
> >        nfsdctl: convert it to a command-line based interface
> >        nfsdctl: asciidoc source for the manpage
> >        systemd: use nfsdctl to start and stop the nfs server
> > 
> > Lorenzo Bianconi (1):
> >        nfsdctl: add the nfsdctl utility to nfs-utils
> > 
> >   configure.ac               |   13 +
> >   systemd/nfs-server.service |    4 +-
> >   utils/Makefile.am          |    4 +
> >   utils/nfsdctl/Makefile.am  |   13 +
> >   utils/nfsdctl/nfsdctl.8    |  274 +++++++++
> >   utils/nfsdctl/nfsdctl.adoc |  140 +++++
> >   utils/nfsdctl/nfsdctl.c    | 1401 ++++++++++++++++++++++++++++++++++++++++++++
> >   utils/nfsdctl/nfsdctl.h    |  186 ++++++
> >   8 files changed, 2033 insertions(+), 2 deletions(-)
> > ---
> > base-commit: 117102ee541f38fd7d9274feb8b5586f88d4f655
> > change-id: 20240412-nfsdctl-fa8bd8430cfd
> > 
> > Best regards,
> I'm not sure this is ready for prime time....
> 
> nfsdctl status
> [nothing and there is a mount]
> 
> nfsdctl version
> Error: Operation not supported
> 
> nfsdctl listener
> Error: Operation not supported
> 
> nfsdctl threads 256
> Error: Operation not supported
> 
> The command does bring up the server.
> 
> These are examples from the man page
> 
> I have not invested why... but it just makes
> me nervous that examples in the man page
> do not work.
> 
> I have everything queued up ready to go
> so lets work on this during the Bakeathon
> next week.
> 


Your kernel needs to have the patches in [1].