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
Conversation
|
This is the fixed version of Pull request #1057 |
|
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. |
sos/plugins/lustre.py
Outdated
| def setup(self): | ||
| self.add_cmd_output(["lctl debug_kernel", | ||
| "lctl device_list"]) | ||
|
|
There was a problem hiding this comment.
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).
There was a problem hiding this comment.
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.
sos/plugins/lustre.py
Outdated
|
|
||
| if (self.is_installed('lustre-client')): | ||
| self.add_cmd_output(["lfs df", | ||
| "lfs df -i"]) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ditto here.
sos/plugins/lustre.py
Outdated
| else: | ||
| self.get_params("osd", ["osd-*.*.{mntdev,files*," + | ||
| "kbytes*,blocksize,brw_stats}"]) | ||
| self.get_params("quota", ["osd-*.*.quota_slave." + |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
51485c4
to
96908e0
Compare
|
This new patch should address all the previous comments. |
|
Is there anything else that's needed for this to land? |
sos/plugins/lustre.py
Outdated
| self.get_params("ldlm-states", ["*.*.state"]) | ||
| self.get_params("jobid", ["jobid_name", "jobid_var"]) | ||
|
|
||
| if (self.is_installed('lustre-client')): |
There was a problem hiding this comment.
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).
There was a problem hiding this 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.
sos/plugins/lustre.py
Outdated
| else: | ||
| self.get_params("osd", ["osd-*.*.{mntdev,files*," + | ||
| "kbytes*,blocksize,brw_stats}"]) | ||
| self.get_params("quota", ["osd-*.*.quota_slave." + |
There was a problem hiding this comment.
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.
|
Is this able to land? Would like to have this in a sos report. |
|
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>
96908e0
to
9eb08a5
Compare
|
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. |
|
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. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ack
This collects some basic information about the configuration
of Lustre on either a client or a server, including:
Signed-off-by: Nathaniel Clark Nathaniel.Clark@misrule.us
Please place an 'X' inside each '[]' to confirm you adhere to our Contributor Guidelines