2021-07-04
Two ways to have Amanda always make full backups of a filesystem
Amanda (also) is the open source backup system that we use to run our disk-based backups (which I see is now more than ten years old and we're still happy with its design). Amanda normally does full backups of your filesystems once in a while and then various levels of incrementals until the next full backup. However, sometimes there are various reasons that you want to always do full backups of a particular filesystem; it may be faster, it may be better for disaster recovery, or whatever. Over our use of Amanda so far, we've used two different Amanda mechanisms for this and have developed a distinct preference for one of them.
The first and most obvious method is a cron job that runs 'amadmin <yourconfig>
force targethost /target/fs
' before you start your backups. The
second and less obvious way is to set a dumpcycle
in a special
amanda.conf
dumptype and use it for the filesystem or filesystems that you want
to always be backed up with full backups. We used the first method
for years, but switched to the second one a few years ago.
The two methods have an assortment of relatively obvious small tradeoffs. For example, it's easy to temporarily stop always doing full backups with the first method; you comment out the cron job or whatever; with the second method, you have to change your dumptypes around. The second method is more visible in your disklist. And so on. However, there is a big operational difference between the two, and that is what happens if your tapes fill up and Amanda has no room to do a full dump.
(One of the way to have tapes 'fill up' is to have no tapes available for some reason.)
When you force full dumps with amadmin
, Amanda will skip dumping
the filesystem rather than fall back to an incremental dump. This
is in a sense fair; you told Amanda to do a full dump and it can't
do one, so it's not doing anything. But it may well be surprising
and not what you actually want. By contrast, if you set the dumpcycle
to 0, Amanda will do incrementals if it has to because Amanda
considers the dump cycle length to be a goal instead of a hard
requirement.
In some environments, attempting an incremental dump may be
sufficiently useless or harmful that you'd rather Amanda not even
try. In our environment, we would rather have incrementals than
nothing, and so we've switched from forcing with amadmin
to setting
the dumpcycle to 0.
(The corollary of this is that if you set 'dumpcycle 0
', you probably
want to keep an eye on your dump reports to see if Amanda is able to
reliably deliver on this. Probably it will.)