Project

General

Profile

Actions

Feature #3409

closed

mdb: Open source implementation of nfs module

Added by Marcel Telka almost 11 years ago. Updated 10 months ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
nfs - NFS server and client
Start date:
2012-12-10
Due date:
% Done:

100%

Estimated time:
Difficulty:
Medium
Tags:
needs-triage
Gerrit CR:
External Bug:
racktop:BSR-9288

Description

We need open source replacement of the nfs module for mdb.

Testing done:
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


Related issues

Related to illumos gate - Bug #4629: ::nlm_lockson does not work in mdb New2014-02-25

Actions
Related to illumos gate - Bug #15912: NFS mdb module only exempted from closed-bins when 32bitNew

Actions
Blocks illumos gate - Bug #3411: We can save 4 bytes in the rfs4_dbe structIn ProgressDan McDonald2012-12-11

Actions
Blocks illumos gate - Bug #3631: mdb: NFS filesystems monitored by FEM are ignoredNewMarcel Telka2013-03-16

Actions
Actions #1

Updated by Marcel Telka almost 11 years ago

  • Status changed from New to In Progress
Actions #3

Updated by Gordon Ross about 7 years ago

Are you working on this?

Actions #4

Updated by Gordon Ross about 2 years ago

There's an implementation of this that several people have worked on, currently found in
github/Nexenta e73ce9faf32b9052361bca66ec6b7739317d2d8f
Hopefully this can go upstream soon.

Actions #5

Updated by Marcel Telka about 2 years ago

  • Assignee deleted (Marcel Telka)
Actions #6

Updated by Gordon Ross 10 months ago

  • Assignee set to Toomas Soome
Actions #7

Updated by Toomas Soome 10 months ago

  • Description updated (diff)
  • External Bug set to racktop:BSR-9288
Actions #8

Updated by Electric Monk 10 months ago

  • Gerrit CR set to 2643
Actions #9

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.

Actions #10

Updated by Toomas Soome 10 months ago

  • Description updated (diff)
  • % Done changed from 0 to 90
Actions #11

Updated by Electric Monk 10 months ago

  • Status changed from In Progress to Closed
  • % Done changed from 90 to 100

git commit 86d949f9497332fe19be6b5d711d265eb957439f

commit  86d949f9497332fe19be6b5d711d265eb957439f
Author: Vitaliy Gusev <gusev.vitaliy@gmail.com>
Date:   2023-02-20T16:08:54.000Z

    3409 mdb: Open source implementation of nfs module
    Portions contributed by: Marcel Telka <marcel@telka.sk>
    Portions contributed by: Evan Layton <evan.layton@nexenta.com>
    Reviewed by: Gordon Ross <Gordon.W.Ross@gmail.com>
    Reviewed by: Bill Sommerfeld <sommerfeld@alum.mit.edu>
    Reviewed by: Gergő Mihály Doma <domag02@gmail.com>
    Approved by: Dan McDonald <danmcd@mnx.io>

Actions #12

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.

Actions #13

Updated by Rich Lowe 3 months ago

  • Related to Bug #15912: NFS mdb module only exempted from closed-bins when 32bit added
Actions

Also available in: Atom PDF