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 <ldachary@redhat.com>
This commit is contained in:
Loic Dachary 2015-08-13 19:41:47 +02:00
parent e1f58feb9b
commit 7924231930

View File

@ -221,6 +221,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
@ -1686,6 +1729,7 @@ MON_TESTS+=" mon_ping"
MON_TESTS+=" mon_deprecated_commands"
OSD_TESTS+=" osd_bench"
OSD_TESTS+=" tiering_agent"
MDS_TESTS+=" mds_tell"
MDS_TESTS+=" mon_mds"