Atelier sauvegarde de données



Documents pareils
Bacula. It comes by night and sucks the vital essence from your computers. Guillaume Arcas

Bacula R - The Network Backup Solution

Ce qu'il faut savoir: L'outil de sauvegarde Bacula, peut exploiter 3 moyens différents:

Mise en oeuvre TSM 6.1

VERITAS NetBackup 6.x en 5 jours : Administration Avancée

VERITAS NetBackup 5.0 en 5 jours : Administration Avancée

Nouvelles stratégies et technologies de sauvegarde

Archives, backup, DRP. Archivage, sauvegarde, PRA. (plan de reprise d'activité) 04 Octobre

Sujet Solution de sauvegarde de serveurs et postes de travail avec BackupPC et Bacula. par ALIXEN

sshgate Patrick Guiran Chef de projet support

Les sauvegardes EOLE 2.3. Documentation sous licence Creative Commons by-nc-sa - EOLE (http ://eole.orion.education.fr) révisé : Septembre 2014

contact@nqicorp.com - Web :

Tivoli Storage Manager version TSM Server

Veeam Backup and Replication

Symantec Backup Exec Remote Media Agent for Linux Servers

Dexia Guide d installation de NetWorker Server 25 juin Legato Systems, Inc.

MYSQLDUMP & ZRM COMMUNITY

Backup , l intégration du backup sur disque

Présentation du SC101

Configuration de plusieurs serveurs en Load Balancing

Chapitre IX : Virtualisation

Les sauvegardes EOLE 2.4

contact@nqicorp.com - Web :

Sauvegardes par Internet avec Rsync

NetBak Replicator 4.0 Manuel de l utilisateur Version 1.0

FreeNAS Shere. Par THOREZ Nicolas

WDpStats Procédure d installation

Documentation utilisateur, manuel utilisateur MagicSafe Linux. Vous pouvez télécharger la dernière version de ce document à l adresse suivante :

VMWare. Vmware: machine virtuelle Un véritable pc avec : VmWare

Imprimantes et partage réseau sous Samba avec authentification Active Directory

Un exemple de cloud au LUPM : Stratuslab

FAQ L&TT Version avec interface graphique pour Windows

Clients et agents Symantec NetBackup 7

Acquisition des données

SQL Server 2008 solutions de sauvegarde et de continuité

Guide Installation Serveur Extensive Testing

Veeam Backup & Replication v6

Acronis Backup & Recovery for Mac. Acronis Backup & Recovery et Acronis ExtremeZ-IP ARCHITECTURE DE RÉFÉRENCE

TP n 2 : Installation et administration du serveur ProFTP. Partie 1 : Fonctionnement du protocole FTP (pas plus de 15min)

Tutoriel compte-rendu Mission 1

Symantec Backup Exec 12.5 for Windows Servers. Guide d'installation rapide

Principe. Technologies utilisées. 1. Linux et LVM. Les snapshots (instantannés) sous Linux et FreeBSD. Présentation de LVM. Organisation de LVM

Installation d'un TSE (Terminal Serveur Edition)

Installation de Vmware serveur Windows

Pharmed. gestion de pharmacie hospitalière. Installation / déploiement

Configuration du serveur ESX

PLAN. Industrialisateur Open Source LANS DE SECOURS INFORMATIQUES PRINCIPES GENERAUX ETAT DE L ART SELON BV ASSOCIATES

Dynamic Computing Services solution de backup. White Paper Stefan Ruckstuhl

Serveur Acronis Backup & Recovery 10 pour Linux. Update 5. Guide d'installation

Sauvegarde avec R1Soft Guide de mise en route

Les fichiers de configuration d'openerp

Table des matières 1. Avant-propos. Chapitre 1 Virtualisation du poste de travail

Déploiement d'une application Visual Studio Lightswitch dans Windows Azure.

LINUX REMPLAÇANT WINDOWS NT

TP WINDOWS 2008 SERVER - OUTILS DE SAUVEGARDE ET DE RESTAURATION

Couche application. La couche application est la plus élevée du modèle de référence.

Manuel du logiciel PrestaTest.

Système de Sauvegarde et d Archivage Backup Smart Way TM

L annuaire et le Service DNS

Dell AppAssure. Manuel de référence du module PowerShell 5.4.3

Programme détaillé. Administrateur de Base de Données Oracle - SQLServer - MySQL. Objectifs de la formation. Les métiers

Projet Administration Réseaux

Configuration de GFI MailArchiver

NON URGENTE TEMPORAIRE DEFINITIVE OBJET : RÉCUPÉRATION DES DONNÉES CLIENT SUR DISQUE DUR DÉFECTUEUX OU INVALIDÉ

HAUTE DISPONIBILITÉ DE MACHINE VIRTUELLE AVEC HYPER-V 2012 R2 PARTIE CONFIGURATION OPENVPN SUR PFSENSE

Sauvegarde des données au LAAS

Guide Installation Serveur Extensive Testing

Gérard Castagnoli OSU PYTHEAS 25/06/2013 VVT2013 1

Windows Server Chapitre 1: Découvrir Windows Server 2008

PLAN DE REPRISE D ACTIVITE INFORMATIQUE

SAN AoE (ATA over Ethernet)

BTS SIO SISR3 TP 1-I Le service Web [1] Le service Web [1]

Une solution de stockage VDI unifiée, flexible et disponible pour vos utilisateurs

GOUTEYRON ALEXIS. SIO2 N candidat: UEpreuve E4. USituation professionnelle 2. serveurs de fichiers. Uen haute disponibilité

Année Universitaire ième année IMAC Mardi 6 janvier Cloud computing Travaux Pratiques

Manuel Utilisateur Nuabee Backup pour Windows 7/8/8.1

Comment Accéder à des Bases de Données MySQL avec Windows lorqu'elles sont sur un Serveur Linux

Journée Josy/PLUME. Outils logiciels libres utiles à tout ASR SAMBA. Maurice Libes. Centre d'océanologie de Marseille UMS 2196 CNRS

Procédure d installation de la Sauvegarde de Windows Server

Instructions pour mettre à jour un HFFv2 v1.x.yy v2.0.00

IceWarp serveur sur Linux : Guide d'installation

Le Ro le Hyper V Troisie me Partie Haute disponibilite des machines virtuelles

VMware vsphere 5 Préparation à la certification VMware Certified Professional 5 Data Center Virtualization (VCP5-DCV) - Examen VCP510

et Groupe Eyrolles, 2006, ISBN :

UltraBackup NetStation 4. Guide de démarrage rapide

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server 3, 3.5

Prérequis techniques

VMware ESX : Installation. Hervé Chaudret RSI - Délégation Centre Poitou-Charentes

Service Déposant: Procédure d installation. Page 1. Service déposant. Procédure d installation Version 2.3

Description du logiciel Acronis Backup & Recovery 11.5

Introduction. René J. Chevance

Fourniture d une solution complète destinée au stockage sécurisé de données scientifiques

Architecture de la plateforme SBC

CA ARCserve Backup r12

Atelier : Virtualisation avec Xen


Sauvegardes à l'observatoire Astronomique de Strasbourg

I. Présentation du serveur Samba

Transcription:

Atelier sauvegarde de données Formation COCSSI 25 mars 2014 Système de sauvegarde Bacula Pierre Vincens

Bacula Logiciel de sauvegarde en mode client serveur logiciel opensource http://www.bacula.org support par la société Bacula Systems disponibilité serveur: Linux, Freebsd et Solaris client: Linux, FreeBSD, Solaris, Windows, MacOS documentation manuel sur le site évolutions de versions incomplètement reportées dans le manuel nombreux tutoriels

Contexte de déploiement ex 1: équipe isolée Contexte Quelques postes de travail Linux dont un fait office de serveur NFS Volumétrie à sauvegarder environ 300Gio Connexion en ADSL (bande passante limitée) Solution de sauvegarde déployée le poste de travail principal fait office de serveur de sauvegarde 1 serveur NAS comme support de backup 4 disques en RAID 5 monté sur le serveur en iscsi volumétrie disponible pour sauvegarde : 4 Tio

Contexte de déploiement: ex 2: serveur d'applications Contexte Serveur sous Linux hébergeur de machines virtuelles: mail, web, cloud,... utilisation de LVM pour segmentation de l'espace Solution de sauvegarde déployée Sauvegarde assurée au niveau de l'hyperviseur création d'un snapshot pour chaque disque à sauvegarder Un volume LVM est utilisé comme espace de sauvegarde primaire écriture sur montage fuse d'un espace disponible sur serveur ftp non supporté Le volume LVM de sauvegarde est dupliqué par synchronisation sur un serveur ftp distant (client lftp). lftp ftp://user:password@host e mirror e R <source>/ <dest>/; quit

Contexte de déploiement: ex 3: unité de recherche Contexte ~ 80 serveurs physiques Linux sauvegardés Machines virtuelles, usage de LVM (snapshots), filesystem (ext4, xfs) baies de stockage SAN FC (snapshot interne), serveurs NAS volumétrie à sauvegarder: ~ 400 Tio Solution de sauvegarde déployée Sauvegarde assurée par un serveur (1 CPU, 12Go mémoire) accès réseau SAN (2 ports) accès internet (aggrégation de lien: 4 x 1 Gb/s) Support de sauvegarde sur bandes 1 robot (80 slots) comportant deux lecteurs LTO5 (connexion San FC) 1 robot (80 slots) comportant deux lecteurs LTO6 (connexion San FC)

Architecture de Bacula Director (chef d'orchestre) File daemon Storage daemon

Installation du serveur Prérequis : un serveur de base de données fonctionnel: PostgresSQL, MySQL ou SQLite un (des) supports pour les sauvegardes Installation Compilation à partir des sources: version stable, dépôt git Binaires disponibles pour Debian, Ubuntu, FreeBSD,... sur Ubuntu, les packages à installer sont (cas de PostgresSQL) : Director: bacula director pgsql Storage daemon: bacula sd pgsql File daemon: bacula fd Management: bacula console, bacula console qt, bacula traymonitor Documentation: bacula doc

Configuration du serveur Ouvrir les accès nécessaires Bacula: 3 ports TCP: 9101 (director), 9102 (FD), 9103 (SD) règles de firewall, tcp wrapper Base de données (port dépendant du SGBD utilisé) autorisation d'accès (pg_hba pour PostgresSQL,...) Préparer la base de données (si non fait) Création du compte de connexion, de la base de données Créer les tables et index Construire la configuration Fichiers de configuration dans le répertoire /etc/bacula 1 fichier monolithique par composant: director, fd, sd, console,... fichier composé de section définissant chacune une propriété possibilité d'éclater ce fichier monolithique en plusieurs parties

Le «director» (bacula-dir.conf) Client informations pour accéder à un client et règles à appliquer vis à vis de ce client Director informations générales FileSet information sur le contenu (fichiers, répertoires) à inclure ou exclure Pool informations sur une collection de supports de sauvegarde Job composant unitaire spécifiant ce qui doit être sauvegardé ou restauré, comment, où et quand Jobdefs modèle type de job Storage informations pour accéder à un périphérique de sauvegarde et règles à appliquer vis à vis de ce périphérique Catalogue informations base de données Messages informations sur les notifications Schedule informations sur un échéancier à appliquer pour la sauvegarde

Structure de bacula-dir.conf Director { @ "sh -c 'for f in /etc/bacula/jobdefs/*.jobdefs ; do echo @${f ; done'" @ "sh -c 'for f in /etc/bacula/scheduling/*.conf ; do echo @${f ; done'" @ "sh -c 'for f in /etc/bacula/sets/*.set ; do echo @${f ; done'" @ "sh -c 'for f in /etc/bacula/clients/*.conf ; do echo @${f ; done'" @ "sh -c 'for f in /etc/bacula/vm/*.conf ; do echo @${f ; done'" @ "sh -c 'for f in /etc/bacula/storage/*.conf ; do echo @${f ; done'" @ "sh -c 'for f in /etc/bacula/pools/*.pool ; do echo @${f ; done'" Catalog { @ "sh -c 'for f in /etc/bacula/messages/*.conf ; do echo @${f ; done'" Console {

Section Director (bacula-dir.conf) Toute section porte un nom Spécification des propriétés générales du Director protéger le fichier en lecture (mot de passe) Director { Name = srv-dir QueryFile = "/etc/bacula/scripts/query.sql" WorkingDirectory = "/var/lib/bacula" PidDirectory = "/var/run/bacula" Maximum Concurrent Jobs = 20 Password = "XXXX-PASS-DIRECTOR-XXXX" Messages = Daemon DirAddresses = { ip = { addr = 127.0.0.1 ; port = 9101 ip = { addr = 192.168.1.1 ; port = 9101 Ajout de fonctionnalités d'interrogations de la BD Parallèlisme Contrôle de l'accès au processus Director Référence section correspondante Où écoute le processus

Section Messages (daemon) (bacula-dir.conf) Suivre le fonctionnement du système de sauvegarde Informations: transmises par courriel ajoutées dans les log affichées sur la console Messages { Name = Daemon mailcommand = "/usr/lib/bacula/bsmtp -h mon_domain -f \"\(Bacula\) \<%r\>\" -s \"Bacula daemon message\" %r" mail = bacula@mon_domain = all,!skipped console = all,!skipped,!saved append = "/var/lib/bacula/log" = all,!skipped

Section Messages (std) (bacula-dir.conf) Messages { Name = Standard mailcommand = "/usr/lib/bacula/bsmtp -h biologie.ens.fr -f \"\(Bacula\) \<%r\>\" -s \"Bacula: %t %e of %c %l [%n]\" %r" operatorcommand = "/usr/lib/bacula/bsmtp -h biologie.ens.fr -f \"\(Bacula\) \<%r\>\" -s \"Bacula: Intervention needed for %j\" %r" mail = bacula@biologie.ens.fr = all,!skipped operator = bacula@biologie.ens.fr = mount console = all,!skipped,!saved append = "/var/lib/bacula/log" = all,!skipped catalog = all

Section Catalog (bacula-dir.conf) Spécification des accès à la base de données Dépendant du SGBD utilisé: PostgresSQL, MySQL, SQLite Base de données comportent 25 tables Gestion des fichiers (tables file, filename, path,...) Gestion des media (media, mediatype, pool,...) Gestion des jobs (job, jobmedia, status,...) Gestion des traces (log,...) Volumétrie conséquente ~ 800Mo cas exemple 1 ~ 1,5Go cas exemple 2 ~600Go cas exemple 3 1,4 milliards d'entrées fichiers 90000 jobs Catalog { PostgresSQL Name = MyCatalog dbname = "bacula"; dbaddress = "localhost"; dbuser = "bacula"; dbpassword = "XXXXX"; dbport = 5432

Base de données Bacula Possibilité de construire ses propres interrogations de la base Ajout de scripts locaux facilitant la gestion des sauvegardes Ex: obtenir la liste des volumes utilisé par un job Hors outils de gestion de la sauvegarde #:List Volumes used by selected JobId *Enter JobId: SELECT DISTINCT Job.JobId,VolumeName FROM Job,JobMedia,Media WHERE Job.JobId=%1 AND Job.JobId=JobMedia.JobId Statistiques sur les données sauvegardées Localisation de fichiers peut nécessiter d'ajouter des index Dans /etc/bacula/scripts/query.sql

Le «director» (bacula-dir.conf) Client informations pour accéder à un client et règles à appliquer vis à vis de ce client Director informations générales FileSet information sur le contenu (fichiers, répertoires) à inclure ou exclure Pool informations sur une collection de supports de sauvegarde Job composant unitaire spécifiant ce qui doit être sauvegardé ou restauré, comment, où et quand Jobdefs modèle type de job Storage informations pour accéder à un périphérique de sauvegarde et règles à appliquer vis à vis de ce périphérique Catalogue informations base de données Messages informations sur les notifications Schedule informations sur un échéancier à appliquer pour la sauvegarde

section Schedule (bacula-dir.conf) Échéancier d'exécution d'un job Spécifier quand et de quel niveau doivent être réalisées les sauvegardes la durée du cycle est implicite ( Syntaxe assez souple permettant de spécifier heure, semaine, jour, mois Possibilité de spécifier le support où doit se faire la sauvegarde (pool) Schedule { Name = "MonthlyStartThe10" Run = Full on 10 at 23:05 Run = Differential on 3,17,24,31 at 23:05 Run = Incremental Pool=IncPool on 1,2,4,5,6,7,8,9,11,12,13,14,15,16, 18,19,20,21,22,23,25,26,27,28,29,30 at 23:05

Le «director» (bacula-dir.conf) Client informations pour accéder à un client et règles à appliquer vis à vis de ce client Director informations générales FileSet information sur le contenu (fichiers, répertoires) à inclure ou exclure Pool informations sur une collection de supports de sauvegarde Job composant unitaire spécifiant ce qui doit être sauvegardé ou restauré, comment, où et quand Jobdefs modèle type de job Storage informations pour accéder à un périphérique de sauvegarde et règles à appliquer vis à vis de ce périphérique Catalogue informations base de données Messages informations sur les notifications Schedule informations sur un échéancier à appliquer pour la sauvegarde

section Pool (bandes) (bacula-dir.conf) Volume: un media (bande, fichier) dans lequel Bacula écrit des données. Pour être utilisable, un volume doit être étiqueté (commande label) Des informations sont associées à chaque volume (date accès, nombre de fichiers, nombre de montages,...) Pool: collection de volumes Pool { Name = MegaBackup Pool Type = Backup Recycle = yes AutoPrune = yes Volume Retention = 6 months Maximum Volumes = 0 Label Format = "MB" Contrôle le cycle de vie de chacun des supports utilisés Produira des étiquettes MB0000, MB0001,...

Section Pool (Fichiers) (bacula-dir.conf) Sauvegarde sur fichiers suit le même principe que bandes Un fichier est équivalent à une bande Tous les fichiers d'un même pool sont dans un même répertoire Conseil: définir une taille «raisonnable» pour un fichier limite à 2Go sur machine 32bits Pas de support pour les fonctions avancées de gestion de pool Migration, clonage,... Pool { Name = File Pool Type = Backup Recycle = yes AutoPrune = yes Volume Retention = 180 days Maximum Volume Bytes = 10G Maximum Volumes = 100 taille maximale des données dans un volume

Pools, volumes,... Pourquoi plusieurs pools? Support de type différents bandes LTO5, LTO6, fichiers,... Durée de rétention des données différentes Niveaux de sauvegarde différents (full, differential, incremental) Lieu de stockage différents Cycle d'un volume Append écriture Full première écriture Recycled recyclage (si recycle=1) Purged «prune» «prune» : action qui consiste à déterminer si le contenu d'un volume peut être «oublié» en confrontant date d'écriture et durée de rétention. Cette opération ne détruit pas de données.

Recyclage d'un volume Recherche limitée aux volumes en ligne 1.choix d'un volume avec statut «Append» 2.choix d'un volume avec statut «Recycle» 3.réalisation d'une étape de «prune» et choix d'un volume «purged» 4.recherche d'un volume dans le pool «Scratch» Recherche étendue à tous les volumes 5.choix d'un volume avec statut «Append» 6.choix d'un volume avec statut «Recycle» 7.réalisation d'une étape de «prune» et choix d'un volume «purged» 8.tentative de création d'un nouveau volume (Python activé et nombre maximum de volumes non atteint) 9.«prune» le plus ancien volume si RecycleOldestVolume=yes, (volume ayant des écritures les plus anciennes et ayant un statut Full, Recycle, Purged, Used or Append) 10.«purge» le plus ancien volume si PurgeOldestVolume=yes (volume ayant des écritures les plus anciennes et ayant un statut Full, Recycle, Purged, Used or Append) 11.demander à l'opérateur

Le «director» (bacula-dir.conf) Client informations pour accéder à un client et règles à appliquer vis à vis de ce client Director informations générales FileSet information sur le contenu (fichiers, répertoires) à inclure ou exclure Pool informations sur une collection de supports de sauvegarde Job composant unitaire spécifiant ce qui doit être sauvegardé ou restauré, comment, où et quand Jobdefs modèle type de job Storage informations pour accéder à un périphérique de sauvegarde et règles à appliquer vis à vis de ce périphérique Catalogue informations base de données Messages informations sur les notifications Schedule informations sur un échéancier à appliquer pour la sauvegarde

Section Storage (File) (bacula-dir.conf) La section «Storage» est le connecteur qui pointe vers le périphérique (device) géré par le «Storage daemon» Le mot de passe à donner est celui du «Storage daemon» L'adresse ne doit pas être «localhost», mais le nom de l'hôte hébergeant le «Storage daemon» Storage { Name = BackupFile Address = srv.domain.fr SDPort = 9103 Password = "XXX-PASS-STORAGE-XXX" Device = FileStorage Media Type = File

Section Storage (Robot) (bacula-dir.conf) L'utilisation d'une robotique doit être spécifiée dans cette section, la description précise intervenant dans le «Storage daemon» Storage { Name = Scalar01-LTO5 Address = srv.domain.fr SDPort = 9103 Password = "XXXX-PASS-STORAGE-XXXX" Device = LibraryScalar01 Media Type = LTO-5 Autochanger = yes Maximum Concurrent Jobs = 20 Référence section device du SD cas d'une robotique Parallèlisme

Architecture de Bacula Director (chef d'orchestre) File daemon Storage daemon

Le «storage-daemon» (bacula-sd.conf) Messages informations sur les notifications à transmettre au «director» Director informations pour accéder au «director» (authentification) Device information sur un périphérique (type de média, label utilisé, taille des volumes,...) Autochanger informations sur un robot (périphériques qu'il gère, commandes de manipulation des bandes,...)

Structure Storage Daemon (bacula-sd.conf) Le Storage daemon gére les périphériques utilisées pour la sauvegarde. Il peut être localisé sur un hôte identique ou différent du «Director» et d'un «File daemon» Storage { Name = srv-sd WorkingDirectory = "/var/lib/bacula" Pid Directory = "/var/run/bacula" Maximum Concurrent Jobs = 20 SDAddresses = { ip = { addr = 127.0.0.1 ; port = 9103 ip = { addr = 192.168.1.1 ; port = 9103

Structure Storage Daemon (bacula-sd.conf) Director { Name = srv-dir Password = "XXXX-PASS-DIRECTOR-XXXX" Director { Name = srv-mon Password = "XXXX-PASS-MONITOR-XXXX" Monitor = yes @ "sh -c 'for f in /etc/bacula/devices/*.conf ; do echo @${f ; done'" Messages { Name = Standard director = srv-dir = all

section Device (file) (bacula-sd.conf) Device { Name = SrvFileStorage Media Type = File Archive Device = /export/bacula/backup/pool01 LabelMedia = yes; # lets Bacula label unlabeled media Random Access = Yes; AutomaticMount = yes;# when device opened, read it RemovableMedia = no; AlwaysOpen = no; Maximum Volume Size = 10GB;

section Autochanger (bacula-sd.conf) Bacula peut gérer des robotiques de sauvegarde. Par défaut, il utilise les commandes mtx* valider le fonctionnement de ces commandes hors de Bacula Le «Changer Device» est l'identifiant du robot et non des lecteurs Autochanger { Name = LibraryScalar01 Device = Drive-Scalar01a Device = Drive-Scalar01b Changer Command = "/etc/bacula/scripts/mtx-changer %c %o %S %a %d" Changer Device = /dev/tape/by-id/scsi-1quantum_d1h0123456_lla

Le «director» (bacula-dir.conf) Client informations pour accéder à un client et règles à appliquer vis à vis de ce client Director informations générales FileSet information sur le contenu (fichiers, répertoires) à inclure ou exclure Pool informations sur une collection de supports de sauvegarde Job composant unitaire spécifiant ce qui doit être sauvegardé ou restauré, comment, où et quand Jobdefs modèle type de job Storage informations pour accéder à un périphérique de sauvegarde et règles à appliquer vis à vis de ce périphérique Catalogue informations base de données Messages informations sur les notifications Schedule informations sur un échéancier à appliquer pour la sauvegarde

section Client (bacula-dir.conf) La section «Client» est le connecteur qui pointe vers le poste à sauvegarder où est exécuté le «File daemon» Le mot de passe à donner est celui du «File daemon» Client { Name = client01-fd Address = 192.168.1.2 FDPort = 9102 Catalog = MyCatalog Password = "XXXX-PASS-CLIENT01-XXXX" Maximum Concurrent Jobs = 4 File Retention = 6 months Job Retention = 6 months AutoPrune = yes Référence le client Parallèlisme durée de rétention

Configurer le «file-daemon» (bacula-fd.conf) Director informations pour accéder au «director» (authentification) Messages informations sur les notifications à transmettre au «director» FileDaemon définition du client (autorisation d'accès, parallélisme supporté, clés de chiffrement,...)

Structure «File daemon» (bacula-fd.conf) Le «File daemon» s'exécute sur lh'ôte contenant les données à sauvegarder Director { Name = srv-dir Password = "XXXX-PASS-DIRECTOR-XXXX" Director { Name = src-mon Password = "XXXX-PASS-MONITOR-XXXX" Monitor = yes FileDaemon{ Messages { Name = Standard director = srv-dir = all,!skipped,!restored

section FileDaemon (bacula-fd.conf) FileDaemon { Name = srv-fd WorkingDirectory = /var/lib/bacula Pid Directory = /var/run/bacula Parallèlisme Maximum Concurrent Jobs = 20 FDAddresses = { ip = { addr = 127.0.0.1 ; port = 9102 ip = { addr = 192.168.1.1 ; port = 9102 Activer la signature des données PKI Signatures = Yes Activer le chiffrement PKI Encryption = Yes des données # Public and Private Keys PKI Keypair = "/etc/bacula/keys/srv-fd.pem" # ONLY the Public Key les clés PKI Master Key = "/etc/bacula/keys/bacula-master.cert"

Le «director» (bacula-dir.conf) Client informations pour accéder à un client et règles à appliquer vis à vis de ce client Director informations générales FileSet information sur le contenu (fichiers, répertoires) à inclure ou exclure Pool informations sur une collection de supports de sauvegarde Job composant unitaire spécifiant ce qui doit être sauvegardé ou restauré, comment, où et quand Jobdefs modèle type de job Storage informations pour accéder à un périphérique de sauvegarde et règles à appliquer vis à vis de ce périphérique Catalogue informations base de données Messages informations sur les notifications Schedule informations sur un échéancier à appliquer pour la sauvegarde

section FileSet (bacula-dir.conf) FileSet { Name = "UnixSystemSet" Include { Options { signature = MD5 compression = GZIP xattrsupport = yes File = /... File = /var Exclude { File = /var/run File = /proc... Options activées répertoires à inclure répertoires ou fichiers à exclure

Le «director» (bacula-dir.conf) Client informations pour accéder à un client et règles à appliquer vis à vis de ce client Director informations générales FileSet information sur le contenu (fichiers, répertoires) à inclure ou exclure Pool informations sur une collection de supports de sauvegarde Job composant unitaire spécifiant ce qui doit être sauvegardé ou restauré, comment, où et quand Jobdefs modèle type de job Storage informations pour accéder à un périphérique de sauvegarde et règles à appliquer vis à vis de ce périphérique Catalogue informations base de données Messages informations sur les notifications Schedule informations sur un échéancier à appliquer pour la sauvegarde

section Jobdefs (bacula-dir.conf) Cette section décrit les paramètres par défaut des jobs. Les valeurs sont écrasées si redéfinies dans la section job. JobDefs { Name = "MegaJob" Type = Backup Level = Incremental Client = srv-fd FileSet = "Full Set" Schedule = "WeeklyCycle" Messages = Standard Storage = Scalar01-LTO5 Maximum Concurrent Jobs = 20 Pool = MegaBackup Priority = 10 Write Bootstrap = "/var/lib/bacula/%c.bsr"

Le «director» (bacula-dir.conf) Client informations pour accéder à un client et règles à appliquer vis à vis de ce client Director informations générales FileSet information sur le contenu (fichiers, répertoires) à inclure ou exclure Pool informations sur une collection de supports de sauvegarde Job composant unitaire spécifiant ce qui doit être sauvegardé ou restauré, comment, où et quand Jobdefs modèle type de job Storage informations pour accéder à un périphérique de sauvegarde et règles à appliquer vis à vis de ce périphérique Catalogue informations base de données Messages informations sur les notifications Schedule informations sur un échéancier à appliquer pour la sauvegarde

section Job (bacula-dir.conf) Job { Name = "BackupSystemClient01" JobDefs = "MegaJob" Client = client01-fd FileSet = "UnixSystemSet" Schedule = "MonthlyStartThe16" Maximum Concurrent Jobs = 4 Job { Name = "BackupHome01Client01" JobDefs = "MegaJob" Client = client01-fd FileSet = "UnixHome01Set" Schedule = "MonthlyStartThe17" Maximum Concurrent Jobs = 4 JobDefs définit les paramètres par défaut client échéancier Parallèlisme Jobid: identifiant d'un job en cours d'exécution

Gestion du parallèlisme Objectif Principe Minimiser les durées globales de sauvegarde en utilisant le plus souvent possible le débit maximal d'écriture possible sur le(s) support(s) Gérer plusieurs supports de sauvegarde simulatanément Association de plusieurs flux de données à sauvegarder en un flux unique d'écriture sur un support de sauvegarde Mise en œuvre Spécifier au niveau des composants le niveau de parallélisme supporté. Par exemple: globalement, 20 jobs peuvent s'exécuter 4 jobs peuvent être actifs simultanément pour un client donné 4 jobs peuvent être actifs simultanément en écriture sur un support de sauvegarde

section FileSet (snapshot) (bacula-dir.conf) Pour s'assurer que les données ne sont pas modifiées au cours de la sauvegarde, une technique consiste à créer une image instantanée FileSet { Name = "SnapshotHome01Client02Set" Include { Options { signature = MD5 xattrsupport = yes File = /snapshot/sav_client02_hm01 point de montage du snapshot

section Job (snapshot) (bacula-dir.conf) Job { Name = "BackupHome01Client02" JobDefs = "MegaJob" Client = client02-fd FileSet = "SnapshotHome01Client02Set" Schedule = "MonthlyStartThe05" Maximum Concurrent Jobs = 6 RunScript { RunsWhen = Before FailJobOnError = yes Command = "/.../create-snapshot home01..." RunScript { RunsWhen = After RunsOnFailure = yes Command = "/.../destroy-snapshot home01..." script de création et de suppression du snapshot

Sauvegarde du catalogue La destruction où l'altération de la base de données neutralise le fonctionnement du logiciel. En cas de désastre, la restauration des données est facilitée par la reconstitution de la base de données. disposer de copies de secours de la base de données est impératif Sauvegarde du catalogue doit être fait avec une base de données dans un état stable (pas de modifications) création d'un job spécifique choix d'une priorité inférieure à tous les autres jobs afin qu'il ne soit exécuter que lorsque tous les autres jobs sont achevés. cycle quotidien afin de minimiser la perte d'information le fichier à sauvegarder est construit à chaque déclenchement du job quand la base devient importante, le temps de sauvegarde devient critique

Section Job (BackupCatalog) (bacula-dir.conf) Job { Name = "BackupCatalog" JobDefs = "DefaultJob" Level = Full FileSet="Catalog" Schedule = "WeeklyCycle" # 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

Section Job (RestoreFiles) (bacula-dir.conf) La configuration doit inclure un job de type «Restore» qui définit les options par défaut qui seront utilisées lors d'une restauration de données. Tous les paramètres sont modifiables lors de la procédure de restauration. Job { Name = "RestoreFiles" Type = Restore Client = client01-fd FileSet = "Full Set" Storage = Scalar01-LTO5 Pool = MegaBackup Messages = Standard Where = /export/bacula/bacula-restores

section Device (bande) (bacula-sd.conf) Device { Name = Drive-Scalar01a Drive Index = 0 Media Type = LTO-5 Archive Device = /dev/tape/by-id/scsi-12345678abcd01000-nst LabelMedia = yes; AutomaticMount = yes; identifiant du AlwaysOpen = yes; device du lecteur RemovableMedia = yes; spécifier l'inclusion RandomAccess = no; dans une librairie AutoChanger = yes Maximum Concurrent Jobs = 4 Parallèlisme Spool Directory = /var/spool/bacula/scalar01a Maximum Job Spool Size = 100GB Alert Command = "sh -c 'smartctl -H -l error %c grep -v Error\\\ Counter\\\ logging\\\ not\\\ supported'"

Gestion de l'application Mode CLI Une console interactive donnant accès à l'ensemble des fonctions Possibilité de scripter des commandes Mode graphique #!/bin/bash echo "list media" bconsole -n Une interface minimaliste «bat» (bacula admin tool) Accès possible via des interfaces web (bacula web) Visualisation de l'état avec «Tray Monitor»

bconsole #bconsole Connexion au Director 192.168.1.1:9101 1000 OK: srv-dir Version: 5.2.5 (26 January 2012) Tapez un point (.) pour annuler une commande. *help Command Description ======= =========== add Add media to a pool autodisplay Autodisplay console messages automount Automount after label version Print Director version wait Wait until no jobs are running When at a prompt, entering a period cancels the command. You have messages. *

La console graphique: bat

Configuration de la console (bconsole.conf, bat.conf) Configuration en référençant le «Director» Valable pour bconsole.conf (CLI) et bat.conf (graphique) Plusieurs instances autorisées actives simultanément Director { Name = srv-dir DIRport = 9101 Address = 192.168.1.1 Password = "XXXX-PASS-DIRECTOR-XXXX"

Mise en œuvre Run... Director, FD et SD sont configurés Une console est accessible Labellisé les volumes echo "label pool=file storage=file volume=bkpvol00" bconsole Lancer une sauvegarde avec les options par défaut echo "run job=backuphome01client02 yes" bconsole Où en est on? Messages dans la console (via la commande message), dans les log, dans la base de données La commande «status»

Restaurer des données Qui peut le faire? Avec Bacula, c'est l'administrateur... Retrouver ce qui doit être restaurer Localiser le(s) fichier(s): quel client? Quel répertoire? Quelles versions? Plusieurs approches proposées en standard. Accès direct à une vision du système de fichiers Etape intermédiaire de recherche afin d'identifier le jobid Ajout de scripts d'interrogation de la base données Ex: retrouver toutes les versions sauvegardées d'un fichier. Cas des partitions complètes Où restaurer? Position originelle, ailleurs...

Restaurer des données *restore To select the JobIds, you have the following choices: 1: List last 20 Jobs run 2: List Jobs where a given File is saved 3: Enter list of comma separated JobIds to select 4: Enter SQL list command 5: Select the most recent backup for a client 6: Select backup for a client before a specified time 7: Enter a list of files to restore 8: Enter a list of files to restore before a specified time 9: Find the JobIds of the most recent backup for a client 10: Find the JobIds for a backup for a client before a specified time 11: Enter a list of directories to restore for found JobIds 12: Select full restore to a specified Job date 13: Cancel Select item: (1-13):

Gestion de désastre Reconstituer le catalogue Utilitaire bscan: lecture du volume et reconstitution des données de ce volume au sein du catalogue En cas de dégradation du catalogue la relecture de toutes les bandes peut être nécessaire sauf si sauvegarde du catalogue. En cas de «prune» non souhaité Relire le contenu d'un volume Utilitaire bextract: extraire les fichiers du volume (à réserver au cas où restore est inutilisable bls: permet de lister le contenu du volume

Et encore... Quelques facilités de gestion Modifier la configuration en ligne Tester la configuration bacula-dir -t -c /etc/bacula/bacula-dir.conf Mettre à jour la configuration echo "reload" bconsole -n Bien d'autres fonctionnalités... Authentification «forte» entre clients et serveurs Gestion des ACL Bacula virtual file system (bvfs)...

Bilan de l'utilisation Toutes les données devant être restaurées l'ont été! Et il y en a eu! Concernant l'exemple 1 Incident liés à une panne de disques sur serveur NAS (2 disques HS, 1h) Concernant l'exemple 2 Problème de disponibilité du serveur FTP Concernant l'exemple 3 (18 mois d'utilisation): Incidents de fonctionnement liés ayant induit des retards de sauvegardes à la robotique (panne d'un lecteur intérêt d'en avoir 2 identiques) à des problèmes de montage et démontage de snapshots Limite liée à la taille de la base de données transfert sur un support disque plus performant revoir la manière dont est réalisée la sauvegarde Optimisation des sauvegardes révision régulière de la répartition des sauvegardes «Full» ajustement du parallelisme pour ne pas saturer les serveurs