From adbce4e9b7dadc226d3de326d98007ed10913919 Mon Sep 17 00:00:00 2001 From: Dan Lambright Date: Tue, 1 Mar 2016 15:03:54 -0500 Subject: cluster/tier: add tunable to migrate files based on size This fix adds a paramater "tier-max_promote_size" to control wether a file is migrated or not based on its size. By default the value is 0, meaning all files are migrated. If set to a non-zero value, files larger than the parameter won't be moved in tiered volumes. Change-Id: Ia6b88e9b2508935bef500d956f9192e59670fe00 BUG: 1313495 Signed-off-by: Dan Lambright Reviewed-on: http://review.gluster.org/13570 Smoke: Gluster Build System NetBSD-regression: NetBSD Build System CentOS-regression: Gluster Build System Reviewed-by: Joseph Fernandes --- xlators/mgmt/glusterd/src/glusterd-volume-set.c | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'xlators/mgmt/glusterd/src') diff --git a/xlators/mgmt/glusterd/src/glusterd-volume-set.c b/xlators/mgmt/glusterd/src/glusterd-volume-set.c index 5d9aafeb661..d0e5efbd9a0 100644 --- a/xlators/mgmt/glusterd/src/glusterd-volume-set.c +++ b/xlators/mgmt/glusterd/src/glusterd-volume-set.c @@ -452,6 +452,7 @@ validate_tier (glusterd_volinfo_t *volinfo, dict_t *dict, char *key, } } else if (strstr (key, "tier-promote-frequency") || strstr (key, "tier-max-mb") || + strstr (key, "tier-max-promote-file-size") || strstr (key, "tier-max-files") || strstr (key, "tier-demote-frequency")) { if (origin_val < 1) { @@ -2496,6 +2497,16 @@ struct volopt_map_entry glusterd_volopt_map[] = { " Cache mode does so based on whether the cache is full or not," " as specified with watermarks." }, + { .key = "cluster.tier-max-promote-file-size", + .voltype = "cluster/tier", + .option = "tier-max-promote-file-size", + .value = "0", + .op_version = GD_OP_VERSION_3_7_10, + .flags = OPT_FLAG_CLIENT_OPT, + .validate_fn = validate_tier, + .description = "The maximum file size in bytes that is promoted. If 0, there" + " is no maximum size (default)." + }, { .key = "cluster.tier-max-mb", .voltype = "cluster/tier", .option = "tier-max-mb", -- cgit