X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fceph%2Fsrc%2Ftest%2Ftest_split.sh;fp=src%2Fceph%2Fsrc%2Ftest%2Ftest_split.sh;h=4fdedd5cf68fc5d2a3e3b2928ec20dbd5ea29499;hb=812ff6ca9fcd3e629e49d4328905f33eee8ca3f5;hp=0000000000000000000000000000000000000000;hpb=15280273faafb77777eab341909a3f495cf248d9;p=stor4nfv.git diff --git a/src/ceph/src/test/test_split.sh b/src/ceph/src/test/test_split.sh new file mode 100755 index 0000000..4fdedd5 --- /dev/null +++ b/src/ceph/src/test/test_split.sh @@ -0,0 +1,67 @@ +#!/bin/bash -x + +# +# Add some objects to the data PGs, and then test splitting those PGs +# + +# Includes +source "`dirname $0`/test_common.sh" + +TEST_POOL=rbd + +# Constants +my_write_objects() { + write_objects $1 $2 10 1000000 $TEST_POOL +} + +setup() { + export CEPH_NUM_OSD=$1 + + # Start ceph + ./stop.sh + + ./vstart.sh -d -n +} + +get_pgp_num() { + ./ceph -c ./ceph.conf osd pool get $TEST_POOL pgp_num > $TEMPDIR/pgp_num + [ $? -eq 0 ] || die "failed to get pgp_num" + PGP_NUM=`grep PGP_NUM $TEMPDIR/pgp_num | sed 's/.*PGP_NUM:\([ 0123456789]*\).*$/\1/'` +} + +split1_impl() { + # Write lots and lots of objects + my_write_objects 1 2 + + get_pgp_num + echo "\$PGP_NUM=$PGP_NUM" + + # Double the number of PGs + PGP_NUM=$((PGP_NUM*2)) + echo "doubling PGP_NUM to $PGP_NUM..." + ./ceph -c ./ceph.conf osd pool set $TEST_POOL pgp_num $PGP_NUM + + sleep 30 + + # success + return 0 +} + +split1() { + setup 2 + split1_impl +} + +many_pools() { + setup 3 + for i in `seq 1 3000`; do + ./rados -c ./ceph.conf mkpool "pool${i}" || die "mkpool failed" + done + my_write_objects 1 10 +} + +run() { + split1 || die "test failed" +} + +$@