summaryrefslogtreecommitdiffstats
path: root/extras/migrate-unify-to-distribute.sh
blob: ae0c344c9753c7abb2143c48a40fd0ef79d05dfa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/bin/sh

#
# This is a template script which can be used to migrate the GlusterFS
# storage infrastructure from 'cluster/unify' to 'cluster/distribute'

# This script needs to be executed on the machine where namespace volume 
# of 'cluster/unify' translator resides. And also, one need to mount the 
# new 'cluster/distribute' volume with "option lookup-unhashed yes" on 
# the same machine.
# If the namespace volume was replicated (ie, afr'ed), then this can be 
# executed just on one of the namespace machines..

# Only the variables defined below needs to be changed to appropriate path

# This is export from old 'cluster/unify' volume's namespace volume.
namespace_export=/exports/export-ns
namespace_host=localhost

# This is the new mount point with 'cluster/distribute' volume
distribute_mount=/mnt/glusterfs

function execute_on()
{
    local node="$1"
    local cmd="$2"

    if [ "$node" = "localhost" ]; then
        $cmd
    else
        ssh "$node" sh -c "$cmd"
    fi
}

execute_on $namespace_host "cd ${namespace_export} && find ." |
(cd ${distribute_mount} && xargs -d '\n' stat -c '%n')