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
Bacula-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bacula-users

Reply via email to