Both appear to be functionally equivalent
You are giving an example for the situation when everything is working. The point of monitoring is to figure out when things go wrong. I've seen too many times when /proc/mounts didn't show anything for the lustre target when the Lustre service wasn't really stopped. Because Lustre lives in the kernel and can screw things up like that.
What is required is a single RA that can start and stop an individual Lustre service, and monitor that service to determine if the underlying hardware might be in use.
It is potentially disastrous for the monitor function to tell pacemaker that the lustre resource isn't running when in fact is might be writing to the storage.
Lustre server services are not the same as client mounts. If a client mount doesn't appear in /proc/mounts, there is little chance that anything can ever use that again on the system. With a lustre service, using "mount" to start the servers has always been a little bit hackish (not that there weren't perfectly good reasons for going that route). Because Lustre lives in the kernel, there are too many ways that the mount can disappear, but the Lustre service is still working with the drive.
Granted, mntdev might not be perfect either.
There might be reasons to have extra, completely advisory healthLUSTRE RAs. I'm not making an evaluation on that. But having those does not excuse us from having proper Lustre service RAs as well. The goals of the "monitor" function in a Lustre sevice RA will necessarily be different than the needs of broader Lustre system monitoring. It might be argued that that sort of monitoring though, should be performed in tools other than pacemaker.
Here is a concrete example: When lustre's "healthcheck" reports a problem, this is something a monitoring system should report to the sysadmin so they can resolve the problem. But many of the situations that helthcheck reports are not relavant to a proper pacemaker RA for lustre. Many of those situations can't be resolved by shooting the node and moving the resource to a failover partner node. So then the RA's monitor section should only report a problem when the problem has a reasonable chance of being solved by failover. Otherwise we can wind up with Lustre services bouncing back and forth between nodes and just exacerbating the problems on a system where there was already an issue.
Telling the problem situations apart is, perhaps, easier said than done. Especially with Lustre.
Hi Chris,
Your point is well made, and I understand the principal behind your approach. I think where I have concern is that there is a lot of cross-over with the existing Filesystem RA, and to provide the same level of comprehensive coverage in Lustre might create duplication (in particular for the LDISKFS volumes). I was looking to reduce duplication of effort, if possible.
Even still, we could lift relevant logic from ocf:*:Filesystem and specialise according to our specific need, so there's no fundamental objection. I'd still advocate for separation of ZFS volume management RA separate from Lustre mount / umount.
With regard to monitoring, we need to establish the monitoring criteria that would trigger a "valid" failover event, even if that list is necessarily small. So far, the only established criteria is determining if a given target is mounted. What else would you suggest for an RA?