I'm having trouble getting a backup to restore, and was wondering if
someone can tell me where I am going wrong, or if it is a bug. I am
testing bacula on 2 machines, lintest being a backup server and va1 a
client, all running linux and bacula 1.38.0. Because I wanted backups of
lintest and va1 to be treated separately, I set up 2 Storage devices and
2 Pools. The problem is that the restore seems to be reading from the
wrong Storage, and can't find the backup volumes. To get specific, I
here is the client backup job as defined in bacula-dir.conf:
Job {
Name = "VA1 Test"
JobDefs = "DefaultJob"
Write Bootstrap = "/var/bacula/Va1_Test.bsr"
FileSet = Va1Files
Storage = Va1Directory
Pool = Va1Pool
}
Storage {
Name = TmpDirectory
Address = lintest
SDPort = 9103
Password = <removed>
Device = TmpFileStorage
Media Type = File
}
Storage {
Name = Va1Directory
Address = lintest
SDPort = 9103
Password = <removed>
Device = Va1FileStorage
Media Type = File
}
Then bacula-sd.conf contains
Device {
Name = TmpFileStorage
Media Type = File
Archive Device = /tmp
LabelMedia = yes;
Random Access = Yes;
AutomaticMount = yes;
RemovableMedia = no;
AlwaysOpen = no;
}
Device {
Name = Va1FileStorage
Media Type = File
Archive Device = /tmp/va1
LabelMedia = yes;
Random Access = Yes;
AutomaticMount = yes;
RemovableMedia = no;
AlwaysOpen = no;
}
The va1 backups are put in /tmp/va1, and the lintest backups are put in
/tmp. That works just fine.
Then, back in bacula-dir.conf, I defined a restore job, the first being
intended for lintest backups and the second for va1 backups.
Job {
Name = "RestoreFiles"
Type = Restore
Client=lintest-fd
FileSet="Bacula Source"
Storage = TmpDirectory
Pool = Default
Messages = Standard
Where = /tmp/bacula-restores
}
Job {
Name = "RestoreFilesForVa1"
Type = Restore
Client=va1-fd
FileSet=Va1Files
Storage = Va1Directory
Pool = Va1Pool
Messages = Standard
Where = /tmp/bacula-restores
}
I backed up a few files from va1, and now I try to restore them. I enter
the "restore" command in bconsole, pick the most recent backup for
va1 and mark some files. The first oddity comes when I pick a restore job
The defined Restore Job resources are:
1: RestoreFiles
2: RestoreFilesForVa1
Select Restore Job (1-2): 2
Run Restore job
JobName: RestoreFilesForVa1
Bootstrap:
/var/bacula/lintest-dir.restore.*Console*.2005-11-14_09.27.29.bsr
Where: /tmp/bacula-restores
Replace: always
FileSet: Va1Files
Client: lintest-fd
Storage: TmpDirectory
When: 2005-11-14 09:29:12
Catalog: MyCatalog
Priority: 10
OK to run? (yes/mod/no):
Note that the Client and Storage this quotes are not what was configured.
In particular, the storage is wrong. So I do a mod, pick Va1Directory as
the storage and then get
Run Restore job
JobName: RestoreFilesForVa1
Bootstrap:
/var/bacula/lintest-dir.restore.*Console*.2005-11-14_09.27.29.bsr
Where: /tmp/bacula-restores
Replace: always
FileSet: Va1Files
Client: lintest-fd
Storage: Va1Directory
When: 2005-11-14 09:29:12
Catalog: MyCatalog
Priority: 10
OK to run? (yes/mod/no):
Presumably the client has to remain as lintest because that's where the
backups are. When I run the job, it is looking in the wrong Storage
14-Nov 09:42 lintest-sd: RestoreFilesForVa1.2005-11-14_09.41.58 Fatal
error: acquire.c:199 Open device "TmpFileStorage" (/tmp) Volume
"VA1Backup0003" failed: ERR=dev.c:466 Could not open:
/tmp/VA1Backup0003, ERR=No such file or directory
14-Nov 09:42 lintest-fd: RestoreFilesForVa1.2005-11-14_09.41.58 Fatal
error: job.c:1597 Bad response to Read Data command. Wanted 3000 OK data
, got 3000 error
Very odd, it was still using TmpDirectory for the stores.
I tried modifying the default Storage for jobs to be Va1Directory, but
that didn't work. Nor did modifying the storage for the "RestoreFiles
job to point to Va1Directory.
I did change the name of the TmpDirectory storage entry to be
xTmpDirectory, and the Device within that to be xTmpFileStorage. These
are names not referenced anywhere. But then when I run the restore I get
JobName: RestoreFilesForVa1
Bootstrap:
/var/bacula/lintest-dir.restore.*Console*.2005-11-14_09.53.14.bsr
Where: /tmp/bacula-restores
Replace: always
FileSet: Va1Files
Client: lintest-fd
Storage: xTmpDirectory
When: 2005-11-14 09:53:34
Catalog: MyCatalog
Priority: 10
It looks like Bacula is picking up and using the first Storage.
I mod it to have Storage Va1Directory, then when I run it, I don't get
an error. Instead I get
JobId Level Name Status
======================================================================
12 RestoreFilesForVa1.2005-11-14_09.54.01 is waiting on
Storage Va1Directory
====
And the job seems to hang at that point. It still seemed to be looking at
xTmpFile Storage, based on the error message that resulted when I
cancelled the job
14-Nov 09:58 lintest-dir: RestoreFilesForVa1.2005-11-14_09.54.01 Fatal
error:
Storage daemon didn't accept Device "xTmpFileStorage" because:
Finally, I tried switching the order of the storage definitions in
bacula-dir.conf, so Va1Directory was first. That restore job ran fine.
So, it appears that bacula insists on using the first storage definition
it finds for all restore jobs. It seems like a bug to me, but maybe I am
just using it incorrectly?
-------------------------------------------------------
This SF.Net email is sponsored by the JBoss Inc. Get Certified Today
Register for a JBoss Training Course. Free Certification Exam
for All Training Attendees Through End of 2005. For more info visit:
http://ads.osdn.com/?ad_idv28&alloc_id845&op=click
_______________________________________________
Bacula-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bacula-users