[Openstack] swift and rsync

Fabrice Bacchella fbacchella at spamcop.net
Wed Oct 12 11:07:19 UTC 2011


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 ?




More information about the Openstack mailing list