Hello list,
I have spent much time trying to set up DVD-writing with Bacula, and
almost made it work... But I come to you for (hopefully) the last step
which I can't get working.
When running a backup job supposed to write on DVD, bacula-sd wait for
me to mount a volume: "Please mount Volume "BaculaDVD0001" on Storage
Device "DVD-Writer" (/dev/hdd) for Job
Full_Set_on_DVD.2007-07-16_14.51.42", it says. How should I do that? The
"mount" command from the console does not stop bacula for asking this.
Mounting the DVD from command-line is impossible as the DVD is blank
(has no FS). Shouldn't the mount happen automatically, as I asked for
automatic labelling?
Here below, the config and testing procedure details.
Thanks a lot for any hint. I am stuck there since a very long time and
already tried everything I could find in the mailing lists archive
regarding this problem.
Olivier
==Config==
Bacula 2.0.3, installed using apt-get from Debian distribution "testing"
AKA "lenny". Also tried with Bacula 1.38.11 (from "stable"), same
behavior encountered (a bit worse, in fact, I can add details if
somebody is interrested).
Olivier:/etc/bacula# bacula-console
Connecting to Director (address hidden):9101
1000 OK: Olivier-dir Version: 2.0.3 (06 March 2007)
Olivier:/etc/bacula# growisofs --version
* growisofs by <[EMAIL PROTECTED]>, version 7.0.1,
front-ending to mkisofs: mkisofs 2.01.01a03-unofficial-iconv
(i686-pc-linux-gnu)
[most probably patched version, as it is the debian one]
Olivier:/etc/bacula# uname -a
Linux Olivier 2.6.15.6 #1 SMP Tue Mar 14 15:17:05 CET 2006 i686 GNU/Linux
no automount (as far as I know)
The three daemons run on the same computer, started from a root ("su")
shell.
Config files (see after for the tests I made):
cat bacula-dir.conf | grep -v ^# | grep -v Password
Director { # define myself
Name = Olivier-dir
DIRport = 9101 # where we listen for UA connections
QueryFile = "/etc/bacula/scripts/query.sql"
WorkingDirectory = "/var/lib/bacula"
PidDirectory = "/var/run/bacula"
Maximum Concurrent Jobs = 1
Messages = Daemon
DirAddress = (hidden)
}
JobDefs {
Name = "DefaultJob"
Type = Backup
Level = Incremental
Client = Olivier-fd
FileSet = "Full Set"
Schedule = "WeeklyCycle"
Storage = File
Messages = Standard
Pool = Default
Priority = 10
}
Job {
Name = "Client1"
JobDefs = "DefaultJob"
Write Bootstrap = "/var/lib/bacula/Client1.bsr"
}
Job {
Name = "Full Set on DVD"
Enabled = no # disables auto run by scheduler
Type = Backup
Level = Full
Client = Olivier-fd
FileSet = "Full Set"
Storage = "DVD-director-stor"
Messages = Standard
Pool = "DVDPool"
Priority = 10
Write Bootstrap = "/var/lib/bacula/bootstrap-MonJob.bsr"
}
Job {
Name = "BackupCatalog"
JobDefs = "DefaultJob"
Level = Full
FileSet="Catalog"
Schedule = "WeeklyCycleAfterBackup"
Write Part After Job = yes
# This creates an ASCII copy of the catalog
RunBeforeJob = "/etc/bacula/scripts/make_catalog_backup -u<user>
-p<password>" # This deletes the copy of the catalog
RunAfterJob = "/etc/bacula/scripts/delete_catalog_backup"
Write Bootstrap = "/var/lib/bacula/BackupCatalog.bsr"
Priority = 11 # run after main backup
}
Job {
Name = "RestoreFiles"
Type = Restore
Client=Olivier-fd
FileSet="Full Set"
Storage = File
Pool = Default
Messages = Standard
Where = /tmp/bacula-restores
}
FileSet {
Name = "Full Set"
Include {
Options {
Compression=GZIP
signature = MD5
}
File = /usr/local/share/cruisecontrol
}
Exclude {
File = /proc
File = /tmp
File = /.journal
File = /.fsck
}
}
Schedule {
Name = "WeeklyCycle"
Run = Full 1st sun at 23:05
Run = Differential 2nd-5th sun at 23:05
Run = Incremental mon-sat at 23:05
}
Schedule {
Name = "WeeklyCycleAfterBackup"
Run = Full sun-sat at 23:10
}
FileSet {
Name = "Catalog"
Include {
Options {
signature = MD5
}
File = /var/lib/bacula/bacula.sql
}
}
Client {
Name = Olivier-fd
Address = (hidden)
FDPort = 9102
Catalog = MyCatalog
File Retention = 30 days # 30 days
Job Retention = 6 months # six months
AutoPrune = yes # Prune expired Jobs/Files
}
Storage {
Name = File
Address = (hidden) # N.B. Use a fully qualified name here
SDPort = 9103
Device = FileStorage
Media Type = File
}
Storage {
Name = "DVD-director-stor"
Address = (hidden) # N.B. Use a fully qualified name here
SDPort = 9103
Device = "DVD-Writer"
MediaType = DVD
}
Catalog {
Name = MyCatalog
dbname = bacula; password = "@db_pswd@"
}
Messages {
Name = Standard
mailcommand = "/usr/lib/bacula/bsmtp -h localhost -f \"\(Bacula\) %r\"
-s \"Bacula: %t %e of %c %l\" %r"
operatorcommand = "/usr/lib/bacula/bsmtp -h localhost -f \"\(Bacula\)
%r\" -s \"Bacula: Intervention needed for %j\" %r"
mail = [EMAIL PROTECTED] = all, !skipped
operator = [EMAIL PROTECTED] = mount
console = all, !skipped, !saved
append = "/var/lib/bacula/log" = all, !skipped
}
Messages {
Name = Daemon
mailcommand = "/usr/lib/bacula/bsmtp -h localhost -f \"\(Bacula\) %r\"
-s \"Bacula daemon message\" %r"
mail = [EMAIL PROTECTED] = all, !skipped
console = all, !skipped, !saved
append = "/var/lib/bacula/log" = all, !skipped
}
Pool {
Name = Default
Pool Type = Backup
Recycle = yes # Bacula can automatically recycle
Volumes AutoPrune = yes # Prune expired volumes
Volume Retention = 365 days # one year
Accept Any Volume = yes # write on any volume in the pool
}
Pool {
Name = DVDPool
LabelFormat = "BaculaDVD"
Pool Type = Backup
Recycle = no # Bacula can automatically recycle Volumes
AutoPrune = yes # Prune expired volumes
Volume Retention = 365 days # one year
}
Console {
Name = Olivier-mon
CommandACL = status, .status
}
cat bacula-sd.conf | grep -v ^# | grep -v Password
Storage { # definition of myself
Name = Olivier-sd
SDPort = 9103 # Director's port
WorkingDirectory = "/var/lib/bacula"
Pid Directory = "/var/run/bacula"
Maximum Concurrent Jobs = 20
SDAddress = (hidden)
}
Director {
Name = Olivier-dir
}
Director {
Name = Olivier-mon
Monitor = yes
}
Device {
Name = FileStorage
Media Type = File
Archive Device = /tmp
LabelMedia = yes; # lets Bacula label unlabeled media
Random Access = Yes;
AutomaticMount = yes; #255652/888/32..3..2332 # when
device opened, read it
RemovableMedia = no;
AlwaysOpen = no;
}
Device {
Name = "DVD-Writer"
Media Type = DVD
Archive Device = /dev/hdd
LabelMedia = yes; # lets Bacula label unlabeled media
Random Access = Yes;
AutomaticMount = yes; # when device opened, read it
RemovableMedia = yes;
AlwaysOpen = no;
MaximumPartSize = 800M;
RequiresMount = yes;
MountPoint = /mnt/dvd;
MountCommand = "/bin/mount -t iso9660 -o ro %a %m";
UnmountCommand = "/bin/umount %m";
SpoolDirectory = /tmp/backup;
WritePartCommand = "/etc/bacula/scripts/dvd-handler %a write %e %v"
FreeSpaceCommand = "/etc/bacula/scripts/dvd-handler %a free"
}
Messages {
Name = Standard
director = Olivier-dir = all
}
cat bacula-fd.conf | grep -v ^# | grep -v Password
Director {
Name = Olivier-dir
}
Director {
Name = Olivier-mon
Monitor = yes
}
FileDaemon { # this is me
Name = Olivier-fd
FDport = 9102 # where we listen for the director
WorkingDirectory = /var/lib/bacula
Pid Directory = /var/run/bacula
Maximum Concurrent Jobs = 20
FDAddress = (hidden)
}
Messages {
Name = Standard
director = Olivier-dir = all, !skipped, !restored
}
== Test procedure ==
Using a DVD+RW disk. I blank the drive, then check that it can't be mounted.
dd if=/dev/zero bs=1024 count=512 | growisofs -Z /dev/hdd=/dev/fd/0
Olivier:/etc/bacula# mount /dev/hdd /mnt/dvd
mount: you must specify the filesystem type
In the bacula console, after having restarted the three daemons, I check
that no jobs are running and I use "update" to disable the current
volume's status, if any (to start everything from scratch). Then I run
the DVD-backup job:
*run
A job name must be specified.
The defined Job resources are:
1: Client1
2: Full Set on DVD
3: BackupCatalog
4: RestoreFiles
Select Job resource (1-4): 2
Run Backup job
JobName: Full Set on DVD
Level: Full
Client: Olivier-fd
FileSet: Full Set
Pool: DVDPool (From Job resource)
Storage: DVD-director-stor (From Job resource)
When: 2007-07-17 14:43:26
Priority: 10
OK to run? (yes/mod/no): yes
Job queued. JobId=39
*messages
17-jui 14:43 Olivier-dir: Start Backup JobId 39,
Job=Full_Set_on_DVD.2007-07-17_14.43.30
17-jui 14:43 Olivier-dir: Created new Volume "BaculaDVD0003" in catalog.
17-jui 14:43 Olivier-sd: Please mount Volume "BaculaDVD0003" on Storage
Device "DVD-Writer" (/dev/hdd) for Job Full_Set_on_DVD.2007-07-17_14.43.30
*mount
The defined Storage resources are:
1: File
2: DVD-director-stor
Select Storage resource (1-2): 2
3001 OK mount. Device="DVD-Writer" (/dev/hdd)
*messages
17-jui 14:45 Olivier-sd: Please mount Volume "BaculaDVD0003" on Storage
Device "DVD-Writer" (/dev/hdd) for Job Full_Set_on_DVD.2007-07-17_14.43.30
*status
Status available for:
1: Director
2: Storage
3: Client
4: All
Select daemon type for status (1-4): 2
The defined Storage resources are:
1: File
2: DVD-director-stor
Select Storage resource (1-2): 2
Connecting to Storage daemon DVD-director-stor at (hidden):9103
Olivier-sd Version: 2.0.3 (06 March 2007) i486-pc-linux-gnu debian 4.0
Daemon started 17-jui-07 14:42, 0 Jobs run since started.
Heap: bytes=156,816 max_bytes=222,620 bufs=118 max_bufs=123
Running Jobs:
Writing: Full Backup job Full_Set_on_DVD JobId=39 Volume="BaculaDVD0003"
pool="DVDPool" device=""DVD-Writer" (/dev/hdd)"
spooling=0 despooling=0 despool_wait=0
Files=0 Bytes=0 Bytes/sec=0
FDReadSeqNo=6 in_msg=6 out_msg=4 fd=5
====
Jobs waiting to reserve a drive:
====
Terminated Jobs:
JobId Level Files Bytes Status Finished Name
===================================================================
6 0 0 OK 13-jui-07 14:19 RestoreFiles
15 Incr 112 325.5 K OK 13-jui-07 19:17 Client1
25 Full 0 0 Error 16-jui-07 11:07 Full_Set_on_DVD
27 Full 0 0 Cancel 16-jui-07 11:23 Full_Set_on_DVD
28 Full 0 0 Cancel 16-jui-07 11:29 Full_Set_on_DVD
33 Full 0 0 Cancel 16-jui-07 16:13 Full_Set_on_DVD
34 Full 0 0 Cancel 16-jui-07 16:15 Full_Set_on_DVD
35 Full 0 0 Cancel 17-jui-07 14:23 Full_Set_on_DVD
36 Incr 0 0 Cancel 17-jui-07 14:23 Client1
38 Full 0 0 Cancel 17-jui-07 14:40 Full_Set_on_DVD
====
Device status:
Device "FileStorage" (/tmp) is not open.
Device "DVD-Writer" (/dev/hdd) is not open.
Device is BLOCKED waiting for media.
====
In Use Volume status:
BaculaDVD0003 on device "DVD-Writer" (/dev/hdd)
====
== What works ==
(NB: /dev/cdrw is the same as /dev/dvd)
Writing to DVD using growisofs works:
growisofs -Z /dev/cdrw -R -J /etc => OK (mount then ls shows the /etc
directory contents)
Creating a "file1" random file, then writing it to DVD using dvd-handler
script works:
ls -l /tmp/file1
-rw-r--r-- 1 root root 82360320 2007-07-16 14:08 /tmp/file1
unmount DVD, blank it, then
/etc/bacula/scripts/dvd-handler /dev/cdrw write 1 /tmp/file1 => OK
(mount then ls and md5sum to check "file1" contents OK)
Doing a simple "file" backup with bacula console works. The backup is
indeed created in /tmp.
Thanks again for any help.
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Bacula-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bacula-users