Join GitHub today
GitHub is home to over 36 million developers working together to host and review code, manage projects, and build software together.Sign up
This page gives advice about running more than one Box Backup server for redundancy, resiliency and high availability.
If one of your backup servers goes down temporarily, clients will not be able to back up, and may get annoyed.
If it goes down permanently, they may lose all their backed-up data and history, and they may get more annoyed.
Simple things like RAID on disks can increase uptime and prevent some failures, but does not help you if:
- your server catches fire
- someone deletes all the files
- an OS upgrade goes wrong
- power failure causes disk corruption
- power supply fails
- hosting company/site goes offline
There are two common methods:
Set up two completely independent servers (with synchronisation of the accounts database between them) and set your clients to back up independently to both. This uses more bandwidth per client (twice as much) but no bandwidth between the servers.
Set up a master and slave server. Have clients backup to the master, and the master replicate to the slave with rsync. May use a lot of bandwidth between master and slave.
This is very easy to set up. You will need multiple configuration files, but you should not need multiple sets of keys.
On Windows clients, if you create Windows services (and you should), then you'll also need to create multiple services with different names and different named pipe names.
You can rsync the accounts.txt file and account home directory from one server to the other whenever you create a new account.
Master and Slave
It should be possible to synchronise the two servers with rsync. However rsync is not that bandwidth-efficient or disk-efficient. You might consider running filesystems that support snapshots at both ends, and then locally computing the difference between two snapshots on the master and transferring just that difference to the slave. ZFS has built-in support for this (using the "zfs send" command).
I believe that Pete Jalajas was running a similar setup and discovered that the bandwidth use between the two server sites (using rsync) was too high, so he found it better to run two completely independent backup configurations on each client.
I don't believe you have anything to worry about from a failed sync (for example if the master dies in the middle of an rsync).
If you rsync from server A to server B while clients are backing up to server A, you will probably get some incomplete updates, lock files and inconsistent store statistics on B. You might want to run "bbstoreaccounts check fix" on each account on B after the transfer is complete.
If you do have any problems, please let us know. Good luck!