diff --git a/README.rst b/README.rst index 0d56566..8cdf949 100644 --- a/README.rst +++ b/README.rst @@ -24,6 +24,7 @@ A few environment variables can be set to modify the behaviour: * `CINDER_DRBD_NO_STORAGE` means `--no-storage` * `CINDER_DRBD_NO_CV` gets translated to `--no-control-volume`. This is allowed only for additional nodes, and not the initial drbdmanage node that *has* to create a control volume. + * `CINDER_DRBD_USE_DRBD_PROTOCOL` makes the driver use the DRBD protocol to provide storage to the Nova nodes. Secondary nodes are detected by having `$SERVICE_HOST` unequal to `$HOST_IP`, and therefore register themselves as additional nodes in drbdmanage. diff --git a/devstack/lib/drbd_devstack b/devstack/lib/drbd_devstack index d01c0e8..42c99d9 100755 --- a/devstack/lib/drbd_devstack +++ b/devstack/lib/drbd_devstack @@ -238,8 +238,14 @@ function configure_drbd_devstack { if [[ -n "$CINDER_CONF" && -f "$CINDER_CONF" ]] ; then iniset $CINDER_CONF "$be_name" volume_backend_name "$be_name" + + # If the Cinder driver changes are upstream, this should become "DrbdManageIscsiDriver" + local driver=DrbdManageDriver + if [[ -n "$CINDER_DRBD_USE_DRBD_PROTOCOL" ]] ; then + driver=DrbdManageDrbdDriver + fi iniset $CINDER_CONF "$be_name" volume_driver \ - cinder.volume.drivers.drbdmanagedrv.DrbdManageDriver + cinder.volume.drivers.drbdmanagedrv.$driver fi }