Hironori Shiina | 01a84d2 | 2021-01-11 13:42:46 -0500 | [diff] [blame^] | 1 | #!/bin/bash |
| 2 | # |
| 3 | # lib/cinder_backups/ceph |
| 4 | # Configure the ceph backup driver |
| 5 | |
| 6 | # Enable with: |
| 7 | # |
| 8 | # CINDER_BACKUP_DRIVER=ceph |
| 9 | |
| 10 | # Dependencies: |
| 11 | # |
| 12 | # - ``functions`` file |
| 13 | # - ``cinder`` configurations |
| 14 | |
| 15 | # Save trace setting |
| 16 | _XTRACE_CINDER_CEPH=$(set +o | grep xtrace) |
| 17 | set +o xtrace |
| 18 | |
| 19 | # Defaults |
| 20 | # -------- |
| 21 | |
| 22 | CINDER_BAK_CEPH_POOL=${CINDER_BAK_CEPH_POOL:-backups} |
| 23 | CINDER_BAK_CEPH_POOL_PG=${CINDER_BAK_CEPH_POOL_PG:-8} |
| 24 | CINDER_BAK_CEPH_POOL_PGP=${CINDER_BAK_CEPH_POOL_PGP:-8} |
| 25 | CINDER_BAK_CEPH_USER=${CINDER_BAK_CEPH_USER:-cinder-bak} |
| 26 | |
| 27 | |
| 28 | function configure_cinder_backup_ceph { |
| 29 | sudo ceph -c ${CEPH_CONF_FILE} osd pool create ${CINDER_BAK_CEPH_POOL} ${CINDER_BAK_CEPH_POOL_PG} ${CINDER_BAK_CEPH_POOL_PGP} |
| 30 | if [ "$REMOTE_CEPH" = "False" ]; then |
| 31 | # Configure Cinder backup service options, ceph pool, ceph user and ceph key |
| 32 | sudo ceph -c ${CEPH_CONF_FILE} osd pool set ${CINDER_BAK_CEPH_POOL} size ${CEPH_REPLICAS} |
| 33 | if [[ $CEPH_REPLICAS -ne 1 ]]; then |
| 34 | sudo ceph -c ${CEPH_CONF_FILE} osd pool set ${CINDER_BAK_CEPH_POOL} crush_ruleset ${RULE_ID} |
| 35 | fi |
| 36 | fi |
| 37 | 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 |
| 38 | sudo chown $(whoami):$(whoami) ${CEPH_CONF_DIR}/ceph.client.${CINDER_BAK_CEPH_USER}.keyring |
| 39 | |
| 40 | iniset $CINDER_CONF DEFAULT backup_driver "cinder.backup.drivers.ceph.CephBackupDriver" |
| 41 | iniset $CINDER_CONF DEFAULT backup_ceph_conf "$CEPH_CONF_FILE" |
| 42 | iniset $CINDER_CONF DEFAULT backup_ceph_pool "$CINDER_BAK_CEPH_POOL" |
| 43 | iniset $CINDER_CONF DEFAULT backup_ceph_user "$CINDER_BAK_CEPH_USER" |
| 44 | iniset $CINDER_CONF DEFAULT backup_ceph_stripe_unit 0 |
| 45 | iniset $CINDER_CONF DEFAULT backup_ceph_stripe_count 0 |
| 46 | iniset $CINDER_CONF DEFAULT restore_discard_excess_bytes True |
| 47 | } |
| 48 | |
| 49 | # init_cinder_backup_ceph: nothing to do |
| 50 | # cleanup_cinder_backup_ceph: nothing to do |
| 51 | |
| 52 | # Restore xtrace |
| 53 | $_XTRACE_CINDER_CEPH |
| 54 | |
| 55 | # Local variables: |
| 56 | # mode: shell-script |
| 57 | # End: |