Skip to content

Commit 7c6f839

Browse files
aravindavkgluster-ant
authored andcommitted
geo-rep: Refactoring Config and Arguments parsing
- Fixed Python pep8 issues - Removed dead code - Rewritten configuration management - Rewritten Arguments/subcommands handling - Added Args upgrade to accommodate all these changes without changing glusterd code - use of md5 removed, which was used to hash the brick path for workdir Both Master and Slave nodes will have subdir for session in the format "<mastervol>_<primary_slave_host>_<slavevol> $GLUSTER_LOGDIR/geo-replication/<mastervol>_<primary_slave_host>_<slavevol> $GLUSTER_LOGDIR/geo-replication-slaves/<mastervol>_<primary_slave_host>_<slavevol> Log file paths renamed since session info is available with directory name itself. $LOG_DIR_MASTER/ - gsyncd.log - Gsyncd, Worker monitor logs - mnt-<brick-path>.log - Aux mount logs, mounted by each worker - changes-<brick-path>.log - Changelog related logs(One per brick) $LOG_DIR_SLAVE/ - gsyncd.log - Slave Gsyncd logs - mnt-<master-node>-<master-brick-path>.log - Aux mount logs, mounted for each connection from master-node:master-brick - mnt-mbr-<master-node>-<master-brick-path>.log - Same as above, but mountbroker setup Fixes: gluster#73 Change-Id: I2ec2a21e4e2a92fd92899d026e8543725276f021 Signed-off-by: Aravinda VK <avishwan@redhat.com>
1 parent f0c1acb commit 7c6f839

20 files changed

+2607
-2310
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ extras/systemd/glusterd.service
6464
extras/systemd/glusterfssharedstorage.service
6565
extras/who-wrote-glusterfs/gitdm
6666
geo-replication/.tox
67+
geo-replication/gsyncd.conf
6768
geo-replication/src/gsyncd
6869
geo-replication/src/peer_gsec_create
6970
geo-replication/src/peer_mountbroker

configure.ac

+1
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ AC_CONFIG_FILES([Makefile
4545
geo-replication/src/peer_georep-sshkey.py
4646
extras/peer_add_secret_pub
4747
geo-replication/syncdaemon/conf.py
48+
geo-replication/gsyncd.conf
4849
extras/snap_scheduler/conf.py
4950
glusterfsd/Makefile
5051
glusterfsd/src/Makefile

geo-replication/Makefile.am

+5
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
11
SUBDIRS = syncdaemon src
22

33
CLEANFILES =
4+
5+
EXTRA_DIST = gsyncd.conf.in
6+
7+
gsyncdconfdir = $(sysconfdir)/glusterfs/
8+
gsyncdconf_DATA = gsyncd.conf

geo-replication/gsyncd.conf.in

+301
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,301 @@
1+
[__meta__]
2+
version = 4.0
3+
4+
[glusterd-workdir]
5+
value = @GLUSTERD_WORKDIR@
6+
7+
[gluster-logdir]
8+
value = /var/log/glusterfs
9+
10+
[gluster-rundir]
11+
value = /var/run/gluster
12+
13+
[gsyncd-miscdir]
14+
value = /var/lib/misc/gluster/gsyncd
15+
16+
[stime-xattr-prefix]
17+
value=
18+
19+
[checkpoint]
20+
value=0
21+
help=Set Checkpoint
22+
validation=unixtime
23+
type=int
24+
25+
[gluster-cli-options]
26+
value=
27+
help=Gluster CLI Options
28+
29+
[pid-file]
30+
value=${gluster_rundir}/gsyncd-${master}-${primary_slave_host}-${slavevol}.pid
31+
configurable=false
32+
template = true
33+
help=PID file path
34+
35+
[state-file]
36+
value=${glusterd_workdir}/geo-replication/${master}_${primary_slave_host}_${slavevol}/monitor.status
37+
configurable=false
38+
template=true
39+
help=Status File path
40+
41+
[georep-session-working-dir]
42+
value=${glusterd_workdir}/geo-replication/${master}_${primary_slave_host}_${slavevol}/
43+
template=true
44+
help=Session Working directory
45+
configurable=false
46+
47+
[access-mount]
48+
value=false
49+
help=Do not unmount the Aux mounts when stopped or crash
50+
51+
[isolated-slaves]
52+
value=
53+
help=List of Slave nodes which are isolated
54+
55+
[changelog-batch-size]
56+
# Max size of Changelogs to process per batch, Changelogs Processing is
57+
# not limited by the number of changelogs but instead based on
58+
# size of the changelog file, One sample changelog file size was 145408
59+
# with ~1000 CREATE and ~1000 DATA. 5 such files in one batch is 727040
60+
# If geo-rep worker crashes while processing a batch, it has to retry only
61+
# that batch since stime will get updated after each batch.
62+
value=727040
63+
help=Max size of Changelogs to process per batch.
64+
type=int
65+
66+
[slave-timeout]
67+
value=120
68+
type=int
69+
help=Timeout in seconds for Slave Gsyncd. If no activity from master for this timeout, Slave gsyncd will be disconnected. Set Timeout to zero to skip this check.
70+
71+
[connection-timeout]
72+
value=60
73+
type=int
74+
help=Timeout for mounts
75+
76+
[replica-failover-interval]
77+
value=1
78+
type=int
79+
help=Minimum time interval in seconds for passive worker to become Active
80+
81+
[chnagelog-archive-format]
82+
value=%Y%m
83+
help=Processed changelogs will be archived in working directory. Pattern for archive file
84+
85+
[use-meta-volume]
86+
value=false
87+
type=bool
88+
help=Use this to set Active Passive mode to meta-volume.
89+
90+
[meta-volume-mnt]
91+
value=/var/run/gluster/shared_storage
92+
help=Meta Volume or Shared Volume mount path
93+
94+
[allow-network]
95+
value=
96+
97+
[change-interval]
98+
value=5
99+
type=int
100+
101+
[use-tarssh]
102+
value=false
103+
type=bool
104+
help=Use sync-mode as tarssh
105+
106+
[remote-gsyncd]
107+
value =
108+
help=If SSH keys are not secured with gsyncd prefix then use this configuration to set the actual path of gsyncd(Usually /usr/libexec/glusterfs/gsyncd)
109+
110+
[gluster-command-dir]
111+
value=/usr/local/sbin/
112+
help=Directory where Gluster binary exists
113+
114+
[gluster-params]
115+
value = aux-gfid-mount acl
116+
help=Parameters for Gluster Geo-rep mount in Master
117+
118+
[slave-gluster-params]
119+
value = aux-gfid-mount acl
120+
help=Parameters for Gluster Geo-rep mount in Slave
121+
122+
[ignore-deletes]
123+
value = false
124+
type=bool
125+
help=Do not sync deletes in Slave
126+
127+
[special-sync-mode]
128+
# tunables for failover/failback mechanism:
129+
# None - gsyncd behaves as normal
130+
# blind - gsyncd works with xtime pairs to identify
131+
# candidates for synchronization
132+
# wrapup - same as normal mode but does not assign
133+
# xtimes to orphaned files
134+
# see crawl() for usage of the above tunables
135+
value =
136+
help=
137+
138+
[working-dir]
139+
value = ${gsyncd_miscdir}/${master}_${primary_slave_host}_${slavevol}/
140+
template=true
141+
configurable=false
142+
help=Working directory for storing Changelogs
143+
144+
[change-detector]
145+
value=changelog
146+
help=Change detector
147+
validation=choice
148+
allowed_values=changelog,xsync
149+
150+
[cli-log-file]
151+
value=${gluster_logdir}/geo-replication/cli.log
152+
template=true
153+
configurable=false
154+
155+
[cli-log-level]
156+
value=INFO
157+
help=Set CLI Log Level
158+
validation=choice
159+
allowed_values=ERROR,INFO,WARNING,DEBUG
160+
161+
[log-file]
162+
value=${gluster_logdir}/geo-replication/${master}_${primary_slave_host}_${slavevol}/gsyncd.log
163+
configurable=false
164+
template=true
165+
166+
[changelog-log-file]
167+
value=${gluster_logdir}/geo-replication/${master}_${primary_slave_host}_${slavevol}/changes-${local_id}.log
168+
configurable=false
169+
template=true
170+
171+
[gluster-log-file]
172+
value=${gluster_logdir}/geo-replication/${master}_${primary_slave_host}_${slavevol}/mnt-${local_id}.log
173+
template=true
174+
configurable=false
175+
176+
[slave-log-file]
177+
value=${gluster_logdir}/geo-replication-slaves/${master}_${primary_slave_host}_${slavevol}/gsyncd.log
178+
template=true
179+
configurable=false
180+
181+
[slave-gluster-log-file]
182+
value=${gluster_logdir}/geo-replication-slaves/${master}_${primary_slave_host}_${slavevol}/mnt-${master_node}-${master_brick_id}.log
183+
template=true
184+
configurable=false
185+
186+
[slave-gluster-log-file-mbr]
187+
value=${gluster_logdir}/geo-replication-slaves/${master}_${primary_slave_host}_${slavevol}/mnt-mbr-${master_node}-${master_brick_id}.log
188+
template=true
189+
configurable=false
190+
191+
[log-level]
192+
value=INFO
193+
help=Set Log Level
194+
validation=choice
195+
allowed_values=ERROR,INFO,WARNING,DEBUG
196+
197+
[gluster-log-level]
198+
value=INFO
199+
help=Set Gluster mount Log Level
200+
validation=choice
201+
allowed_values=ERROR,INFO,WARNING,DEBUG
202+
203+
[changelog-log-level]
204+
value=INFO
205+
help=Set Changelog Log Level
206+
validation=choice
207+
allowed_values=ERROR,INFO,WARNING,DEBUG
208+
209+
[slave-log-level]
210+
value=INFO
211+
help=Set Slave Gsyncd Log Level
212+
validation=choice
213+
allowed_values=ERROR,INFO,WARNING,DEBUG
214+
215+
[slave-gluster-log-level]
216+
value=INFO
217+
help=Set Slave Gluster mount Log Level
218+
validation=choice
219+
allowed_values=ERROR,INFO,WARNING,DEBUG
220+
221+
[ssh-port]
222+
value=22
223+
validation=int
224+
help=Set SSH port
225+
226+
[ssh-command]
227+
value=ssh
228+
help=Set ssh binary path
229+
validation=execpath
230+
231+
[tar-command]
232+
value=tar
233+
help=Set tar command path
234+
validation=execpath
235+
236+
[ssh-options]
237+
value = -oPasswordAuthentication=no -oStrictHostKeyChecking=no -i ${glusterd_workdir}/geo-replication/secret.pem
238+
template=true
239+
240+
[ssh-options-tar]
241+
value = -oPasswordAuthentication=no -oStrictHostKeyChecking=no -i ${glusterd_workdir}/geo-replication/tar_ssh.pem
242+
template=true
243+
244+
[gluster-command]
245+
value=gluster
246+
help=Set gluster binary path
247+
validation=execpath
248+
249+
[sync-jobs]
250+
value=3
251+
help=Number of Syncer jobs
252+
validation=minmax
253+
min=1
254+
max=100
255+
type=int
256+
257+
[rsync-command]
258+
value=rsync
259+
help=Set rsync command path
260+
validation=execpath
261+
262+
[rsync-options]
263+
value=
264+
265+
[rsync-ssh-options]
266+
value=
267+
268+
[rsync-opt-ignore-missing-args]
269+
value=
270+
271+
[rsync-opt-existing]
272+
value=
273+
274+
[log-rsync-performance]
275+
value=false
276+
help=Log Rsync performance
277+
validation=bool
278+
type=bool
279+
280+
[use-rsync-xattrs]
281+
value=false
282+
type=bool
283+
284+
[sync-xattrs]
285+
value=true
286+
type=bool
287+
288+
[sync-acls]
289+
value=true
290+
type=bool
291+
292+
[max-rsync-retries]
293+
value=10
294+
type=int
295+
296+
[changelog-archive-format]
297+
value=%Y%m
298+
299+
[state_socket_unencoded]
300+
# Unused, For backward compatibility
301+
value=
+3-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
syncdaemondir = $(GLUSTERFS_LIBEXECDIR)/python/syncdaemon
22

3-
syncdaemon_PYTHON = gconf.py gsyncd.py __init__.py master.py README.md repce.py \
4-
resource.py configinterface.py syncdutils.py monitor.py libcxattr.py \
3+
syncdaemon_PYTHON = rconf.py gsyncd.py __init__.py master.py README.md repce.py \
4+
resource.py syncdutils.py monitor.py libcxattr.py gsyncdconfig.py \
55
$(top_builddir)/contrib/ipaddr-py/ipaddr.py libgfchangelog.py changelogagent.py \
6-
gsyncdstatus.py conf.py
6+
gsyncdstatus.py conf.py logutils.py subcmds.py argsupgrade.py
77

88
CLEANFILES =

0 commit comments

Comments
 (0)