X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fceph%2Fqa%2Fworkunits%2Frbd%2Fmerge_diff.sh;fp=src%2Fceph%2Fqa%2Fworkunits%2Frbd%2Fmerge_diff.sh;h=0000000000000000000000000000000000000000;hb=7da45d65be36d36b880cc55c5036e96c24b53f00;hp=0b6643dfa54762b8d2e500d224a6c231bcfc3eca;hpb=691462d09d0987b47e112d6ee8740375df3c51b2;p=stor4nfv.git diff --git a/src/ceph/qa/workunits/rbd/merge_diff.sh b/src/ceph/qa/workunits/rbd/merge_diff.sh deleted file mode 100755 index 0b6643d..0000000 --- a/src/ceph/qa/workunits/rbd/merge_diff.sh +++ /dev/null @@ -1,474 +0,0 @@ -#!/bin/bash -ex - -pool=rbd -gen=$pool/gen -out=$pool/out -testno=1 - -mkdir -p merge_diff_test -pushd merge_diff_test - -function expect_false() -{ - if "$@"; then return 1; else return 0; fi -} - -function clear_all() -{ - fusermount -u mnt || true - - rbd snap purge --no-progress $gen || true - rbd rm --no-progress $gen || true - rbd snap purge --no-progress $out || true - rbd rm --no-progress $out || true - - rm -rf diffs || true -} - -function rebuild() -{ - clear_all - echo Starting test $testno - ((testno++)) - if [[ "$2" -lt "$1" ]] && [[ "$3" -gt "1" ]]; then - rbd create $gen --size 100 --object-size $1 --stripe-unit $2 --stripe-count $3 --image-format $4 - else - rbd create $gen --size 100 --object-size $1 --image-format $4 - fi - rbd create $out --size 1 --object-size 524288 - mkdir -p mnt diffs - # lttng has atexit handlers that need to be fork/clone aware - LD_PRELOAD=liblttng-ust-fork.so.0 rbd-fuse -p $pool mnt -} - -function write() -{ - dd if=/dev/urandom of=mnt/gen bs=1M conv=notrunc seek=$1 count=$2 -} - -function snap() -{ - rbd snap create $gen@$1 -} - -function resize() -{ - rbd resize --no-progress $gen --size $1 --allow-shrink -} - -function export_diff() -{ - if [ $2 == "head" ]; then - target="$gen" - else - target="$gen@$2" - fi - if [ $1 == "null" ]; then - rbd export-diff --no-progress $target diffs/$1.$2 - else - rbd export-diff --no-progress $target --from-snap $1 diffs/$1.$2 - fi -} - -function merge_diff() -{ - rbd merge-diff diffs/$1.$2 diffs/$2.$3 diffs/$1.$3 -} - -function check() -{ - rbd import-diff --no-progress diffs/$1.$2 $out || return -1 - if [ "$2" == "head" ]; then - sum1=`rbd export $gen - | md5sum` - else - sum1=`rbd export $gen@$2 - | md5sum` - fi - sum2=`rbd export $out - | md5sum` - if [ "$sum1" != "$sum2" ]; then - exit -1 - fi - if [ "$2" != "head" ]; then - rbd snap ls $out | awk '{print $2}' | grep "^$2\$" || return -1 - fi -} - -#test f/t header -rebuild 4194304 4194304 1 2 -write 0 1 -snap a -write 1 1 -export_diff null a -export_diff a head -merge_diff null a head -check null head - -rebuild 4194304 4194304 1 2 -write 0 1 -snap a -write 1 1 -snap b -write 2 1 -export_diff null a -export_diff a b -export_diff b head -merge_diff null a b -check null b - -rebuild 4194304 4194304 1 2 -write 0 1 -snap a -write 1 1 -snap b -write 2 1 -export_diff null a -export_diff a b -export_diff b head -merge_diff a b head -check null a -check a head - -rebuild 4194304 4194304 1 2 -write 0 1 -snap a -write 1 1 -snap b -write 2 1 -export_diff null a -export_diff a b -export_diff b head -rbd merge-diff diffs/null.a diffs/a.b - | rbd merge-diff - diffs/b.head - > diffs/null.head -check null head - -#data test -rebuild 4194304 4194304 1 2 -write 4 2 -snap s101 -write 0 3 -write 8 2 -snap s102 -export_diff null s101 -export_diff s101 s102 -merge_diff null s101 s102 -check null s102 - -rebuild 4194304 4194304 1 2 -write 0 3 -write 2 5 -write 8 2 -snap s201 -write 0 2 -write 6 3 -snap s202 -export_diff null s201 -export_diff s201 s202 -merge_diff null s201 s202 -check null s202 - -rebuild 4194304 4194304 1 2 -write 0 4 -write 12 6 -snap s301 -write 0 6 -write 10 5 -write 16 4 -snap s302 -export_diff null s301 -export_diff s301 s302 -merge_diff null s301 s302 -check null s302 - -rebuild 4194304 4194304 1 2 -write 0 12 -write 14 2 -write 18 2 -snap s401 -write 1 2 -write 5 6 -write 13 3 -write 18 2 -snap s402 -export_diff null s401 -export_diff s401 s402 -merge_diff null s401 s402 -check null s402 - -rebuild 4194304 4194304 1 2 -write 2 4 -write 10 12 -write 27 6 -write 36 4 -snap s501 -write 0 24 -write 28 4 -write 36 4 -snap s502 -export_diff null s501 -export_diff s501 s502 -merge_diff null s501 s502 -check null s502 - -rebuild 4194304 4194304 1 2 -write 0 8 -resize 5 -snap r1 -resize 20 -write 12 8 -snap r2 -resize 8 -write 4 4 -snap r3 -export_diff null r1 -export_diff r1 r2 -export_diff r2 r3 -merge_diff null r1 r2 -merge_diff null r2 r3 -check null r3 - -rebuild 4194304 4194304 1 2 -write 0 8 -resize 5 -snap r1 -resize 20 -write 12 8 -snap r2 -resize 8 -write 4 4 -snap r3 -resize 10 -snap r4 -export_diff null r1 -export_diff r1 r2 -export_diff r2 r3 -export_diff r3 r4 -merge_diff null r1 r2 -merge_diff null r2 r3 -merge_diff null r3 r4 -check null r4 - -# merge diff doesn't yet support fancy striping -# rebuild 4194304 65536 8 2 -# write 0 32 -# snap r1 -# write 16 32 -# snap r2 -# export_diff null r1 -# export_diff r1 r2 -# expect_false merge_diff null r1 r2 - -rebuild 4194304 4194304 1 2 -write 0 1 -write 2 1 -write 4 1 -write 6 1 -snap s1 -write 1 1 -write 3 1 -write 5 1 -snap s2 -export_diff null s1 -export_diff s1 s2 -merge_diff null s1 s2 -check null s2 - -rebuild 4194304 4194304 1 2 -write 1 1 -write 3 1 -write 5 1 -snap s1 -write 0 1 -write 2 1 -write 4 1 -write 6 1 -snap s2 -export_diff null s1 -export_diff s1 s2 -merge_diff null s1 s2 -check null s2 - -rebuild 4194304 4194304 1 2 -write 0 3 -write 6 3 -write 12 3 -snap s1 -write 1 1 -write 7 1 -write 13 1 -snap s2 -export_diff null s1 -export_diff s1 s2 -merge_diff null s1 s2 -check null s2 - -rebuild 4194304 4194304 1 2 -write 0 3 -write 6 3 -write 12 3 -snap s1 -write 0 1 -write 6 1 -write 12 1 -snap s2 -export_diff null s1 -export_diff s1 s2 -merge_diff null s1 s2 -check null s2 - -rebuild 4194304 4194304 1 2 -write 0 3 -write 6 3 -write 12 3 -snap s1 -write 2 1 -write 8 1 -write 14 1 -snap s2 -export_diff null s1 -export_diff s1 s2 -merge_diff null s1 s2 -check null s2 - -rebuild 4194304 4194304 1 2 -write 1 1 -write 7 1 -write 13 1 -snap s1 -write 0 3 -write 6 3 -write 12 3 -snap s2 -export_diff null s1 -export_diff s1 s2 -merge_diff null s1 s2 -check null s2 - -rebuild 4194304 4194304 1 2 -write 0 1 -write 6 1 -write 12 1 -snap s1 -write 0 3 -write 6 3 -write 12 3 -snap s2 -export_diff null s1 -export_diff s1 s2 -merge_diff null s1 s2 -check null s2 - -rebuild 4194304 4194304 1 2 -write 2 1 -write 8 1 -write 14 1 -snap s1 -write 0 3 -write 6 3 -write 12 3 -snap s2 -export_diff null s1 -export_diff s1 s2 -merge_diff null s1 s2 -check null s2 - -rebuild 4194304 4194304 1 2 -write 0 3 -write 6 3 -write 12 3 -snap s1 -write 0 3 -write 6 3 -write 12 3 -snap s2 -export_diff null s1 -export_diff s1 s2 -merge_diff null s1 s2 -check null s2 - -rebuild 4194304 4194304 1 2 -write 2 4 -write 8 4 -write 14 4 -snap s1 -write 0 3 -write 6 3 -write 12 3 -snap s2 -export_diff null s1 -export_diff s1 s2 -merge_diff null s1 s2 -check null s2 - -rebuild 4194304 4194304 1 2 -write 0 4 -write 6 4 -write 12 4 -snap s1 -write 0 3 -write 6 3 -write 12 3 -snap s2 -export_diff null s1 -export_diff s1 s2 -merge_diff null s1 s2 -check null s2 - -rebuild 4194304 4194304 1 2 -write 0 6 -write 6 6 -write 12 6 -snap s1 -write 0 3 -write 6 3 -write 12 3 -snap s2 -export_diff null s1 -export_diff s1 s2 -merge_diff null s1 s2 -check null s2 - -rebuild 4194304 4194304 1 2 -write 3 6 -write 9 6 -write 15 6 -snap s1 -write 0 3 -write 6 3 -write 12 3 -snap s2 -export_diff null s1 -export_diff s1 s2 -merge_diff null s1 s2 -check null s2 - -rebuild 4194304 4194304 1 2 -write 0 8 -snap s1 -resize 2 -resize 100 -snap s2 -export_diff null s1 -export_diff s1 s2 -merge_diff null s1 s2 -check null s2 - -rebuild 4194304 4194304 1 2 -write 0 8 -snap s1 -resize 2 -resize 100 -snap s2 -write 20 2 -snap s3 -export_diff null s1 -export_diff s1 s2 -export_diff s2 s3 -merge_diff s1 s2 s3 -check null s1 -check s1 s3 - -#addme - -clear_all -popd -rm -rf merge_diff_test - -echo OK