Changer API/Configuration
From The Open Source Backup Wiki (Amanda, MySQL Backup, BackupPC)
Jump to navigationJump to searchChanger configuration is quite complex, now, for a few reasons:
- the long-term goal is for users to think of giving Amanda a changer -- that changer will take care of selecting devices for Amanda.
- consequently, tpchanger and tapedev are largely interchangeable
- changers and devices can both be specified directly or via aliases ("define changer" and "define device")
- supplying a device name as a changer automatically invokes Amanda::Changer::single
- changers can also be specified via their old shell-script names, invoking Amanda::Changer::compat
- there is a "default" changer (to which amdump dumps, and from which amrecover recovers), with the ability to specify other changers (currently only amrmtape and amvault support such specifications).
The consequences of various kinds of configuration are detailed below, but from the Amanda hacker's perspective, the only thing to worry about is calling
my $chg = Amanda::Changer->new();
or
my $chg = Amanda::Changer->new($otherchanger);
Configuration Matrix
What follows is an exhaustive list of the combinations of configuration options for a changer, and the resulting interpretation of the "default" changer.
global tapedev | global tpchanger | tpchanger in changer def'n | result |
---|---|---|---|
- | - | - | invalid |
- | dev uri | - | chg-single with dev |
- | dev alias | - | chg-single with dev |
- | changer uri | - | given changer with no config |
- | changer alias | changer uri | given changer with config from def'n |
- | changer alias | changer script | chg-compat with config from def'n |
- | changer script | - | chg-compat with global config |
dev uri | - | - | chg-single with dev |
dev uri | dev uri | - | invalid |
dev uri | dev alias | - | invalid |
dev uri | changer uri | - | invalid |
dev uri | changer alias | changer uri | invalid |
dev uri | changer alias | changer script | invalid |
dev uri | changer script | - | chg-compat with global config |
dev alias | - | - | chg-single with dev |
dev alias | dev uri | - | invalid |
dev alias | dev alias | - | invalid |
dev alias | changer uri | - | invalid |
dev alias | changer alias | changer uri | invalid |
dev alias | changer alias | changer script | invalid |
dev alias | changer script | - | chg-compat with global config |
changer uri | - | - | changer with global config |
changer uri | dev uri | - | invalid |
changer uri | dev alias | - | invalid |
changer uri | changer uri | - | invalid |
changer uri | changer alias | changer uri | invalid |
changer uri | changer alias | changer script | invalid |
changer uri | changer script | - | invalid |
changer alias | - | changer uri | changer with config from def'n |
changer alias | - | changer script | chg-compat with config from def'n |
changer alias | dev uri | changer uri | invalid |
changer alias | dev uri | changer script | invalid |
changer alias | dev alias | changer uri | invalid |
changer alias | dev alias | changer script | invalid |
changer alias | changer uri | changer uri | invalid |
changer alias | changer uri | changer script | invalid |
changer alias | changer alias | changer uri | invalid |
changer alias | changer alias | changer script | invalid |
changer alias | changer script | changer uri | invalid |
changer alias | changer script | changer script | invalid |