%%
%%

\chapter{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. 

\section{Ce qui est impl\'ement\'e}
\index[general]{Ce qui est impl\'ement\'e }
\addcontentsline{toc}{section}{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\c{c}age avec le Director  permettant un
     contr\^ole 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\`es peu de fonctionnalit\'es 
      suppl\'ementaires par rapport \'a la console shell.   
   \end{itemize}

   \item S\'ecurit\'e
   \begin{itemize}
     \item Verification des fichiers pr\'ec\'edemment r\'ef\'erenc\'es offreant des possibilit\'es \'a la Tripwire 
      (V\'erification de l'int\'egrit\'e du syst\`eme).
     \item Authentification par \'echange 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\'es sur demande.
   \end{itemize}


\item Fonctionnalit\'es li\'ees 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\'ee 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 \'ecriture sur cartouche 
   asynchrone. Ceci pr\'evient les arr\`ets et red\'emarrage (NDT : "shoe shine") des lecteurs, 
   surtout lors des incr\'ementales et diff\'erentielles. 
 \end{itemize}

\item Support avanc\'e pour la plupart des p\'eriph\'eriques 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\`emes 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 \'etiquettes (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\'erente des fichiers ouverts sur les syst\`emes 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\'ehensible et 
    extensible pour chaque {\it daemon}.
  \end{itemize}
\end{itemize}

\section{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}{section}{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\`ede une 
   interface shell qui permet \'a l'administrateur d'utiliser des outils tels que 
   ssh pour administrer n'importe quelle partie de Bacula depuis n'importe o\`u.
\item Bacula dispose d'un CD de secours pour les syst\`emes Linux dot\'es des 
   fonctionnalit\'es suivantes :
   \begin{itemize}
   \item Vous le g\'en\'erez sur votre propre syst\`eme d'un simple make suivi de make burn. 
   \item Il utilise votre noyau.
   \item Il capture vos param\`etres de disques et g\'en\`ere 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\'esastre.
   \item Il comporte un script qui red\'emarrera votre r\'eseau (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\'e. 
   \item Vous pouvez ais\'ement y ajouter des donn\'ees ou programmes additionnels. 
\end{itemize}
\end{itemize}

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

\begin{itemize}
\item Les chemins et noms de fichiers de longueur sup\'erieure \'a 260 caract\`eres 
   sur les syst\`emes Win32 ne sont pas support\'es. Il sont sauvegard\'es mais 
   ne peuvent \^etre restaur\'es. L'utilisation de la directive {\bf Portable=yes}
   dans votre FileSet permet de restaurer ces fichiers vers les syst\`emes 
   Unix et Linux. Les noms de fichiers longs seront impl\'ement\'es 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\'erentielles et incr\'ementales de Bacula se basent sur 
   les time stamps. Par cons\'equent, si vous d\'eplacez des fichiers d'un r\'epertoire 
   existant ou un r\'epertoire complet appartenant \'a un FileSet apr\`es une Full, 
   ces fichiers ne seront probablement pas sauvegard\'es par une incr\'ementale, 
   car ils seront encore marqu\'es des anciennes dates. Vous devez explicitement 
   mettre \'a jour ces dates sur tous les fichiers d\'eplac\'es. La correction de ce 
   d\'efaut est en projet.
\item Les Modules Syst\`eme de Fichiers (routines configurables pour 
   sauvegarder/restaurer les fichiers sp\'eciaux) ne sont pas encore impl\'ement\'es.
\item Le chiffrement des donn\'ees sur les volumes sera impl\'ement\'e dans la version 1.40. 
\item Bacula ne peut restaurer automatiquement les fichiers d'un job depuis 
   deux ou plusieurs p\'eriph\'eriques de stockage diff\'erents. Si vous 
   un m\^eme job utilise plusieurs p\'eriph\'eriques ou plusieurs types de 
   m\'edia distincts, le processus de restauration n\'ecessitera certaines 
   interventions manuelles. 
\item Bacula ne supporte pas les volumes disque amovibles pour l'instant.
  Des utilisateurs d\'eclarent \^etre parvenu \'a faire fonctionner Bacula 
  ainsi, mais cela n\'ecessite de prendre garde de monter le bon volume, de 
  plus, les restaurations diss\'emin\'ees sur plusieurs volumes risquent 
  fort de ne pas fonctionner. Cette fonctionnalit\'e est pr\'evue pour la version 
  1.40. 
\end{itemize}

\section{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}{section}{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\'es \'a 260 caract\`eres 
   par l'API non-Unicode Windows que nous utilisons. A partir de la version 1.39, 
   nous avons bascul\'e sur l'API Unicode et cette limitation n'existe plus.
\end{itemize}
