| Sean Dague | e263c82 | 2014-12-05 14:25:28 -0500 | [diff] [blame] | 1 | #!/bin/bash | 
|  | 2 | # | 
| Sébastien Han | 36f2f02 | 2014-01-06 18:09:26 +0100 | [diff] [blame] | 3 | # lib/cinder_backends/ceph | 
|  | 4 | # Configure the ceph backend | 
|  | 5 |  | 
|  | 6 | # Enable with: | 
|  | 7 | # | 
|  | 8 | #   CINDER_ENABLED_BACKENDS+=,ceph:ceph | 
|  | 9 | # | 
|  | 10 | # Optional parameters: | 
|  | 11 | #   CINDER_BAK_CEPH_POOL=<pool-name> | 
|  | 12 | #   CINDER_BAK_CEPH_USER=<user> | 
|  | 13 | #   CINDER_BAK_CEPH_POOL_PG=<pg-num> | 
|  | 14 | #   CINDER_BAK_CEPH_POOL_PGP=<pgp-num> | 
|  | 15 |  | 
|  | 16 | # Dependencies: | 
|  | 17 | # | 
|  | 18 | # - ``functions`` file | 
|  | 19 | # - ``cinder`` configurations | 
|  | 20 |  | 
|  | 21 | # configure_ceph_backend_lvm - called from configure_cinder() | 
|  | 22 |  | 
|  | 23 |  | 
|  | 24 | # Save trace setting | 
| Ian Wienand | 523f488 | 2015-10-13 11:03:03 +1100 | [diff] [blame] | 25 | _XTRACE_CINDER_CEPH=$(set +o | grep xtrace) | 
| Sébastien Han | 36f2f02 | 2014-01-06 18:09:26 +0100 | [diff] [blame] | 26 | set +o xtrace | 
|  | 27 |  | 
|  | 28 |  | 
|  | 29 | # Defaults | 
|  | 30 | # -------- | 
|  | 31 |  | 
|  | 32 | CINDER_BAK_CEPH_POOL=${CINDER_BAK_CEPH_POOL:-backups} | 
|  | 33 | CINDER_BAK_CEPH_POOL_PG=${CINDER_BAK_CEPH_POOL_PG:-8} | 
|  | 34 | CINDER_BAK_CEPH_POOL_PGP=${CINDER_BAK_CEPH_POOL_PGP:-8} | 
|  | 35 | CINDER_BAK_CEPH_USER=${CINDER_BAK_CEPH_USER:-cinder-bak} | 
|  | 36 |  | 
|  | 37 |  | 
|  | 38 | # Entry Points | 
|  | 39 | # ------------ | 
|  | 40 |  | 
|  | 41 | # configure_cinder_backend_ceph - Set config files, create data dirs, etc | 
|  | 42 | # configure_cinder_backend_ceph $name | 
|  | 43 | function configure_cinder_backend_ceph { | 
|  | 44 | local be_name=$1 | 
|  | 45 |  | 
|  | 46 | iniset $CINDER_CONF $be_name volume_backend_name $be_name | 
|  | 47 | iniset $CINDER_CONF $be_name volume_driver "cinder.volume.drivers.rbd.RBDDriver" | 
| Sébastien Han | 556139e | 2016-08-18 15:09:44 +0200 | [diff] [blame] | 48 | iniset $CINDER_CONF $be_name rbd_ceph_conf "$CEPH_CONF_FILE" | 
| Sébastien Han | 36f2f02 | 2014-01-06 18:09:26 +0100 | [diff] [blame] | 49 | iniset $CINDER_CONF $be_name rbd_pool "$CINDER_CEPH_POOL" | 
|  | 50 | iniset $CINDER_CONF $be_name rbd_user "$CINDER_CEPH_USER" | 
| Matt Riedemann | aa47a0a | 2016-10-20 22:27:25 -0400 | [diff] [blame] | 51 | iniset $CINDER_CONF $be_name rbd_secret_uuid "$CINDER_CEPH_UUID" | 
| Sébastien Han | 36f2f02 | 2014-01-06 18:09:26 +0100 | [diff] [blame] | 52 | iniset $CINDER_CONF $be_name rbd_flatten_volume_from_snapshot False | 
|  | 53 | iniset $CINDER_CONF $be_name rbd_max_clone_depth 5 | 
|  | 54 | iniset $CINDER_CONF DEFAULT glance_api_version 2 | 
|  | 55 |  | 
|  | 56 | if is_service_enabled c-bak; then | 
| Sébastien Han | 36f2f02 | 2014-01-06 18:09:26 +0100 | [diff] [blame] | 57 | sudo ceph -c ${CEPH_CONF_FILE} osd pool create ${CINDER_BAK_CEPH_POOL} ${CINDER_BAK_CEPH_POOL_PG} ${CINDER_BAK_CEPH_POOL_PGP} | 
| Sébastien Han | 4eb04a5 | 2014-12-04 16:22:41 +0100 | [diff] [blame] | 58 | if [ "$REMOTE_CEPH" = "False" ]; then | 
|  | 59 | # Configure Cinder backup service options, ceph pool, ceph user and ceph key | 
|  | 60 | sudo ceph -c ${CEPH_CONF_FILE} osd pool set ${CINDER_BAK_CEPH_POOL} size ${CEPH_REPLICAS} | 
|  | 61 | if [[ $CEPH_REPLICAS -ne 1 ]]; then | 
|  | 62 | sudo ceph -c ${CEPH_CONF_FILE} osd pool set ${CINDER_BAK_CEPH_POOL} crush_ruleset ${RULE_ID} | 
|  | 63 | fi | 
| Sébastien Han | 36f2f02 | 2014-01-06 18:09:26 +0100 | [diff] [blame] | 64 | fi | 
| Yuriy Nesenenko | a6bbe03 | 2015-12-23 16:00:02 +0200 | [diff] [blame] | 65 | sudo ceph -c ${CEPH_CONF_FILE} auth get-or-create client.${CINDER_BAK_CEPH_USER} mon "allow r" osd "allow class-read object_prefix rbd_children, allow rwx pool=${CINDER_BAK_CEPH_POOL}, allow rwx pool=${CINDER_CEPH_POOL}" | sudo tee ${CEPH_CONF_DIR}/ceph.client.${CINDER_BAK_CEPH_USER}.keyring | 
| Sébastien Han | 36f2f02 | 2014-01-06 18:09:26 +0100 | [diff] [blame] | 66 | sudo chown $(whoami):$(whoami) ${CEPH_CONF_DIR}/ceph.client.${CINDER_BAK_CEPH_USER}.keyring | 
|  | 67 |  | 
| melanie witt | 991b1f1 | 2018-09-27 18:30:38 +0000 | [diff] [blame] | 68 | iniset $CINDER_CONF DEFAULT backup_driver "cinder.backup.drivers.ceph.CephBackupDriver" | 
| Sébastien Han | 556139e | 2016-08-18 15:09:44 +0200 | [diff] [blame] | 69 | iniset $CINDER_CONF DEFAULT backup_ceph_conf "$CEPH_CONF_FILE" | 
| Sébastien Han | 36f2f02 | 2014-01-06 18:09:26 +0100 | [diff] [blame] | 70 | iniset $CINDER_CONF DEFAULT backup_ceph_pool "$CINDER_BAK_CEPH_POOL" | 
|  | 71 | iniset $CINDER_CONF DEFAULT backup_ceph_user "$CINDER_BAK_CEPH_USER" | 
|  | 72 | iniset $CINDER_CONF DEFAULT backup_ceph_stripe_unit 0 | 
|  | 73 | iniset $CINDER_CONF DEFAULT backup_ceph_stripe_count 0 | 
|  | 74 | iniset $CINDER_CONF DEFAULT restore_discard_excess_bytes True | 
|  | 75 | fi | 
|  | 76 | } | 
|  | 77 |  | 
|  | 78 | # Restore xtrace | 
| Ian Wienand | 523f488 | 2015-10-13 11:03:03 +1100 | [diff] [blame] | 79 | $_XTRACE_CINDER_CEPH | 
| Sébastien Han | 36f2f02 | 2014-01-06 18:09:26 +0100 | [diff] [blame] | 80 |  | 
|  | 81 | # Local variables: | 
|  | 82 | # mode: shell-script | 
|  | 83 | # End: |