diff options
author | Dan Lambright <dlambrig@redhat.com> | 2015-04-13 02:42:12 +0100 |
---|---|---|
committer | Vijay Bellur <vbellur@redhat.com> | 2015-05-09 08:35:14 -0700 |
commit | 99b778cbe179104af602b6eedebd31695bec16ae (patch) | |
tree | 5352721732f773b117b4a1c771577cedfaf329f4 /xlators/cluster/dht/src/dht-rebalance.c | |
parent | 5fd6b3b7e2881d21a1b19fb22366e905314d71bc (diff) |
glusterd: support for tier volumes 'detach start' and 'detach commit'
Back port of http://review.gluster.org/10108
These commands work in a manner analagous to rebalancing when removing a
brick. The existing migration daemon detects "detach start" and switches
to moving data off the hot tier. While in this state all lookups are
directed to the cold tier.
gluster v detach-tier <vol> start
gluster v detach-tier <vol> commit
The status and stop cli commands shall be submitted separately.
>Change-Id: I24fda5cc3ba74f5fb8aa9a3234ad51f18b80a8a0
>BUG: 1205540
>Signed-off-by: Dan Lambright <dlambrig@redhat.com>
>Signed-off-by: root <root@localhost.localdomain>
>Signed-off-by: Dan Lambright <dlambrig@redhat.com>
>Reviewed-on: http://review.gluster.org/10108
>Reviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com>
Change-Id: I212d748d077fb5870ee84b316c653acbafbea3f7
BUG: 1220047
Signed-off-by: Mohammed Rafi KC <rkavunga@redhat.com>
Reviewed-on: http://review.gluster.org/10708
Reviewed-by: Dan Lambright <dlambrig@redhat.com>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
Diffstat (limited to 'xlators/cluster/dht/src/dht-rebalance.c')
-rw-r--r-- | xlators/cluster/dht/src/dht-rebalance.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/xlators/cluster/dht/src/dht-rebalance.c b/xlators/cluster/dht/src/dht-rebalance.c index 33f6099c6d1..60f7314efe0 100644 --- a/xlators/cluster/dht/src/dht-rebalance.c +++ b/xlators/cluster/dht/src/dht-rebalance.c @@ -2682,6 +2682,22 @@ gf_defrag_start_crawl (void *data) goto out; } methods->migration_other(this, defrag); + if (defrag->cmd == GF_DEFRAG_CMD_START_DETACH_TIER) { + migrate_data = dict_new (); + if (!migrate_data) { + ret = -1; + goto out; + } + ret = dict_set_str (migrate_data, + GF_XATTR_FILE_MIGRATE_KEY, + "force"); + if (ret) + goto out; + + ret = gf_defrag_fix_layout (this, defrag, &loc, + fix_layout, + migrate_data); + } } gf_log ("DHT", GF_LOG_INFO, "crawling file-system completed"); out: @@ -2901,6 +2917,14 @@ out: } int +gf_defrag_start_detach_tier (gf_defrag_info_t *defrag) +{ + defrag->cmd = GF_DEFRAG_CMD_START_DETACH_TIER; + + return 0; +} + +int gf_defrag_stop (gf_defrag_info_t *defrag, gf_defrag_status_t status, dict_t *output) { |