summaryrefslogtreecommitdiffstats
path: root/src/test/cli/osdmaptool/test-map-pgs.t
blob: f9f7897b27026b913187f91f493b96213f7b5cad (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
  $ 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")
#
# cleanup
#
  $ rm -f "$CRUSH_MAP" "$OSD_MAP" "$OUT"