%%
%%

\chapter{Configuration du Storage Daemon}
\label{_ChapterStart31}
\index[general]{Configuration du Storage Daemon}
\index[general]{Configuration!Storage Daemon}

\section{General}
\index[general]{General}
\addcontentsline{toc}{section}{General}
Le fichier de configuration du Storage Daemon a relativement peu de d\'efinitions 
de resources. Cependant, en raison du nombre pl\'ethorique de media et de syst\`emes, 
il doit \^etre hautement param\'etrable. Par cons\'equent, il existe un nombre assez important 
de directives dans la d\'efinition de ressource Devices qui vous permettent de d\'efinir 
toutes les caract\'eristiques de votre p\'eriph\'erique de stockage. Heureusement, avec les 
mat\'eriels modernes, les valeurs par d\'efaut sont g\'en\'eralement suffisantes, et tr\`es 
peu de directives sont r\'eellement indispensables.

Des exemples de directives de ressources device connues pour fonctionner pour 
beaucoup de lecteurs de bandes communs peuvent \^etre trouv\'es dans le r\'epertoire : 
\lt{}bacula-src\gt{}/examples/devices. La plupart seront \'enum\'er\'es ici.

Pour une discussion g\'en\'erale concernant les fichiers de configuration de Bacula, 
les ressources et les types de donn\'ees reconnus, veuillez consulter le 
chapitre \ilink{Configuration}{_ChapterStart16} de ce manuel. Les d\'efinitions de 
ressources Storage suivantes doivent \^etre d\'efinies :

\begin{itemize}
\item 
   \ilink{Storage}{StorageResource} -- Pour d\'efinir le nom du Storage Daemon.
\item 
   \ilink{Director}{DirectorResource1} -- Pour d\'efinir le nom du Director et le mot 
   de passe permettant d'y acc\'eder.
\item 
   \ilink{Device}{DeviceResource} -- Pour d\'efinir les caract\'eristiques de votre 
   p\'eriph\'erique de stockage.
\item 
   \ilink{Messages}{_ChapterStart15} -- Pour d\'efinir o\`u les messages d'erreurs 
   et d'information doivent \^etre exp\'edi\'es.
\end{itemize}

\section{Ressource Storage}
\label{StorageResource}
\index[general]{Ressource!Storage}
\index[general]{Ressource Sorage}
\addcontentsline{toc}{section}{Ressource Storage}

En g\'en\'eral, les propri\'et\'es sp\'ecifi\'ees au niveau de la ressource Storage d\'efinissent 
des propri\'et\'es globales du Storage Daemon. Chaque fichier de configuration de 
Storage Daemon doit avoir sa propre d\'efinition de ressource Storage.

\begin{description}

\item [Name = \lt{}Storage-Daemon-Name\gt{}]
   \index[sd]{Name}
   \index[sd]{Directive!Name}
   Sp\'ecifie le nom du Storage Daemon. Cette directive est requise.
\item [Working Directory = \lt{}R\'epertoire\gt{}]
   \index[sd]{Working Directory}
   \index[sd]{Directive!Working Directory}
   Cette directive sp\'ecifie un r\'epertoire o\`u le Storage Daemon peut placer ses fichiers 
   d'\'etat. Ce r\'epertoire ne devrait \^etre utilis\'e que par Bacula, mais peut \^etre 
   partag\'e par d'autres daemons Bacula, pourvu que les noms donn\'es \`a chaque daemon 
   soient uniques. Cette directive est requise.

\item [Pid Directory = \lt{}R\'epertoire\gt{}]
   \index[sd]{Pid Directory}
   \index[sd]{Directive!Pid Directory}
      Cette directive sp\'ecifie un r\'epertoire o\`u le Storage Daemon peut d\'eposer son fichier
d'Id de processus. Ce fichier est utilis\'e pour stopper Bacula et pr\'evenir l'ex\'ecution
simultan\'ee de plusieurs copies de Bacula. Les substitutions shell standard sont
effectu\'ees \`a la lecture du fichier de configuration, de sorte que des valeurs
telles que {\bf \$HOME} seront correctement substitu\'ees. 
   
Typiquement, sur les syst\`emes Linux, vous utiliserez ici {\bf /var/run}. Si vous
n'installez pas Bacula dans les r\'epertoires syst\`eme, vous pouvez utiliser le
r\'epertoire de travail {\bf Working Directory} d\'efini plus haut.
Cette directive est requise.

\item [Heartbeat Interval = \lt{}P\'eriode\gt{}]
   \index[sd]{Heartbeat Interval}
   \index[sd]{Directive!Heartbeat Interval}
   \index[general]{Heartbeat Interval}
   \index[general]{Broken pipe}
   Cette directive d\'efinit la p\'eriode des pulsations \'emises par le Storage Daemon 
   vers le File Daemon lorqu'il (le SD) se trouve en situation d'attente du montage 
   d'une cartouche par l'op\'erateur. La valeur par d\'efaut est z\'ero, ce qui d\'esactive 
   les pulsations. Cette fonctionnalit\'e est particuli\`erement utile si vous avez un 
   routeur (tel que les 3Com) qui ne suit pas les standards Internet et expire une 
   connection valide apr\`es une courte dur\'ee, bien que {\it keepalive} soit activ\'e. 
   Ceci produit habituellement un message d'erreur du type {\it broken pipe}.

\item [Maximum Concurrent Jobs = \lt{}nombre\gt{}]
   \index[sd]{Maximum Concurrent Jobs}
   \index[sd]{Directive!Maximum Concurrent Jobs}
   O\`u \lt{}nombre\gt{} est nombre maximal de jobs qui peuvent \^etre ex\'ecut\'es 
   simultan\'ement. La valeur par d\'efaut est fix\'ee \`a 10, mais vous pouvez d\'efinir 
   une valeur plus grande. Chaque connexion depuis le Director (par exemple 
   une requ\^ete de statut, le lancement d'un job...) est consid\'er\'ee comme un job, 
   aussi, si vous voulez conserver la possibilit\'e d'utiliser la commande 
   {\bf status} dans la console alors qu'un job est en cours d'ex\'ecution, vous 
   devez utiliser une valeur strictement sup\'erieure \`a 1. Pour ex\'ecuter plusieurs 
   jobs simultan\'ement, vous devez param\'etrer plusieurs autres directives dans le 
   fichier de configuration du Director. Selon ce que vous voulez faire, il faudra 
   intervenir sur l'un ou l'autre param\`etre, mais vous devrez presque surement 
   r\'egler le param\`etre {\bf Maximum Concurrent Jobs} de la ressource Storage du 
   fichier de configuration du Director, et peut-\^etre aussi ceux des ressources 
   Job et Client.
   
\item [SDAddresses = \lt{}Adresse IP\gt{}]
   \index[sd]{SDAddresses}
   \index[sd]{Directive!SDAddresses}
   Pr\'ecise les ports et adresses sur lesquels le Storage Daemon est \`a 
   l'\'ecoute de connections du Director. En principe, les valeurs par d\'efaut sont 
   suffisantes, et vous n'avez pas besoin d'utiliser cette directive. La meilleure 
   explication du fonctionnement de cette directive est certainement un exemple :
   
\footnotesize
\begin{verbatim}
 SDAddresses  = { ip = {
        addr = 1.2.3.4; port = 1205; }
    ipv4 = {
        addr = 1.2.3.4; port = http; }
    ipv6 = {
        addr = 1.2.3.4;
        port = 1205;
    }
    ip = {
        addr = 1.2.3.4
        port = 1205
    }
    ip = {
        addr = 1.2.3.4
    }
    ip = {
        addr = 201:220:222::2
    }
    ip = {
        addr = bluedot.thun.net
    }
}
\end{verbatim}
\normalsize

o\`u "ip", "ip4", "ip6", "addr", et "port" sont des mots-clef. Notez que les adresses 
peuvent \^etre sp\'ecifi\'ees sous forme de quadruplets point\'es, de nom symboliques 
(uniquement dans la sp\'ecification "ip") ou en notation IPv6 \`a double points. Le port 
peut quand \`a lui \^etre sp\'ecifi\'e par son num\'ero, ou par sa valeur mn\'emonique du 
fichier /etc/services. Si un port n'est pas sp\'ecifi\'e, la valeur par d\'efaut est 
utilis\'ee. Si une section ip est sp\'ecifi\'ee, la r\'esolution peut \^etre r\'ealis\'ee 
par ipv4 ou ipv6. En revanche, si ip4 ou ip6 est sp\'ecifi\'ee, seule la r\'esolution 
correspondante fonctionne.

Vous pouvez, avec ces directives, remplacer les valeurs des directives  SDPort et 
SDAddress montr\'ees ci-dessous.

\item [SDPort = \lt{}Num\'ero de port\gt{}]
   \index[sd]{SDPort}
   \index[sd]{Directive!SDPort}
   Sp\'ecifie le num\'ero de port sur lequel le Storage Daemon \'ecoute les connexions 
   en provenance du Director. La valeur par d\'efaut est 9103.
   
\item [SDAddress = \lt{}Adresse IP\gt{}]
   \index[sd]{SDAddress}
   \index[sd]{Directive!SDAddress}
    Cette directive est optionnelle. Lorsqu'elle est sp\'ecifi\'ee, le Storage Daemon n'accepte
    de connections (de Director(s) ou de File(s) Daemon(s)) que de l'adresse sp\'ecifi\'ee 
    {\bf Adresse-IP}, qui peut \^etre
    soit un nom de domaine, soit une adresse IP au format quadruplet point\'e.
    Si cette directive n'est pas sp\'ecifi\'ee, le Storage Daemon acceptera des connections de 
    de toute adresse valide. 

\end{description}

Voici une d\'efinition typique d'une ressource Storage du Storage Daemon :


\footnotesize
\begin{verbatim}
#
# "Global" Storage daemon configuration specifications appear
# under the Storage resource.
#
Storage {
  Name = "Storage daemon"
  Address = localhost
  WorkingDirectory = "~/bacula/working"
  Pid    Directory = "~/bacula/working"
}
\end{verbatim}
\normalsize

\section{La ressource Director}
\label{DirectorResource1}
\index[general]{Ressource Director}
\index[general]{Resource!Director}
\addcontentsline{toc}{section}{La ressource Director}

La ressource Director sp\'ecifie le nom du Director qui est autoris\'e 
\`a utiliser les services du Storage Daemon. Il peut exister plusieurs 
ressources Director. Le nom et le mot de passe du Director doivent 
s'accorder avec leurs homologues dans le fichier de configuration 
du Storage Daemon.

\begin{description}

\item [Name = \lt{}Nom-du-Director\gt{}]
   \index[sd]{Name}
   \index[sd]{Directive!Name}
   Sp\'ecifie le nom du Director autoris\'e \`a se connecter au Storage Daemon.
   Cette directive est requise.

\item [Password = \lt{}Mot-de-passe-du-Director\gt{}]
   \index[sd]{Password}
   \index[sd]{Directive!Password}
   Sp\'ecifie le mot de passe qui doit \^etre soumis par le Director susnomm\'e.
   Cette directive est requise.

\item [Monitor = \lt{}yes|no\gt{}]
   \index[sd]{Monitor}
   \index[sd]{Directive!Monitor}
   Si cette directive est d\'esactiv\'ee ({\bf no}), ce qui est le cas par d\'efaut, 
   ce Director dispose d'un acc\`es illimit\'e \`a ce Storage Daemon. Dans le cas 
   contraire, ce Director est brid\'e de fa\c {c}on \`a pouvoir seulement r\'ecup\'erer le 
   statut courant de ce Storage Daemon.

   Si ce Director est utilis\'e par un superviseur, nous vous recommandons 
   fortement d'activer cette directive pour \'eviter de s\'erieux probl\`emes de 
   s\'ecurit\'e.

\end{description}

Voici un exemple d'une d\'efinition de ressource Director valide :

\footnotesize
\begin{verbatim}
Director {
  Name = MainDirector
  Password = my_secret_password
}
\end{verbatim}
\normalsize

\label{DeviceResource}
\section{La Ressource Device}
\index[general]{Resource!Device}
\index[general]{Ressource Device}
\addcontentsline{toc}{section}{Ressource Device}

La ressource Device sp\'ecifie les d\'etails de chaque p\'eriph\'erique (en g\'en\'eral, 
un lecteur de bandes) qui peut \^etre utilis\'e par le Storage Daemon. Un 
Storage Daemon peut disposer de plusieurs ressources Device. En g\'en\'eral, 
les propri\'et\'es sp\'ecifi\'ees dans la ressource Device sont sp\'ecifiques 
au p\'eriph\'erique.

\begin{description}

\item [Name = {\it Nom-de-p\'eriph\'erique}]
   \index[sd]{Name}
   \index[sd]{Directive!Name}
   Sp\'ecifie le nom que le Director devra utiliser pour d\'esigner ce p\'eriph\'erique. 
   Il s'agit d'un nom logique, c'est une cha\^ine qui peut comporter jusqu'\`a 127 
   caract\`eres. C'est en g\'en\'eral une bonne id\'ee d'utiliser un nom qui corresponde 
   au nom "humain" du p\'eriph\'erique (NDT: la vo dit "the english name"). Le nom 
   physique du p\'eriph\'erique est sp\'ecifi\'e au niveau de la directive {\bf Archive Device} 
   d\'ecrite ci-dessous. Le nom que vous sp\'ecifiez ici est aussi utilis\'e dans le 
   fichier de configuration de votre Director au niveau de la 
   \ilink{directive Device}{StorageResource2} de sa ressource Storage.   

\item [Archive Device = {\it cha\^ine-nom}]
   \index[sd]{Archive Device}
   \index[sd]{Directive!Archive Device}
   La {\bf cha\^ine-nom} (NDT : name-string dans la vo) sp\'ecifie le nom de fichier syst\`eme 
   du p\'eriph\'erique de stockage g\'er\'e par ce daemon. Il s'agit en g\'en\'eral d'un nom 
   de p\'eriph\'erique amovible, par exemple un lecteur de bande d\'esign\'e par "{\bf /dev/nst0}" 
   ou "{\bf /dev/rmt/0mbn}". Dans le cas d'un graveur de DVD, ce sera par exemple 
   {\bf /dev/hdc}. Ce peut \^etre aussi un un nom de r\'epertoire si vous sauvegardez 
   sur disque. Dans ce cas, vous devez soumettre le chemin absolu vers ce 
   r\'epertoire. Lorsque vous utilisez un lecteur de bandes, il est pr\'ef\'erable 
   d'utiliser la variante "non-rewind" du fichier de p\'eriph\'erique. De plus, sur les 
   syst\`emes tels que Sun, qui disposent de plusieurs m\'ethodes d'acc\`es aux cartouches, 
   prenez soin de sp\'ecifier l'usage de la convention I/O Berkeley avec les p\'eriph\'eriques. 
   le {\bf b} de la sp\'ecification {\bf /dev/rmt/0mbn} Solaris (Sun) est ce qui est 
   requis dans ce cas. Bacula ne supporte pas le comportement SysV des lecteurs de bandes. 

   Comme mentionn\'e plus haut,Archive Device est, en principe, le nom d'un lecteur de bandes, 
   mais vous pouvez tout aussi bien sp\'ecifier le chemin absolu vers un r\'epertoire 
   existant. Dans ce cas, Bacula utilisera un fichier pour stocker les donn\'ees dans 
   le r\'epertoire sp\'ecifi\'e, le nom de fichier utilis\'e sera celui du volume tel que 
   sp\'ecifi\'e dans le catalogue. Si vous souhaitez \'ecrire dans plusieurs r\'epertoires 
   (dans le but de r\'epartir la charge sur plusieurs disques), vous devez d\'efinir deux ressources 
   Device, chacune comportant une Archive Device avec un r\'epertoire diff\'erent.
   
   Une troisi\`eme possibilit\'e consiste \`a sp\'ecifier le nom d'un FIFO. Un FIFO est un 
   fichier sp\'ecial qui connecte deux programmes via la m\'emoire du noyau. Si vous 
   sp\'ecifiez un FIFO en guise d'Archive Device, vous devez avoir un programme qui 
   lit ce que Bacula \'ecrit dans le FIFO. Lorsque le Storage Daemon d\'emarre le job, 
   il attend que le programme lecteur commence \`a lire pendant un d\'elai maximal de
   de {\bf MaximumOpenWait} secondes, au del\`a duquel le job est termin\'e. Par cons\'equent, 
   il est pr\'ef\'erable de lancer le programme lecteur au d\'ebut du job, par exemple 
   gr\^ace \`a la directive {\bf RunBeforeJob}. Pour ce type de p\'eriph\'erique, vous ne devez 
   jamais sp\'ecifier {\bf AlwaysOpen}, puisque vous voulez que le Storage Daemon 
   ne l'ouvre que lorsqu'un job d\'emarre, aussi veuillez attribuer  explicitement 
   la valeur {\bf No} \`a cette directive. Puisqu'un FIFO est un p\'eriph\'erique \`a sens 
   unique, Bacula ne tente pas d'en lire le label, il se contente d'y \'ecrire. Pour 
   cr\'eer un volume FIFO dans le catalogue, utilisez la commande {\bf add}  plut\^ot 
   que la commande {\bf label} afin d'\'eviter de tenter d'\'ecrire un label.
   
   Lors d'une op\'eration de restauration, si l'Archive Device est un FIFO, Bacula 
   tente de lire le FIFO, aussi vous devez avoir un programme externe qui \'ecrit dans 
   le FIFO. Bacula attend que ce programme commence \`a \'ecrire pendant un d\'elai 
   maximal de {\bf MaximumOpenWait} secondes apr\`es quoi il termine le job. Comme 
   mentionn\'e ci-dessus, vous pouvez utiliser la directive {\bf RunBeforeJob} pour 
   lancer ce programme auteur d\`es le d\'ebut du job.
  
   La directive Archive Device est requise. 

\item [Device Type = {\it Sp\'ecification-de-type}]
   \index[sd]{Device Type}
   \index[sd]{Directive!Device Type}
   La sp\'ecification Device Type de d\'eclarer explicitement \`a Bacula quel type  
   de p\'eriph\'erique vous d\'efinissez. La valeur de {\it Sp\'ecification-de-type} peut 
   \^etre l'une des suivantes :
   \begin{description}
   \item [File]
     Indique \`a Bacula que le p\'eriph\'erique est un fichier. Ce peut \^etre 
     un fichier d\'efini sur un m\'edium fixe ou au contraire amovible (par exemple, un 
     p\'eriph\'erique USB). Tous les fichiers doivent \^etre des p\'eriph\'eriques en acc\`es 
     s\'electif (NDT : traduction Google sans doute \`a revoir de "random access")
   \item[tape]
     Indique \`a Bacula que le p\'eriph\'erique est un lecteur de bandes, donc \`a 
     acc\`es s\'equentiel. Ces p\'eriph\'eriques sont control\'e par les appels 
     ioctl().
   \item[Fifo]
      Indique \`a Bacula que le p\'eriph\'erique est un p\'eriph\'erique \`a acc\`es 
      s\'equentiel "first-in-first-out" (premier entr\'e, premier sorti) en 
      lecture seule ou en \'ecriture seule.
   \item[DVD]
      Indique \`a Bacula que le p\'eriph\'erique est un DVD. Les DVDs sont \`a acc\`es 
      s\'equentiel en \'ecriture et \`a acc\`es s\'electif  (NDT : traduction Google sans 
      doute \`a revoir de "random access") en lecture.
   \end{description}
   
  La directive Device Type n'est pas requise, et si elle n'est pas sp\'ecifi\'ee, 
  Bacula tentera de deviner cette information selon la sp\'ecification Archive 
  Device fournie. Il existe plusieurs avantages \`a sp\'ecifier explicitement 
  le type de p\'eriph\'erique. D'abord, sur certains syst\`emes, les p\'eriph\'eriques 
  bloc et caract\`ere ont le m\^eme type, ce qui signifie que sur ces syst\`emes, 
  Bacula est probablement incapable de deviner qu'un p\'eriph\'erique est un DVD. 
  Ensuite, si vous sp\'ecifiez explicitement le type de p\'eriph\'erique, le point de 
  montage n'a pas besoin d'\^etre d\'efini jusqu'\`a ce que le p\'eriph\'erique soit ouvert. 
  C'est le cas de la plupart des p\'eriph\'eriques amovibles tels que les USB mont\'es 
  par le daemon HAL. Au contraire, si le type de p\'eriph\'erique n'est pas 
  sp\'ecifi\'e explicitement, le point de montage doit exister d\`es le 
  d\'emarrage du Storage Daemon.

  Cette directive est apparue avec la version 1.38.6 de Bacula.
  
\item [Media Type = {\it name-string}]
   \index[sd]{Media Type}
   \index[sd]{Directive!Media Type}
   La cha\^ine {\bf name-string} sp\'ecifi\'ee baptise le type de m\'edia support\'e par 
   ce p\'eriph\'erique, par exemple, "DLT7000". Les noms de type de m\'edia sont 
   arbitraires, vous pouvez utiliser le nom de votre choix, mais ils doivent 
   \^etre connus du catalogue pour qu'il puisse garder trace de quel daemon 
   peut lire quel type de m\'edia. En g\'en\'eral, chaque type de stockage devrait 
   avoir un type de m\'edia unique associ\'e. Le m\^eme nom {\bf name-string} doit 
   appara\^itre dans la d\'efinition de ressource Storage appropri\'ee du fichier 
   de configuration du Director.
   
   M\^eme si les noms que vous assignez sont arbitraires, vous devriez les choisir 
   avec circonspection, car le Media Type est utilis\'e pour d\'eterminer le 
   p\'eriph\'erique de stockage \`a s\'electionner lors d'une restauration. Ainsi, vous 
   devriez certainement utiliser le m\^eme Media Type pour tous les lecteurs 
   dont les cartouches sont interchangeables. Ce n'est g\'en\'eralement pas un 
   probl\`eme si vous n'avez qu'un Storage Daemon, mais c'en est un avec plusieurs 
   Storage Daemon, surtout s'ils utilisent des m\'edia incompatibles.
  
   Si, par exemple, vous sp\'ecifiez le Media Type "DDS-4", Bacula pourra lors de 
   restaurations s\'electionner tout Storage Daemon qui supporte les "DDS-4". 
   Si vous avez une librairie, vous voudrez peut-\^etre baptiser son Media Type 
   d'un nom qui lui soit unique, \`a moins que vous souhaitiez pouvoir utiliser 
   ses volumes dans d'autres lecteurs. Vous devriez aussi vous assurer d'avoir 
   des noms de Media Type uniques si les media ne sont pas compatibles d'un 
   lecteur \`a l'autre. Cette sp\'ecification est requise pour tous les 
   p\'eriph\'eriques.

   Enfin, si vous utilisez le stockage sur disque, sachez que chaque ressource 
   Device a g\'en\'eralement un point de montage (ou r\'epertoire) diff\'erent. Afin 
   que Bacula puisse s\'electionner correctement la ressource Device \`a utiliser, 
   chacun doit avoir un Media Type distinct.
   
\label{Autochanger}
\item [Autochanger = {\it Yes|No}]
   \index[sd]{Autochanger}
   \index[sd]{Directive!Autochanger}
   Si cette directive est \`a {\bf yes}, alors Bacula consid\`ere que le p\'eriph\'erique 
   concern\'e est dans une librairie, et il vous faut sp\'ecifier une ressource 
   {\bf Autochanger} qui pointe vers les ressources {\bf Device}. Vous devez 
   aussi renseigner la directive {\bf Changer Device}. Si la directive est \`a {\bf No} 
   (valeur par d\'efaut), les volumes doivent \^etre chang\'es manuellement. Vous devriez 
   aussi avoir une directive identique \`a la \ilink{Storage resource}{Autochanger1} dans 
   le fichier de configuration du Director, de sorte que Bacula vous demande le slot
   lors de l'\'etiquetage des cartouches.
   
\item [Changer Device = {\it cha\^ine-nom}]
   \index[sd]{Changer Device}
   \index[sd]{Directive!Changer Device}
   La {\bf cha\^ine-nom} sp\'ecifi\'ee doit \^etre le nom de p\'eriph\'erique {\bf SCSI g\'en\'erique} 
   associ\'e \`a l'{\bf Archive Device} sp\'ecifi\'ee dans la ressource Device. Ce nom de 
   p\'eriph\'erique SCSI g\'en\'erique devrait \^etre sp\'ecifi\'e si vous avez une librairie 
   ou si vous n'avez qu'un lecteur standard mais souhaitez utiliser la {\bf commande 
   Alert} (voir ci-dessous). Par exemple, sur les syst\`emes Linux, vous sp\'ecifierez 
   certainement {\bf /dev/nst0} pour le nom d'Archive Device, et {\bf /den/sg0} pour 
   le nom de Changer Device. Selon votre configuration, le nombre de librairies dont 
   vous disposez et leurs types, le nom que vous serez amen\'e \`a sp\'ecifier ici peut varier. 
   Cette directive est optionnelle. Consultez le chapitre 
   \ilink{Utiliser une librairie}{_ChapterStart18} de ce manuel pour plus de d\'etails 
   concernant les directives relatives aux librairies.

\item [Changer Command = {\it cha\^ine nom}]
   \index[sd]{Changer Command}
   \index[sd]{Directive!Changer Command}
   La {\bf cha\^ine-nom} d\'esigne un programme externe qui aura pour t\^ache le 
   changement des volumes \`a la demande de Bacula. En principe, cette directive 
   n'est sp\'ecifi\'ee qu'au niveau de la ressource {\bf AutoChanger}, qui est alors 
   utilis\'ee pour tous les p\'eriph\'eriques. Cependant, vous pouvez parfaitement 
   utiliser une commande {\bf Changer Command} diff\'erente pour chaque ressource Device. 
   La plupart du temps, vous sp\'ecifierez le script {\bf mtx-changer} fourni avec 
   Bacula de la fa\c {c}on suivante :

\footnotesize
\begin{verbatim}
Changer Command = "/path/mtx-changer %c %o %S %a %d"
\end{verbatim}
\normalsize

   Et vous installerez le programme {\bf mtx} sur votre syst\`eme (paquetage tiers). 
   Un exemple de cette commande figure dans le fichier de configuration par d\'efaut 
   du Storage Daemon, bacula-sd.conf. Pour plus de d\'etails concernant les 
   substitutions de caract\`eres qui peuvent \^etre utilis\'ees pour configurer 
   votre librairie, veuillez consulter le chapitre sur 
   l'\ilink{utilisation des Librairies}{_ChapterStart18}. Les utilisateurs 
   de FreeBSD voudront probablement jeter un oeil aux quelques scripts 
   fournis dans le r\'epertoire {\bf examples/autochangers}.   

\item [Alert Command = {\it name-string}]
   \index[sd]{Alert Command}
   La {\bf cha\^ine-nom} d\'esigne un programme externe \`a appeler au terme 
   de chaque job apr\`es que le p\'eriph\'erique ait \'et\'e lib\'er\'e. Le but de cette 
   commande est de r\'ecup\'erer d'\'eventuels messages d'alerte du lecteur pour 
   vous pr\'evenir si quelque chose ne fonctionne pas correctement (ces messages 
   existent au moins sur la plupart des lecteurs modernes). Les m\^emes 
   substitutions que celles d\'ecrites au niveau de la {\bf Changer command} 
   peuvent \^etre utilis\'ees ici. Pour plus d'informations, veuillez consulter 
   le chapitre sur les \ilink{Librairies}{_ChapterStart18} de ce manuel.

   Notez que vous pouvez trouver un usage \`a cette commande sans n\'ecessairement 
   poss\'eder une librairie. L'exemple ci-dessous utilise le programme {\bf tapeinfo} 
   qui vient avec le paquet {\bf mtx} mais peut \^etre utilis\'e avec n'importe quel 
   lecteur. Vous devrez tout de m\^eme sp\'ecifier une directive {\bf Changer Device} 
   dans votre ressource Device (voir ci-dessus) afin que le p\'eriph\'erique SCSI 
   g\'en\'erique puisse \^etre \'edit\'e dans la commande (avec \%c).

   Voici un exemple qui affiche les alertes en provenance du lecteur dans les 
   rapports de jobs :
   
\footnotesize
\begin{verbatim}
Alert Command = "sh -c 'tapeinfo -f %c | grep TapeAlert'"
      
\end{verbatim}
\normalsize

Et un exemple de ce qui peut en sortir lorqu'il y a un probl\`eme :

\footnotesize
\begin{verbatim}
bacula-sd  Alert: TapeAlert[32]: Interface: Problem with SCSI interface
                  between tape drive and initiator.
      
\end{verbatim}
\normalsize

\item [Drive Index = {\it number}]
   \index[sd]{Drive Index}
   \index[sd]{Directive!Drive Index}
   Le num\'ero de lecteur, ou {\bf Drive Index}, que vous sp\'ecifiez ici est 
   pass\'e au script {\bf mtx-changer} et donc au programe {\bf mtx}. 
   Par d\'efaut, le Drive Index vaut z\'ero, aussi, si vous n'avez qu'un 
   lecteur dans votre librairie, tout fonctionnera correctement. 
   Si en revanche vous avez plusieurs lecteurs, vous devez sp\'ecifier 
   plusieurs ressources Device (une par lecteur).
   Il n'est pas n\'ecessaire de sp\'ecifier la valeur z\'ero pour la directive 
   Drive Index dans la premi\`ere de ces ressources (valeur par d\'efaut). Par 
   contre, la seconde devrait contenir une directive Drive Index \'egale \`a 1, 
   la troisi\`eme une directive Drive Index \'egale \`a 2, et ainsi de suite. 
   A partir de la version 1.38.0, en utilisant la ressource {\bf Autochanger}, 
   Bacula s'assure qu'un seul lecteur \`a la fois utilise le script d'autochargement 
   (script mtx-changer), aussi vous n'avez plus besoin de scripts de verrouillage 
   comme ce fut le cas dans le pass\'e -- Le script mtx-change fourni avec Bacula 
   fonctionne avec un nombre quelconque de lecteurs.
   
\item [Autoselect = {\it Yes|No}]
   \index[sd]{Autoselect}
   \index[sd]{Directive!Autoselect}
   Si cette directive vaut {\bf yes} (valeur par d\'efaut), et si le p\'eriph\'erique 
   appartient \`a une librairie, alors lorsque la librairie est r\'ef\'erenc\'ee par 
   le Director, ce p\'eriph\'erique peut \^etre automatiquement s\'electionn\'e. 
   Si cette directive vaut {\bf no}, alors le p\'eriph\'erique peut seulement 
   \^etre d\'esign\'e par son nom de p\'eriph\'erique (Device Name) dans le 
   Director. Ceci permet de r\'eserver un lecteur pour une t\^ache particuli\`ere, 
   comme une sauvegarde hautement prioritaire, ou des op\'erations de restaurations.

\item [Maximum Changer Wait = {\it time}]
   \index[sd]{Maximum Changer Wait}
   \index[sd]{Directive!Maximum Changer Wait}
   Cette directive sp\'ecifie le d\'elai maximum, en secondes, pendant lequel Bacula 
   peut attendre d'une librairie qu'elle change de volume. Au del\`a de ce d\'elai, 
   Bacula invalide le num\'ero de slot r\'ef\'erenc\'e dans le catalogue et essaye \`a 
   nouveau. Si aucun autre volume n'est disponible dans la librairie, Bacula 
   r\'eclame l'intervention d'un op\'erateur. La valeur par d\'efaut est 5 minutes.
   
\item [Maximum Rewind Wait = {\it time}]
   \index[sd]{Maximum Rewind Wait}
   \index[sd]{Directive!Maximum Rewind Wait}
   Cette directive sp\'ecifie le d\'elai maximum, en secondes, pendant lequel Bacula 
   peut attendre d'un lecteur qu'il rembobine une cartouche. Au del\`a de ce d\'elai, 
   le job est effac\'e. La valeur par d\'efaut est 5 minutes.

\item [Maximum Open Wait = {\it time}]
   \index[sd]{Maximum Open Wait}
   \index[sd]{Directive!Maximum Open Wait}
    Cette directive sp\'ecifie le d\'elai maximum, en secondes, pendant lequel Bacula
    peut attendre apr\`es une commande Open.Au del\`a de ce d\'elai,
       le job est effac\'e. La valeur par d\'efaut est 5 minutes.

\item [Always Open = {\it Yes|No}]
   \index[sd]{Always Open}
   \index[sd]{Directive!Always Open}
   Si la valeur sp\'ecifi\'ee ici est {\bf Yes} (valeur par d\'efaut), Bacula garde le 
   p\'eriph\'erique ouvert, \`a moins qu'il ne soit explicitement d\'emont\'e ({\bf unmounted}) 
   depuis la console Bacula. Ceci permet \`a Bacula de s'assurer que le lecteur est 
   toujours disponible. Si vous r\'eglez  {\bf AlwaysOpen} \`a {\bf no} {\bf Bacula}, 
   Bacula ouvre le lecteur seulement lorsque n\'ecessaire, et le lib\`ere \`a la fin du 
   job, si aucun autre job ne l'utilise. Lors de l'utilisation suivante, Bacula 
   doit rembobiner la cartouche et se repositionner au bon endroit. Pour \'eviter 
   ces rembnobinages inutiles et les interventions de l'op\'erateur, il est 
   hautement recommand\'e de garder la valeur {\bf Always Open = yes}. Ceci assure 
   aussi que le lecteur est disponible lorsque Bacula en a besoin.

  Si vous avez sp\'ecifi\'e {\bf Always Open = yes} (comme recommand\'e) et si vous 
  voulez utiliser le lecteur pour autre chose, lib\'erez-le simplement avec la 
  commande  {\bf unmount} dans la console Bacula. N'oubliez-pas ensuite de 
  remonter le lecteur avec la commande  {\bf mount} afin que Bacula soit pr\`et 
  \`a prendre en charge le prochain job planifi\'e.

  Pour le stockage sur disque (File Storage), cette directive est ignor\'ee. Dans le 
  cas d'un stockage FIFO, vous devez mettre cette directive \`a {\bf No}.
   
  Notez bien que si vous mettez cette directive \`a {\bf No}, Bacula lib\`ere le 
  lecteur entre chaque job, obligeant le lecteur \`a rembobiner la cartouche, et 
  \`a replacer la bande \`a la fin de la zone de donn\'ees, ce qui peut prendre 
  beaucoup de temps.
  
\item [Volume Poll Interval = {\it p\'eriode}]
   \index[sd]{Volume Poll Interval}
   \index[sd]{Directive!Volume Poll Interval}
   Si la p\'eriode sp\'ecifi\'ee pour cette directive est non nulle alors, apr\`es avoir 
   demand\'e \`a l'op\'erateur de monter un nouveau volume, Bacula retentera 
   p\'eriodiquement de lire le lecteur selon la p\'eriode sp\'ecifi\'ee au cas o\`u un 
   nouveau volume aurait \'et\'e mont\'e. Si la valeur sp\'ecifi\'ee est z\'ero, ces 
   tentatives de lecture n'ont pas lieu. Cette directive est utile lorsque 
   vous souhaitez \'eviter l'intervention d'un op\'erateur \`a la console. Au lieu de 
   quoi l'op\'erateur se contente de sortir la cartouche pr\'ec\'edente et de monter la 
   nouvelle qui sera reconnue \`a la prochaine tentative. Soyez conscient que si vous 
   sp\'ecifiez une p\'eriode trop courte, vous risquez de solliciter excessivement 
   votre lecteur si la cartouche pr\'ec\'edente demeure dans le lecteur, puisque Bacula 
   la lira \`a chaque tentative. Vous pouvez \'eviter ceci en \'ejectant la cartouche avec 
   les directives {\bf Offline On Unmount} et  {\bf Close on Poll}.
   Cependant, si vous utilisez un noyau Linux 2.6 ou un autre syst\`eme d'exploitation tel 
   FreeBSD ou Solaris, les commandes Offline ou Unmount laisseront le lecteur sans cartouche, 
   et Bacula, incapable de d'ouvrir correctement le lecteur, pourrait \'echouer ses jobs. 
   Pour plus d'informations sur ce probl\`eme, veuillez consulter la section 
   \ilink{description of Offline On Unmount}{NoTapeInDrive}  du chapitre relatif 
   aux tests des lecteurs de bandes.

\item [Close on Poll= {\it Yes|No}]
   \index[sd]{Close on Poll}
   \index[sd]{Directive!Close on Poll}
   Si cette directive est \`a {\bf Yes}, Bacula ferme le p\'eriph\'erique et le r\'eouvre 
   \`a chaque tentative (ce qui est \'equivalent \`a unmount, sauf qu'il n'est pas 
   n\'ecessaire d'utiliser mount ensuite). En principe, cette directive n'est 
   pas tr\`es utile \`a moins que vous ayez activ\'e la directive  {\bf Offline on Unmount}, 
   auquel cas le lecteur sera consid\'er\'e hors-ligne (NDT : offline) pr\'evenant ainsi 
   de nombreux mouvements inutiles de la bande lors de chaque tentative de lecture. 
   Une fois que l'op\'erateur aura charg\'e une nouvelle cartouche, Bacula 
   sera en mesure de s'en rendre compte \`a la prochaine tentative  et poursuivra 
   automatiquement la sauvegarde. Voyez ci-dessus pour plus de d\'etails. 
   
\item [Maximum Open Wait = {\it time}]
   \index[sd]{Maximum Open Wait}
   \index[sd]{Directive!Maximum Open Wait}
   Cette directive sp\'ecifie le d\'elai maximum, en secondes que Bacula 
   accorde \`a un p\'eriph\'erique occup\'e. La valeur par d\'efaut est 5 minutes. 
   Si le p\'eriph\'erique ne peut \^etre obtenu, le job en cours est termin\'e en erreur. 
   Bacula tentera \`a nouveau d'ouvrir le lecteur lorsqu'un nouveau job le 
   r\'eclamera.

\item [Removable media = {\it Yes|No}]
   \index[sd]{Removable media}
   \index[sd]{Directive!Removable media}
   R\'eglez cette directive \`a {\bf Yes} si le p\'eriph\'erique concern\'e supporte des 
   m\'edia amovibles (par exemple des cartouches ou des CDROMs). Dans le cas de 
   m\'edia inamovibles (par exemple, une zone de sauvegardes interm\'ediaires sur un 
   disque dur), mettez {\bf Removable media = No}

\item [Random access = {\it Yes|No}]
   \index[sd]{Random access}
   \index[sd]{Directive!Random access}
   Si cette directive est \`a {\bf Yes}, le p\'eriph\'erique de stockage est consid\'er\'e 
   comme \'etant un m\'edium \`a acc\`es al\'eatoire (NDT : random access medium) qui 
   supporte les commodit\'es {\bf lseek} (ou {\bf lseek64} si l'option Largefile 
   a \'et\'e activ\'ee lors de la compilation).
   
\item [Minimum block size = {\it size-in-bytes}]
   \index[sd]{Minimum block size}
   \index[sd]{Directive!Minimum block size}
  Sur la plupart des lecteurs modernes, vous n'aurez pas besoin de cette 
  directive, dont le but est d'utiliser des blocs de taille fixe. Cette 
  directive ne s'applique qu'aux p\'eriph\'eriques \`a acc\`es s\'equentiel (NDT : 
  non-random access devices) comme, par exemple, les lecteurs de bandes. 
  Les blocs \'ecrits par le Storage Daemon sur un p\'eriph\'erique \`a acc\`es 
  s\'equentiel ne seront jamais de taille inf\'erieure \`a la taille sp\'ecifi\'ee 
  {\bf size-in-bytes}. Le Storage Daemon tente de remplir au mieux les blocs 
  avec les donn\'ees re\c {c}ues, mais il compl\`ete si n\'ecessaire pour atteindre 
  la taille minimum requise {\bf Minimum block size} .

  Pour contraindre la taille des blocs \`a \^etre fixe, comme c'est le cas de 
  certains p\'eriph\'eriques \`a acc\`es s\'equentiel, stipulez des tailles de blocs 
  minimum {\bf Minimum block size} et maximum {\bf Maximum block size} 
  identiques. Le param\'etrage par d\'efaut est 0 pour les deux directives 
  et la taille de bloc par d\'efaut est de 64 512 octets. 
 
  Par exemple, si vous souhaitez fixer la taille des blocs \`a 100K octets, sp\'ecifiez :
   
\footnotesize
\begin{verbatim}
 
    Minimum block size = 100K
    Maximum block size = 100K
    
\end{verbatim}
\normalsize
   Notez que si vous sp\'ecifiez une taille de blocs fixe comme ci-dessus, le 
   lecteur doit \^etre r\'egl\'e soit en mode "taille de blocs variable", soit en 
   mode "taille de blocs fixe" avec imp\'erativement la m\^eme taille de blocs 
   fixe que celle sp\'ecifi\'ee dans Bacula (ce param\`etre se r\`egle g\'en\'eralement 
   au niveau du lecteur avec {\bf mt}), faute de quoi vous aurez des erreurs \`a 
   la relecture de vos cartouches.
  
   Si vous voulez que votre taille de blocs soit variable mais comprise entre 
   64 Ko et 200 Ko, sp\'ecifiez :
   
\footnotesize
\begin{verbatim}
 
    Minimum block size = 64K
    Maximum blocksize = 200K
   
\end{verbatim}
\normalsize

\item [Maximum block size = {\it size-in-bytes}]
   \index[sd]{Maximum block size}
   \index[sd]{Directive!Maximum block size}
  Sur la plupart des lecteurs modernes, vous n'aurez pas besoin de cette
  directive. Dans le cas contraire, ce sera probablement pour utiliser 
  des blocs de taille fixe (voir la directive  Minimum block size ci dessus). 
  Le Storage Daemon tente d'\'ecrire des blocs de la taille sp\'ecifi\'ee 
  {\bf size-in-bytes} sur le p\'eriph\'erique. Par cons\'equent cette 
  directive fixe \`a la fois la taille maximale et la taille par d\'efaut 
  des blocs. La taille \'ecrite n'exc\`ede jamais la taille sp\'ecifi\'ee ici. 
  Lorsque l'ajout de donn\'ees provoquerait un d\'epassement, le bloc est 
  \'ecrit sur le p\'eriph\'erique, et un nouveau bloc est entam\'e.
  avec les donn\'ees re\c {c}ues, mais il compl\`ete si n\'ecessaire pour atteindre

  Si aucune valeur n'est sp\'ecifi\'ee (ou si la valeur sp\'ecifi\'ee est 0), le 
  Storage Daemon utilise la valeur par d\'efaut de 64 512 octets.
   
\item [Hardware End of Medium = {\it Yes|No}]
   \index[sd]{Hardware End of Medium}
   \index[sd]{Directive!Hardware End of Medium}
   Si la valeur attribu\'ee \`a cette directive est {\bf No}, le p\'eriph\'erique de 
   stockage n'a pas besoin de supporter les requ\^etes ioctl "fin de m\'edium",  
   le Storage Daemon utilisant la fonction d'avance jusqu'au prochain espace 
   pour trouver la fin du m\'edium. Si la valeur est {\bf Yes}, le p\'eriph\'erique 
   doit supporter l'appel {\tt ioctl}  {\tt MTEOM}  qui positionne la cartouche 
   \`a la fin des donn\'ees enregistr\'ees. De plus, votre driver SCSI doit garder trace 
   du nombre de fichiers enregistr\'es sur la cartouche, et le retourner correctement 
   \`a l'appel {\bf MTIOCGET} ioctl. Notez que certains pilotes SCSI savent se 
   positionner correctement \`a la fin de la zone de donn\'ees enregistr\'ees sur la cartouche, 
   mais ne gardent pas trace du nombre de fichiers. Sur les machines Linux, le 
   driver SCSI a une option {\bf fast-eod} qui, si elle est utilis\'ee 
   provoque la perte du nombre de fichiers. assurez-vous toujours que cette 
   option est bien d\'esactiv\'ee (\`a l'aide du programme {\bf mt}). 
   
   Le r\'eglage par d\'efaut de cette directive est {\bf Yes}. Cette option est utilis\'ee 
   lors de l'\'ecriture \`a la suite d'une cartouche, pour s'assurer que les donn\'ees 
   pr\'ec\'edemment \'ecrites ne seront pas corrompues. Nous vous recommandons, si vous 
   avez un lecteur non-standard ou inhabituel, de le tester avec le programme 
   {\bf btape} pour v\'erifier s'il supporte ou non cette fonction. Tous les lecteurs 
   modernes (au del\`a de 1998) la supportent.
   
\item [Fast Forward Space File = {\it Yes|No}]
   \index[sd]{Fast Forward Space File}
   \index[sd]{Directive!Fast Forward Space File}
   Si la valeur attribu\'ee \`a cette directive est {\bf No}, le p\'eriph\'erique de
   stockage n'a pas besoin de supporter les requ\^etes ioctl {\bf MTIOCGET} 
   "nombre de fichiers" lors du d\'eplacement sur la bande jusqu'au prochain espace. Si au contraire 
   vous sp\'ecifiez {\bf yes}, le lecteur doit supporter l'appel {\tt ioctl} {\tt MTFSF}, 
   que presque tous les pilotes supportent, mais de plus votre pilote SCSI doit 
   garder trace et retourner correctement le nombre de fichiers \`a l'appel 
   ioctl  {\bf MTIOCGET} . Notez que certains pilotes SCSI ex\'ecutent correctement 
   les d\'eplacements sur bande "jusqu'au prochain espace" sans toutefois garder trace 
   du nombre de fichiers enregistr\'es, et m\^eme plus grave pour certains : sans 
   signaler la fin du support.

   La valeur par d\'efaut de cette directive est  {\bf Yes}.

\item [Use MTIOCGET = {\it Yes|No}]
   \index[sd]{Use MTIOCGET}
   \index[sd]{Directive!Use MTIOCGET}
   Si la valeur attribu\'ee \`a cette directive est {\bf No}, le syst\`eme d'exploitation 
   n'a pas besoin de garder trace du nombre de fichiers sur la cartouche, ni de 
   le retourner \`a l'appel ioctl {\bf MTIOCGET}. La valeur par d\'efaut est {\bf Yes}. 
   Si vous devez mettre No ici, Bacula prendra en charge la d\'etermination des 
   positions de fichiers, mais cela implique des mouvements tr\`es inefficaces de la 
   bande. Heureusement, cette d\'eficience du syst\`eme d'exploitation semble n'\^etre 
   l'apanage que de quelques *BSD. Solaris, Linux et FreeBSD sont connus pour 
   fonctionner correctement.
   
\item [BSF at EOM = {\it Yes|No}]
   \index[sd]{BSF at EOM}
   \index[sd]{Directive!BSF at EOM}
    Si cette directive est \`a {\bf No} (valeur par d\'efaut), Bacula n'entreprend 
    aucune action particuli\`ere lorsque la fin du m\'edium est atteinte car 
    la cartouche est positionn\'ee apr\`es la derni\`ere marque de fin de fichier EOF, 
    et Bacula peut \'ecrire \`a la suite. Cependant, sur certains syst\`emes tels que 
    FreeBSD, lorsque Bacula lit la marque de fin de cartouche, la cartouche est 
    positionn\'ee apr\`es la seconde marque de fin de fichier EOF (deux marques EOF 
    successives indiquent la fin du support). Si Bacula \'ecrit au del\`a de cette 
    marque, toutes les donn\'ees ajout\'ees seront perdues. La solutions pour ces syst\`emes 
    consiste \`a sp\'ecifier {\bf BSF at EOM}, ainsi Bacula recule en \'ecrasant la 
    seconde marque de fin de fichier. Pour savoir si vous avez besoin de cette 
    directive, utilisez la commande {\bf test} du programme {\bf btape}.
 
(NDT : Paragraphe \`a revoir VO ci dessous) 
   If {\bf No}, the default, no special action is taken by  Bacula with the End
   of Medium (end of tape) is reached because  the tape will be positioned after
   the last EOF tape mark, and  Bacula can append to the tape as desired.
   However, on some  systems, such as FreeBSD, when Bacula reads the End of
   Medium  (end of tape), the tape will be positioned after the second  EOF tape
   mark (two successive EOF marks indicated End of  Medium). If Bacula appends
   from that point, all the appended  data will be lost. The solution for such
   systems is to  specify {\bf BSF at EOM} which causes Bacula to backspace  over
   the second EOF mark. Determination of whether or not  you need this directive
   is done using the {\bf test} command  in the {\bf btape} program.

\item [TWO EOF = {\it Yes|No}]
   \index[sd]{TWO EOF}
   \index[sd]{Directive!TWO EOF}
   Si cette directive est \`a {\bf Yes}, Bacula \'ecrit deux marques de fin de fichier EOF 
   lorsqu'il a fini d'utiliser une cartouche -- c'est \`a dire apr\`es le dernier 
   job, ou \`a la fin de la cartouche. Dans le cas contraire (la valeur par d\'efaut), 
   Bacula n'\'ecrit qu'une marque de fin de fichier pour terminer une cartouche.

\item [Backward Space Record = {\it Yes|No}]
   \index[sd]{Backward Space Record}
   \index[sd]{Directive!Backward Space Record}
   Si cette directive est \`a {\bf Yes}, le p\'eriph\'erique supporte {\tt MTBSR  ioctl} 
   pour reculer dans les enregistrements. Sinon, cet appel n'est pas utilis\'e 
   et la bande doit \^etre rembobin\'ee puis avanc\'ee de fichier en fichier jusqu'\`a 
   la position d\'esir\'ee. La valeur par d\'efaut est {\bf Yes} pour un p\'eriph\'erique 
   \`a acc\`es s\'equentiel. Cette fonction, si activ\'ee, est utilis\'ee \`a la fin des 
   volumes apr\`es \'ecriture d'une marque fin de fichier et de toute \'etiquette 
   ANSI/IBM pour d\'eterminer si oui ou non le dernier bloc a \'et\'e \'ecrit 
   correctement. Si vous d\'esactivez cette fonction, le test ne sera pas fait. 
   Ce n'est pas un probl\`eme car le processus de relecture est une 
   pr\'ecaution plut\^ot qu'une n\'ecessit\'e.
   
\item [Backward Space File = {\it Yes|No}]
   \index[sd]{Backward Space File}
   \index[sd]{Directive!Backward Space File}
   Si cette directive est \`a {\bf Yes}, le p\'eriph\'erique supporte les appels  
   {\bf MTBSF} et {\bf ioctl MTBSF} pour reculer en-de\c{c}a d'un marque de fin de fichier 
   et se replacer au d\'ebut du fichier. Si cette directive est \`a  {\bf No}, ces appels 
   ne sont pas utilis\'es et le lecteur doit rembobiner la cartouche, puis avancer 
   de fichier en fichier jusqu'\`a la position d\'esir\'ee. La valeur par d\'efaut est 
   {\bf Yes} pour les p\'eriph\'eriques \`a acc\`es s\'equentiel.

\item [Forward Space Record = {\it Yes|No}]
   \index[sd]{Forward Space Record}
   \index[sd]{Directive!Forward Space Record}
   Si cette directive est \`a {\bf Yes}, le p\'eriph\'erique doit supporter les appels
   {\bf MTFSR  ioctl} pour avancer \`a travers les 
   enregistrements. Si la valeur est {\bf No}, les donn\'ees doivent \^etre lues dans l'ordre 
   pour positionner la cartouche. La valeur par d\'efaut est 
   {\bf Yes} pour les p\'eriph\'eriques \`a acc\`es s\'equentiel.
   
\item [Forward Space File = {\it Yes|No}]
   \index[sd]{Forward Space File}
   \index[sd]{Directive!Forward Space File}
   Si cette directive est \`a {\bf Yes}, le p\'eriph\'erique doit supporter les appels
   {\tt MTFSF  ioctl} pour d\'eplacer la bande en se rep\'erant aux marques de fichiers. 
   Si la valeur est {\bf No}, les donn\'ees doivent \^etre lues pour positionner la 
   bande.  La valeur par d\'efaut est 
   {\bf Yes} pour les p\'eriph\'eriques \`a acc\`es s\'equentiel.

\item [Offline On Unmount = {\it Yes|No}]
   \index[sd]{Offline On Unmount}
   \index[sd]{Directive!Offline On Unmount}
   Si cette directive est \`a {\bf Yes}, le p\'eriph\'erique doit supporter les appels 
   {\tt MTOFFL ioctl} pour rembobiner et placer le volume \`a l'\'etat {\it offline}. 
   Dans ce cas, Bacula lance requ\^ete {\it eject} avant de fermer le lecteur lors 
   de la commande {\bf unmount}. Si la valeur est {\bf No} (valeur par d\'efaut), 
   Bacula ne tente pas de mettre la cartouche \`a l'\'etat {\it offline} avant de 
   la d\'emonter. Apr\`es que la cartouche ait \'et\'e mise hors ligne, elle est \'eject\'ee 
   requ\'erant ainsi {\bf l'intervention d'un op\'erateur} pour poursuivre. Certains 
   syst\`emes exigent que la commande de chargement {\bf mt -f /dev/xxx load} 
   soit lanc\'ee avant de pouvoir reconna\^itre la cartouche. Si vous utilisez une 
   librairie, sachez que certaines requi\`erent de passer le lecteur \`a l'\'etat 
   {\it offline} pour pouvoir changer de cartouche. Cependant, la plupart n'en 
   on pas besoin et pourraient \^etre d\'erout\'es si cette directive est \`a {\bf Yes}.
   
   Si vous utilisez un noyau Linux 2.6, ou un syst\`eme tel que FreeBSD ou Solaris, 
   la directive Offline On Unmount abandonnera votre lecteur sans cartouche, et Bacula 
   incapable de l'utiliser. Pour plus d'informations sur ce probl\`eme, 
   consultez la section \ilink{description de Offline On Unmount}{NoTapeInDrive} dans le 
   chapitre sur les tests de lecteurs.
   
\item [Maximum Volume Size = {\it size}]
   \index[sd]{Maximum Volume Size}
   \index[sd]{Directive!Maximum Volume Size}
   Avec cette directive, vous pouvez imposer une limite au poids de donn\'ees 
   \`a \'ecrire sur chaque volume. La valeur {\bf size} repr\'esente le nombre d'octets 
   autoris\'es. Cette directive est surtout utilis\'ee \`a des fins de tests pour 
   simuler des petits volumes, mais elle peut aussi se r\'ev\'eler utile si voulez 
   limiter la taille de vos volumes, par exemple \`a 2 Go. Certains rares lecteurs 
   vraiment anciens ne signalent pas correctement lorsque la fin de la 
   cartouche est atteinte lors d'une op\'eration d'\'ecriture (Bien que j'aie lu des 
   choses au sujet de tels lecteurs, je n'en n'ai jamais rencontr\'e moi-m\^eme). Notez 
   que cette directive est obsol\`ete, rendue inutile par la 
   directive {\bf Maximum Volume Bytes} d\'efinie dans le fichier de configuration 
   du Director.

\item [Maximum File Size = {\it size}]
   \index[sd]{Maximum File Size}
   \index[sd]{Directive!Maximum File Size}
   Cette directive vous permet d'imposer une limite au poids des fichiers logiques 
   sur le volume. La valeur {\bf size} repr\'esente le nombre d'octets autoris\'es 
   par fichier. Une fois cette valeur atteinte, une marque de fin de fichier est 
   plac\'ee sur le volume et les donn\'ees suivantes sont plac\'ees dans un nouveau 
   fichier. Ce d\'ecoupage des longues s\'equences de donn\'ees en blocs plus petits 
   permet un positionnement plus rapide du lecteur au d\'ebut d'un flux de donn\'ees 
   et peut contribuer \`a pr\'evenir les erreurs de lecture sur la cartouche lors des 
   restaurations. La valeur par d\'efaut est 1 Go.
   
\item [Block Positioning = {\it yes|no}]
   \index[sd]{Block Positioning}
   \index[sd]{Directive!Block Positioning}
   Cette directive n'est pas utilis\'ee en fonctionnement normal (et n'a pas encore 
   \'et\'e test\'ee). Son r\^ole est d'enjoindre Bacula \`a ne plus utiliser le 
   positionnement par blocs lors de la lecture des cartouches. Ceci peut rendre 
   les op\'erations de restauration {\bf extr\`emement} lentes. Vous utiliserez cette 
   directive si vous avez \'ecrit vos cartouches avec Bacula en mode "taille de blocs 
   variable" tandis que votre lecteur \'etait en taille de blocs fixe. Si tout 
   fonctionne comme je l'esp\`ere, Bacula sera capable de relire vos cartouches.

\item [Maximum Network Buffer Size = {\it bytes}]
   \index[sd]{Maximum Network Buffer Size}
   \index[sd]{Directive!Maximum Network Buffer Size}
   Cette directive permet de sp\'ecifier la taille initiale du tampon r\'eseau \`a 
   utiliser avec le File Daemon. La valeur {\bf bytes} est la taille exprim\'ee 
   en octets. Cette valeur es appel\'ee \`a \^etre ajust\'ee \`a la baisse si elle est 
   trop importante, jusqu'\`a ce qu'elle soit accep\'ee par le syst\`eme d'exploitation. 
   Soyez circonspect dans l'usage de cette directive, car si vous utilisez une 
   valeur trop grande, elle sera diminu\'ee par incr\'ements de 521 octets jusqu'\`a 
   satisfaction du syst\`eme d'exploitation, ce qui peut n\'ecessiter un grand nombre 
   d'appels syst\`eme. La valeur par d\'efaut est 32 768 octets.

   La valeur par d\'efaut a \'et\'e choisie relativement importante, mais pas trop, 
   au cas ou vous transmettriez vos donn\'ees via Internet. Il est clair que sur 
   un r\'eseau local rapide, vous pouvez augmenter cette valeur et am\'eliorer les 
   performances. Par exemple, certains utilisateurs ont obtenu des facteurs 
   d'acc\'el\'eration de l'ordre de 5 \`a 10 en utilisant un tampon r\'eseau initial de 
   65 536 octets. La plupart des utilisateurs indiquent que des valeurs plus 
   grandes ne semblent pas am\'eliorer les performances. Si vous voulez am\'eliorer 
   la viteese de vos sauvegardes, cette directive est probablement le meilleur 
   endroit pour exp\'erimenter. Vous voudrez probablement effectuer les 
   modifications correspondantes dans les fichiers de configuration de chacun  
   des File Daemons.
   
\item [Maximum Spool Size = {\it bytes}]
   \index[sd]{Maximum Spool Size}
   \index[sd]{Directive!Maximum Spool Size}
   Cette directive limite \`a la valeur sp\'ecifi\'ee (en octets) le volume occup\'e par 
   le tampon (NDT : spool) disque pour tous les jobs en ex\'ecution. Par d\'efaut, il n'y a 
   pas de limite.
   
\item [Maximum Job Spool Size = {\it bytes}]
   \index[sd]{Maximum Job Spool Size}
   \index[sd]{Directive!Maximum Job Spool Size}
   Cette directive limite \`a la valeur sp\'ecifi\'ee (en octets) le volume occup\'e par 
   le tampon disque pour chaque job. Par d\'efaut, il n'y a pas de limite. Cette 
   directive est apparue avel la version 1.37.
   
\item [Spool Directory = {\it directory}]
   \index[sd]{Spool Directory}
   \index[sd]{Directive!Spool Directory}
   Cette directive sp\'ecifie le nom du r\'epertoire \`a utiliser en tant que tampon 
   disque pour ce p\'eriph\'erique. Ce r\'epertoire est aussi utilis\'e pour stocker 
   les fichiers partiels lors de l'\'ecriture sur des supports qui requi\`erent 
   un montage (DVD). Le comportement par d\'efaut est d'utiliser le r\'epertoire 
   de travail de Bacula (working directory).

\item [Maximum Part Size = {\it bytes}]
   \index[sd]{Maximum Part Size}
   \index[sd]{Directive!Maximum Part Size}
   Cette directive pr\'ecise la taille maximale (en octets) d'un fichier partiel. Par d\'efaut, 
   il n'y a pas de limite. Cette directive est apparue avec la version 1.37.

   Si le p\'eriph\'erique requiert un montage, l'ordre de montage est transmis lorsque 
   cette valeur est atteinte. Dans ce cas, vous devez vous assurer d'avor suffisament 
   d'espace dans votre r\'epertoire tampon, faute de quoi vos donn\'ees resteront dans le 
   r\'epertoire tampon.

   Cette directive est ignor\'ee pour les lecteurs de bandes et les FIFO.

\end{description}

\section{P\'eriph\'eriques qui requi\`erent un montage (DVD)}
\index[general]{P\'eriph\'eriques qui requi\`erent un montage (DVD)}
\index[general]{DVD!P\'eriph\'eriques qui requi\`erent un montage}
\addcontentsline{toc}{section}{P\'eriph\'eriques qui requi\`erent un montage (DVD)}

Toutes les directives d\'ecrites dans cette section sont impl\'ement\'ees dans Bacula 
\`a partir de la version 1.37.

A partir de la version 1.39.5, les directives "Requires Mount", "Mount Point", 
"Mount Command", et "Unmount Command" s'appliquent aux syst\`emes de fichiers 
amovibles tels que les p\'erih\'eriques USB, et plus seulement aux DVDs.

\begin{description}

\item [Requires Mount = {\it Yes|No}]
   \index[sd]{Requires Mount}
   \index[sd]{Directive!Requires Mount}
   Cette directive doit \^etre \`a {\bf yes} pour les graveurs de DVDs, et \`a {\bf no} 
   pour tous les autres p\'eriph\'eriques (cartouches/fichiers). Elle indique si 
   le p\'eriph\'erique n\'ecessite d'\^etre mont\'e pour \^etre lu, et si un moyen particulier 
   doit \^etre employ\'e pour y \'ecrire. Si vous activez cette directive, vous devez aussi 
   d\'efinir les directives {\bf Mount Point},  {\bf Mount Command}, {\bf Unmount Command} 
   et {\bf Write Part Command}.

\item [Mount Point = {\it directory}]
   \index[sd]{Mount Point}
   \index[sd]{Directive!Mount Point}
   Cette directive sp\'ecifie le r\'epertoire o\`u le p\'eriph\'erique peut \^etre mont\'e. 
   (le point de montage)
   
\item [Mount Command = {\it name-string}]
   \index[sd]{Mount Command}
   \index[sd]{Directive!Mount Command}
   Cette directive sp\'ecifie la commande \`a ex\'ecuter pour monter le p\'eriph\'erique. 
   Avant l'ex\'ecution de la commande, \%a est remplac\'e par le p\'eriph\'erique de 
   stockage, et \%m par le point de montage (Mount Point).

   La plupart du temps, vous le d\'efinirez ainsi :

\footnotesize
\begin{verbatim}
  Mount Command = "/bin/mount -t iso9660 -o ro %a %m"
\end{verbatim}
\normalsize

\item [Unmount Command = {\it name-string}]
   \index[sd]{Unmount Command}
   \index[sd]{Directive!Unmount Command}
   Cette directive sp\'ecifie la commande \`a ex\'ecuter pour d\'emonter le p\'eriph\'erique. 
   Avant l'ex\'ecution de la commande, \%a est remplac\'e par le p\'eriph\'erique de
   stockage, et \%m par le point de montage (Mount Point).
      
   La plupart du temps, vous le d\'efinirez ainsi :

\footnotesize
\begin{verbatim}
  Unmount Command = "/bin/umount %m"
\end{verbatim}
\normalsize

\item [Write Part Command = {\it name-string}]
   \index[sd]{Write Part Command}
   \index[sd]{Directive!Write Part Command}
   Cette directive sp\'ecifie la commande \`a ex\'ecuter pour  \'ecrire une partition (NDT : Revoir cette partie, VO ci-dessous) 
   sur le p\'eriph\'erique. Avant l'ex\'ecution de la commande, \%a est remplac\'e par le p\'eriph\'erique de
   stockage, \%m par le point de montage, \%e par 1 s'il s'agit de la premi\`ere 
   partition, 0 sinon, et \%v avec le nom de fichier de la partition courante.

   Pour un DVD, vous utiliserez la plupart du temps le script fourni {\bf dvd-handler} 
   comme suit :

Command that must be executed to write a part to the device. Before the 
   command is executed, \%a is replaced with the Archive Device, \%m with the 
   Mount Point, \%e is replaced with 1 if we are writing the first part,
   and with 0 otherwise, and \%v with the current part filename.

   For a DVD, you will most frequently specify the Bacula supplied  {\bf
   dvd-handler} script as follows:  

\footnotesize
\begin{verbatim}
  Write Part Command = "/path/dvd-handler %a write %e %v"
\end{verbatim}
\normalsize

  O\`u {\bf /path} est le chemin vers votre r\'epertoire de scripts, et 
  dvd-handler est le script fourni avec Bacula. Cette commande est d\'ej\`a pr\'esente 
  quoique comment\'ee dans le fichier de configuration du Storage Daemon. Pour l'utiliser, 
  il vous suffit de supprimer le caract\`ere \#.

\item [Free Space Command = {\it name-string}]
   \index[sd]{Free Space Command}
   \index[sd]{Directive!Free Space Command}
   Cette directive sp\'ecifie la commande \`a ex\'ecuter pour contr\^oler l'espace disponible 
   sur le p\'eriph\'erique. Avant l'ex\'ecution de la commande, \%a est remplac\'e par le p\'eriph\'erique de 
   stockage, \%m par le point de montage, \%e par 1 s'il s'agit de la premi\`ere
   partition, 0 sinon, et \%v avec le nom de fichier de la partition courante.

   Pour un DVD, vous utiliserez la plupart du temps le script fourni {\bf dvd-handler}
   comme suit :

\footnotesize
\begin{verbatim}
  Free Space Command = "/path/dvd-handler %a free"
\end{verbatim}
\normalsize

   O\`u {\bf /path} est le chemin vers votre r\'epertoire de scripts, et
   dvd-handler est le script fourni avec Bacula. Si vous voulez 
   sp\'ecifier votre propre commande, examinez le code de dvd-handler afin de 
   voir le type de retour attendu par Bacula. Cette commande est d\'ej\`a pr\'esente
   quoique comment\'ee dans le fichier de configuration du Storage Daemon. Pour l'utiliser,
   il vous suffit de supprimer le caract\`ere \#.

   Si vous n'utilisez pas cette directive, Bacula s'attendra \`a ce qu'il y ait 
   toujours de la place dur le p\'eriph\'erique.

\end{description}

%% This pulls in the Autochanger resource from another file.
\label{AutochangerRes}
\label{AutochangerResource1}
\input{autochangerres}


\section{Possibilit\'es}
\index[general]{Possibilit\'es}
\addcontentsline{toc}{section}{Possibilit\'es}

\begin{description}

\item [Label media = {\it Yes|No}]
   \index[sd]{Label media}
   \index[sd]{Directive!Label media}
   Si cette directive est activ\'ee ({\bf Yes}), alors ce p\'eriph\'erique est 
   habilit\'e \`a \'etiqueter les media libres sans ordre explicite de l'op\'erateur. 
   Ceci est r\'ealis\'e selon un algorithme interne et suivant le format 
   d\'efini par l'enregistrement \ilink{Label Format}{Label} de chaque 
   ressource Pool. Si cette directive est \`a {\bf No} (valeur par d\'efaut), 
   Bacula n'\'etiquette les cartouches que sur instruction expresse de 
   l'op\'erateur (commande {\bf label} de la Console) ou lorsqu'une cartouche 
   a \'et\'e recycl\'ee. Cette fonctionnalit\'e est plus utile dans le cas de sauvegardes 
   sur disque qu'avec des cartouches.

\item [Automatic mount = {\it Yes|No}]
   \index[sd]{Automatic mount}
   \index[sd]{Directive!Automatic mount}
   Si cette directive est activ\'ee (c'est le cas par d\'efaut), le Storage Daemon 
   est autoris\'e \`a examiner le p\'eriph\'erique afin de d\'eterminer s'il contient 
   un volume \'etiquet\'e Bacula. Ceci est alors fait au d\'emarrage du {\it daemon}, 
   et au d\'ebut de chaque job. Cette directive est particuli\`erement importante 
   si vous avez sp\'ecifi\'e  {\bf Always Open = no}  car elle permet \`a 
   Bacula de tenter de lire le p\'eriph\'erique avant de demander \`a l'op\'erateur 
   de monter une cartouche. Notez cependant que la cartouche doit \^etre 
   mont\'ee avant le lancement du job.

\end{description}

\section{La ressource Messages}
\label{MessagesResource1}
\index[general]{Ressource!Messages}
\index[general]{Ressource Messages}
\addcontentsline{toc}{section}{Resource Messages}

Pour une description de la ressource Messages, veuillez consulter 
le chapitre \ilink{La ressource Messages}{_ChapterStart15} de ce 
manuel.

\section{Un exemple de fichier de configuration du Storage Daemon}
\label{SampleConfiguration}
\index[general]{Fichier!Exemple configuration Storage Daemon}
\index[general]{Exemple fichier configuration Storage Daemon}
\addcontentsline{toc}{section}{Exemple fichier configuration Storage Daemon}

Voici un exemple de fichier de configuration du Storage Daemon :

\footnotesize
\begin{verbatim}
#
# Default Bacula Storage Daemon Configuration file
#
#  For Bacula release 1.37.2 (07 July 2005) -- gentoo 1.4.16
#
# You may need to change the name of your tape drive
#   on the "Archive Device" directive in the Device
#   resource.  If you change the Name and/or the
#   "Media Type" in the Device resource, please ensure
#   that bacula-dir.conf has corresponding changes.
#
Storage {                               # definition of myself
  Name = rufus-sd
  Address = rufus
  WorkingDirectory = "$HOME/bacula/bin/working"
  Pid Directory = "$HOME/bacula/bin/working"
  Maximum Concurrent Jobs = 20
}
#
# List Directors who are permitted to contact Storage daemon
#
Director {
  Name = rufus-dir
  Password = "ZF9Ctf5PQoWCPkmR3s4atCB0usUPg+vWWyIo2VS5ti6k"
}
#
# Restricted Director, used by tray-monitor to get the
#   status of the storage daemon
#
Director {
  Name = rufus-mon
  Password = "9usxgc307dMbe7jbD16v0PXlhD64UVasIDD0DH2WAujcDsc6"
  Monitor = yes
}
#
# Devices supported by this Storage daemon
# To connect, the Director's bacula-dir.conf must have the
#  same Name and MediaType.
#
Autochanger {
  Name = Autochanger
  Device = Drive-1
  Device = Drive-2
  Changer Command = "/home/kern/bacula/bin/mtx-changer %c %o %S %a %d"
  Changer Device = /dev/sg0
}

Device {
  Name = Drive-1                      #
  Drive Index = 0 
  Media Type = DLT-8000
  Archive Device = /dev/nst0
  AutomaticMount = yes;               # when device opened, read it
  AlwaysOpen = yes;
  RemovableMedia = yes;
  RandomAccess = no;
  AutoChanger = yes
  Alert Command = "sh -c 'tapeinfo -f %c |grep TapeAlert|cat'"
}

Device {
  Name = Drive-2                      #
  Drive Index = 1
  Media Type = DLT-8000
  Archive Device = /dev/nst1
  AutomaticMount = yes;               # when device opened, read it
  AlwaysOpen = yes;
  RemovableMedia = yes;
  RandomAccess = no;
  AutoChanger = yes
  Alert Command = "sh -c 'tapeinfo -f %c |grep TapeAlert|cat'"
}

Device {
  Name = "HP DLT 80"
  Media Type = DLT8000
  Archive Device = /dev/nst0
  AutomaticMount = yes;                 # when device opened, read it
  AlwaysOpen = yes;
  RemovableMedia = yes;
}
#Device {
#  Name = SDT-7000                     #
#  Media Type = DDS-2
#  Archive Device = /dev/nst0
#  AutomaticMount = yes;               # when device opened, read it
#  AlwaysOpen = yes;
#  RemovableMedia = yes;
#}
#Device {
#  Name = Floppy
#  Media Type = Floppy
#  Archive Device = /mnt/floppy
#  RemovableMedia = yes;
#  Random Access = Yes;
#  AutomaticMount = yes;               # when device opened, read it
#  AlwaysOpen = no;
#}
#Device {
#  Name = FileStorage
#  Media Type = File
#  Archive Device = /tmp
#  LabelMedia = yes;                   # lets Bacula label unlabeled media
#  Random Access = Yes;
#  AutomaticMount = yes;               # when device opened, read it
#  RemovableMedia = no;
#  AlwaysOpen = no;
#}
#Device {
#  Name = "NEC ND-1300A"
#  Media Type = DVD
#  Archive Device = /dev/hda
#  LabelMedia = yes;                   # lets Bacula label unlabeled media
#  Random Access = Yes;
#  AutomaticMount = yes;               # when device opened, read it
#  RemovableMedia = yes;
#  AlwaysOpen = no;
#  MaximumPartSize = 800M;
#  RequiresMount = yes;
#  MountPoint = /mnt/cdrom;
#  MountCommand = "/bin/mount -t iso9660 -o ro %a %m";
#  UnmountCommand = "/bin/umount %m";
#  SpoolDirectory = /tmp/backup;
#  WritePartCommand = "/etc/bacula/dvd-handler %a write %e %v"
#  FreeSpaceCommand = "/etc/bacula/dvd-handler %a free"
#}
#
# A very old Exabyte with no end of media detection
#
#Device {
#  Name = "Exabyte 8mm"
#  Media Type = "8mm"
#  Archive Device = /dev/nst0
#  Hardware end of medium = No;
#  AutomaticMount = yes;               # when device opened, read it
#  AlwaysOpen = Yes;
#  RemovableMedia = yes;
#}
#
# Send all messages to the Director,
# mount messages also are sent to the email address
#
Messages {
  Name = Standard
  director = rufus-dir = all
  operator = root = mount
}
\end{verbatim}
\normalsize
