Newsgroup: it.comp.os.linux.sys
Titolo: Bacula, backup e restore

Ciao a tutti,
Ho configurato Bacula per effettuare il backup del nostro server
aziendale. I dati dovrebbero essere riversati su nastri LTO-4
gestititi da un autochanger Dell PowerVault 124T.
Riesco a pilotare tranquillamente l'autochanger e a scrivere i dati
sui nastri, tuttavia ho delle forti difficoltà nella comprensione del
funzionamento di Bacula e per tale ragione vi chiedo di potermi
guidare per finalizzare la configurazione.
Director, fd ed sd risiedono sullo stesso server, Ubuntu Hardy LTS.
Questi sono i pacchetti installati:
bacula-common
bacula-console
bacula-director-common
bacula-director-sqlite3
bacula-fd
bacula-sd
bacula-sd-sqlite3
Riporto anche le configurazioni:
=== bacula-dir.conf ===
Director {                            # define myself
  Name = osteria02-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
  Password = "piren"         # Console password
  Messages = Daemon
}
JobDefs {
  Name = "DefaultJob"
  Type = Backup
  Level = Incremental
  Client = osteria02-fd
  FileSet = "Full Set"
  Schedule = "WeeklyCycle"
  Storage = Autochanger
  Messages = Standard
  Pool = Default
  Priority = 10
}
Job {
  Name = "Quarantadue"
  Client = osteria02-fd
  JobDefs = "DefaultJob"
  Write Bootstrap = "/var/lib/bacula/Quarantadue.bsr"
  Spool Data = yes
  Spool Attributes = yes
}
Job {
  Name = "Oblio"
  Client = osteria02-fd
  JobDefs = "DefaultJob"
  Write Bootstrap = "/var/lib/bacula/Oblio.bsr"
  Spool Data = yes
  Spool Attributes = yes
}
Job {
  Name = "BackupCatalog"
  JobDefs = "DefaultJob"
  Level = Full
  FileSet="Catalog"
  Schedule = "WeeklyCycleAfterBackup"
  RunBeforeJob = "/usr/bin/awk -f /etc/bacula/scripts/
make_catalog_backup_awk -v cat1=MyCatalog /etc/bacula/bacula-dir.conf"
  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=osteria02-fd
  FileSet="Full Set"
  Storage = File
  Pool = Default
  Messages = Standard
  Where = /var/spool/restore
}
FileSet {
  Name = "Full Set"
  Include {
    Options {
      signature = MD5
    }
    File = /home/Backups/ProgettiDaArchiviare
    File = /home/Shares/ProgettiIT
    File = /home/Shares/ProgettiMedia
    File = /home/Shares/CorporateImage
    File = /home/Shares/Documenti
    File = /home/Shares/Gestione
    File = /var/lib/vz/private
  }
}
FileSet {
  Name = "Oblio"
  Include {
    Options {
      signature = MD5
    }
    File = /home/Shares/Oblio
  }
  Exclude {
    File = /home/Shares/Oblio/Exclude
  }
}
Schedule {
  Name = "WeeklyCycle"
  Run = Full 1st sun at 21:05
  Run = Differential 2nd-5th sun at 21:05
  Run = Incremental mon-sat at 21:05
}
Schedule {
  Name = "WeeklyCycleAfterBackup"
  Run = Full sun-sat at 23:10
}
FileSet {
  Name = "Catalog"
  Include {
    Options {
      signature = MD5
    }
    File = /var/lib/bacula
  }
}
Client {
  Name = osteria02-fd
  Address = osteria02
  FDPort = 9102
  Catalog = MyCatalog
  Password = "<segretissima>"          # password for FileDaemon
  File Retention = 30 days            # 30 days
  Job Retention = 6 months            # six months
  AutoPrune = yes                     # Prune expired Jobs/Files
}
Storage {
  Name = File
  Address = osteria02                # N.B. Use a fully qualified name
here
  SDPort = 9103
  Password = "<segretissima>"
  Device = FileStorage
  Media Type = File
}
Storage {
  Name = Autochanger
  Address = osteria02
  SDPort = 9103
  Password = "<segretissima>"
  Device = Autochanger
  Media Type = LTO-4
  Autochanger = yes
}
Catalog {
  Name = MyCatalog
  dbname = bacula; password = "@db_pswd@"
}
Messages {
  Name = Standard
  mailcommand = "/usr/lib/bacula/bsmtp -h 
mx2.dsign.it
 -f \"\(Bacula\)
\<%r\>\" -s \"Bacula: %t %e of %c %l\" %r"
  operatorcommand = "/usr/lib/bacula/bsmtp -h 
mx2.dsign.it
 -f \"\
(Bacula\) \<%r\>\" -s \"Bacula: Intervention needed for %j\" %r"
  mail = 
dav...@dsign.it
 = all, !skipped
  operator = 
dav...@dsign.it
 = mount
  console = all, !skipped, !saved
  append = "/var/lib/bacula/log" = all, !skipped
}
Messages {
  Name = Daemon
  mailcommand = "/usr/lib/bacula/bsmtp -h 
mx2.dsign.it
 -f \"\(Bacula\)
\<%r\>\" -s \"Bacula daemon message\" %r"
  mail = davide@mioindirizzo = 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
  Cleaning Prefix = "CLN"
}
Pool {
  Name = Scratch
  Pool Type = Backup
}
Console {
  Name = osteria02-mon
  Password = "<segretissima>"
  CommandACL = status, .status
}
=== bacula-sd.conf ===
Storage {                             # definition of myself
  Name = osteria02-sd
  SDPort = 9103                  # Director's port
  WorkingDirectory = "/var/lib/bacula"
  Pid Directory = "/var/run/bacula"
  Maximum Concurrent Jobs = 20
}
Director {
  Name = osteria02-dir
  Password = "<segretissima>"
}
Director {
  Name = osteria02-mon
  Password = "<segretissima>"
  Monitor = yes
}
Autochanger {
  Name = Autochanger
  Device = PowerVault
  Changer Command = "/etc/bacula/scripts/mtx-changer %c %o %S %a %d"
  Changer Device = /dev/sg3
}
Device {
  Name = PowerVault
  Media Type = LTO-4
  Archive Device = /dev/nst0
  Drive Index = 0
  Device Type = Tape
  AutomaticMount = yes;
  AlwaysOpen = yes;
  RemovableMedia = yes;
  RandomAccess = no;
  AutoChanger = yes;
  AutoSelect = yes;
  Maximum Changer Wait = 300
  LabelMedia = no;
  Changer Command = "/etc/bacula/scripts/mtx-changer %c %o %S %a %d"
  Changer Device = /dev/sg3
  Spool Directory = /var/spool/bacula
  Maximum Spool Size = 240G
}
Messages {
  Name = Standard
  director = bacula-dir = all
}
=== bacula-fd.con ===
Director {
  Name = osteria02-dir
  Password = "<segretissima>"
}
Director {
  Name = osteria02-mon
  Password = "<segretissima>"
  Monitor = yes
}
FileDaemon {                          # this is me
  Name = osteria02-fd
  FDport = 9102                  # where we listen for the director
  WorkingDirectory = /var/lib/bacula
  Pid Directory = /var/run/bacula
  Maximum Concurrent Jobs = 20
}
Messages {
  Name = Standard
  director = osteria02-dir = all, !skipped, !restored
}
Bene, ho provato a lanciare a mano dei job con il comando run da
bconsole. Facendo questo ho notato che nella directory specificata per
lo spool un grosso file viene riempito, ed immagino che sarà riversato
su nasto in qualche modo dato che questa mattina ho notato che nel
lettore il bravo autochanger ha riversato un nastro.
Però non ho idea di come recuperare tali file. Ingenuamente, da
bconsole, ho provato a dare il comando:
*list jobs
+-------+---------------+---------------------+------+-------
+----------+----------+-----------+
| JobId | Name          | StartTime           | Type | Level |
JobFiles | JobBytes | JobStatus |
+-------+---------------+---------------------+------+-------
+----------+----------+-----------+
| 2     | Quarantadue   | 0                   | B    | I     |
0        | 0        | C         |
| 3     | Oblio         | 0                   | B    | I     |
0        | 0        | C         |
| 4     | BackupCatalog | 0                   | B    | F     |
0        | 0        | C         |
| 5     | Quarantadue   | 0                   | B    | I     |
0        | 0        | C         |
| 1     | Oblio         | 2009-04-09 17:38:45 | B    | F     |
0        | 0        | R         |
+-------+---------------+---------------------+------+-------
+----------+----------+-----------+
*list files jobid=1
No results to list.
+-------+-------+---------------------+------+-------+----------
+----------+-----------+
| JobId | Name  | StartTime           | Type | Level | JobFiles |
JobBytes | JobStatus |
+-------+-------+---------------------+------+-------+----------
+----------+-----------+
| 1     | Oblio | 2009-04-09 17:38:45 | B    | F     | 0        |
0        | R         |
+-------+-------+---------------------+------+-------+----------
+----------+-----------+
Da cui deduco che in realtà non ci sia nulla.
Cosa devo fare? Scusate, ma proprio non riesco a capire come funziona
il sistema.
Grazie,
--
Davide

odio...@gmail.com
 wrote:
[CUT]
Come mai usi lo spooling?
Hai provato a fare un restore di prova?

 Hai provato a fare un restore di prova?
Purtroppo no: come dicevo, sembrava che non ci fosse nulla nei backup.
Invece questa mattina, al mio ritorno dall'ufficio, ho visto varie
email di Bacula che mi avvisa di aver fatto tanti backup successfull.
Non so perché, ma tutti Full nonostante gli abbia dato indicazioni
differenti nelle configurazioni.
Dato che il nastro sta scrivendo proprio ora, dopo verificherò
l'esito.
A tuo parere le configurazioni sono ok?
Grazie,
--
Davide