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 moudj . Évalué à 1. Dernière modification le 27 septembre 2012 à 14:21.
amanda ?
bacula, j'avais testé, trop compliqué, un vrai merdier.
burp, je connaissais pas.
[^] # Re: une idée ?
Posté par Marotte ⛧ . Évalué à 2. Dernière modification le 27 septembre 2012 à 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 NeoX . Évalué à 2.
peut-etre que l'un compresse et l'autre non le contenu de son backup
[^] # Re: fichier compressé ou pas ?
Posté par Marotte ⛧ . É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 NeoX . É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 Marotte ⛧ . Évalué à 2. Dernière modification le 27 septembre 2012 à 17:41.
Merci.
Je pensais qu'avec
Il ne garderait que les trois derniers jours.
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 Marotte ⛧ . Évalué à 2.
Enfin faut surtout que je révise la différence entre Diff, Incr, et Full :/
[^] # Re: fichier compressé ou pas ?
Posté par NeoX . É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 Marotte ⛧ . É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 Marotte ⛧ . Évalué à 3.
En fait Bacula a trois composants, qui peuvent (dans un cas réel, doivent) se situer sur des machines différentes :
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 à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.