Synchronization

From Freephile Wiki

Rsync[edit | edit source]

rsync wp:Rsync is an awesome tool that you can use to synchronize files between hosts. Fast and efficient, it's the tool of choice for deploying content, or doing service migrations from one host to another.

Lsyncd[edit | edit source]

Lsyncd watches a local directory trees event monitor interface (inotify or fsevents). It aggregates and combines events for a few seconds and then spawns one (or more) process(es) to synchronize the changes. By default this is rsync. Lsyncd is thus a light-weight live mirror solution that is comparatively easy to install not requiring new filesystems or block devices and does not hamper local filesystem performance.

Lsyncd uses SSH and rsync; and can be scripted in Lua. It's most useful on a directory tree with a low profile of expected changes. Example use cases are to provide a remote mirror, or a scripted backup.

DRBD[edit | edit source]

drbd-in-kernel.png
DRBD's position within the Linux I/O stack

DRBD The Distributed Replicated Block Device (DRBD) is a software-based, shared-nothing, replicated storage solution mirroring the content of block devices (hard disks, partitions, logical volumes etc.) between hosts.

DRBD mirrors data

  • in real time - Replication occurs continuously while applications modify the data on the device.
  • transparently - Applications need not be aware that the data is stored on multiple hosts.
  • synchronously or asynchronously - With synchronous mirroring, applications are notified of write completions after the writes have been carried out on all hosts. With asynchronous mirroring, applications are notified of write completions when the writes have completed locally, which usually is before they have propagated to the other hosts.

DRBD's core functionality is implemented by way of a Linux kernel module. Specifically, DRBD constitutes a driver for a virtual block device, so DRBD is situated right near the bottom of a system's I/O stack. Because of this, DRBD is extremely flexible and versatile, which makes it a replication solution suitable for adding high availability to just about any application.

Filesystems[edit | edit source]

Gluster[edit | edit source]

Gluster is a software-defined scalable, distributed, file system.

MooseFS[edit | edit source]

MooseFS wp:Moose File System is another distributed file system that is partly GPL (there is also a "Pro" version) See wp:Comparison of distributed file systems