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

Reply via email to