From 98fa496c211dc0da7bccb68fc57f97d835e56c28 Mon Sep 17 00:00:00 2001 From: Dan Lambright Date: Fri, 18 Sep 2015 00:49:06 -0400 Subject: cluster/tier: add watermarks and policy driver Backport fix 12039 This fix introduces infrastructure to support different policies for promotion and demotion. Currently the tier feature automatically promotes and demotes files periodically based on access. This is good for testing but too stringent for most real workloads. It makes it difficult to fully utilize a hot tier- data will be demoted before it is touched- its unlikely a 100GB hot SSD will have all its data touched in a window of time. A new parameter "mode" allows the user to pick promotion/demotion polcies. The "test mode" will be used for *.t and other general testing. This is the current mechanism. The "cache mode" introduces watermarks. The watermarks represent levels of data residing on the hot tier. "cache mode" policy: The % the hot tier is full is called P. Do not promote or demote more than D MB or F files. A random number [0-100] is called R. Rules for migration: if (P < watermark_low) don't demote, always promote. if (P >= watermark_low) && (P < watermark_hi) demote if R < P; promote if R > P. if (P > watermark_hi) always demote, don't promote. gluster volume set {vol} cluster.watermark-hi % gluster volume set {vol} cluster.watermark-low % gluster volume set {vol} cluster.tier-max-mb {D} gluster volume set {vol} cluster.tier-max-files {F} gluster volume set {vol} cluster.tier-mode {test|cache} > Change-Id: I157f19667ec95aa1d53406041c1e3b073be127c2 > BUG: 1257911 > Signed-off-by: Dan Lambright > Reviewed-on: http://review.gluster.org/12039 > Tested-by: Gluster Build System > Reviewed-by: Atin Mukherjee Signed-off-by: Dan Lambright Signed-off-by: Dan Lambright Conflicts: xlators/cluster/dht/src/dht-rebalance.c xlators/cluster/dht/src/tier.c Change-Id: Ibfe6b89563ceab98708325cf5d5ab0997c64816c BUG: 1270527 Reviewed-on: http://review.gluster.org/12330 Tested-by: NetBSD Build System Tested-by: Gluster Build System Reviewed-by: Dan Lambright Tested-by: Dan Lambright --- tests/basic/tier/tier.t | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'tests/basic') diff --git a/tests/basic/tier/tier.t b/tests/basic/tier/tier.t index 80c31ea2430..55f66965183 100755 --- a/tests/basic/tier/tier.t +++ b/tests/basic/tier/tier.t @@ -150,12 +150,23 @@ TEST ! $CLI volume set $V0 cluster.tier-demote-frequency 4 TEST ! $CLI volume tier $V0 detach commit force TEST $CLI volume tier $V0 attach replica 2 $H0:$B0/${V0}$CACHE_BRICK_FIRST $H0:$B0/${V0}$CACHE_BRICK_LAST + +TEST $CLI volume set $V0 cluster.tier-mode test + # create a file, make sure it can be deleted after attach tier. TEST $GFS --volfile-id=/$V0 --volfile-server=$H0 $M0; cd $M0 TEST touch delete_me.txt TEST rm -f delete_me.txt +# confirm watermark CLI works +TEST $CLI volume set $V0 cluster.watermark-hi 85 +TEST $CLI volume set $V0 cluster.watermark-low 75 +TEST $CLI volume set $V0 cluster.tier-max-mb 1000 +TEST $CLI volume set $V0 cluster.tier-max-files 1000 +TEST ! $CLI volume set $V0 cluster.tier-max-files -3 +TEST ! $CLI volume set $V0 cluster.watermark-low 90 + # stop the volume and restart it. The rebalance daemon should restart. TEST $CLI volume stop $V0 TEST $CLI volume start $V0 -- cgit