From ff5e91a60887d22934fcb5f8a15dd36019d6e09a Mon Sep 17 00:00:00 2001 From: Kotresh HR Date: Tue, 10 Jan 2017 15:39:55 -0500 Subject: geo-rep: Separate slave mount logs for each connection Geo-rep worker mounts the slave volume on the slave node. If multiple worker connects to same slave node, all workers share the same mount log file. This is very difficult to debug as logs are cluttered from different mounts. Hence creating separate mount log file for each connection from worker. Each connection from worker is identified uniquely using 'mastervol uuid', 'master host', 'master brickpath', 'salve vol'. The log file name will be combination of the above. Change-Id: I67871dc8e8ea5864e2ad55e2a82063be0138bf0c BUG: 1412689 Signed-off-by: Kotresh HR Reviewed-on: http://review.gluster.org/16384 Smoke: Gluster Build System NetBSD-regression: NetBSD Build System CentOS-regression: Gluster Build System Reviewed-by: Aravinda VK --- geo-replication/syncdaemon/configinterface.py | 12 ++++++++++++ geo-replication/syncdaemon/gsyncd.py | 4 +++- geo-replication/syncdaemon/resource.py | 6 ++++++ 3 files changed, 21 insertions(+), 1 deletion(-) (limited to 'geo-replication') diff --git a/geo-replication/syncdaemon/configinterface.py b/geo-replication/syncdaemon/configinterface.py index b5935dfdc14..50e7aedeba6 100644 --- a/geo-replication/syncdaemon/configinterface.py +++ b/geo-replication/syncdaemon/configinterface.py @@ -78,6 +78,18 @@ CONFIGS = ( "${slavevol}/${eSlave}.status", GLUSTERD_WORKDIR + "/geo-replication/${mastervol}_${remotehost}_" "${slavevol}/monitor.status"), + ("peersrx .", + "log_file", + "${iprefix}/log/glusterfs/geo-replication-slaves/${session_owner}:${eSlave}.log", + "${iprefix}/log/glusterfs/geo-replication-slaves/${session_owner}:${local_node}${local_id}.${slavevol}.log"), + ("peersrx .", + "log_file_mbr", + "${iprefix}/log/glusterfs/geo-replication-slaves/mbr/${session_owner}:${eSlave}.log", + "${iprefix}/log/glusterfs/geo-replication-slaves/mbr/${session_owner}:${local_node}${local_id}.${slavevol}.log"), + ("peersrx .", + "gluster_log_file", + "${iprefix}/log/glusterfs/geo-replication-slaves/${session_owner}:${eSlave}.gluster.log", + "${iprefix}/log/glusterfs/geo-replication-slaves/${session_owner}:${local_node}${local_id}.${slavevol}.gluster.log") ) diff --git a/geo-replication/syncdaemon/gsyncd.py b/geo-replication/syncdaemon/gsyncd.py index 1cc303526be..1fd475dfba1 100644 --- a/geo-replication/syncdaemon/gsyncd.py +++ b/geo-replication/syncdaemon/gsyncd.py @@ -414,7 +414,8 @@ def main_i(): if (o.callback in (store_abs, 'store_true', None) and o.get_opt_string() not in ('--version', '--help'))] remote_tunables = ['listen', 'go_daemon', 'timeout', - 'session_owner', 'config_file', 'use_rsync_xattrs'] + 'session_owner', 'config_file', 'use_rsync_xattrs', + 'local_id', 'local_node'] rq_remote_tunables = {'listen': True} # precedence for sources of values: 1) commandline, 2) cfg file, 3) @@ -542,6 +543,7 @@ def main_i(): namedict[name + 'vol'] = x.volume if name == 'remote': namedict['remotehost'] = x.remotehost + if not 'config_file' in rconf: rconf['config_file'] = TMPL_CONFIG_FILE diff --git a/geo-replication/syncdaemon/resource.py b/geo-replication/syncdaemon/resource.py index cbd96bbb77e..977496318da 100644 --- a/geo-replication/syncdaemon/resource.py +++ b/geo-replication/syncdaemon/resource.py @@ -1006,6 +1006,12 @@ class SlaveRemote(object): so = getattr(gconf, 'session_owner', None) if so: extra_opts += ['--session-owner', so] + li = getattr(gconf, 'local_id', None) + if li: + extra_opts += ['--local-id', li] + ln = getattr(gconf, 'local_node', None) + if ln: + extra_opts += ['--local-node', ln] if boolify(gconf.use_rsync_xattrs): extra_opts.append('--use-rsync-xattrs') po = Popen(rargs + gconf.remote_gsyncd.split() + extra_opts + -- cgit