Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[lustre] Add Lustre filesystem plugin #1058

Closed
wants to merge 1 commit into from

Conversation

utopiabound
Copy link
Contributor

This collects some basic information about the configuration
of Lustre on either a client or a server, including:

  • Interal ring buffer log
  • Basic configuration information
  • Quota information
  • Configuration of LNet
  • JobID info
  • LDLM connection states

Signed-off-by: Nathaniel Clark Nathaniel.Clark@misrule.us


Please place an 'X' inside each '[]' to confirm you adhere to our Contributor Guidelines

  • Is the commit message split over multiple lines and hard-wrapped at 72 characters?
  • Is the subject and message clear and concise?
  • Does the subject start with [plugin_name] if submitting a plugin patch or a [section_name] if part of the core sosreport code?
  • Does the commit contain a Signed-off-by: First Lastname email@example.com?

@utopiabound
Copy link
Contributor Author

This is the fixed version of Pull request #1057

@bmr-cymru
Copy link
Member

I'm just heading out for the day but based on a quick read this looks good - thanks for making the changes.

I see Adam's added his ack so I'll try to get a proper review done in the morning so we can go ahead and merge.

def setup(self):
self.add_cmd_output(["lctl debug_kernel",
"lctl device_list"])

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The conventional style in sos is as in the example I gave:

    self.add_cmd_output([
        "command one",
        "command two",
        "command ..."
    ])

If you wouldn't mind respinning this and updating the branch, it helps to have as consistent a style throughout as we can (otherwise it's a minor tweak I can fix up when I merge).

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, I missed the formatting; I'll do that.


if (self.is_installed('lustre-client')):
self.add_cmd_output(["lfs df",
"lfs df -i"])
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ditto here.

else:
self.get_params("osd", ["osd-*.*.{mntdev,files*," +
"kbytes*,blocksize,brw_stats}"])
self.get_params("quota", ["osd-*.*.quota_slave." +
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These are OK as they are; if anything we'd pregenerate the list in a variable, but it does not seem worth it here since there is no real commonality beyond the "osd-.." prefix.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These may want to be protected by an if not self.is_installed(): if the previous conditional is removed and these commands will spit error messages - in this case, because the command does exist on the system we will be able to run it, and will collect whatever output it generates in the report.

@utopiabound
Copy link
Contributor Author

This new patch should address all the previous comments.

@utopiabound
Copy link
Contributor Author

Is there anything else that's needed for this to land?

self.get_params("ldlm-states", ["*.*.state"])
self.get_params("jobid", ["jobid_name", "jobid_var"])

if (self.is_installed('lustre-client')):
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's no real reason to make this conditional - all command execution in sos is speculative (it's not a big deal, but it tends to make plugins cleaner/simpler if they follow the "forgiveness rather than permission" approach).

Copy link
Member

@bmr-cymru bmr-cymru left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The plugin is suitable for merging now - thanks for working on this. There are a couple of very minor tweaks that would improve readability but they are not blockers for including the changes.

else:
self.get_params("osd", ["osd-*.*.{mntdev,files*," +
"kbytes*,blocksize,brw_stats}"])
self.get_params("quota", ["osd-*.*.quota_slave." +
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These may want to be protected by an if not self.is_installed(): if the previous conditional is removed and these commands will spit error messages - in this case, because the command does exist on the system we will be able to run it, and will collect whatever output it generates in the report.

@jgrund
Copy link

jgrund commented Oct 18, 2017

Is this able to land? Would like to have this in a sos report.

@bmr-cymru
Copy link
Member

We will try to pull it in for 3.5 (a few weeks overdue currently).

This collects some basic information about the configuration
of Lustre on either a client or a server, including:
* Interal ring buffer log
* Basic configuration information
* Quota information
* Configuration of LNet
* JobID info
* LDLM connection states

Signed-off-by: Nathaniel Clark <Nathaniel.Clark@misrule.us>
@utopiabound
Copy link
Contributor Author

I've updated the plugin with more information collection. I removed the server/client distinction and just collect everything as that will be cleaner if for instance, the modules aren't installed via the "normal" rpms.

@utopiabound
Copy link
Contributor Author

This seems to have missed 3.5, can we land it for 3.6?

@TurboTurtle TurboTurtle added this to the 3.6 milestone Feb 7, 2018
@bmr-cymru
Copy link
Member

This seems to have missed 3.5, can we land it for 3.6?

It just got to the front of the review queue, so I hope so - we're expecting to release 3.6 next month.

Copy link
Member

@bmr-cymru bmr-cymru left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ack

@bmr-cymru bmr-cymru closed this in 9e698dc Mar 27, 2018
@utopiabound utopiabound deleted the feature/lustre branch March 27, 2020 22:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants