From f88275dd04b05fce9e4160872136e38453e232eb Mon Sep 17 00:00:00 2001 From: Loic Dachary Date: Wed, 13 May 2015 10:39:37 +0200 Subject: [PATCH] tests: tiering health report reworked Instead of * setting limit * populate the cache * check the health warnings do the following * populate the cache * set limits below the content of the cache * check the health warnings The problem with the former approach is that the limits stored by the OSD internally do not exactly match the one set by the user: they are converted in ratios and there may be rounding errors. Also replace the busy loop waiting for pg stats to flush with ceph tell osd.* flush_pg_stats || true for simplicity. Signed-off-by: Loic Dachary --- qa/workunits/cephtool/test.sh | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/qa/workunits/cephtool/test.sh b/qa/workunits/cephtool/test.sh index 435a69cf85be..15d4e733d90c 100755 --- a/qa/workunits/cephtool/test.sh +++ b/qa/workunits/cephtool/test.sh @@ -364,20 +364,20 @@ function test_tiering() ceph osd tier cache-mode cache4 writeback tmpfile=$(mktemp|grep tmp) dd if=/dev/zero of=$tmpfile bs=4K count=1 - ceph osd pool set cache4 target_max_objects 5 - #4096 * 5 = 20480, 20480 near/at 21000, - ceph osd pool set cache4 target_max_bytes 21000 - for f in `seq 1 5` ; do - rados -p cache4 put foo$f $tmpfile - done + ceph osd pool set cache4 target_max_objects 200 + ceph osd pool set cache4 target_max_bytes 1000000 + rados -p cache4 put foo1 $tmpfile + rados -p cache4 put foo2 $tmpfile rm -f $tmpfile - while ! ceph df | grep cache4 | grep ' 5 ' ; do - echo waiting for pg stats to flush - sleep 2 - done + ceph tell osd.* flush_pg_stats || true + ceph df | grep cache4 | grep ' 2 ' + local max_objects=1 + ceph osd pool set cache4 target_max_objects $max_objects + local max_bytes=1024 + ceph osd pool set cache4 target_max_bytes $max_bytes ceph health | grep WARN | grep cache4 - ceph health detail | grep cache4 | grep 'target max' | grep objects - ceph health detail | grep cache4 | grep 'target max' | grep 'B' + ceph health detail | grep cache4 | grep 'target max' | grep "${max_objects} objects" + ceph health detail | grep cache4 | grep 'target max' | grep "${max_bytes}B" ceph osd tier remove-overlay datapool ceph osd tier remove datapool cache4 ceph osd pool delete cache4 cache4 --yes-i-really-really-mean-it -- 2.47.3