diff options
Diffstat (limited to 'tests/basic/distribute')
-rw-r--r-- | tests/basic/distribute/rebal-all-nodes-migrate.t | 144 | ||||
-rw-r--r-- | tests/basic/distribute/spare_file_rebalance.t | 51 |
2 files changed, 51 insertions, 144 deletions
diff --git a/tests/basic/distribute/rebal-all-nodes-migrate.t b/tests/basic/distribute/rebal-all-nodes-migrate.t deleted file mode 100644 index acc4ffefecc..00000000000 --- a/tests/basic/distribute/rebal-all-nodes-migrate.t +++ /dev/null @@ -1,144 +0,0 @@ -#!/bin/bash - -. $(dirname $0)/../../include.rc -. $(dirname $0)/../../cluster.rc -. $(dirname $0)/../../dht.rc - - -# Check if every single rebalance process migrated some files - -function cluster_rebal_all_nodes_migrated_files { - val=0 - a=$($CLI_1 volume rebalance $V0 status | grep "completed" | awk '{print $2}'); -# echo $a - b=($a) - for i in "${b[@]}" - do -# echo "$i"; - if [ "$i" -eq "0" ]; then - echo "false"; - val=1; - fi - done - echo $val -} - -cleanup - -TEST launch_cluster 3; -TEST $CLI_1 peer probe $H2; -TEST $CLI_1 peer probe $H3; -EXPECT_WITHIN $PROBE_TIMEOUT 2 peer_count - - -#Start with a pure distribute volume (multiple bricks on the same node) -TEST $CLI_1 volume create $V0 $H1:$B1/dist1 $H1:$B1/dist2 $H2:$B2/dist3 $H2:$B2/dist4 - -TEST $CLI_1 volume start $V0 -$CLI_1 volume info $V0 - -#TEST $CLI_1 volume set $V0 client-log-level DEBUG - -## Mount FUSE -TEST glusterfs -s $H1 --volfile-id $V0 $M0; - -TEST mkdir $M0/dir1 2>/dev/null; -TEST touch $M0/dir1/file-{1..500} - -## Add-brick and run rebalance to force file migration -TEST $CLI_1 volume add-brick $V0 $H1:$B1/dist5 $H2:$B2/dist6 - -#Start a rebalance -TEST $CLI_1 volume rebalance $V0 start force - -#volume rebalance status should work -#TEST $CLI_1 volume rebalance $V0 status -#$CLI_1 volume rebalance $V0 status - -EXPECT_WITHIN $REBALANCE_TIMEOUT "0" cluster_rebalance_completed -EXPECT "0" cluster_rebal_all_nodes_migrated_files -$CLI_1 volume rebalance $V0 status - - -TEST umount -f $M0 -TEST $CLI_1 volume stop $V0 -TEST $CLI_1 volume delete $V0 - - -############################################################## - -# Next, a dist-rep volume -TEST $CLI_1 volume create $V0 replica 2 $H1:$B1/drep1 $H2:$B2/drep1 $H1:$B1/drep2 $H2:$B2/drep2 - -TEST $CLI_1 volume start $V0 -$CLI_1 volume info $V0 - -#TEST $CLI_1 volume set $V0 client-log-level DEBUG - -## Mount FUSE -TEST glusterfs -s $H1 --volfile-id $V0 $M0; - -TEST mkdir $M0/dir1 2>/dev/null; -TEST touch $M0/dir1/file-{1..500} - -## Add-brick and run rebalance to force file migration -TEST $CLI_1 volume add-brick $V0 replica 2 $H1:$B1/drep3 $H2:$B2/drep3 - -#Start a rebalance -TEST $CLI_1 volume rebalance $V0 start force - -#volume rebalance status should work -#TEST $CLI_1 volume rebalance $V0 status -#$CLI_1 volume rebalance $V0 status - -EXPECT_WITHIN $REBALANCE_TIMEOUT "0" cluster_rebalance_completed -#EXPECT "0" cluster_rebal_all_nodes_migrated_files -$CLI_1 volume rebalance $V0 status - - -TEST umount -f $M0 -TEST $CLI_1 volume stop $V0 -TEST $CLI_1 volume delete $V0 - -############################################################## - -# Next, a disperse volume -TEST $CLI_1 volume create $V0 disperse 3 $H1:$B1/ec1 $H2:$B1/ec2 $H3:$B1/ec3 force - -TEST $CLI_1 volume start $V0 -$CLI_1 volume info $V0 - -#TEST $CLI_1 volume set $V0 client-log-level DEBUG - -## Mount FUSE -TEST glusterfs -s $H1 --volfile-id $V0 $M0; - -TEST mkdir $M0/dir1 2>/dev/null; -TEST touch $M0/dir1/file-{1..500} - -## Add-brick and run rebalance to force file migration -TEST $CLI_1 volume add-brick $V0 $H1:$B2/ec4 $H2:$B2/ec5 $H3:$B2/ec6 - -#Start a rebalance -TEST $CLI_1 volume rebalance $V0 start force - -#volume rebalance status should work -#TEST $CLI_1 volume rebalance $V0 status -#$CLI_1 volume rebalance $V0 status - -EXPECT_WITHIN $REBALANCE_TIMEOUT "0" cluster_rebalance_completed - -# this will not work unless EC is changed to return all node-uuids -# comment this out once that patch is ready -#EXPECT "0" cluster_rebal_all_nodes_migrated_files -$CLI_1 volume rebalance $V0 status - - -TEST umount -f $M0 -TEST $CLI_1 volume stop $V0 -TEST $CLI_1 volume delete $V0 - -############################################################## - -cleanup -#G_TESTDEF_TEST_STATUS_NETBSD7=1501388 diff --git a/tests/basic/distribute/spare_file_rebalance.t b/tests/basic/distribute/spare_file_rebalance.t new file mode 100644 index 00000000000..061c02f7392 --- /dev/null +++ b/tests/basic/distribute/spare_file_rebalance.t @@ -0,0 +1,51 @@ +#!/bin/bash + +. $(dirname $0)/../../include.rc +. $(dirname $0)/../../volume.rc +. $(dirname $0)/../../dht.rc + +# Initialize +#------------------------------------------------------------ +cleanup; + +# Start glusterd +TEST glusterd; +TEST pidof glusterd; +TEST $CLI volume info; + +# Create a volume +TEST $CLI volume create $V0 $H0:$B0/${V0}{1,2}; + +# Verify volume creation +EXPECT "$V0" volinfo_field $V0 'Volume Name'; +EXPECT 'Created' volinfo_field $V0 'Status'; + +# Start volume and verify successful start +TEST $CLI volume start $V0; +EXPECT 'Started' volinfo_field $V0 'Status'; +TEST glusterfs --volfile-id=$V0 --volfile-server=$H0 --entry-timeout=0 $M0; + +#------------------------------------------------------------ + +# Test case - Create sparse files on MP and verify +# file info after rebalance +#------------------------------------------------------------ + +# Create some sparse files and get their size +TEST cd $M0; +dd if=/dev/urandom of=sparse_file bs=10k count=1 seek=2M +cp --sparse=always sparse_file sparse_file_3; + +# Add a 3rd brick +TEST $CLI volume add-brick $V0 $H0:$B0/${V0}3; + +# Trigger rebalance +TEST $CLI volume rebalance $V0 start force; +EXPECT_WITHIN $REBALANCE_TIMEOUT "0" rebalance_completed; + +# Compare original and rebalanced files +TEST cd $B0/${V0}2 +TEST cmp sparse_file $B0/${V0}3/sparse_file_3 +EXPECT_WITHIN 30 ""; + +cleanup; |