I don't think bacula supports your scenario very well. The main problem is that it does not treat the hard disk, but the individual file as a volume. I'm trying to get the same type of setup working with two hard disks.
The closest I came so far is this: I set up two hard disks as two different storage devices on the same SD, something like this (/misc/BACKUP2 is set up as an automount): Device { Name = USBDisk2 Media Type = File Device Type = File Archive Device = /misc/BACKUP2 LabelMedia = yes Random Access = Yes AutomaticMount = yes RemovableMedia = no AlwaysOpen = no RequiresMount = No } Hint: bacula does not remember which device it stored a file on. So you may want to use the Media Type or Device Type to identify this. There is a section in the manual about it. Then I created two sets of three pools: for each hard disk, one for full backups, one for diff backups, and one for incremental backups. Hint: DO NOT use the client or the job name in the label format. I originally did this to identify which file held which backup, but as soon as bacula starts recycling volumes, the name no longer matches what the file contains. Adjust the volume retention to your needs, of course. I do two full backups per month (one to each hard disk), so a volume retention of 35 days means that I will always have two full backups available. Pool { Name = Full-1-Pool Pool Type = Backup Storage = Disk1 Maximum Volume Jobs = 1 # Bacula can automatically recycle Volumes Recycle = yes # Prune expired volumes AutoPrune = yes Volume Retention = 35 days Label Format = "${Pool}_${NumVols}.bacula" } For the incremental pool (which I run every day), I use Maximum Volume Jobs=5 to keep the number of files somewhat under control. Now to switch between the two disks, I use the following schedule: Schedule { Name = "WeeklyCycle1" Run = Level=Full FullPool=Full-1-Pool DifferentialPool=Diff-1-Pool IncrementalPool=Inc-1-Pool on 1 at 19:05 Run = Level=Full FullPool=Full-2-Pool DifferentialPool=Diff-2-Pool IncrementalPool=Inc-2-Pool on 16 at 19:05 Run = Level=Differential FullPool=Full-1-Pool DifferentialPool=Diff-1-Pool IncrementalPool=Inc-1-Pool on 7 at 19:05 Run = Level=Differential FullPool=Full-2-Pool DifferentialPool=Diff-2-Pool IncrementalPool=Inc-2-Pool on 22 at 19:05 Run = Level=Incremental FullPool=Full-1-Pool DifferentialPool=Diff-1-Pool IncrementalPool=Inc-1-Pool on 3-6,8-14 at 19:05 Run = Level=Incremental FullPool=Full-2-Pool DifferentialPool=Diff-2-Pool IncrementalPool=Inc-2-Pool on 18-21,23-31 at 19:05 } So with this setup, I would simply to have to remember to make sure the first disk is connected to the server from the 1st to the 15th, and the second disk from the 16th to the end of the month. There still are a number of shortcomings with this setup: - There is no reminder from bacula; bacula will think that both hard disks are always connected. - Bacula is completely clueless even that the hard disks CAN be removed, much less that it might not exist at any given point in time. That could be an issue if you need to restore files spread out over multiple incremental, differential and full backups. - Bacula does not know which disk a file actually resides on, only what file name to look for, and what type of media. That is because file names are the equivalent of volume names. - Bacula will not delete files on the hard disk when recycling, or even when you manually delete it from the database. It will truncate and reuse the files. That can be a problem if the file name includes things such as client or job name. - On the 1st and the 16th of the month, you will have a very high load because all backup jobs will be full backups. I get around that by assigning different schedules to different jobs; some jobs do a full backup on the 3rd or 5th of the month. But this wreaks havoc with taking disks off site. - You have multiple pools that are identical except for the disk it connects to. A duplicate setup is always error prone. You can to some extent get around that by using bacula's ability to include files and even use the output of scripts (look at the @| operator). - If you manually run a backup, you have to remember to change the pool to the correct one. Worse: if you run an incremental backup, change the pool to Inc-1-Pool, and then bacula decides to upgrade to a full backup (which can happen for various legitimate reasons), it will still end up in your incremental pool. - Because I really had to fight bacula and to some extent force it to do what it wasn't designed to do, a number of the built-in features don't work very well. Overall, bacula is a great tool, and a lot of kudos to the development team. But backing up to hard disk files is something of a step child; it was grafted onto bacula and is clearly not an organic part of the design. That's really not so much a criticism of bacula as it is a statement that it may not be the right tool for the job. It will work exceedingly well if you have a NAS device or something of that nature permanently available for backup. But for taking disks offsite, well, it works well enough for my own office - where I can manually intervene easily - but I don't think I would roll it out to my customers for hard disk backup. I would not hesitate to use it for tape backups. Timo Neuvonen wrote: > I'm considering the use of reasonably-priced external hard drives to replace > my oldish tape drive. In the beginning this would apply my home system. > Drives like this: > http://www.wdc.com/en/products/products.asp?driveid=563 > > AFAIK Bacula has been very much designed with tapes (volumes) and tape pools > in mind, though it is possible to create volumes on hard disks too. > > I haven't tried to plan this very much yet, so there certainly are some > holes in my scenario. But let's suppose I had (for example) 3 pcs of > one-terabyte drives like the one in the link above, I would keep at least > one of them in a "safehouse", and one or two (at a time) were attached to > computer running Bacula SD. This 3-disk system is a minimized scenario, > there would soon be a need for 4-5 disks, I guess. > > The goal could be writing all the backups to one drive for, say, one month. > Then, this drive would be considered "used" (compare to "volume use > duration" in Bacula) and the next one were taken into daily use, though both > the disks were attached to the server at this time. Then, some day soon > thereafter I would take the "used" one to safehouse, and some day bring the > oldest one from the safehouse back to use, and attach it to the server > before it actually is needed. Very much like I move tapes between a > safehouse and an autoloader, making sure they are there when needed but not > forced to do it at certain preset day. > > Basically, this is recycling the disk drives, like Bacula recycles volumes. > Both full and incremental jobs were written to same disk, and I would > propably like the system configured in a way that after a new disk is taken > into use (after the previous one was considered "used") the first jobs were > run as full backups. > > How should this (or something even close to this) be set up? When the disks > were attached to the server, they would get different device names at > different times, and I wouldn't like to manually edit config files each > time. I'm sure someone has at least been thinking about this already, maybe > also implemented this. So, can Bacula currently handle this kind of setup in > a reasonable way? > > > Regards, > Timo > -- Kevin Keane Owner The NetTech Find the Uncommon: Expert Solutions for a Network You Never Have to Think About Office: 866-642-7116 http://www.4nettech.com This e-mail and attachments, if any, may contain confidential and/or proprietary information. Please be advised that the unauthorized use or disclosure of the information is strictly prohibited. The information herein is intended only for use by the intended recipient(s) named above. If you have received this transmission in error, please notify the sender immediately and permanently delete the e-mail and any copies, printouts or attachments thereof. ------------------------------------------------------------------------------ Check out the new SourceForge.net Marketplace. It is the best place to buy or sell services for just about anything Open Source. http://p.sf.net/sfu/Xq1LFB _______________________________________________ Bacula-users mailing list Bacula-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/bacula-users