1 / 28

Bacula

Bacula. Groupe de travail SARI Animateur du groupe : Ghislain ESCORNE (LGIT) Participants Guy.Bourrel@imag.fr (TIMC-IMAG) Thomas.Dolmazon@grenoble.cnrs.fr (LCMI) Valerie.Quatela@simap.grenoble-inp.fr (SIMAP) Patrick.Sourice@imag.fr (UFRIMAG)

darryl
Download Presentation

Bacula

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Bacula Groupe de travail SARI Animateur du groupe : Ghislain ESCORNE (LGIT) Participants Guy.Bourrel@imag.fr (TIMC-IMAG) Thomas.Dolmazon@grenoble.cnrs.fr (LCMI) Valerie.Quatela@simap.grenoble-inp.fr (SIMAP) Patrick.Sourice@imag.fr (UFRIMAG) Ghislain.Escorne@obs.ujf-grenoble.fr (LGIT)

  2. Plan • Bacula • Fonctionnalités • Architecture • Fichiers de configurations • Commandes courantes • Bilan de notre groupe de travail • Tests effectués • Fonctionnalités intéressantes • Imperfections • Avantages • Sujets non abordés

  3. Bacula Bacula est un jeu de programmes, sous licence GPL. Il fonctionne en mode client Client/Serveur et permet de gérer : • les sauvegardes • les restaurations • et/ou de pourvoir vérifier l’intégrité de vos données (tripwire, bandes) de plusieurs ordinateurs sur un réseau hétérogène.

  4. Fonctionnalités • Prend en charge l’automatisation des sauvegardes totales, incrémentales et différentielles • Prend en charge les opérations de restauration manuelle ou de restauration à zéro (bare metal recovery) • Utilise un SGBD (MySQL, PostgreSQL, SQLite) pour gérer le catalogue des sauvegardes • Supporte un grand nombre de supports (fichiers, robots, dvd, …) • Gère la gestion avancée des pools et des (multi)volumes • Format d'écriture de données sur les volumes indépendant des machines. Les clients Linux, Solaris, et Windows peuvent tous être sauvegardés sur le même volume si désiré. • Gère le recyclage automatique, multi fichiers, multi disques, multi jobs simultanés

  5. Architecture • S’appuie sur une architecture modulaire et distribuée. Authentification par échange de mots de passe CRAM-MD5 entre chaque composant (daemon).

  6. Services • Il est constitué de 3 daemons : • bacula-dir–c bacula-dir.conf : Le service directeur supervise et dirige toutes les opérations, tous les jobs. • bacula-sd–c bacula-sd.conf : Le service qui gère la sauvegarde • bacula-fd–c bacula-fd.conf : Le service qui gère le serveur de fichier.

  7. Fichier de configurationbacula-dir.conf • Les accès : consoles, catalogue, serveurs de fichiers et serveurs de stockage • les jobs : • Quels fichiers ? le Fileset • Calcul de signatures MD5 ou SHA1 des fichiers sauvegardés • Quel niveau de sauvegarde ? full, Incrémental, différentiel • Sur quelle machine ? le client • Quand ? le scheduleur • Sur quel support ? fichier, dvd, bande • Où ? le pool Jobs particuliers : BackupCatalog, RestoreFiles • bacula-dir.conf • – Director • – Client • – Job • – Schedule • – Storage • – Catalogue • – Pool • – FileSet • – Messages

  8. Fichier de configurationbacula-fd.conf • Ce service est installé sur toutes les machines (= tous les clients) dont on a à sauvegarder des systèmes de fichiers • bacula-fd.conf • – Client • – Director • – Messages

  9. Fichier de configurationbacula-sd.conf • Définition des différents devices (=supports) • bacula-sd.conf • – Storage • – Director • – Messages • – Devices

  10. Fichier de configurationbconsole.conf ou bwx-console.conf Permet de se connecter au directeur • Console anonyme => tout privilèges • Console ”nommée” => détient absolument aucun privilège, exceptés ceux explicitement spécifiés dans la ressource Console du fichier de configuration du Director • Une autre => permet aux portables et autres machines utilisant DHCP de ”notifier” le Director de leur adresse IP courante. JobACL = <name-list> ClientACL = <name-list> StorageACL = <name-list> ScheduleACL = <name-list> PoolACL = <name-list> FileSetACL = <name-list> CatalogACL = <name-list> CommandACL = <name-list> • bconsole.conf • – Nom • – Director

  11. Command Description • ==================================================================================== • add add media to a pool • autodisplay autodisplay [on|off] -- console messages • automount automount [on|off] -- after label • cancel cancel [<jobid=nnn> | <job=name>] -- cancel a job • create create DB Pool from resource • delete delete [pool=<pool-name> | media volume=<volume-name>] • disable disable <job=name> -- disable a job • enable enable <job=name> -- enable a job • estimate performs FileSet estimate, listing gives full listing • exit exit = quit • gui gui [on|off] -- non-interactive gui mode • help print this command • list list [pools | jobs | jobtotals | media <pool=pool-name> | files <jobid=nn>]; from catalog • label label a tape • llist full or long list like list command • messages messages • mount mount <storage-name> • prune prune expired records from catalog • purge purge records from catalog • python python control commands • quit quit • query query catalog • restore restore files • relabel relabel a tape • release release <storage-name> • reload reload conf file • run run <job-name> • status status [storage | client]=<name> • setdebug sets debug level • setip sets new client address -- if authorized • show show (resource records) [jobs | pools | ... | all] • sqlquery use SQL to query catalog • time print current time • trace turn on/off trace to file • unmount unmount <storage-name> • umount umount <storage-name> for old-time Unix guys • update update Volume, Pool or slots • use use catalog xxx • var does variable expansion • version print Director version • wait wait until no jobs are running [<jobname=name> | <jobid=nnn> | <ujobid=complete_name>]

  12. Commandes courantes • Monitorer : * status dir lgitl3-dir Version: 1.38.11 (28 June 2006) x86_64-unknown-linux-gnu redhat Enterprise release Daemon started 04-Oct-06 13:47, 5 Jobs run since started. Scheduled Jobs: Level Type Pri Scheduled Name Volume ================================================================== Incremental Backup 9 04-Oct-06 21:05 Config Config Incremental Backup 16 04-Oct-06 21:05 Geodynamo *unknown* Full Backup 50 04-Oct-06 23:10 BackupCatalog Catalogue ================================================================== Running Jobs: JobId Level Name Status ================================================================== 69 InitCat Verify.2006-10-04_16.32.23 is running ================================================================== Terminated Jobs: JobId Level Files Bytes Status Finished Name ================================================================== 59 Incr 673 1,625,685,664 OK 04-Oct-06 00:03 Risques 60 Incr 94 51,860,663 OK 04-Oct-06 00:09 Geochimie

  13. Commandes indispensables • Labelliser une bande : label • Jobs : run : Lancer un job cancel : Arrêter un job • Jobs programmés : disablejob<jobname> : Desactive un job enablejob<jobname> : Active un job

  14. Commandes utiles * list media Pool: Default No results to list. Pool: Error No results to list. Pool: Catalogue +---------+------------+-----------+---------------+----------+--------------+---------+------+-----------+-----------+-------------- | mediaid | volumename | volstatus | volbytes | volfiles | volretention | recycle | slot | inchanger | mediatype | lastwritten | +--------------+-----------+---------------+----------+--------------+---------+------+-----------+-----------+---------------------+ | 1 | Catalogue | Append | 3,491,531,045 | 6 | 31,536,000 | 1 | 16 | 1 | LTO-2 | 2006-10-04 02:50:00 +---------+------------+-----------+---------------+----------+--------------+---------+------+-----------+-----------+-------------- Pool: FullCommun +---------+--------------+-----------+----------------+----------+--------------+---------+------+-----------+-----------+----------- | mediaid | volumename | volstatus | volbytes | volfiles | volretention | recycle | slot | inchanger | mediatype |lastwritten +---------+--------------+-----------+----------------+----------+--------------+---------+------+-----------+-----------+----------- | 2 | FullCommun-1 | Append | 94,380,331,899 | 95 | 31,536,000 | 0 | 1 | 0 | LTO-2 | 2006-09-26 22:27:15| +---------+--------------+-----------+----------------+----------+--------------+---------+------+-----------+-----------+----------- Pool: IncCommun +---------+-------------+-----------+-------------+----------+--------------+---------+------+-----------+-----------+--------------- | mediaid | volumename | volstatus | volbytes | volfiles | volretention | recycle | slot | inchanger | mediatype | lastwritten +---------+-------------+-----------+-------------+----------+--------------+---------+------+-----------+-----------+--------------- | 3 | IncCommun-1 | Append | 375,616,181 | 5 | 31,536,000 | 1 | 6 | 1 | LTO-2 | 2006-10-03 23:18:19 +---------+-------------+-----------+-------------+----------+--------------+---------+------+-------------------------------------- * list media pool=IncCommun

  15. Commandes tatillonnes • *list jobs • +-------+---------------+---------------------+------+-------+-----------+-------------------+-----------+ • | jobid | name | starttime | type | level | jobfiles | jobbytes | jobstatus | • +-------+---------------+---------------------+------+-------+-----------+-------------------+-----------+ • | 1 | Commun | 2006-09-26 21:05:03 | B | F | 439,101 | 94,221,150,129 | T | • | 2 | Fluides | 2006-09-26 22:27:21 | B | F | 2,284,290 | 793,749,336,306 | T | • | 3 | BackupCatalog | 2006-09-27 08:37:49 | B | F | 1 | 357,041,594 | T | • *list files jobid=1017 • +-----------------------------------------------------------+ • | filename | • +-----------------------------------------------------------+ • | /home/risques/d4/awalpers/gps_perm/data/PUYA/UPUYAA06.216 | • | /home/risques/d4/awalpers/gps_perm/data/PUYA/UPUYAA06.215 | • | /home/risques/d4/awalpers/gps_perm/data/PUYA/UPUYAA06.214 |

  16. Commande pertinente • Interrogation de la base (query.sql) *query Choose a query (1-16): 15 +---------+------------------------+------+-------------+------+------------+-----------+-----------+ | mediaid | volumename | gb | storage | slot | pool | mediatype | volstatus | +---------+------------------------+------+-------------+------+------------+-----------+-----------+ | 64 | 1-FullF3Db2-2007-10-15 | 766 | SuperLoader | 1 | Fullf3db2 | LTO-3 | Full | | 68 | 1-FullF0Db5-2007-10-17 | 0 | SuperLoader | 2 | Fullf0db5 | LTO-3 | Append | | 69 | 2-FullF0Db5-2007-10-17 | 0 | SuperLoader | 3 | Fullf0db5 | LTO-3 | Append | | 55 | 4-IncFODb3-2007-08-24 | 528 | SuperLoader | 4 | Incf0db3 | LTO-3 | Full | | 56 | 5-IncFODb3-2007-08-24 | 327 | SuperLoader | 5 | Incf0db3 | LTO-3 | Append | | 41 | IncFODb4-2007-07-30 | 166 | SuperLoader | 7 | Incf0db4 | LTO-3 | Append | | 70 | IncFODb5-2007-07-30 | 0 | SuperLoader | 8 | Incf0db5 | LTO-3 | Append | | 43 | IncF3Db1-2007-07-30 | 0 | SuperLoader | 9 | Incf3db1 | LTO-3 | Append | | 67 | IncF3Db2-2007-10-15 | 463 | SuperLoader | 10 | Incf3db2 | LTO-3 | Append | | 45 | IncF4Db3-2007-07-30 | 0 | SuperLoader | 11 | Incf4db3 | LTO-3 | Append | | 46 | IncOndes-2007-07-30 | 418 | SuperLoader | 12 | IncOndes | LTO-3 | Append | | 47 | IncRisques-2007-07-30 | 409 | SuperLoader | 13 | IncRisques | LTO-3 | Append | | 61 | IncFluides-2007-09-24 | 274 | SuperLoader | 14 | IncFluides | LTO-3 | Append | | 50 | Catalogue-2007-08-20 | 73 | SuperLoader | 16 | Catalogue | LTO-3 | Append |

  17. Commandes qui servent • Restaurer un /plusieurs fichiers : restore all puis choisissez le choix 5 (help, cd, mark, estimate, done) • Effacer les enregistrements dans le catalogue : purge files jobid=<jobid> | job = <job-name> | client = <client-name> purge jobs client=<client-name> (all jobs) purge volumes | volume=<vol-name> (all jobs) • Supprimer un volume/ pool dans le catalogue : Delete [volume= <nom_volume> pool=<pool-name jpb jobid=<id>

  18. Plan • Bacula • Fonctionnalités • Architecture • Fichiers de configurations • Commandes courantes • Bilan de notre groupe de travail • Tests effectués • Fonctionnalités intéressantes • Imperfections • Avantages • Sujets non abordés

  19. Bilan • Serveur de tests • Tests : • Différentes installations (yum, make) • Fonctionnement normal sur disque (taille ?) /robot • Fonctionnement recyclage, multi fichiers, multi disk, multi jobs simultanés (dans la documentation la section « Automatic Volume Recycling » et « Basic Volume Management » )

  20. Intéressant 21-May 23:24 lgitl4-dir: AfterJob: run command "/etc/bacula/delete_catalog_backup" 21-May 23:24 lgitl4-dir: Bacula 2.0.3 (06Mar07): 21-May-2008 23:24:21 JobId: 2944 Job: BackupCatalog.2008-05-21_23.10.00 Backup Level: Full Client: "lgitl4-fd" 2.0.3 (06Mar07) x86_64-unknown-linux-gnu,redhat,Enterprise release FileSet: "Catalog" 2007-07-10 23:10:00 Pool: "Catalogue" (From Job resource) Storage: "SuperLoader" (From Job resource) Scheduled time: 21-May-2008 23:10:00 Start time: 21-May-2008 23:18:42 End time: 21-May-2008 23:24:21 Elapsed time: 5 mins 39 secs Priority: 50 FD Files Written: 1 SD Files Written: 1 FD Bytes Written: 3,476,019,209 (3.476 GB) SD Bytes Written: 3,476,019,325 (3.476 GB) Rate: 10253.7 KB/s Software Compression: None VSS: no Encryption: no Volume name(s): Catalogue-2007-08-20 Volume Session Id: 19 Volume Session Time: 1211272510 Last Volume Bytes: 361,167,270,912 (361.1 GB) Non-fatal FD errors: 0 SD Errors: 0 FD termination status: OK SD termination status: OK Termination: Backup OK 21-May 23:24 lgitl4-dir: Begin pruning Jobs. 21-May 23:24 lgitl4-dir: No Jobs found to prune. 21-May 23:24 lgitl4-dir: Begin pruning Files. 21-May 23:24 lgitl4-dir: No Files found to prune. 21-May 23:24 lgitl4-dir: End auto prune. • Message (console, mail, journal) • État ( correct, intervention, erreur) • Statistique (quantité, débit)

  21. Intéressant

  22. Intéressant

  23. Scripts • labellisation des bandes • Interroger la base query.sql # more eraselabel service bacula stop device=/dev/sg9 for i in 1 2 3 12 do echo suppression de $i mtx -f $device unload mtx -f $device load $i mt -f /dev/st0 rewind mt -f /dev/st0 weof done service bacula start /etc/bacula/bconsole < /etc/bacula/label.bacula # more label.bacula label storage=SuperLoader pool=FullRisques volume=2-FullRisques-2007-02-16 slot=2 label storage=SuperLoader pool=FullRisques volume=3-FullRisques-2007-02-16 slot=3 label storage=SuperLoader pool=FullRisques volume=4-FullRisques-2007-02-16 slot=4 label storage=SuperLoader pool=FullOndes volume=1-FullOndes-2007-02-18 slot=7 label storage=SuperLoader pool=FullOndes volume=2-FullOndes-2007-02-18 slot=8 label storage=SuperLoader pool=FullOndes volume=3-FullOndes-2007-02-18 slot=9 label storage=SuperLoader pool=FullOndes volume=4-FullOndes-2007-02-18 slot=10 label storage=SuperLoader pool=Web-Config volume=1-FullWebUsrLocal-2007-02-18 slot=11 run job=Web-Config client=lgitl3-fd fileset=Web-Config level=Full storage=SuperLoader when=2007-02-20_11:00:00 yes #17 :Full_Web SELECT DISTINCT name,Level,StartTime,EndTime from job Where name='Web' AND Level='F' AND JobStatus='T' ORDER BY StartTime DESC LIMIT 1; #18 :10 Derniers increntaux valides SELECT DISTINCT name,Level,StartTime,EndTime from job Where Level='I' AND JobStatus='T' ORDER BY EndTime DESC LIMIT 10 ; # 19 :MOYbytes by Job SELECT count(*) AS Jobs,avg(JobBytes)/(1024*1024*1024) AS Moyenne,Name AS Job FROM Job Where Level='I' AND JobStatus='T' GROUP by Name ORDER BY Moyenne DESC ; #20 :INC_Cycle SELECT DISTINCT name,Level,StartTime,EndTime,JobBytes/(1024*1024*1024) As Gb from job Where name='Cycle' AND Level='I' AND JobStatus='T' ORDER BY StartTime DESC LIMIT 10;

  24. Imperfections • La console n’est un invite de commande • @tee : Affichage sur la console + fichier • Dans certains menus, il manque des choix • En tapant « . » : Sortir du menu • Max Wait Time = <time> : délai maximum durant lequel un job peut rester bloqué en attente d’une ressource depuis son lancement (pas nécessairement à l’heure de sa programmation) jusqu’à sa fin.

  25. Avantages • Gestion des pools et des volumes permet d’étendre la zone de sauvegarde, de connaître la quantité de données contenue dans les bandes, la taille que prend une sauvegarde full, et les incrémentaux • Mécanisme de rotations de fichiers, recyclage, multi jobs simultanés => politique de sauvegarde adaptée. • Tableau de bord : les jobs programmés, en cours, terminés avec succès ou pas. • Messages complets • Scriptable • Vérification (tripwire) • Pas besoin de tampon • Port déclarés • Doc en français, à jour, détaillée (600 pages)

  26. Sujets non abordés • Sauvegarde dvd • Sauvegarde des portables • Restauration à zéro (bare metal recovery) • Vérification des fichiers/bandes • Outils autonomes (bls,bextract,bscan,bcopy,btape) • Chiffrement TLS (ssl) entre chaque composant. • Python Console Command • Sauvegarde cohérente des fichiers ouverts sur les systèmes Win32 (WinXP, Win2003 mais pas Win2000), par l'utilisation de Volume Shadow Copy (VSS).

  27. Liens • http://www.bacula.org/fr/ • http://www.urec.cnrs.fr/article331.html (journée josy)

More Related