X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fceph%2Fsrc%2Ftest%2Fcli%2Fosdmaptool%2Ftest-map-pgs.t;fp=src%2Fceph%2Fsrc%2Ftest%2Fcli%2Fosdmaptool%2Ftest-map-pgs.t;h=d07f7a1b308a3a4e33c2139207af31e60d06ce79;hb=812ff6ca9fcd3e629e49d4328905f33eee8ca3f5;hp=0000000000000000000000000000000000000000;hpb=15280273faafb77777eab341909a3f495cf248d9;p=stor4nfv.git diff --git a/src/ceph/src/test/cli/osdmaptool/test-map-pgs.t b/src/ceph/src/test/cli/osdmaptool/test-map-pgs.t new file mode 100644 index 0000000..d07f7a1 --- /dev/null +++ b/src/ceph/src/test/cli/osdmaptool/test-map-pgs.t @@ -0,0 +1,46 @@ + $ NUM_OSDS=500 + $ POOL_COUNT=1 # data + metadata + rbd + $ SIZE=3 + $ PG_BITS=4 +# +# create an osdmap with a few hundred devices and a realistic crushmap +# + $ OSD_MAP="osdmap" + $ osdmaptool --osd_pool_default_size $SIZE --pg_bits $PG_BITS --createsimple $NUM_OSDS "$OSD_MAP" > /dev/null --with-default-pool + osdmaptool: osdmap file 'osdmap' + $ CRUSH_MAP="crushmap" + $ CEPH_ARGS="--debug-crush 0" crushtool --outfn "$CRUSH_MAP" --build --num_osds $NUM_OSDS node straw 10 rack straw 10 root straw 0 + $ osdmaptool --import-crush "$CRUSH_MAP" "$OSD_MAP" > /dev/null + osdmaptool: osdmap file 'osdmap' + $ OUT="$TESTDIR/out" +# +# --test-map-pgs +# + $ osdmaptool --mark-up-in --test-map-pgs "$OSD_MAP" > "$OUT" + osdmaptool: osdmap file 'osdmap' + $ PG_NUM=$(($NUM_OSDS << $PG_BITS)) + $ grep "pg_num $PG_NUM" "$OUT" || cat $OUT + pool 1 pg_num 8000 + $ TOTAL=$((POOL_COUNT * $PG_NUM)) + $ grep -E "size $SIZE[[:space:]]$TOTAL" $OUT || cat $OUT + size 3\t8000 (esc) + $ STATS_CRUSH=$(grep '^ avg ' "$OUT") +# +# --test-map-pgs --test-random is expected to change nothing regarding the totals +# + $ osdmaptool --mark-up-in --test-random --test-map-pgs "$OSD_MAP" > "$OUT" + osdmaptool: osdmap file 'osdmap' + $ PG_NUM=$(($NUM_OSDS << $PG_BITS)) + $ grep "pg_num $PG_NUM" "$OUT" || cat $OUT + pool 1 pg_num 8000 + $ TOTAL=$((POOL_COUNT * $PG_NUM)) + $ grep -E "size $SIZE[[:space:]]$TOTAL" $OUT || cat $OUT + size 3\t8000 (esc) + $ STATS_RANDOM=$(grep '^ avg ' "$OUT") +# it is almost impossible to get the same stats with random and crush +# if they are, it most probably means something went wrong somewhere + $ test "$STATS_CRUSH" != "$STATS_RANDOM" +# +# cleanup +# + $ rm -f "$CRUSH_MAP" "$OSD_MAP" "$OUT"