mirror of
https://github.com/OpenNebula/one.git
synced 2025-03-21 14:50:08 +03:00
B #1222: Avoid using rbd map in tm_mad Ceph
This commit is contained in:
parent
a4460bea2b
commit
113200229a
@ -38,7 +38,7 @@ MD5SUM=${MD5SUM:-md5sum}
|
||||
MKFS=${MKFS:-mkfs}
|
||||
MKISOFS=${MKISOFS:-genisoimage}
|
||||
MKSWAP=${MKSWAP:-mkswap}
|
||||
QEMU_IMG=${QMEMU_IMG:-qemu-img}
|
||||
QEMU_IMG=${QEMU_IMG:-qemu-img}
|
||||
RADOS=${RADOS:-rados}
|
||||
RBD=${RBD:-rbd}
|
||||
READLINK=${READLINK:-readlink}
|
||||
|
@ -83,16 +83,21 @@ CEPH_CONF="${XPATH_ELEMENTS[j++]}"
|
||||
POOL_NAME="${XPATH_ELEMENTS[j++]:-$POOL_NAME}"
|
||||
RBD_FORMAT="${XPATH_ELEMENTS[j++]:-$RBD_FORMAT}"
|
||||
|
||||
QEMU_OPTS=''
|
||||
|
||||
if [ -n "$CEPH_USER" ]; then
|
||||
RBD="$RBD --id ${CEPH_USER}"
|
||||
QEMU_OPTS="${QEMU_OPTS}:id=${CEPH_USER}"
|
||||
fi
|
||||
|
||||
if [ -n "$CEPH_KEY" ]; then
|
||||
RBD="$RBD --keyfile ${CEPH_KEY}"
|
||||
QEMU_OPTS="${QEMU_OPTS}:keyfile=${CEPH_KEY}"
|
||||
fi
|
||||
|
||||
if [ -n "$CEPH_CONF" ]; then
|
||||
RBD="$RBD --conf ${CEPH_CONF}"
|
||||
QEMU_OPTS="${QEMU_OPTS}:conf=${CEPH_CONF}"
|
||||
fi
|
||||
|
||||
if [ "$RBD_FORMAT" = "2" ]; then
|
||||
@ -101,14 +106,27 @@ fi
|
||||
|
||||
RBD_SOURCE="${POOL_NAME}/one-sys-${VMID}-${DISK_ID}"
|
||||
|
||||
ssh_make_path $DST_HOST $DST_DIR
|
||||
|
||||
# if user requested a swap, we need to create a local
|
||||
# swap formatted image and upload into existing Ceph image
|
||||
MKFS_CMD=`mkfs_command $DST_PATH $FSTYPE $SIZE`
|
||||
|
||||
MKIMAGE_CMD=$(cat <<EOF
|
||||
set -e -o pipefail
|
||||
|
||||
export PATH=/usr/sbin:/sbin:\$PATH
|
||||
$RBD create $FORMAT_OPT $RBD_SOURCE --size ${SIZE} || exit \$?
|
||||
|
||||
$RBD create $FORMAT_OPT $RBD_SOURCE --size ${SIZE}
|
||||
|
||||
if [ "$FSTYPE" = "swap" ]; then
|
||||
$SUDO $RBD map $RBD_SOURCE || exit \$?
|
||||
$SUDO $MKSWAP -L swap /dev/rbd/$RBD_SOURCE
|
||||
$SUDO $RBD unmap /dev/rbd/$RBD_SOURCE
|
||||
${MKFS_CMD}
|
||||
|
||||
${QEMU_IMG} convert -n \
|
||||
-f raw "${DST_PATH}" \
|
||||
-O rbd "rbd:${RBD_SOURCE}${QEMU_OPTS}"
|
||||
|
||||
${RM} -f "${DST_PATH}"
|
||||
fi
|
||||
EOF
|
||||
)
|
||||
@ -116,6 +134,7 @@ EOF
|
||||
DELIMAGE_CMD=$(cat <<EOF
|
||||
export PATH=/usr/sbin:/sbin:\$PATH
|
||||
$RBD rm $RBD_SOURCE
|
||||
${RM} -f "${DST_PATH}"
|
||||
EOF
|
||||
)
|
||||
|
||||
|
@ -89,16 +89,21 @@ ORIGINAL_SIZE="${XPATH_ELEMENTS[j++]}"
|
||||
# Copy Image back to the datastore
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
QEMU_OPTS=''
|
||||
|
||||
if [ -n "$CEPH_USER" ]; then
|
||||
RBD="$RBD --id ${CEPH_USER}"
|
||||
QEMU_OPTS="${QEMU_OPTS}:id=${CEPH_USER}"
|
||||
fi
|
||||
|
||||
if [ -n "$CEPH_KEY" ]; then
|
||||
RBD="$RBD --keyfile ${CEPH_KEY}"
|
||||
QEMU_OPTS="${QEMU_OPTS}:keyfile=${CEPH_KEY}"
|
||||
fi
|
||||
|
||||
if [ -n "$CEPH_CONF" ]; then
|
||||
RBD="$RBD --conf ${CEPH_CONF}"
|
||||
QEMU_OPTS="${QEMU_OPTS}:conf=${CEPH_CONF}"
|
||||
fi
|
||||
|
||||
if [ "${TYPE}" = 'FILE' ]; then
|
||||
@ -111,9 +116,9 @@ if [ "${TYPE}" = 'FILE' ]; then
|
||||
$RBD resize $RBD_SRC --size $SIZE
|
||||
fi
|
||||
|
||||
$SUDO $RBD map $RBD_SRC
|
||||
trap "$SUDO $RBD unmap /dev/rbd/$RBD_SRC" EXIT TERM INT HUP
|
||||
$DD if=$SRC_PATH of=/dev/rbd/$RBD_SRC bs=64k
|
||||
${QEMU_IMG} convert -n \
|
||||
-f raw "${SRC_PATH}" \
|
||||
-O rbd "rbd:${RBD_SRC}${QEMU_OPTS}"
|
||||
EOF
|
||||
)
|
||||
else
|
||||
|
Loading…
x
Reference in New Issue
Block a user