+++ /dev/null
- $ 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"