Skip to content
Snippets Groups Projects
Commit 4e10db2e authored by František Řezníček's avatar František Řezníček
Browse files

feat: ceph low-level manipulation scripts added

parent bd1375e5
No related branches found
No related tags found
No related merge requests found
#!/usr/bin/env bash
# ceph-accessible.sh
# returns 0 if RBD image exists
set -eo pipefail
CEPH_CLIENT_DIR="/root/migrator"
CEPH_USER="${CEPH_USER:-"client.migrator"}"
CEPH_KEYRING="${CEPH_CLIENT_DIR}/${CEPH_USER}.keyring"
CEPH_CONFIG="${CEPH_CLIENT_DIR}/ceph.conf"
ceph --conf="${CEPH_CONFIG}" --name "${CEPH_USER}" --keyring=${CEPH_KEYRING} status &>/dev/null
#!/usr/bin/env bash
# ceph-rbd-image-clone.sh <ceph-src-pool-name> <ostack-src-volume-id> <ostack-src-snapshot-id> <ceph-dst-pool-name> <dst-ceph-rbd-image-name>
# returns 0 if RBD clone succeeds
set -eo pipefail
CEPH_CLIENT_DIR="/root/migrator"
CEPH_USER="${CEPH_USER:-"client.cinder"}"
CEPH_KEYRING="${CEPH_CLIENT_DIR}/${CEPH_USER}.keyring"
CEPH_CONFIG="${CEPH_CLIENT_DIR}/ceph.conf"
CEPH_SRC_POOL="$1"
OSTACK_SRC_VOLUME_ID="$2"
OSTACK_SRC_SNAPSHOT_ID="$3"
CEPH_DST_POOL="$4"
CEPH_DST_RBD_IMAGE_NAME="$5"
test -n "${CEPH_SRC_POOL}"
test -n "${OSTACK_SRC_VOLUME_ID}"
test -n "${OSTACK_SRC_SNAPSHOT_ID}"
test -n "${CEPH_DST_POOL}"
test -n "${CEPH_DST_RBD_IMAGE_NAME}"
SRC_RBD_IMAGE="$(rbd --conf="${CEPH_CONFIG}" --name "${CEPH_USER}" --keyring=${CEPH_KEYRING} ls ${CEPH_SRC_POOL} | grep -E "^(volume.)?${OSTACK_SRC_VOLUME_ID}$")"
SRC_SNAPSHOT_NAME="$(rbd --conf="${CEPH_CONFIG}" --name "${CEPH_USER}" --keyring=${CEPH_KEYRING} snap ls ${CEPH_SRC_POOL}/${SRC_RBD_IMAGE} | grep -Eo "(snapshot.)?${OSTACK_SRC_SNAPSHOT_ID}")"
rbd --conf="${CEPH_CONFIG}" --name "${CEPH_USER}" --keyring=${CEPH_KEYRING} clone ${CEPH_SRC_POOL}/${SRC_RBD_IMAGE}@${SRC_SNAPSHOT_NAME} ${CEPH_DST_POOL}/${CEPH_DST_RBD_IMAGE_NAME}
#!/usr/bin/env bash
# ceph-rbd-image-copy.sh <ceph-src-pool-name> <ostack-src-volume-id> <ceph-dst-pool-name> <dst-ceph-rbd-image-name>
# returns 0 if RBD copy suceeds
set -eo pipefail
CEPH_CLIENT_DIR="/root/migrator"
CEPH_USER="${CEPH_USER:-"client.cinder"}"
CEPH_KEYRING="${CEPH_CLIENT_DIR}/${CEPH_USER}.keyring"
CEPH_CONFIG="${CEPH_CLIENT_DIR}/ceph.conf"
CEPH_SRC_POOL="$1"
OSTACK_SRC_VOLUME_ID="$2"
CEPH_DST_POOL="$3"
CEPH_DST_RBD_IMAGE_NAME="$4"
test -n "${CEPH_SRC_POOL}"
test -n "${OSTACK_SRC_VOLUME_ID}"
test -n "${CEPH_DST_POOL}"
test -n "${CEPH_DST_RBD_IMAGE_NAME}"
SRC_RBD_IMAGE="$(rbd --conf="${CEPH_CONFIG}" --name "${CEPH_USER}" --keyring=${CEPH_KEYRING} ls ${CEPH_SRC_POOL} | grep -E "^(volume.)?${OSTACK_SRC_VOLUME_ID}$")"
rbd --conf="${CEPH_CONFIG}" --name "${CEPH_USER}" --keyring=${CEPH_KEYRING} cp ${CEPH_SRC_POOL}/${SRC_RBD_IMAGE} ${CEPH_DST_POOL}/${CEPH_DST_RBD_IMAGE_NAME}
#!/usr/bin/env bash
# ceph-rbd-image-delete.sh <ceph-pool-name> <ostack-volume-id>
# returns 0 if RBD image exists and prints its name
set -eo pipefail
CEPH_CLIENT_DIR="/root/migrator"
CEPH_USER="${CEPH_USER:-"client.migrator"}"
CEPH_KEYRING="${CEPH_CLIENT_DIR}/${CEPH_USER}.keyring"
CEPH_CONFIG="${CEPH_CLIENT_DIR}/ceph.conf"
CEPH_POOL="$1"
OSTACK_VOLUME_ID="$2"
test -n "${CEPH_POOL}"
test -n "${OSTACK_VOLUME_ID}"
RBD_IMAGE="$(rbd --conf="${CEPH_CONFIG}" --name "${CEPH_USER}" --keyring=${CEPH_KEYRING} ls ${CEPH_POOL} | grep -E "^(volume.)?${OSTACK_VOLUME_ID}$")"
if [ -n "${RBD_IMAGE}" ]; then
rbd --conf="${CEPH_CONFIG}" --name "${CEPH_USER}" --keyring=${CEPH_KEYRING} rm "${CEPH_POOL}/${RBD_IMAGE}"
fi
#!/usr/bin/env bash
# ceph-rbd-image-exists.sh <ceph-pool-name> <ostack-volume-id>
# returns 0 if RBD image exists and prints its name
set -eo pipefail
CEPH_CLIENT_DIR="/root/migrator"
CEPH_USER="${CEPH_USER:-"client.migrator"}"
CEPH_KEYRING="${CEPH_CLIENT_DIR}/${CEPH_USER}.keyring"
CEPH_CONFIG="${CEPH_CLIENT_DIR}/ceph.conf"
CEPH_POOL="$1"
OSTACK_VOLUME_ID="$2"
test -n "${CEPH_POOL}"
test -n "${OSTACK_VOLUME_ID}"
rbd --conf="${CEPH_CONFIG}" --name "${CEPH_USER}" --keyring=${CEPH_KEYRING} ls ${CEPH_POOL} | grep -E "^(volume.)?${OSTACK_VOLUME_ID}$"
#!/usr/bin/env bash
# ceph-rbd-image-flatten.sh <ceph-pool-name> <ostack-volume-id>
# returns 0 if RBD image flattens
set -eo pipefail
CEPH_CLIENT_DIR="/root/migrator"
CEPH_USER="${CEPH_USER:-"client.migrator"}"
CEPH_KEYRING="${CEPH_CLIENT_DIR}/${CEPH_USER}.keyring"
CEPH_CONFIG="${CEPH_CLIENT_DIR}/ceph.conf"
CEPH_POOL="$1"
OSTACK_VOLUME_ID="$2"
test -n "${CEPH_POOL}"
test -n "${OSTACK_VOLUME_ID}"
RBD_IMAGE="$(rbd --conf="${CEPH_CONFIG}" --name "${CEPH_USER}" --keyring=${CEPH_KEYRING} ls ${CEPH_POOL} | grep -E "^(volume.)?${OSTACK_VOLUME_ID}$")"
test -n "${RBD_IMAGE}"
rbd --conf="${CEPH_CONFIG}" --name "${CEPH_USER}" --keyring=${CEPH_KEYRING} flatten "${CEPH_POOL}/${RBD_IMAGE}"
#!/usr/bin/env bash
# ceph-rbd-image-snapshot-exists.sh <ceph-pool-name> <ostack-volume-id> <ostack-snapshot-id>
# returns 0 if RBD image snapshot exists and prints its name
set -eo pipefail
CEPH_CLIENT_DIR="/root/migrator"
CEPH_USER="${CEPH_USER:-"client.cinder"}"
CEPH_KEYRING="${CEPH_CLIENT_DIR}/${CEPH_USER}.keyring"
CEPH_CONFIG="${CEPH_CLIENT_DIR}/ceph.conf"
CEPH_POOL="$1"
OSTACK_VOLUME_ID="$2"
OSTACK_SNAPSHOT_ID="$3"
test -n "${CEPH_POOL}"
test -n "${OSTACK_VOLUME_ID}"
test -n "${OSTACK_SNAPSHOT_ID}"
RBD_IMAGE="$(rbd --conf="${CEPH_CONFIG}" --name "${CEPH_USER}" --keyring=${CEPH_KEYRING} ls ${CEPH_POOL} | grep -E "^(volume.)?${OSTACK_VOLUME_ID}$")"
rbd --conf="${CEPH_CONFIG}" --name "${CEPH_USER}" --keyring=${CEPH_KEYRING} snap ls ${CEPH_POOL}/${RBD_IMAGE} | grep -Eo "(snapshot.)?${OSTACK_SNAPSHOT_ID}"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment