Immediate goals

Operation

Two kinds of operations occurs :

Note that creating and uploading backups happens at the same time, so that no disk space will be used on hosts which aren't configured to keep local copies. On the other hand, if a given host is configured to serve its own backups, "uploading" will be a simple local copy of the relevant files, and actual uploading will happen as the "spread newly updated" operation.

Live CD

The Live CD would first scan the LDAP directory to identify the host it's running on (for instance using the hardware address of its network interfaces). A new entry can be added automatically if no object is found, either by using credentials present on the LiveCD (if we trust the poeple we hand them to enough), or by asking them to the user.

The local filesystem would be mounted under /media, and backups would be created and uploaded as specified by the configuration from the directory. The configured backup updates would be retreived as well if the host is configured to service any backups.

Program feature listing

Configuration

The creation and distribution of a backup is requested by creating an entry with the patnetBackup object class below the entry of the host which will create the backup. The backups which will be mirrored by a given host are configured with the auxiliary object class patnetBackupService

On the publishing and mirroring systems, the backups are named after their distinguished name under /srv/backup, with a file extension depending on their patnetBackupKind attribute. For instance, a tarball backup named "important" from the host foo.example.com might be named /srv/backup/cn=important,cn=foo,ou=hosts,dc=example,dc=com.tar.bz2.

Service request

patnetBackup objects must contain the following attributes:

They may also contain the following attributes:

A hierarchical structure could be used, where leaves would be backups and internal nodes would specify configuration options for all their children.

The presence of such a service request in the configuration subtree of a given host instructs both the host in question to realize and push (when applicable) such backups, and serves as a service request to the hosts listed as backup mirrors.

Service declaration

For each host willing to host some backups :

The service declaration entry could double as an HTTP service declaration, so that (encrypted) backups are made available to retreive over HTTP.

Details

Groups of hosts and backups would probably be specified by an LDAP search (ie. so you can indicate you're willing to mirror backup for dc=patnet,dc=eu,dc=org and subtree). LDAP aliases can be used for maximum flexibility / automatic load distribution.

Clients would push / servers would pull backups which are included in both the service request and declaration.

Roadmap

Version 0.1

Version 0.2

Version 0.3

Version 0.4

Version 0.5

Version 0.6

Version 0.7

Version 0.8

Version 0.9