%%
%%

\section*{L'\'etat actuel de Bacula}
\label{_ChapterStart2}
\index[general]{L'\'etat actuel de Bacula }
\index[general]{Bacula!L'\'etat actuel de }
\addcontentsline{toc}{section}{L'\'etat actuel de Bacula}

En d'autres termes, ce qui est et ce qui n'est pas actuellement impl\'ement\'e
et fonctionnel. 

\subsection*{Ce qui est impl\'ement\'e}
\index[general]{Ce qui est impl\'ement\'e }
\addcontentsline{toc}{subsection}{Ce qui est impl\'ement\'e}

\begin{itemize}
\item Job Control
   \begin{itemize}
     \item Sauvegarde/restauration par le r\'eseau avec un Director centralis\'e.  
     \item Scheduler interne pour le lancement automatique des 
     \ilink{Jobs}{JobDef}.  
     \item Programmation de plusieurs Jobs \`a la m\^eme heure.  
     \item Execution simultan\'ee d'un Job ou plusieurs Jobs.  
     \item S\'equencement des Jobs selon  une hi\'erarchie de priorit\'es.  
     \item \ilink{Console}{UADef} d'interfaçage avec le Director  permettant un contrôle 
      total. La console est disponible en version shell ou en mode graphique GNOME et wxWidget.
      Notez que pour l'instant, la version GNOME n'offre que très peu de fonctionnalités 
      supplémentaires par rapport à la console shell.   
   \end{itemize}

   \item Sécurité
   \begin{itemize}
     \item Verification des fichiers précédemment référencés offreant des possibilités à la Tripwire 
      (Vérification de l'intégrité du système).
     \item Authentification par échange de mots de passe CRAM-MD5 entre chaque composant ({\it daemon}). 
     \item \ilink{Chiffrement TLS (ssl)}{_ChapterStart61} entre chaque composant. 
     \item Calcul de signatures MD5 ou SHA1 des fichiers sauvegardés sur demande.
   \end{itemize}


\item Fonctionnalités liées aux restaurations
   \begin{itemize}
     \item Restauration d'un ou plusieurs fichiers s\'electionn\'es interactivement
      parmi les fichiers  de la derni\`ere sauvegarde ou ceux d'une sauvegarde
      ant\'erieure \`a une date et heure donn\'ees.  
     \item Restauration d'un syst\`eme complet "depuis le m\'etal brut". 
      Cette op\'eration est largement  automatis\'ee pour les syst\`emes Linux et
      partiellement pour les Solaris.  Consultez le 
      \ilink{Plan de Reprise d'activit\'e avec Bacula}{_ChapterStart38}. 
      Selon certains utilisateurs, la restauration "depuis le m\'etal brut" 
      fonctionne aussi pour les syst\`emes Win2K/XP.  
      \item Listage et restauration des fichiers avec les outils autonomes {\bf
      bextract}. Entre autres choses, ceci permet l'extraction de fichiers quand
      Bacula et/ou le  catalogue ne sont pas disponibles. Notez : La m\'ethode
      recommand\'ee pour restaurer des  fichiers est d'utiliser la commande restore
      dans la Console. Ces programmes sont  con{\c c}us pour une utilisation en
      dernier recours.  
      \item Possibilit\'e de r\'eg\'en\'erer le catalogue par balayage des volumes
      de sauvegarde  gr\^ace au programme {\bf bscan}.  
   \end{itemize}

\item Catalogue SQL 
  \begin{itemize}
    \item Fonctions de base de donn\'ees (catalogue) pour les informations
    concernant les volumes,  pools, jobs et fichiers sauvegard\'es.  
    \item Support pour des catalogues de type SQLite, PostgreSQL, et MySQL.  
    \item Requ\^etes utilisateur arbitraires sur les bases de donn\'ees SQLite,
    PostgreSQL et MySQL.  
  \end{itemize}

\item Gestion avancée des pools et volume 
  \begin{itemize}
    \item Marquage (label) des Volumes pour pr\'evenir tout \'ecrasement
    accidentel (au moins par Bacula).  
    \item Un nombre quelconque de Jobs et Clients peuvent \^etre sauvegard\'es sur
    un Volume unique.  Cela signifie que vous pouvez sauvegarder et restaurer des
    machines Linux,  Unix, Sun, et Windows sur le m\^eme volume.  
    \item Sauvegardes multi-volumes. Lorsqu'un Volume est plein, {\bf Bacula} 
    r\'eclame automatiquement le volume suivant et poursuit la sauvegarde.  
    \item Gestion de librairie par 
   \ilink{Pools et Volumes}{PoolResource} offrant  beaucoup de
   flexibilit\'e dans la gestion des volumes (par exemple, groupes de volumes mensuels, 
   hebdomadaires, quotidiens ou diff\'erenci\'es par client,...).  
   \item Format d'\'ecriture de donn\'ees sur les volumes ind\'ependant des
   machines. Les clients  Linux, Solaris, et Windows peuvent tous \^etre
   sauvegard\'es sur le m\^eme volume si  d\'esir\'e.  
   \item Prise en charge flexible des 
   \ilink{ messages}{MessageResource}  incluant le routage des
   messages depuis n'importe quel {\it daemon} vers le Director  pour un
   reporting automatique par e-mail.  
   \item Possibilit\'e de mettre les donn\'ees sur un tampon disque (data
   spooling) lors des sauvegardes avec écriture sur cartouche 
   asynchrone. Ceci prévient les arrèts et redémarrage (NDT : "shoe shine") des lecteurs, 
   surtout lors des incrémentales et différentielles. 
 \end{itemize}

\item Support avancé pour la plupart des périphériques de stockage 
 \begin{itemize}
   \item Support pour les librairies de sauvegarde via une simple interface shell
   capable de s'interfacer avec pratiquement n'importe quel programme
   autochargeur.  
   \item Support pour les librairies \'equip\'ees de lecteurs de codes barres --
   marquage (labeling)  automatique selon les codes barres.  
   \item Support pour les librairies \`a magasins multiples, soit par
   l'utilisation des codes barres,  soit par lecture des cartouches. 
   \item Support pour les librairies avec plusieurs lecteurs. 
   \item Sauvegardes/restaurations "Raw device". Les restaurations doivent
   alors s'effectuer vers  le m\^eme support physique que la sauvegarde.  
   \item Tous les blocs de donn\'ees des volumes (approx 64K bytes) contiennent
   une somme de contr\^ole.  
 \end{itemize}

\item Support pour de nonbreux systèmes d'exploitation 
  \begin{itemize}
    \item Programm\'e pour prendre en charge des noms de fichiers et messages
    arbitrairement longs.
    \item Compression GZIP fichier par fichier effectu\'ee, si activ\'ee, par  le
    programme Client avant le transfert sur le r\'eseau.
    \item Sauvegarde et restaure les POSIX ACLs.
    \item Liste d'acc\`es \`a la console qui permet de restreindre l'acc\`es des
    utilisateurs \`a leurs donn\'ees seulement.  
    \item Support pour sauvegarde et restauration de fichiers de plus de 2GB.  
    \item Support pour les machines 64 bit, e.g. amd64.  
    \item Possibilit\'e de chiffrer les communications entre les {\it daemons} en
    utilisant stunnel.
   \item Support des étiquettes (labels) de cartouches ANSI et IBM.
   \item Support des noms de fichiers Unicode (exemple : chinois) sur les machines Win32 
   depuis la version 1.37.28.
   \item Sauvegarde cohérente des fichiers ouverts sur les systèmes Win32 (WinXP, Win2003 
   mais pas Win2000), par l'utilisation de Volume Shadow Copy (VSS).
 \end{itemize}

\item Divers
  \begin{itemize}
    \item Impl\'ementation multi-thread.
    \item Un \ilink{fichier de configuration}{_ChapterStart40} compréhensible et 
    extensible pour chaque {\it daemon}.
  \end{itemize}
\end{itemize}

\subsection*{Avantages de Bacula sur d'autres programmes de sauvegarde}
\index[general]{Avantages de Bacula sur d'autres programmes de sauvegarde }
\index[general]{Sauvegarde!Avantages de Bacula sur d'autres programmes de }
\addcontentsline{toc}{subsection}{Avantages de Bacula sur d'autres programmes
de sauvegarde}

\begin{itemize}
\item Du fait qu'il y a un client pour chaque machine, vous pouvez 
   sauvegarder et restaurer des clients de tous types avec  l'assurance que tous
   les attributs de fichiers sont convenablement  sauvegard\'es et restaur\'es.  
\item Il est aussi possible de sauvegarder des clients sans aucun  logiciel
   client en utilisant NFS ou Samba. Cependant, nous recommandons  d'ex\'ecuter,
   si possible, un File Daemon client sur chaque machine  \`a sauvegarder.  
\item Bacula prend en charge les sauvegardes multi-volumes.  
\item Une base de donn\'ees compl\`ete aux standards SQL de tous les fichiers 
   sauvegard\'es. Ceci permet une vue en ligne des fichiers  sauvegard\'es sur
   n'importe quel volume.  
\item Elagage automatique du catalogue (destruction des anciens
   enregistrements),  ce qui simplifie l'administration de la base de donn\'ees. 
\item N'importe quel moteur de base de donn\'ees SQL peut \^etre utilis\'e, ce
   qui  rend Bacula tr\`es flexible.  
\item La conception modulaire, mais int\'egr\'ee rend Bacula tr\`es
   \'echelonnable.  
\item Puisque Bacula utilise des {\it daemons} fichier clients, toute base de
   donn\'ees,  toute application peut \^etre arr\'et\'ee proprement, puis
   red\'emarr\'ee par Bacula  avec les outils natifs du syst\`eme sauvegard\'e
(le tout dans un Job Bacula).  
\item Bacula int\`egre un Job Scheduler.  
\item Le format des volumes est document\'e et il existe de simples programmes C
 pour le lire/\'ecrire.  
\item Bacula utilise des ports TCP/IP bien d\'efinis (enregistr\'es) -- pas de
   rpcs, pas  de m\'emoire partag\'ee.  
\item L'installation et la configuration de Bacula est relativement simple 
   compar\'ee \`a d'autres produits comparables.  
\item Selon un utilisateur, Bacula est aussi rapide que la grande application 
   commerciale majeure.  
\item Selon un autre utilisateur, Bacula est quatre fois plus rapide qu'une
   autre  application commerciale, probablement parce que cette application
   stocke  ses informations de catalogue dans un grand nombre de fichiers 
plut\^ot que dans une base SQL comme le fait Bacula. 
\item Au lieu d'une interface d'administration graphique, Bacula possède une 
interface shell qui permet à l'administrateur d'utiliser des outils tels que 
ssh pour administrer n'importe quelle partie de Bacula depuis n'importe où.
\item Bacula dispose d'un CD de secours pour les systèmes Linux dotés des 
   fonctionnalités suivantes :
   \begin{itemize}
   \item Vous le générez sur votre propre système d'un simple make suivi de make burn. 
   \item Il utilise votre noyau.
   \item Il capture vos paramètres de disques et génère les scripts qui vous permettront 
   de repartitionner automatiquement vos disques et de les formater pour y remettre 
   ce qui s'y trouvait avant le désastre.
   \item Il comporte un script qui redémarrera votre réseau (avec l'adresse IP correcte).
   \item Il comporte un script qui monte automatiquement vos disques durs. 
   \item Il comporte un Bacula FD complet statiquement lié. 
   \item Vous pouvez aisément y ajouter des données ou programmes additionnels. 
\end{itemize}

\subsection*{Restrictions de l'impl\'ementation actuelle}
\index[general]{Restrictions de l'impl\'ementation actuelle }
\index[general]{Actuelle!Restrictions de l'impl\'ementation }
\addcontentsline{toc}{subsection}{Restrictions de l'impl\'ementation actuelle}

\begin{itemize}
\item Les chemins et noms de fichiers de longueur supérieure à 260 caractères 
   sur les systèmes Win32 ne sont pas supportés. Il sont sauvegardés mais 
   ne peuvent être restaurés. L'utilisation de la directive {\bf Portable=yes}
   dans votre FileSet permet de restaurer ces fichiers vers les systèmes 
   Unix et Linux. Les noms de fichiers longs seront implémentés dans la  
   version 1.40.
\item Si vous avez plus de 4 billions de fichiers enregistr\'es dans votre 
   catalogue, la base de donn\'ees FileId atteindra probablement ses limites. 
   Ceci est une base de donn\'ees monstrueuse mais possible. A un certain stade,
   les champs  FileId de Bacula passeront de 32 bits \`a 64 et ce probl\`eme
   dispara{\^\i}tra. En attendant, un palliatif  satisfaisant consiste \`a
   utiliser plusieurs bases de donn\'ees  
\item Les fichiers supprim\'es apr\`es une sauvegarde full sont inclus dans
   les restaurations. 
\item Les sauvegardes différentielles et incrémentales de Bacula se basent sur 
   les time stamps. Par conséquent, si vous déplacez des fichiers d'un répertoire 
   existant ou un répertoire complet appartenant à un FileSet après une Full, 
   ces fichiers ne seront probablement pas sauvegardés par une incrémentale, 
   car ils seront encore marqués des anciennes dates. Vous devez explicitement 
   mettre à jour ces dates sur tous les fichiers déplacés. La correction de ce 
   défaut est en projet.
\item Les Modules Système de Fichiers (routines configurables pour 
   sauvegarder/restaurer les fichiers spéciaux) ne sont pas encore implémentés.
\item Le chiffrement des données sur les volumes sera implémenté dans la version 1.40. 
\item Bacula ne peut restaurer automatiquement les fichiers d'un job depuis 
   deux ou plusieurs périphériques de stockage différents. Si vous 
   un même job utilise plusieurs périphériques ou plusieurs types de 
   média distincts, le processus de restauration nécessitera certaines 
   interventions manuelles. 
\item Bacula ne supporte pas les volumes disque amovibles pour l'instant.
  Des utilisateurs déclarent être parvenu à faire fonctionner Bacula 
  ainsi, mais cela nécessite de prendre garde de monter le bon volume, de 
  plus, les restaurations disséminées sur plusieurs volumes risquent 
  fort de ne pas fonctionner. Cette fonctionnalité est prévue pour la version 
  1.40. 
\end{itemize}

\subsection*{Limitations ou Restrictions inh\'erentes \`a la conception}
\index[general]{Limitations ou Restrictions inh\'erentes \`a la conception }
\index[general]{Conception!Limitations ou Restrictions inh\'erentes \`a la }
\addcontentsline{toc}{subsection}{Limitations ou Restrictions inh\'erentes \`a
la conception}

\begin{itemize}
\item Les noms (tels que resource names, Volume names, ...) d\'efinis dans les
   fichiers  de configuration de Bacula sont limit\'es \`a un nombre fix\'e de
   caract\`eres.  Actuellement, la limite est d\'efinie \`a 127 caract\`eres.
Notez que ceci ne concerne  pas les noms de fichiers qui peuvent \^etre
arbitrairement longs.  
\item Sur les machines Win32, les noms de fichiers sont limités à 260 caractères 
   par l'API non-Unicode Windows que nous utilisons. A partir de la version 1.39, 
   nous avons basculé sur l'API Unicode et cette limitation n'existe plus.
\end{itemize}
