summaryrefslogtreecommitdiffstats
path: root/geo-replication/syncdaemon/README.md
blob: d45006932d1c3717119c7aa970bd85ecd267dfc9 (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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
gsycnd, the Gluster Syncdaemon
==============================

REQUIREMENTS
------------

_gsyncd_ is a program which can operate either in _master_ or in _slave_ mode.
Requirements are categorized according to this.

* supported OS is GNU/Linux
* Python >= 2.5, or 2.4 with Ctypes (see below) (both)
* OpenSSH >= 4.0 (master) / SSH2 compliant sshd (eg. openssh) (slave)
* rsync (both)
* glusterfs with marker support (master); glusterfs (optional on slave)
* FUSE; for supported versions consult glusterfs

INSTALLATION
------------

As of now, the supported way of operation is running from the source directory.

If you use Python 2.4.x, you need to install the [Ctypes module](http://python.net/crew/theller/ctypes/).

CONFIGURATION
-------------

gsyncd tunables are a subset of the long command-line options; for listing them,
type

    gsyncd.py --help

and see the long options up to "--config-file". (The leading double dash should be omitted;
interim underscores and dashes are interchangeable.) The set of options bear some resemblance
to those of glusterfs and rsync.

The config file format matches the following syntax:

      <option1>: <value1>
      <option2>: <value2>
      # comment

By default (unless specified by the option `-c`), gsyncd looks for config file at _conf/gsyncd.conf_
in the source tree.

USAGE
-----

gsyncd is a utilitly for continous mirroring, ie. it mirrors master to slave incrementally.
Assume we have a gluster volume _pop_ at localhost. We try to set up the following mirrors
for it with gysncd:

1. _/data/mirror_
2. local gluster volume _yow_
3. _/data/far_mirror_ at example.com
4. gluster volume _moz_ at example.com

The respective gsyncd invocations are (demoing some syntax sugaring):

1.

      gsyncd.py gluster://localhost:pop file:///data/mirror

  or short form

      gsyncd.py :pop /data/mirror

2. `gsyncd :pop :yow`
3.

       gsyncd.py :pop ssh://example.com:/data/far_mirror

  or short form

       gsyncd.py :pop example.com:/data/far_mirror

4. `gsyncd.py :pop example.com::moz`

gsyncd has to be available on both sides; it's location on the remote side has to be specified
via the "--remote-gsyncd" option (or "remote-gsyncd" config file parameter). (This option can also be
used for setting options on the remote side, although the suggested mode of operation is to
set parameters like log file / pid file in the configuration file.)