Application API
This page documents the Application API from a developer's perspective -- in particular, someone interested in modifying an existing application or creating a new one. For the basics of using the Application API in an Amanda configuration, see How To:Use Amanda Applications on a Client. Note that the implementation of the Application API is still in progress.
Most of the useful content is held in subpages
- Terminology describes some of the terms used around the API
- Operations describes the API operations in detail
- DAR describes DAR (Direct access recovery)
- Implementation gives the roadmap for the API's implementation in Amanda
- Misconceptions will set your thinking straight about how the API works
Background
There are two compelling reasons to introduce the Application API:
- To allow recovery of a single file without transmitting the entire backup archive to the client.
- To make it easier to support new client backup mechanisms, both at the filesystem and application level.
The Application API addresses these needs by changing the way Amanda client operations work.
Historically, Amanda has focused on managing large chunks of data generated by one of only a few hard-coded applications (generally either GNU tar, some version of dump, or smbclient). The Application API addresses both limitations in the following manner:
- It provides modular support for adding client backup tools, both for filesystems and applications such as databases, mail servers, etc.
- It extends Amanda to allow more granular backup and restore options.
Backward Compatability
The Application API maintains backward compatibility by extending existing behavior rather than replacing it. Essentially, it adds "APPLICATION" as an alternative program to "GNUTAR" and "DUMP". The latter two options remain unchanged.
- Legacy clients can be dumped as before. The server writes data to tape in the legacy format.
- Legacy tapes can be read as before.
- When restoring to a new client (one using the Application API), the server provides the legacy dump as one large collection.
- When restoring to a legacy client, the restore works as before.
- Legacy clients cannot restore data backed up by Application API clients; legacy clients can be restored only only from legacy dumps.