Bug 1788937
| Summary: | pmda-lustre fails to start as stat data location changed since lustre 2.12 | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux 8 | Reporter: | Piyush Bhoot <pbhoot> |
| Component: | pcp | Assignee: | Mark Goodwin <mgoodwin> |
| Status: | CLOSED ERRATA | QA Contact: | Jan Kurik <jkurik> |
| Severity: | unspecified | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | 8.3 | CC: | agerstmayr, jkurik, mgoodwin, nathans, patrickm |
| Target Milestone: | alpha | Keywords: | Bugfix, Reopened, Triaged |
| Target Release: | 8.3 | Flags: | pm-rhel:
mirror+
|
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | pcp-5.1.1 | Doc Type: | No Doc Update |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2020-11-04 03:00:37 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
| Bug Depends On: | 1792971 | ||
| Bug Blocks: | |||
|
Description
Piyush Bhoot
2020-01-08 12:11:42 UTC
Assigning to Mark for closer look. Note the format of luster.conf (shoulda been lustre.conf I think, ugh) is $LLITE_PATH=/sys/kernel/debug/lustre/llite; not LLITE_PATH=/sys/kernel/debug/lustre/llite (IIRC) Piyush, will it be necessary with this customer to support both lustre-2.10.x and lustre-2.12.x with the same PMDA code? It seems there are two current release streams with RPMS for both v2.10 and v2.12 for el7 available at at https://downloads.whamcloud.com/public/lustre/ Thanks For this customer, the requirement is to support the version (of the kernel interface) shipped in RHEL-7. The userspace Lustre version is not relevant here, as PCP talks to the kernel directly so it's that interface that we know needs to be investigated. From a purist, upstream PCP POV, the PMDA would ideally support both kernel interfaces though. (In reply to Nathan Scott from comment #4) > For this customer, the requirement is to support the version (of the kernel > interface) shipped in RHEL-7. Lustre server kernel modules are not shipped by Red Hat. See https://access.redhat.com/solutions/47031 > > The userspace Lustre version is not relevant here, as PCP talks to the > kernel directly so it's that interface that we know needs to be > investigated. From a purist, upstream PCP POV, the PMDA would ideally > support both kernel interfaces though. The lustre server kernel modules for el7 are built using a patch against a 3.10 kernel (patch-3.10.0-lustre.patch in the SRPM). THis patch is different in the latest Lustre maintenance release streams for el7, which are version 2.10.8 and version 2.12.4. So the PCP PMDA will need to be tested with both versions on a RHEL7 VM. If that works, the path to the kernel statistics interfaces can be set either using (a) exported environment variables for overriding the default paths: $LUSTRE_LLITE_PATH and $LUSTRE_LNET_PATH, set prior to running the Install script. Or (b), a configuration file '/var/lib/pcp/pmdas/lustre/lustre.conf' which can specify these paths too. Variable assignments in the conf file are eval'd by the PMDA, which is written in perl. So the conf file should contain perl code, e.g. for Lustre 2.12.x : $LLITE_PATH=/sys/kernel/debug/lustre/llite $LNET_PATH=/sys/kernel/debug/lnet Other than that, if Lustre 2.12 or later kernel modules are loaded, the PMDA needs to run as the root user in order to access the kernel statistics interfaces. THis is not necessary if running Lustre 2.10.x - the /proc interfaces are non-root accessible. (In reply to Mark Goodwin from comment #5) > (In reply to Nathan Scott from comment #4) > > For this customer, the requirement is to support the version (of the kernel > > interface) shipped in RHEL-7. > > Lustre server kernel modules are not shipped by Red Hat. See > https://access.redhat.com/solutions/47031 > Aha - thanks for looking into this. > > > > The userspace Lustre version is not relevant here, as PCP talks to the > > kernel directly so it's that interface that we know needs to be > > investigated. From a purist, upstream PCP POV, the PMDA would ideally > > support both kernel interfaces though. > > The lustre server kernel modules for el7 are built using a patch against a > 3.10 kernel (patch-3.10.0-lustre.patch in the SRPM). THis patch is different > in the latest Lustre maintenance release streams for el7, which are version > 2.10.8 and version 2.12.4. So the PCP PMDA will need to be tested with both > versions on a RHEL7 VM. OK. Ideally the different kernel interfaces will be captured, and we can craft suitable QA regression tests for the PMDA. > If that works, the path to the kernel statistics interfaces can be set > either using (a) exported environment variables for overriding the default > paths: $LUSTRE_LLITE_PATH and $LUSTRE_LNET_PATH, set prior to running the > Install script. Or (b), a configuration file > '/var/lib/pcp/pmdas/lustre/lustre.conf' which can specify these paths too. > Variable assignments in the conf file are eval'd by the PMDA, which is (c) handle both by detecting which kernel interface file path/format is available at runtime. we need to keep the PMDA config file though since it's supported today. > written in perl. So the conf file should contain perl code, e.g. for Lustre > 2.12.x : > > $LLITE_PATH=/sys/kernel/debug/lustre/llite > $LNET_PATH=/sys/kernel/debug/lnet We don't seem to know yet whether the sysfs files have the same or different formats - or do we? > Other than that, if Lustre 2.12 or later kernel modules are loaded, the PMDA > needs to run as the root user in order to access the kernel statistics > interfaces. THis is not necessary if running Lustre 2.10.x - the /proc > interfaces are non-root accessible. This also can be handled dynamically (preferably), or just always run as root. (In reply to Nathan Scott from comment #6) > (In reply to Mark Goodwin from comment #5) > > (In reply to Nathan Scott from comment #4) > > > For this customer, the requirement is to support the version (of the kernel > > > interface) shipped in RHEL-7. > > > > Lustre server kernel modules are not shipped by Red Hat. See > > https://access.redhat.com/solutions/47031 > > > > Aha - thanks for looking into this. > > > > > > > The userspace Lustre version is not relevant here, as PCP talks to the > > > kernel directly so it's that interface that we know needs to be > > > investigated. From a purist, upstream PCP POV, the PMDA would ideally > > > support both kernel interfaces though. > > > > The lustre server kernel modules for el7 are built using a patch against a > > 3.10 kernel (patch-3.10.0-lustre.patch in the SRPM). THis patch is different > > in the latest Lustre maintenance release streams for el7, which are version > > 2.10.8 and version 2.12.4. So the PCP PMDA will need to be tested with both > > versions on a RHEL7 VM. > > OK. Ideally the different kernel interfaces will be captured, and > we can craft suitable QA regression tests for the PMDA. yes we can do that > We don't seem to know yet whether the sysfs files have the same or > different formats - or do we? it's not obvious after reading and comparing the two patches. That's why it would be best to install each version and then test. > > > Other than that, if Lustre 2.12 or later kernel modules are loaded, the PMDA > > needs to run as the root user in order to access the kernel statistics > > interfaces. THis is not necessary if running Lustre 2.10.x - the /proc > > interfaces are non-root accessible. > > This also can be handled dynamically (preferably), or just always run as > root. The usual way is to call pmda->set_user($OS_USER) where $OS_USER can be specified in the conf file. The code to do that is not in the current PMDA src. (In reply to Mark Goodwin from comment #7) > (In reply to Nathan Scott from comment #6) > > > We don't seem to know yet whether the sysfs files have the same or > > different formats - or do we? > > it's not obvious after reading and comparing the two patches. That's why it > would be best to install each version and then test. OK. Perhaps Piyush could attach files captured from the sysfs interface for a quick(er) comparison too. > > > > This also can be handled dynamically (preferably), or just always run as > > root. > > The usual way is to call pmda->set_user($OS_USER) where $OS_USER can be > specified in the conf file. The code to do that is not in the current PMDA > src. There is no config file by default, so the 'usual way' is to handle setup in the PMDA code. The code could test for which kernel interface exists (if any) and adapt its behaviour on the fly (and either call set_user or not, depending on the API used). This approach would be user-friendly and lead to less installation errors by default. Thanks Mark. As there's no RHEL 7.10 planned, we'll tackle this in RHEL 8 at that next available opportunity. Verified on pcp-5.1.1-2.el8 build with lustre-2.12.5 installed. Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory (pcp bug fix and enhancement update), and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2020:4684 |