This is to let you know of the rather radical changes that I have made
to cman in the cluster.git master tree.
Basically it is now split into two corosync plugins. One of which is
simply a general quorum engine plugin. This provides a lot of the
features of the old cman (including the quorum device API) with some
- Node names are not held
- There is no messaging API
- No fencing information is held
- No barriers are available
Some of the features of cman have been moved into the corosync CFG
plugin - these are kill node and shutdown, others have been incorporated
into a "cmanbits" plugin which is for compatibility only and will be
To make the transition easier, I have written a compatibility libcman
that brings together the new disparate interfaces together in the
familiar libcman. The API to libcman is identical to before but the ABI
isn't. There could also be easily semantic changes to some interfaces
that will bite you too, but let me know of they do!
Ideally I would like to retire libcman (if you look at how I've had to
write the new one you will understand why!) and get everyone to use the
real corosync interfaces so we are all using community-standard parts
for cluster suite. That is, after all, what this is all about.
I do also intend to submit the quorum part of "cman" upstream to
corosync so it becomes a part of a community project too.
In theory, the new code should be wire compatible with that in
STABLE2/3/RHEL5. In practice it isn't at the moment, though once Steven
has managed to fix up the sync service incompatibilities I hope we will
be fully interoperable.
Oh, and in case you think I've just generated a lot of work for everyone
else with no consideration of what's involved, remember I have clvmd to
port. Anything you have is probably trivial by comparison ;-)
Comments, suggestions, code and chocolates are all welcome.
Flames will be ignored as I don't deal with people who can't argue