Forum Linux.général Bacula vs BURP

Posté par .
1
27
sept.
2012

Sur un serveur de test sous Debian Squeeze j'ai installé Bacula et BURP afin de comparer ces deux solutions.

Bacula sauvegarde /root, /etc, /home et /var/www. BURP sauvegarde la même chose plus /opt. La sauvegarde se fait sur une partition dédiée sur ce même serveur. Voilà le problème, qui a des chances de se situer entre la chaise et le clavier, mais peut-être pas.

# du -sh /backup/*
120M    /backup/burp
1,3G    /backup/Main

Alors voilà à quoi ressemblent ces deux bousins. Je vais essayer de pas en mettre des tartines.

BURP :

# burp -a l
Backup: 0000008 2012-09-07 07:16:01
Backup: 0000036 2012-09-13 15:16:02
Backup: 0000064 2012-09-20 07:16:03
Backup: 0000071 2012-09-20 14:16:01
Backup: 0000078 2012-09-21 14:16:02
Backup: 0000085 2012-09-25 07:16:02
Backup: 0000092 2012-09-26 09:16:01
Backup: 0000093 2012-09-26 10:16:01
Backup: 0000094 2012-09-26 11:16:01
Backup: 0000095 2012-09-26 12:16:01
Backup: 0000096 2012-09-26 13:16:01
Backup: 0000097 2012-09-26 14:16:01
Backup: 0000098 2012-09-27 11:16:01

# grep -B1 keep /etc/burp/burp-server.conf

# You can have as many 'keep' lines as you like.
# Setting 7, 4, 6 will keep 7 daily backups, 4 weekly, and 6 four-weekly
# backups.
keep = 7
keep = 4
keep = 12

Bacula :

# bconsole
Connecting to Director localhost:9101
1000 OK: box42-dir Version: 5.0.2 (28 April 2010)
Enter a period to cancel a command.
*list jobs
Automatically selected Catalog: MyCatalog
Using Catalog "MyCatalog"
+-------+---------------+---------------------+------+-------+----------+-------------+-----------+
| jobid | name          | starttime           | type | level | jobfiles | jobbytes    | jobstatus |
+-------+---------------+---------------------+------+-------+----------+-------------+-----------+
|    86 | BackupHomes   | 2012-08-30 08:48:19 | B    | F     |       21 |     197,328 | T         |
|    87 | BackupClient1 | 2012-08-30 08:48:32 | B    | F     |    5,918 | 106,593,403 | T         |
|    89 | BackupHomes   | 2012-08-30 14:05:03 | B    | I     |        9 |      13,772 | T         |
|    90 | BackupClient1 | 2012-08-30 14:05:07 | B    | I     |    4,143 |  79,641,174 | T         |
|    92 | BackupClient1 | 2012-09-03 14:05:06 | B    | I     |    4,029 |  79,482,374 | T         |
|    94 | BackupClient1 | 2012-09-04 08:02:52 | B    | I     |    5,015 |  85,326,452 | T         |
|    96 | BackupHomes   | 2012-09-07 11:05:03 | B    | I     |        2 |      10,135 | T         |
|    97 | BackupClient1 | 2012-09-07 11:05:09 | B    | I     |    5,021 |  85,333,364 | T         |
|    99 | BackupHomes   | 2012-09-08 10:05:03 | B    | D     |        9 |      13,722 | T         |
|   100 | BackupClient1 | 2012-09-08 10:05:07 | B    | D     |    5,139 |  85,502,848 | T         |
|   102 | BackupClient1 | 2012-09-08 11:05:05 | B    | I     |    5,001 |  85,304,501 | T         |
|   104 | BackupClient1 | 2012-09-14 16:56:22 | B    | I     |    5,012 |  85,316,713 | T         |
|   105 | BackupHomes   | 2012-09-14 16:57:10 | B    | I     |        3 |      10,097 | T         |
|   109 | BackupClient1 | 2012-09-18 11:05:13 | B    | I     |    5,017 |  85,345,503 | T         |
|   112 | BackupClient1 | 2012-09-20 11:05:06 | B    | I     |    5,015 |  85,318,548 | T         |
|   115 | BackupClient1 | 2012-09-21 11:05:11 | B    | I     |    5,015 |  85,318,456 | T         |
|   117 | BackupHomes   | 2012-09-24 11:05:02 | B    | I     |        1 |      10,080 | T         |
|   118 | BackupClient1 | 2012-09-24 11:05:06 | B    | I     |    5,018 |  85,317,707 | T         |
|   119 | BackupCatalog | 2012-09-24 12:10:05 | B    | F     |        1 |     763,743 | T         |
|   120 | BackupHomes   | 2012-09-25 11:05:08 | B    | I     |        0 |           0 | T         |
|   121 | BackupClient1 | 2012-09-25 11:05:12 | B    | I     |    5,015 |  85,341,479 | T         |
|   122 | BackupCatalog | 2012-09-25 12:10:06 | B    | F     |        1 |   1,291,596 | T         |
|   123 | BackupHomes   | 2012-09-26 11:05:08 | B    | I     |        0 |           0 | T         |
|   124 | BackupClient1 | 2012-09-26 11:05:11 | B    | I     |    5,015 |  85,318,060 | T         |
|   125 | BackupCatalog | 2012-09-26 12:10:05 | B    | F     |        1 |   1,822,439 | T         |
|   126 | BackupHomes   | 2012-09-27 11:05:07 | B    | I     |        0 |           0 | T         |
|   127 | BackupClient1 | 2012-09-27 11:05:10 | B    | I     |    5,012 |  85,317,691 | T         |
+-------+---------------+---------------------+------+-------+----------+-------------+-----------+

# grep -Ev "^#|^$" /etc/bacula/bacula-dir.conf
Director {                            # define myself
  Name = box42-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 = "Cv70F6pf1t6pBopT4vQOnigDrR0v3L"         # Console password
  Messages = Daemon
  DirAddress = 127.0.0.1
}
JobDefs {
  Name = "DefaultJob"
  Type = Backup
  Level = Incremental
  Client = box42-fd
  FileSet = "Full Set"
  Schedule = "WeeklyCycle"
  Storage = File
  Messages = Standard
  Pool = File
  Priority = 10
  Write Bootstrap = "/var/lib/bacula/%c.bsr"
}
JobDefs {
  Name = "SaveHomes"
  Type = Backup
  Level = Incremental
  Client = box42-fd
  FileSet = "Homes"
  Schedule = "WeeklyCycle"
  Storage = File
  Messages = Standard
  Pool = File
  Priority = 1
  Write Bootstrap = "/var/lib/bacula/%c.bsr"
}
Job {
  Name = "BackupClient1"
  JobDefs = "DefaultJob"
}
Job {
  Name = "BackupHomes"
  Client = box42-fd
  JobDefs = "SaveHomes"
}
Job {
  Name = "BackupCatalog"
  JobDefs = "DefaultJob"
  Level = Full
  FileSet="Catalog"
  Schedule = "WeeklyCycleAfterBackup"
  # This creates an ASCII copy of the catalog
  # Arguments to make_catalog_backup.pl are:
  #  make_catalog_backup.pl <catalog-name>
  RunBeforeJob = "/etc/bacula/scripts/make_catalog_backup.pl MyCatalog"
  # This deletes the copy of the catalog
  RunAfterJob  = "/etc/bacula/scripts/delete_catalog_backup"
  Write Bootstrap = "/var/lib/bacula/%n.bsr"
  Priority = 11                   # run after main backup
}
Job {
  Name = "RestoreFiles"
  Type = Restore
  Client=box42-fd
  FileSet="Full Set"
  Storage = File
  Pool = Default
  Messages = Standard
  Where = /nonexistant/path/to/file/archive/dir/bacula-restores
}
FileSet {
  Name = "Full Set"
  Include {
    Options {
      signature = MD5
    }
    File = /etc
    File = /var/www
    File = /root
  }
}
FileSet {
  Name = "Homes"
  Include {
    Options {
      signature = MD5
    }
    File = /home
          }
        }
Schedule {
  Name = "WeeklyCycle"
  Run = Full 1st sat at 10:05
  Run = Differential 2nd-5th sat at 10:05
  Run = Incremental mon-sat at 11:05
}
Schedule {
  Name = "WeeklyCycleAfterBackup"
  Run = Full mon-sat at 12:10
}
FileSet {
  Name = "Catalog"
  Include {
    Options {
      signature = MD5
    }
    File = "/var/lib/bacula/bacula.sql"
  }
}
Client {
  Name = box42-fd
  Address = localhost
  FDPort = 9102
  Catalog = MyCatalog
  Password = "Pkm-KDRbNa7JuKtVNHIisuDNkib4Edw_A"          # password for FileDaemon
  File Retention = 3 days
  Job Retention = 3 days
  AutoPrune = yes                     # Prune expired Jobs/Files
}
Storage {
  Name = File
  Address = 127.0.0.1                # N.B. Use a fully qualified name here
  SDPort = 9103
  Password = "1ZzUjw_l6-a8mISHHnNj8Eyevgbco1Lnm"
  Device = FileStorage
  Media Type = File
}
Catalog {
  Name = MyCatalog
  dbname = bacula; DB Address = ""; dbuser = "bacula"; dbpassword = "x3TlEogNLU8T"
}
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 = root@localhost = all, !skipped
  operator = root@localhost = mount
  console = all, !skipped, !saved
  append = "/var/lib/bacula/log" = all, !skipped
  catalog = all
}
Messages {
  Name = Daemon
  mailcommand = "/usr/lib/bacula/bsmtp -h localhost -f \"\(Bacula\) \<%r\>\" -s \"Bacula daemon message\" %r"
  mail = root@localhost = 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 = 31 days         # one month
}
Pool {
  Name = File
  Pool Type = Backup
  Recycle = yes                       # Bacula can automatically recycle Volumes
  AutoPrune = yes                     # Prune expired volumes
  Volume Retention = 365 days         # one year
  Maximum Volume Bytes = 3,45G        # Limit Volume size to something reasonable
  Maximum Volumes = 10                # Limit number of Volumes in Pool
}
Pool {
  Name = Scratch
  Pool Type = Backup
}

Bacula a été installé depuis les packages Debian et utilise postgresql, BURP à partir des sources (grke-burp-1.1.70-374-g430d5a7.tar.gz)

Z'avez une idée ?

  • # une idée ?

    Posté par . Évalué à 1. Dernière modification le 27/09/12 à 14:21.

    amanda ?

    bacula, j'avais testé, trop compliqué, un vrai merdier.
    burp, je connaissais pas.

    • [^] # Re: une idée ?

      Posté par . Évalué à 2. Dernière modification le 27/09/12 à 14:44.

      Je demande pas un autre outil de sauvegarde ;)

      Mais merci ça à l'air sympa. Amanda est moins usine à gaz que Bacula ? Tu l'utilises ou tu l'as testé ?

      Je vais continuer à suivre le développement de BURP, j'aime bien l'approche. De toute manière j'ai pas de délai à respecter c'est de la pure veille technologique. Et aussi pour avoir un moyen de revenir en arrière si je fais une mauvaise manipulation sur les autres trucs en test sur ce serveur. Je ne sauvegarde pas les bases de données, c'est volontaire.

  • # fichier compressé ou pas ?

    Posté par . Évalué à 2.

    peut-etre que l'un compresse et l'autre non le contenu de son backup

    • [^] # Re: fichier compressé ou pas ?

      Posté par . Évalué à 2.

      Les deux doivent compresser, en volumétrie j'ai environ 210 Mo. Les fichiers qui changent beaucoup c'est surtout du texte (dans /etc et /var/www) c'est pour ça que je suis super étonné que Bacula utilise autant d'espace.

      Avec ce thread je pensais qu'un expert sur Bacula allait me fournir une réponse simple et limpide :)

      J'ai évidemment pas mis toute la conf de Bacula, si quelqu'un veut une autre info, je suis là cet après-midi, lundi sinon.

      • [^] # Re: fichier compressé ou pas ?

        Posté par . Évalué à 3.

        deja dans ton catalog bacula tu as 14 fichiers de 85Mo soit 1,2Go
        il ne reste plus qu'a comprend les differents levels (F/D/I)

        de ce que je peux voir avec burp tu gardes :
        7 backup journaliers
        4 backups de semaine
        12 backups de mois

        alors que dans bacula tu as 2 pools
        Default ou tu gardes les choses pendant 31 jours
        File ou tu gardes les choses pendant 365 jours

        quand on regarde la tache JobDefs qui porte le nom de "DefaultJobs"
        tu lui dis de tout mettre dans le pool nommé "File"

        • [^] # Re: fichier compressé ou pas ?

          Posté par . Évalué à 2. Dernière modification le 27/09/12 à 17:41.

          Merci.

          Je pensais qu'avec

          Client {
            Name = box42-fd
            Address = localhost
            FDPort = 9102
            Catalog = MyCatalog
            Password = "Pkm-KDRbNa7JuKtVNHIisuDNkib4Edw_A"          # password for FileDaemon
            File Retention = 3 days
            Job Retention = 3 days
            AutoPrune = yes                     # Prune expired Jobs/Files
          }
          
          

          Il ne garderait que les trois derniers jours.

          il ne reste plus qu'a comprend les differents levels (F/D/I)

          Oui, tu as raison, j'ai du mal à comprendre. C'est quand même un peu plus clair grâce à toi. Merci.

          Je vais changer la rétention du Pool File ! Et faire du différentiel…

          • [^] # Re: fichier compressé ou pas ?

            Posté par . Évalué à 2.

            Enfin faut surtout que je révise la différence entre Diff, Incr, et Full :/

          • [^] # Re: fichier compressé ou pas ?

            Posté par . Évalué à 2.

            de ce que je comprend ton client est defini par son nom "box42-fd"
            il a un Job associé "BackupHomes"
            qui se base sur un JobDefs "SaveHomes"

            ce jobDefs est reglé pour utiliser le pool "File"

            apres faut voir si tu as le droit de forcer les File Retention et Job Retention dans la definition du client

            ce n'est pas parce qu'il ne rale pas qu'il l'accepte.

            • [^] # Re: fichier compressé ou pas ?

              Posté par . Évalué à 2.

              Ce Bacula est une vrai usine à gaz. Mais bon, c'est pas étonnant pour ce genre de soft. J'ai l'impression qu'il faut une formation d'une semaine pour l'utiliser correctement. À sa décharge, je dirais que TSM, la solution d'IBM, doit également se poser là en terme de complexité.

              Pour en revenir à BURP, j'ai tenté la mise à jour de 1.1.70 vers 1.3.10, le problème : pas moyen de récupérer les sauvegardes existantes. D'après le fichier UPGRADING passer de 1.1.X à 1.3.10 impose de mettre à jour les clients en même temps que le serveur. Mais ça ne me dit pas si j'aurais du pouvoir oui ou non récupérer mes sauvegardes existantes. Après plusieurs essais, en regardant si la syntaxe des fichiers de configuration avait changé, j'ai pas réussi. J'ai donc fait la mise à jour, fait un rm -rf /backup/burp/* et suis reparti de zéro. J'apprécie le coté simple yet powerful de BURP comparé à Bacula.

            • [^] # Re: fichier compressé ou pas ?

              Posté par . Évalué à 3.

              En fait Bacula a trois composants, qui peuvent (dans un cas réel, doivent) se situer sur des machines différentes :

              • Le Director daemon qui gère le truc
              • Le Stockage daemon, installé sur un SAN ou un lecteur/robot de bandes
              • Le File daemon qui est là pour fournir des fichiers, donc installé sur chaque client (machine à sauvegarder)

              L'approche de BURP, qui consiste en un seul binaire, se basant sur burp-serveur.conf (pour le serveur/stockage) et/ou burp.conf (pour le client) me semble d'une simplicité salvatrice.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.