From e6918187568dbd01842d8d1d2c808ce16a894239 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 21 Apr 2024 13:54:28 +0200 Subject: Adding upstream version 18.2.2. Signed-off-by: Daniel Baumann --- src/test/test_split.sh | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100755 src/test/test_split.sh (limited to 'src/test/test_split.sh') diff --git a/src/test/test_split.sh b/src/test/test_split.sh new file mode 100755 index 000000000..d86a08af2 --- /dev/null +++ b/src/test/test_split.sh @@ -0,0 +1,68 @@ +#!/usr/bin/env bash +set -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 + ./ceph -c ./ceph.conf osd pool create "pool${i}" 8 || die "pool create failed" + done + my_write_objects 1 10 +} + +run() { + split1 || die "test failed" +} + +$@ -- cgit v1.2.3