From: Loic Dachary Date: Thu, 13 Aug 2015 17:41:47 +0000 (+0200) Subject: tests: tiering agent and proxy read X-Git-Tag: v0.80.11~19^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=2c0d7feeb1c7592887e0408fe4fadaa9b4f659e9;p=ceph.git tests: tiering agent and proxy read Verify that an object promoted to a cache tier because of a proxy read is evicted as expected. http://tracker.ceph.com/issues/12673 Refs: #12673 Signed-off-by: Loic Dachary (cherry picked from commit 7924231930732bd297d3bd034c8295e96cb81088) Conflicts: qa/workunits/cephtool/test.sh resolved by manually adding the new test to TESTS --- diff --git a/qa/workunits/cephtool/test.sh b/qa/workunits/cephtool/test.sh index 5fd6a188c8b45..bca767dea2e45 100755 --- a/qa/workunits/cephtool/test.sh +++ b/qa/workunits/cephtool/test.sh @@ -116,6 +116,49 @@ function test_mon_injectargs_SI() $SUDO ceph daemon mon.a config set mon_pg_warn_min_objects $initial_value } +function test_tiering_agent() +{ + local slow=slow_eviction + local fast=fast_eviction + ceph osd pool create $slow 1 1 + ceph osd pool create $fast 1 1 + ceph osd tier add $slow $fast + ceph osd tier cache-mode $fast writeback + ceph osd tier set-overlay $slow $fast + ceph osd pool set $fast hit_set_type bloom + rados -p $slow put obj1 /etc/group + ceph osd pool set $fast target_max_objects 1 + ceph osd pool set $fast hit_set_count 1 + ceph osd pool set $fast hit_set_period 5 + # wait for the object to be evicted from the cache + local evicted + evicted=false + for i in 1 2 4 8 16 32 64 128 256 ; do + if ! rados -p $fast ls | grep obj1 ; then + evicted=true + break + fi + sleep $i + done + $evicted # assert + # the object is proxy read and promoted to the cache + rados -p $slow get obj1 /tmp/obj1 + # wait for the promoted object to be evicted again + evicted=false + for i in 1 2 4 8 16 32 64 128 256 ; do + if ! rados -p $fast ls | grep obj1 ; then + evicted=true + break + fi + sleep $i + done + $evicted # assert + ceph osd tier remove-overlay $slow + ceph osd tier remove $slow $fast + ceph osd pool delete $fast $fast --yes-i-really-really-mean-it + ceph osd pool delete $slow $slow --yes-i-really-really-mean-it +} + function test_tiering() { # tiering @@ -900,6 +943,7 @@ set +x TESTS=( mon_injectargs_SI tiering + tiering_agent auth mon_misc mon_mds