%%
%%

\section*{Configuration du Storage Daemon}
\label{_ChapterStart31}
\index[general]{Configuration du Storage Daemon}
\index[general]{Configuration!Storage Daemon}
\addcontentsline{toc}{section}{Configuration du Storage Daemon}

\subsection*{General}
\index[general]{General}
\addcontentsline{toc}{subsection}{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}

\subsection*{Ressource Storage}
\label{StorageResource}
\index[general]{Ressource!Storage}
\index[general]{Ressource Sorage}
\addcontentsline{toc}{subsection}{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

\subsection*{La ressource Director}
\label{DirectorResource1}
\index[general]{Ressource Director}
\index[general]{Resource!Director}
\addcontentsline{toc}{subsection}{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\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}
\subsection*{La Ressource Device}
\index[general]{Resource!Device}
\index[general]{Ressource Device}
\addcontentsline{toc}{subsection}{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Ã¢ce \`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èmes 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\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Ã¢che 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Ã¨s 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Ã¨re \`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Ã¨t 
  \`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Ã¨re 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Ã¨s 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Ã¹ 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Ã¨me 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Ã¨me, 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Ã¨s 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}
   If {\bf Yes}, the archive device is assumed to be a random access medium
   which supports the {\bf lseek} (or {\bf lseek64} if Largefile is enabled
   during configuration) facility.

\item [Minimum block size = {\it size-in-bytes}]
   \index[sd]{Minimum block size}
   \index[sd]{Directive!Minimum block size}
   On most modern tape drives, you will not need or wamt to specify this
   directive, and if you do so, it will be to make Bacula use fixed block
   sizes.  This statement applies only to non-random access devices (e.g.
   tape drives).  Blocks written by the storage daemon to a non-random
   archive device will never be smaller than the given {\bf size-in-bytes}.
   The Storage daemon will attempt to efficiently fill blocks with data
   received from active sessions but will, if necessary, add padding to a
   block to achieve the required minimum size.
   
   To force the block size to be fixed, as is the case for some non-random
   access devices (tape drives), set the {\bf Minimum block size} and the
   {\bf Maximum block size} to the same value (zero included).  The default
   is that both the minimum and maximum block size are zero and the default
   block size is 64,512 bytes.  If you wish the block size to be fixed and
   different from the default, specify the same value for both {\bf Minimum
   block size} and {\bf Maximum block size}.
   
   For  example, suppose you want a fixed block size of 100K bytes, then you 
   would specify:  

\footnotesize
\begin{verbatim}
 
    Minimum block size = 100K
    Maximum block size = 100K
    
\end{verbatim}
\normalsize

   Please note that if you specify a fixed block size as shown above,  the tape
   drive must either be in variable block size mode, or  if it is in fixed block
   size mode, the block size (generally  defined by {\bf mt}) {\bf must} be
   identical to the size specified  in Bacula -- otherwise when you attempt to
   re-read your Volumes,  you will get an error.  
   
   If you want the  block size to be variable but with a 64K minimum and 200K
   maximum (and  default as well), you would specify:  

\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}
   On most modern tape drives, you will not need to specify this directive.
   If you do so, it will most likely be to use fixed block sizes (see
   Minimum block size above).  The Storage daemon will aways attempt to
   write blocks of the specified {\bf size-in-bytes} to the archive device.
   As a consequence, this statement specifies both the default block size
   and the maximum block size.  The size written never exceed the given
   {\bf size-in-bytes}.  If adding data to a block would cause it to exceed
   the given maximum size, the block will be written to the archive device,
   and the new data will begin a new block.
   
   If no value is specified or zero is specified, the Storage daemon will
   use a default block size of 64,512 bytes (126 * 512).

\item [Hardware End of Medium = {\it Yes|No}]
   \index[sd]{Hardware End of Medium}
   \index[sd]{Directive!Hardware End of Medium}
   If {\bf No}, the archive device is not required to support end  of medium
   ioctl request, and the storage daemon will use the forward  space file
   function to find the end of the recorded data. If  {\bf Yes}, the archive
   device must support the {\tt ioctl}  {\tt MTEOM} call, which will position the
   tape to the end of the  recorded data. In addition, your SCSI driver must keep
   track  of the file number on the tape and report it back correctly by  the
   {\bf MTIOCGET} ioctl. Note, some SCSI drivers will correctly  forward space to
   the end of the recorded data, but they do not  keep track of the file number.
   On Linux machines, the SCSI driver  has a {\bf fast-eod} option, which if set
   will cause the driver  to lose track of the file number. You should ensure
   that this  option is always turned off using the {\bf mt} program.  
   
   Default setting for Hardware End of Medium is {\bf Yes}. This  function is
   used before appending to a tape to ensure that no  previously written data is
   lost. We recommend if you have a non-standard or unusual tape drive that you
   use the {\bf btape} program  to test your drive to see whether or not it
   supports this function.  All modern (after 1998) tape drives support this
   feature.  
   
\item [Fast Forward Space File = {\it Yes|No}]
   \index[sd]{Fast Forward Space File}
   \index[sd]{Directive!Fast Forward Space File}
   If {\bf No}, the archive device is not required to support  keeping track of
   the file number ({\bf MTIOCGET} ioctl) during  forward space file. If {\bf
   Yes}, the archive device must support  the {\tt ioctl} {\tt MTFSF} call, which
   virtually all drivers  support, but in addition, your SCSI driver must keep
   track of the  file number on the tape and report it back correctly by the 
   {\bf MTIOCGET} ioctl. Note, some SCSI drivers will correctly  forward space,
   but they do not keep track of the file number or more  seriously, they do not
   report end of meduim.  
   
   Default setting for Fast Forward Space File is {\bf Yes}.
   
\item [Use MTIOCGET = {\it Yes|No}]
   \index[sd]{Fast Forward Space File}
   \index[sd]{Directive!Fast Forward Space File}
   If {\bf No}, the operating system is not required to support keeping track of
   the file number and reporting it in the ({\bf MTIOCGET} ioctl). The default
   is {\bf Yes}. If you must set this to No, Bacula will do the proper file
   position determination, but it is very unfortunate because it means that 
   tape movement is very inefficient.
   Fortunately, this operation system deficiency seems to be the case only
   on a few *BSD systems.  Operating systems known to work correctly are
   Solaris, Linux and FreeBSD.

\item [BSF at EOM = {\it Yes|No}]
   \index[sd]{BSF at EOM}
   \index[sd]{Directive!BSF at EOM}
   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}
   If {\bf Yes}, Bacula will write two end of file marks when  terminating a tape
-- i.e. after the last job or at the end of  the medium. If {\bf No}, the
default, Bacula will only write  one end of file to terminate the tape. 

\item [Backward Space Record = {\it Yes|No}]
   \index[sd]{Backward Space Record}
   \index[sd]{Directive!Backward Space Record}
   If {\it Yes}, the archive device supports the {\tt MTBSR  ioctl} to backspace
   records. If {\it No}, this call is not  used and the device must be rewound
   and advanced forward to the  desired position. Default is {\bf Yes} for non
   random-access  devices. This function if enabled is used at the end of a 
   Volume after writing the end of file and any ANSI/IBM labels to determine whether
   or not the last block was written correctly. If you turn this function off,
   the test will not be done. This causes no harm as the re-read process is
   precautionary rather than required.

\item [Backward Space File = {\it Yes|No}]
   \index[sd]{Backward Space File}
   \index[sd]{Directive!Backward Space File}
   If {\it Yes}, the archive device supports the {\bf MTBSF} and  {\bf MTBSF
  ioctl}s to backspace over an end of file mark and to the  start of a file. If
  {\it No}, these calls are not used and the  device must be rewound and
  advanced forward to the desired position.  Default is {\bf Yes} for non
  random-access devices. 

\item [Forward Space Record = {\it Yes|No}]
   \index[sd]{Forward Space Record}
   \index[sd]{Directive!Forward Space Record}
   If {\it Yes}, the archive device must support the {\bf MTFSR  ioctl} to
   forward space over records. If {\bf No}, data must  be read in order to
   advance the position on the device. Default is  {\bf Yes} for non
   random-access devices. 

\item [Forward Space File = {\it Yes|No}]
   \index[sd]{Forward Space File}
   \index[sd]{Directive!Forward Space File}
   If {\bf Yes}, the archive device must support the {\tt MTFSF  ioctl} to
   forward space by file marks. If {\it No}, data  must be read to advance the
   position on the device. Default is  {\bf Yes} for non random-access devices. 

\item [Offline On Unmount = {\it Yes|No}]
   \index[sd]{Offline On Unmount}
   \index[sd]{Directive!Offline On Unmount}
   The default for this directive is {\bf No}. If {\bf Yes} the  archive device
   must support the {\tt MTOFFL ioctl} to rewind and  take the volume offline. In
   this case, Bacula will issue the  offline (eject) request before closing the
   device during the {\bf unmount}  command. If {\bf No} Bacula will not attempt
   to offline the  device before unmounting it. After an offline is issued,  the
   cassette will be ejected thus {\bf requiring operator intervention}  to
   continue, and on some systems require an explicit load command  to be issued
   ({\bf mt -f /dev/xxx load}) before the system will recognize  the tape. If you
   are using an autochanger, some devices  require an offline to be issued prior
   to changing the volume. However,  most devices do not and may get very
   confused.  

   If you are using a Linux 2.6 kernel or other OSes
   such as FreeBSD or Solaris, the Offline On Unmount will leave the drive
   with no tape, and Bacula will not be able to properly open the drive and
   may fail the job.  For more information on this problem, please see the
   \ilink{description of Offline On Unmount}{NoTapeInDrive} in the Tape
   Testing chapter.


\item [Maximum Volume Size = {\it size}]
   \index[sd]{Maximum Volume Size}
   \index[sd]{Directive!Maximum Volume Size}
   No more than {\bf size} bytes will be written onto a given volume on the
   archive device.  This directive is used mainly in testing Bacula to
   simulate a small Volume.  It can also be useful if you wish to limit the
   size of a File Volume to say less than 2GB of data.  In some rare cases
   of really antiquated tape drives that do not properly indicate when the
   end of a tape is reached during writing (though I have read about such
   drives, I have never personally encountered one).  Please note, this
   directive is deprecated (being phased out) in favor of the {\bf Maximum
   Volume Bytes} defined in the Director's configuration file.

\item [Maximum File Size = {\it size}]
   \index[sd]{Maximum File Size}
   \index[sd]{Directive!Maximum File Size}
   No more than {\bf size} bytes will be written into a given logical file
   on the volume.  Once this size is reached, an end of file mark is
   written on the volume and subsequent data are written into the next
   file.  Breaking long sequences of data blocks with file marks permits
   quicker positioning to the start of a given stream of data and can
   improve recovery from read errors on the volume.  The default is one
   Gigabyte.

\item [Block Positioning = {\it yes|no}]
   \index[sd]{Block Positioning}
   \index[sd]{Directive!Block Positioning}
   This directive is not normally used (and has not yet been  tested). It will
   tell Bacula not to use block positioning when  it is reading tapes. This can
   cause Bacula to be {\bf extremely}  slow when restoring files. You might use
   this directive if you  wrote your tapes with Bacula in variable block mode
   (the default),  but your drive was in fixed block mode. If it then works as  I
   hope, Bacula will be able to re-read your tapes. 

\item [Maximum Network Buffer Size = {\it bytes}]
   \index[sd]{Maximum Network Buffer Size}
   \index[sd]{Directive!Maximum Network Buffer Size}
   where {\it bytes} specifies the initial network buffer  size to use with the
   File daemon.  This size will be adjusted down if it is too large until
   it is accepted by the OS. Please use care in setting this value since if
   it is too large, it will be trimmed by 512 bytes until the OS is happy,
   which may require a large number of system calls.  The default value is
   32,768 bytes.

   The default size was chosen to be relatively large but not too big in
   the case that you are transmitting data over Internet.  It is clear that
   on a high speed local network, you can increase this number and improve
   performance. For example, some users have found that if you use a value
   of 65,536 bytes they get 5-10 times the throughput.  Larger values for
   most users don't seem to improve performance. If you are interested
   in improving your backup speeds, this is definitely a place to
   experiment. You will probably also want to make the corresponding change
   in each of your File daemons conf files.


\item [Maximum Spool Size = {\it bytes}]
   \index[sd]{Maximum Spool Size}
   \index[sd]{Directive!Maximum Spool Size}
   where the bytes specify the maximum spool size for all jobs  that are running.
   The default is no limit. 

\item [Maximum Job Spool Size = {\it bytes}]
   \index[sd]{Maximum Job Spool Size}
   \index[sd]{Directive!Maximum Job Spool Size}
   where the bytes specify the maximum spool size for any one job  that is
   running. The default is no limit. 
   This directive is implemented only in version 1.37 and later.

\item [Spool Directory = {\it directory}]
   \index[sd]{Spool Directory}
   \index[sd]{Directive!Spool Directory}
   specifies the name of the directory to be used to store  the spool files for
   this device. This directory is also used to store  temporary part files when
   writing to a device that requires mount (DVD).  The default is to use the
   working directory. 

\item [Maximum Part Size = {\it bytes}]
   \index[sd]{Maximum Part Size}
   \index[sd]{Directive!Maximum Part Size}
   This is the maximum size of a volume part file. The default is no limit.
   This directive is implemented only in version 1.37 and later.

   If the device requires  mount, it is transfered to the device when this size
   is reached.  In this case, you must take care to have enough disk space left
   in  the spool directory.  

   Otherwise, it is left on the hard disk.  

   It is ignored for tape and FIFO devices.  


\end{description}

\subsection*{Devices that require a mount (DVD)}
\index[general]{Devices that require a mount (DVD)}
\index[general]{DVD!Devices that require a mount}
\addcontentsline{toc}{subsection}{Devices that require a mount (DVD)}

All the directives in this section are implemented only in
Bacula version 1.37 and later and hence are available in version 1.38.6.

As of version 1.39.5, the directives
"Requires Mount", "Mount Point", "Mount Command", and "Unmount Command"
apply to removable filesystems such as USB in addition to DVD.

\begin{description}

\item [Requires Mount = {\it Yes|No}]
   \index[sd]{Requires Mount}
   \index[sd]{Directive!Requires Mount}
   You must set this directive to {\bf yes} for DVD-writers,  and to {\bf no} for
   all other devices (tapes/files).  This directive indicates if the device
   requires to be mounted to be read,  and if it must be written in a special way.
   If it set, {\bf Mount Point},  {\bf Mount Command}, {\bf Unmount Command} and
   {\bf Write Part Command}  directives must also be defined. 

\item [Mount Point = {\it directory}]
   \index[sd]{Mount Point}
   \index[sd]{Directive!Mount Point}
   Directory where the device can be mounted. 

\item [Mount Command = {\it name-string}]
   \index[sd]{Mount Command}
   \index[sd]{Directive!Mount Command}
   Command that must be executed to mount the device. Before the command is 
   executed, \%a is replaced with the Archive Device, and \%m with the Mount 
   Point.

   Most frequently, you will define it as follows:  

\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}
   Command that must be executed to unmount the device. Before the command  is
   executed, \%a is replaced with the Archive Device, and \%m with the  Mount
   Point.

   Most frequently, you will define it as follows:  

\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}
   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

  Where {\bf /path} is the path to your scripts install directory, and
  dvd-handler is the Bacula supplied script file.  
  This command will already be present, but commented out,
  in the default bacula-sd.conf file. To use it, simply remove
  the comment (\#) symbol.


\item [Free Space Command = {\it name-string}]
   \index[sd]{Free Space Command}
   \index[sd]{Directive!Free Space Command}
   Command that must be executed to check how much free space is left on 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}
  Free Space Command = "/path/dvd-handler %a free"
\end{verbatim}
\normalsize

  Where {\bf /path} is the path to your scripts install directory, and
  dvd-handler is the Bacula supplied script file.
  If you want to specify your own command, please look at the code of
  dvd-handler to see what output Bacula expects from this command.
  This command will already be present, but commented out,
  in the default bacula-sd.conf file. To use it, simply remove
  the comment (\#) symbol.

  If you do not set it, Bacula will expect there is always free space on the
  device. 

\end{description}

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




\subsection*{Capabilities}
\index[general]{Capabilities}
\addcontentsline{toc}{subsection}{Capabilities}

\begin{description}

\item [Label media = {\it Yes|No}]
   \index[sd]{Label media}
   \index[sd]{Directive!Label media}
   If {\bf Yes}, permits this device to automatically label blank media
   without an explicit operator command.  It does so by using an internal
   algorithm as defined on the \ilink{Label Format}{Label} record in each
   Pool resource.  If this is {\bf No} as by default, Bacula will label
   tapes only by specific operator command ({\bf label} in the Console) or
   when the tape has been recycled.  The automatic labeling feature is most
   useful when writing to disk rather than tape volumes.

\item [Automatic mount = {\it Yes|No}]
   \index[sd]{Automatic mount}
   \index[sd]{Directive!Automatic mount}
   If {\bf Yes} (the default), permits the daemon to examine the device to
   determine if it contains a Bacula labeled volume.  This is done
   initially when the daemon is started, and then at the beginning of each
   job.  If the This directive is particularly important if you have set
   {\bf Always Open = no} because it permits Bacula to attempt to read the
   device before asking the system operator to mount a tape.  However,
   please note that the tape must be mounted before the job begins.

\end{description}

\subsection*{Messages Resource}
\label{MessagesResource1}
\index[general]{Resource!Messages}
\index[general]{Messages Resource}
\addcontentsline{toc}{subsection}{Messages Resource}

For a description of the Messages Resource, please see the 
\ilink{Messages Resource}{_ChapterStart15} Chapter of this
manual. 

\subsection*{Sample Storage Daemon Configuration File}
\label{SampleConfiguration}
\index[general]{File!Sample Storage Daemon Configuration}
\index[general]{Sample Storage Daemon Configuration File}
\addcontentsline{toc}{subsection}{Sample Storage Daemon Configuration File}

A example Storage Daemon configuration file might be the following: 

\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
