mirror of
https://github.com/ceph/ceph
synced 2025-01-04 10:12:30 +00:00
qa/suites/rbd: test case for rbd-mirror bootstrap
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
This commit is contained in:
parent
b1b934d24f
commit
85f98c01c0
@ -0,0 +1,11 @@
|
||||
meta:
|
||||
- desc: run the rbd_mirror_bootstrap.sh workunit to test the rbd-mirror daemon
|
||||
tasks:
|
||||
- workunit:
|
||||
clients:
|
||||
cluster1.client.mirror: [rbd/rbd_mirror_bootstrap.sh]
|
||||
env:
|
||||
# override workunit setting of CEPH_ARGS='--cluster'
|
||||
CEPH_ARGS: ''
|
||||
RBD_MIRROR_INSTANCES: '1'
|
||||
RBD_MIRROR_USE_EXISTING_CLUSTER: '1'
|
49
qa/workunits/rbd/rbd_mirror_bootstrap.sh
Executable file
49
qa/workunits/rbd/rbd_mirror_bootstrap.sh
Executable file
@ -0,0 +1,49 @@
|
||||
#!/bin/sh -ex
|
||||
#
|
||||
# rbd_mirror_bootstrap.sh - test peer bootstrap create/import
|
||||
#
|
||||
|
||||
RBD_MIRROR_MANUAL_PEERS=1
|
||||
RBD_MIRROR_INSTANCES=${RBD_MIRROR_INSTANCES:-1}
|
||||
. $(dirname $0)/rbd_mirror_helpers.sh
|
||||
|
||||
setup
|
||||
|
||||
testlog "TEST: bootstrap cluster2 from cluster1"
|
||||
# create token on cluster1 and import to cluster2
|
||||
TOKEN=${TEMPDIR}/peer-token
|
||||
TOKEN_2=${TEMPDIR}/peer-token-2
|
||||
rbd --cluster ${CLUSTER1} mirror pool peer bootstrap create ${POOL} > ${TOKEN}
|
||||
rbd --cluster ${CLUSTER1} mirror pool peer bootstrap create ${PARENT_POOL} > ${TOKEN_2}
|
||||
cmp ${TOKEN} ${TOKEN_2}
|
||||
|
||||
rbd --cluster ${CLUSTER2} --pool ${POOL} mirror pool peer bootstrap import ${TOKEN} --direction rx-only
|
||||
rbd --cluster ${CLUSTER2} --pool ${PARENT_POOL} mirror pool peer bootstrap import ${TOKEN} --direction rx-tx
|
||||
|
||||
start_mirrors ${CLUSTER1}
|
||||
start_mirrors ${CLUSTER2}
|
||||
|
||||
testlog "TEST: verify rx-only direction"
|
||||
[ "$(rbd --cluster ${CLUSTER1} --pool ${POOL} mirror pool info --format xml |
|
||||
${XMLSTARLET} sel -t -v '//mirror/peers/peer[1]/uuid')" = "" ]
|
||||
|
||||
create_image ${CLUSTER1} ${POOL} image1
|
||||
|
||||
wait_for_image_replay_started ${CLUSTER2} ${POOL} image1
|
||||
write_image ${CLUSTER1} ${POOL} image1 100
|
||||
wait_for_replay_complete ${CLUSTER2} ${CLUSTER1} ${POOL} image1
|
||||
|
||||
testlog "TEST: verify rx-tx direction"
|
||||
create_image ${CLUSTER1} ${PARENT_POOL} image1
|
||||
create_image ${CLUSTER2} ${PARENT_POOL} image2
|
||||
|
||||
enable_mirror ${CLUSTER1} ${PARENT_POOL} image1
|
||||
enable_mirror ${CLUSTER2} ${PARENT_POOL} image2
|
||||
|
||||
wait_for_image_replay_started ${CLUSTER2} ${PARENT_POOL} image1
|
||||
write_image ${CLUSTER1} ${PARENT_POOL} image1 100
|
||||
wait_for_replay_complete ${CLUSTER2} ${CLUSTER1} ${PARENT_POOL} image1
|
||||
|
||||
wait_for_image_replay_started ${CLUSTER1} ${PARENT_POOL} image2
|
||||
write_image ${CLUSTER2} ${PARENT_POOL} image2 100
|
||||
wait_for_replay_complete ${CLUSTER1} ${CLUSTER2} ${PARENT_POOL} image2
|
@ -268,26 +268,28 @@ setup_pools()
|
||||
rbd --cluster ${cluster} mirror pool enable ${POOL}/ns1 pool
|
||||
rbd --cluster ${cluster} mirror pool enable ${POOL}/ns2 image
|
||||
|
||||
if [ -z ${RBD_MIRROR_CONFIG_KEY} ]; then
|
||||
rbd --cluster ${cluster} mirror pool peer add ${POOL} ${remote_cluster}
|
||||
rbd --cluster ${cluster} mirror pool peer add ${PARENT_POOL} ${remote_cluster}
|
||||
else
|
||||
mon_map_file=${TEMPDIR}/${remote_cluster}.monmap
|
||||
ceph --cluster ${remote_cluster} mon getmap > ${mon_map_file}
|
||||
mon_addr=$(monmaptool --print ${mon_map_file} | grep -E 'mon\.' |
|
||||
head -n 1 | sed -E 's/^[0-9]+: ([^ ]+).+$/\1/' | sed -E 's/\/[0-9]+//g')
|
||||
if [ -z ${RBD_MIRROR_MANUAL_PEERS} ]; then
|
||||
if [ -z ${RBD_MIRROR_CONFIG_KEY} ]; then
|
||||
rbd --cluster ${cluster} mirror pool peer add ${POOL} ${remote_cluster}
|
||||
rbd --cluster ${cluster} mirror pool peer add ${PARENT_POOL} ${remote_cluster}
|
||||
else
|
||||
mon_map_file=${TEMPDIR}/${remote_cluster}.monmap
|
||||
ceph --cluster ${remote_cluster} mon getmap > ${mon_map_file}
|
||||
mon_addr=$(monmaptool --print ${mon_map_file} | grep -E 'mon\.' |
|
||||
head -n 1 | sed -E 's/^[0-9]+: ([^ ]+).+$/\1/' | sed -E 's/\/[0-9]+//g')
|
||||
|
||||
admin_key_file=${TEMPDIR}/${remote_cluster}.client.${CEPH_ID}.key
|
||||
CEPH_ARGS='' ceph --cluster ${remote_cluster} auth get-key client.${CEPH_ID} > ${admin_key_file}
|
||||
admin_key_file=${TEMPDIR}/${remote_cluster}.client.${CEPH_ID}.key
|
||||
CEPH_ARGS='' ceph --cluster ${remote_cluster} auth get-key client.${CEPH_ID} > ${admin_key_file}
|
||||
|
||||
rbd --cluster ${cluster} mirror pool peer add ${POOL} client.${CEPH_ID}@${remote_cluster}-DNE \
|
||||
--remote-mon-host "${mon_addr}" --remote-key-file ${admin_key_file}
|
||||
rbd --cluster ${cluster} mirror pool peer add ${POOL} client.${CEPH_ID}@${remote_cluster}-DNE \
|
||||
--remote-mon-host "${mon_addr}" --remote-key-file ${admin_key_file}
|
||||
|
||||
uuid=$(rbd --cluster ${cluster} mirror pool peer add ${PARENT_POOL} client.${CEPH_ID}@${remote_cluster}-DNE)
|
||||
rbd --cluster ${cluster} mirror pool peer set ${PARENT_POOL} ${uuid} mon-host ${mon_addr}
|
||||
rbd --cluster ${cluster} mirror pool peer set ${PARENT_POOL} ${uuid} key-file ${admin_key_file}
|
||||
uuid=$(rbd --cluster ${cluster} mirror pool peer add ${PARENT_POOL} client.${CEPH_ID}@${remote_cluster}-DNE)
|
||||
rbd --cluster ${cluster} mirror pool peer set ${PARENT_POOL} ${uuid} mon-host ${mon_addr}
|
||||
rbd --cluster ${cluster} mirror pool peer set ${PARENT_POOL} ${uuid} key-file ${admin_key_file}
|
||||
|
||||
PEER_CLUSTER_SUFFIX=-DNE
|
||||
PEER_CLUSTER_SUFFIX=-DNE
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user