The topic of replicating backups has come up over and over and it seems there is no clean and easy way to accomplish offsite copies of backups. I wondered if it would be possible to have a replication agent that allowed the server to make copies of backup sets to another machine. Here’s what I’m thinking:
A program similar to the urbackupclientbackend could be run on one or more computers that would use the same mechanisms as the client to connect, authenticate to a server and receive files. This agent would be provided a directory in which to store data sent to it by the server. The server would then send backups to the agent for storage. The server would send these backups during a replication window defined in a way similar to the backup and cleanup windows. Whether a client’s backups are to be replicated would be another setting on the Client tab and could be set by default, by group or by individual client. I imagine there should be some sort of setting to determine which backups for a client need to be replicated. Maybe it is set up similar to the archival process where you can select a replication X days and kept for Y days/months/years? Maybe only archived backups are replicated?
In my mind, the backup server only needs to make sure backups get replicated, it shouldn’t have to worry about restoring files from a replication agent. The agent would only need to store whatever the server gives it and remove old backups when disk space is low or the server says they are no longer needed according to retention settings.