openstack team mailing list archive
-
openstack team
-
Mailing list archive
-
Message #04732
swift and rsync
swift uses rsync for some synchronization tasks. But for what I can see, it mades a very raw usage of it :
In db_replicator.py :
def _rsync_file(self, db_file, remote_file, whole_file=True):
...
popen_args = ['rsync', '--quiet', '--no-motd',
'--timeout=%s' % int(math.ceil(self.node_timeout)),
'--contimeout=%s' % int(math.ceil(self.conn_timeout))]
...
In replicator.py:
def rsync(self, node, job, suffixes):
...
args = [
'rsync',
'--recursive',
'--whole-file',
'--human-readable',
'--xattrs',
'--itemize-changes',
'--ignore-existing',
'--timeout=%s' % self.rsync_io_timeout,
'--contimeout=%s' % self.rsync_io_timeout,
]
Nothing can be changed like the rsync binary, the port used, ...
Worst, there is no security at all, so one has to rely on networks isolation to protect data.
Is there any plan to improve that, by providing optionnal arguments in the conf for example ? Or at lease some not to difficult way to use some other methods ?
Follow ups