From 9f69660133f9534722589801a6fc827b74bead44 Mon Sep 17 00:00:00 2001 From: Loic Dachary Date: Thu, 13 Aug 2015 19:41:47 +0200 Subject: [PATCH] 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) --- qa/workunits/cephtool/test.sh | 44 +++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/qa/workunits/cephtool/test.sh b/qa/workunits/cephtool/test.sh index ca17d6c9bfce5..5fe068977bf2a 100755 --- a/qa/workunits/cephtool/test.sh +++ b/qa/workunits/cephtool/test.sh @@ -234,6 +234,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 @@ -1490,6 +1533,7 @@ MON_TESTS+=" mon_tell" MON_TESTS+=" mon_crushmap_validation" OSD_TESTS+=" osd_bench" +OSD_TESTS+=" tiering_agent" MDS_TESTS+=" mds_tell" MDS_TESTS+=" mon_mds" -- 2.39.5