Synco Documentation

  1. Introduction
  2. Installation
  3. Concepts
  4. Backup Policy
  5. Storage Solutions
  6. Backup Scripts
  7. Basic Server Backup
  8. Backup Staging
  9. DNS Indirection
  10. Server Synchronization

Synco has several important concepts which are used to structure the backup script: servers, directories, the master, and the method. Each of these objects has associated event handlers.

Servers

A server object represents a specific host system and a specific root directory within that system. A host system can have a host name specified explicitly, or it can simply refer to the localhost (default). A server also has a root directory, in which all related operations will be performed in.

It is possible to have two server objects that refer to the same host, but have different root directories. In this case, you would be copying data from one location on a server to another.

Directories

A directory object specifies a relative path where data resides on a server. The path is resolved for a particular server by mapping the directory into the given server's root path.

Method

A method specifies the way data is copied between servers and directories. As an example, Synco includes two methods RSync which provides data synchronisation and RSyncSnapshot which provides incremental backups.

Typically, methods also have directionality associated with them:

Push
Data is pushed by the master server to the backup server.
Pull
Data is pulled by the backup server from the master server.

Directionality has implications for both security and performance.

In terms of security, the non-controlling server must provide open access to the controlling server, typically via SSH; in the case of a push backup, the backup server itself may be open to attack, and in the case of a pull backup, the master server may be vulnerable.

Depending on the network setup, performance may be improved or degraded by a particular direction. This is because if multiple backup servers are trying to access the same resource at once, the available capacity might be saturated; on the other hand, if there are multiple backup servers with individual (slow) network links, it may be more efficient to run them all at the same time.

Master

A backup script represents a single backup processes that can be executed from any machine. The actual work done is based on the master specified in the script. The master specifies the primary source of information in any backup or synchronisation task.

The master server can either be explicitly specified by using its symbolic name in the backup script, or resolved by matching a host name to a specific server instance.

In a homogeneous network of synchronized servers, this means that slaves will replicate from a master. If the master is failed, another slave can pick up the slack by promoting it to master.