mdb: Open source implementation of nfs module
We need open source replacement of the nfs module for mdb.
tested following commands:
nfs_exptable - dump exportinfo structures from the exptable nfs_exptable_path - dump exportinfo structures from the exptable_path_hash nfs_nstree - dump NFS server pseudo namespace tree nfs_expinfo - dump exportinfo structure nfs_path_hashdist - show path hash distribution of the exportinfo table nfs_fid_hashdist - show fid hash distribution of the exportinfo table nfs_expvis - dump exp_visible_t structure nfs_stat - Print NFS statistics KLM nlm_host - dump nlm_host structures (hosts/sysids) nlm_list - list all zones, optionally filter hosts nlm_lockson - dump NLM locks from host (or sysid) nlm_slreq - dump nlm_slreq structures (sleeping lock requests) nlm_vhold - dump nlm_vhold structures (vnode holds) nlm_zone - dump per-zone nlm_globals NFSv state db rfs4_db - dump NFSv4 server database - ether empty (global zone) or zone address rfs4_tbl - dump NFSv4 server table rfs4_idx - dump NFSv4 server index rfs4_bkt - dump NFSv4 server index buckets - give address of indices rfs4_client - dump NFSv4 rfs4_client_t structures - (This is the client structure fro oo, lo, delegate state) rfs4_deleg - dump NFSv4 rfs4_deleg_state_t structures rfs4_file - dump NFSv4 rfs4_file_t structures rfs4_lo - dump NFSv4 rfs4_lockowner_t structures rfs4_lsid - dump NFSv4 rfs4_lo_state_t structures rfs4_oo - dump NFSv4 rfs4_openowner_t structures rfs4_osid - dump NFSv4 rfs4_state_t structures
Updated by Dan McDonald 10 months ago
Link of downstream source: https://github.com/Nexenta/illumos-nexenta/commit/e73ce9faf32b9052361bca66ec6b7739317d2d8f
It appears this most recent update has been there for not-quite two years.
Updated by Electric Monk 10 months ago
- Status changed from In Progress to Closed
- % Done changed from 90 to 100
commit 86d949f9497332fe19be6b5d711d265eb957439f Author: Vitaliy Gusev <email@example.com> Date: 2023-02-20T16:08:54.000Z 3409 mdb: Open source implementation of nfs module Portions contributed by: Marcel Telka <firstname.lastname@example.org> Portions contributed by: Evan Layton <email@example.com> Reviewed by: Gordon Ross <Gordon.W.Ross@gmail.com> Reviewed by: Bill Sommerfeld <firstname.lastname@example.org> Reviewed by: Gergő Mihály Doma <email@example.com> Approved by: Dan McDonald <firstname.lastname@example.org>
Updated by Gordon Ross 10 months ago
There was a request for some history of development and usage of what was up for RTI. Here's what I can find.
In April 2012, Vitaliy Gusev at Nexenta wrote what appears to be the initial (open source) implementation of mdb for NFS.
In autumn of 2013, Marcel Telka at Nexenta reorganized and reworked a lot of the mdb for NFS code.
I believe something similar to the 2013 version was integrated later at Nexenta, and used some, but I don't have access to that history. I recall that it was also used prior to integration (built from a branch and installed by hand onto a system for crash dump analysis).
During 2016-2019, Nexenta, RackTop, and others were collaborating on various NFS work including NFSv4.1, NFS-in-a-zone, and mdb for NFS.
In 2018, Evan Laton at Nexenta reworked the NFS mdb module to catch up with "NFS-in-a-zone" (#11083) and integrated it (as NEX-16590). That version got some use at Nexenta for crash dump analysis etc. Evan prepared that version of the mdb code for upstream, but had to leave it "parked".
In late 2021, I integrated the work from 2018 into RackTop's illumos fork with minor cleanup. That version (and preceeding, not yet integrated versions) got some use for tracking down NFSv4 protocol issues.
In early 2023, RackTop commissioned Toomas Soome to work on integrating mdb for NFS.