Hi! This patch series adds to ganeti the ability to verify that all the nodes in a cluster are configured with the same drbd usermode helper.
The main goal is to add a check to "gnt-cluster verify", in addition two other checks are done at init and modify time (similar to what it's currently done for volume group name). At cluster init time the drbd helper defaults to "/bin/true", a different helper can be specified via the command line option "--drbd-usermode-helper". If the cluster does not have drbd the option "--no-drbd-storage" can be used to nullify the usermode helper checks. I choosed to use "--no-drbd-storage" instead of something like "--no-drbd-usermode-helper" because if in the future we're going to add more drbd parameters we don't need to change it and thus we don't have to provide compatibility. When a the cluster configuration upgrades from a previous ganeti version, the drbd helper is set to a default parameter if there is at least one drbd instance, otherwise it's disabled. Similarly, at cluster modify time, the usermode helper cannot be disabled if at least one drbd instance is found. Luca Bigliardi (12): BaseDRBD: provide a way to query usermode_helper parameter VerifyNode: add usermode helper reply Add drbd_usermode_helper to configuration Generalize and move a recursive check on logical disks to utils Set drbd usermode helper on config upgrade Check drbd usermode helper in cluster verify Add drbd_helper rpc call Check and set drbd helper during bootstrap Check and set drbd helper in set params LU Report drbd helper in query info LU Add drbd helper and storage options gnt-cluster: deal with drbd helper in init/modify/info daemons/ganeti-noded | 7 +++ lib/backend.py | 16 +++++++ lib/bdev.py | 18 ++++++++ lib/bootstrap.py | 18 +++++++- lib/cli.py | 9 ++++ lib/cmdlib.py | 73 +++++++++++++++++++++++-------- lib/config.py | 27 ++++++++++++ lib/constants.py | 2 + lib/objects.py | 1 + lib/opcodes.py | 1 + lib/rpc.py | 9 ++++ lib/utils.py | 18 ++++++++ scripts/gnt-cluster | 25 ++++++++++- test/data/sys_drbd_usermode_helper.txt | 1 + test/ganeti.bdev_unittest.py | 13 ++++++ test/ganeti.config_unittest.py | 1 + 16 files changed, 217 insertions(+), 22 deletions(-) create mode 100644 test/data/sys_drbd_usermode_helper.txt
