]> git.sur5r.net Git - bacula/docs/blob - docs/manual-fr/autochangers.tex
dhb Implement dir_cmd in medialist remove dosql from console
[bacula/docs] / docs / manual-fr / autochangers.tex
1 %%
2 %%
3
4 \section*{Support des librairies}
5 \label{_ChapterStart18}
6 \index[general]{Support!Librairies}
7 \index[general]{Autochanger Support }
8 \addcontentsline{toc}{section}{Support des librairies}
9
10 \subsection*{G\'en\'eralit\'es sur les librairies}
11 \index[general]{G\'en\'eralit\'es!Librairies}
12 \index[general]{G\'en\'eralit\'es sur les librairies}
13 \addcontentsline{toc}{subsection}{G\'en\'eralit\'es sur les librairies}
14
15 Bacula supporte les librairies pour les op\'erations de lecture et \'ecriture. 
16 Plusieurs conditions sont requises pour que Bacula puisse utiliser une librairie. 
17 Celles-ci sont expliqu\'ees en d\'etail ci-dessous.
18 Mais voyons d'abord la liste de ces conditions :
19
20 \begin{itemize}
21 \item Un script charg\'e de piloter la librairie en accord avec les commandes 
22    envoy\'ees par Bacula est requis. Nous fournissons un tel script pr\'evu pour fonctionner 
23    avec le programme {\bf mtx} disponible dans les paquets {\bf depkgs}.
24 \item Chaque volume \`a utiliser doit \^etre d\'efini dans le catalogue et avoir 
25   un num\'ero de slot (NDT : emplacement dans la librairie) assign\'e, de sorte 
26   que Bacula puisse savoir o\`u se trouve le volume dans la librairie. Cet 
27   enregistrement se fait la plupart du temps gr\^ace \`a la commande {\bf label}. 
28   Voyez ci-dessous pour plus de d\'etails. Vous devez \'etiqueter manuellement 
29   vos cartouches avant de pouvoir les utiliser.
30 \item Vous devez avoir modifi\'e le fichier de configuration de votre Storage 
31   Daemon afin que la ressource Device identifie votre p\'eriph\'erique en tant 
32   que librairie. Quelques autres param\`etres doivent \^etre d\'efinis.
33 \item Si vous n'ex\'ecutez pas le Storage Daemon en tant que root, vous devez 
34   vous assurer qu'il d\'etient les droits requis pour acc\'eder au lecteur et au 
35   bras robotis\'e de la librairie.
36 \item Vous devez placer la directive {\bf Autochanger = yes} dans la 
37   ressource Storage de votre fichier bacula-dir.conf, de sorte que vous soyez 
38   interrog\'e au sujet du slot \`a chaque \'etiquetage de cartouche.
39 \end{itemize}
40
41 Dans les versions ult\'erieures \`a 1.37, la nouvelle directive 
42 \ilink{Autochanger resource}{AutochangerRes} permet de grouper les ressources 
43 Device pour cr\'eer des librairies avec plusieurs lecteurs. Si vous avez une 
44 librairie, vous devez utiliser cette ressource.
45
46 Bacula utilise son propre script {\bf mtx-changer} pour interagir avec un 
47 programme qui effectue r\'eellement les changement de cartouches. Ainsi, 
48 {\bf mtx-changer} peut \^etre adapt\'e pour fonctionner avec n'importe quel 
49 programme de prise en chgarge de librairie. La version actuelle de 
50 {\bf mtx-changer} fonctionne avec le programme {\bf mtx} . Cependant, 
51 des utilisateurs de FreeBSD ont r\'ealis\'e un script, disponible dans 
52 le r\'epertoire {\bf examples/autochangers}, qui permet \`a Bacula de fonctionner 
53 avec le programme {\bf chio}.
54
55 Bacula supporte aussi les librairies \'equip\'ees de lecteurs de codes barres. 
56 Ce support inclut deux commandes de la console Bacula : {\bf label barcodes} 
57 et {\bf update slots}. Pour plus de d\'etails au sujet de ces commandes, 
58 voyez la section "Support des lecteurs de codes barres" plus loin.
59
60 Le support des librairies dans Bacula n'inclue pas, pour le moment, la gestion 
61 du nettoyage des lecteurs, ni celle des bacs de cartouches ou des silos. 
62 Cependant, sous certaines conditions, vous pouvez parvenir \`a le faire 
63 fonctionner avec des stackers (tels que gravity feed et apparent\'es). 
64 (NDT : le dernier paragraphe n'est pas clair. Voici la vo :
65 Current Bacula autochanger support does not include cleaning, stackers, or
66 silos.  However, under certain conditions, you may be able to make Bacula
67 work with stackers (gravity feed and such).)
68
69 Le support des librairies \`a plusieurs lecteurs requiert la ressource 
70 \ilink{Autochanger resource}{AutochangerRes}, qui est aussi recommand\'ee 
71 pour les librairies \`a un seul lecteur.
72
73 En principe, si {\bf mtx} fonctionne correctement avec votre librairie, ce 
74 n'est qu'une question d'avaptation du script {\bf mtx-changer} pour que 
75 Bacula s'interface correctement avec la librairie. Vous pouvez trouver une 
76 liste des librairies support\'ees par  {\bf mtx}  en suivant le lien suivant : 
77 \elink{http://mtx.badtux.net/compatibility.php}{http://mtx.badtux.net/compatibility.php}.
78 Le sit officiel du projet  {\bf mtx} se trouve ici : 
79 \elink{http://mtx.badtux.net/}{http://mtx.badtux.net/}.
80
81 Si vous avez des difficult\'es, veuillez utiliser la commande  {\bf auto} du 
82 programme  {\bf btape} pour tester le fonctionnement de votre librairie 
83 avec Bacula. Lorsque Bacula fonctionne, souvenez vous que pour beaucoup de 
84 distributions (par exemple FreeBSD, Debian,...), le Storage Daemon est 
85 ex\'ecut\'e en tant que {\bf bacula.tape}  plut\^ot que {\bf root.root}, aussi 
86 vous devrez vous assurer que le Storage Daemon dispose de droits suffisants pour 
87 acc\'eder \`a la librairie.
88
89 \label{SCSI devices}
90 \subsection*{D\'eterminer vos p\'eriph\'eriques SCSI}
91 \index[general]{D\'eterminer!p\'eriph\'eriques SCSI}
92 \index[general]{D\'eterminer vos p\'eriph\'eriques SCSI}
93 \index[general]{P\'eriph\'eriques}
94 \index[general]{p\'eriph\'eriques!SCSI}
95 \addcontentsline{toc}{subsection}{D\'eterminer vos p\'eriph\'eriques SCSI}
96
97 Sous Linux, vous pouvez lire le fichier /proc/scsi/scsi :
98
99 \footnotesize
100 \begin{verbatim}
101 cat /proc/scsi/scsi
102 \end{verbatim}
103 \normalsize
104
105 pour conna\^itre vos p\'eriph\'eriques SCSI. Vous pouvez aussi examiner les fichiers 
106 /proc/scsi/sg/device_hdr et /proc/scsi/sg/devices :
107
108 footnotesize
109 \begin{verbatim}
110 cat /proc/scsi/sg/device_hdr /proc/scsi/sg/devices
111 \end{verbatim}
112 \normalsize
113
114 pour d\'eterminer comment sp\'ecifier leur nom de p\'eriph\'erique ({\bf /dev/sg0} 
115 pour le premier, {\bf /dev/sg1} pour le second, ...) au niveau de 
116 la directive {\bf Changer Device}
117
118 Sous FreeBSD, vous disposez de la commande :
119
120 \footnotesize
121 \begin{verbatim}
122 camcontrol devlist
123 \end{verbatim}
124 \normalsize
125
126 pour afficher la liste des p\'eriph\'eriques SCSI ainsi que le {\bf /dev/passn} 
127 que vous utiliserez pour renseigner la directive {\bf Changer Device} 
128
129 Assurez-vous que votre Storage Daemon dispose bien des privil\`eges requis 
130 pour acc\'eder \`a ce p\'eriph\'erique.
131
132 L'astuce suivante, destin\'ee aux utilisateurs de FreeBSD, provient de 
133 Danny Butroyd. Au red\'emarrage, Bacula n'aura PLUS les permissions 
134 requises pour contr\^oler le p\'eriph\'erique /dev/pass0. Pour vous 
135 affanchir de cette difficult\'e, \'editez le fichier /etc/devfs.conf  et 
136 ajoutez lui ceci :
137
138 \footnotesize
139 \begin{verbatim}
140 own     pass0   root:bacula
141 perm    pass0   0666
142 own     nsa0.0  root:bacula
143 perm    nsa0.0    0666
144 \end{verbatim}
145 \normalsize
146
147 Nous avons ainsi donn\'e au groupe Bacula la permission d'\'ecrire 
148 sur le p\'eriph\'erique nsa0.0. Pour activer ces modifications, ex\'ecutez : 
149 /etc/rc.d/devfs restart
150
151 Vous n'aurez plus \`a modifier les permissions sur ces p\'eriph\'eriques 
152 pour que Bacula continue d'utiliser la librairie apr\`es un red\'emarrage.
153
154 \label{scripts}
155
156 \subsection*{Exemples de scripts}
157 \index[general]{Scripts!Exemples }
158 \index[general]{Exemples de scripts }
159 \addcontentsline{toc}{subsection}{Exemples de scripts}
160
161 Veuillez lire les sections ci-dessous pour bien comprendre comment 
162 les librairies fonctionnent avec Bacula. Bien que nous fournissions 
163 un script {\bf mtx-changer} par d\'efaut, il se peut que votre librairie 
164 n\'ecessite quelques am\'enagements de ce script. Si vous voulez voir des 
165 exemples de fichiers de configuration et de scripts, jetez un oeil 
166 au r\'epertoire \lt{}bacula-src\gt{}/examples/devices} o\`u vous 
167 trouverez un exemple de ressource Device Bacula : {\bf HP-autoloader.conf} 
168 ainsi que plusieurs scripts {\bf mtx-changer} modifi\'es pour fonctionner 
169 avec diverses librairies.
170
171 \label{Slots}
172
173 \subsection*{Slots}
174 \index[general]{Slots }
175 \addcontentsline{toc}{subsection}{Slots}
176
177 Pour utiliser convenablement une librairie, Bacula doit savoir quel volume 
178 se trouve dans quel {\bf slot} de la librairie. Les slots sont les 
179 emplacements o\`u sont rang\'ees les cartouches lorsqu'elles ne sont pas dans un 
180 lecteur. Bacula num\'erote ces slots de un jusqu'au nombre de cartouches 
181 contenues dans la librairie.
182
183 Bacula n'utilisera pas automatiquement une cartouche pr\'esente dans la librairie 
184 si elle ne porte pas d'\'etiquette (label) Bacula et si son num\'ero de slot n'est pas 
185 r\'ef\'erenc\'e dans le catalogue. Vous devez, \`a l'aide de la console, assigner un 
186 slot \`a chaque cartouche pr\'esente dans la librairie. Cette information est 
187 conserv\'ee dans le catalogue avec les autres donn\'ees relatives au volume. 
188 Si le slot n'est pas pr\'ecis\'e, ou s'il est \'egal \`a z\'ero, alors Bacula ne tentera 
189 pas d'utiliser la librairie, m\^eme si tous les enregistrements de configuration 
190 sont pr\'esents. De m\^eme, la commande {\bf mount} de la console Bacula ne 
191 provoque pas non plus l'utilisation de la librairie, mais se contente d'ordonner 
192 \`a Bacula de lire toute cartouche \'eventuellement pr\'esente dans le lecteur.
193
194 Vous pouvez contr\^oler le num\'ero de slot et le drapeau InChanger avec la commande :
195
196 \begin{verbatim}
197 list Volumes
198 \end{verbatim}
199
200 dans la console.
201
202 \label{mult}
203 \subsection*{Lecteurs multiples}
204 \index[general]{Lecteurs!Multiples }
205 \index[general]{Lecteurs ultiples}
206 \addcontentsline{toc}{subsection}{Lecteurs multiple}
207
208 Certaines librairies comportent plusieurs p\'eriph\'eriques de lecture/\'ectriture 
209 (lecteurs). La nouvelle \ilink{ressource Autochanger}{AutochangerRes} 
210 apparue avec la version 1.37 vous permet de grouper des ressources Devices 
211 (repr\'esentant chacune un lecteur). Le Director est toujours en mesure 
212 d'adresser directement un lecteur, mais ce faisant, il outrepasse 
213 le fonctionnement propre aux groupements de lecteurs. Il est pr\'ef\'erable 
214 que la Ressource Storage du Director d\'efinisse une ressource 
215 Autochanger, permettant ainsi au Storage Daemon de s'assurer qu'un seul 
216 lecteur \`a la fois utilise le script mtx-changer, et que deux lecteurs ne tentent 
217 pas de lire le m\^eme volume.
218
219 Les librairies \`a lecteurs multiples n\'ecessitent d'utiliser la directive 
220 {\bf Drive Index} dans la ressource Device du Storage Daemon. Les 
221 lecteurs sont num\'erot\'es \`a partir de z\'ero, ce qui constitue la valeur par 
222 d\'efaut. Pour utiliser un deuxi\`eme lecteur dans une librairie, vous devez 
223 d\'efinir une seconde ressource Device et lui attribuer le Drive Index 1. 
224 En g\'en\'eral, le second p\'eriph\'erique aura le m\^eme {\bf Changer Device} 
225 (canal de contr\^ole) que le premier, mais une {\bf Archive Device} diff\'erente. 
226
227 \label{ConfigRecords}
228 \subsection*{Directives de la ressource Device}
229 \index[general]{Directives!ressource Device}
230 \index[general]{Directives de la ressource Device}
231 \addcontentsline{toc}{subsection}{Directives de la ressource Device}
232
233 La configuration des librairies s'effectue dans Bacula au niveau de le ressource 
234 Device du Storage Daemon. Quatre directives permettent de d\'efinir l'usage de 
235 la librairie par Bacula : {\bf Autochanger}, {\bf Changer Device},
236 {\bf Changer Command} et {\bf Maximum Changer Wait} 
237
238 Ces quatre directives sont d\'ecrites en d\'etail ci-dessous. Notez cependant 
239 que les directives {\bf Changer Device} et {\bf Changer Command} ne sont pas 
240 requises dans la ressource Device si elles figurent dans la ressource 
241 {\bf Autochanger}.
242
243 \begin{description}
244
245 \item [Autochanger = {\it Yes|No} ]
246    \index[sd]{Autochanger}
247    La directive {\bf Autochanger} stipule que le p\'eriph\'erique ainsi d\'efini est, ou 
248    n'est pas, une librairie. La valeur par d\'efaut est {\bf no}.
249
250 \item [Changer Device = \lt{}device-name\gt{}]
251    \index[sd]{Changer Device}
252    En plus du nom d'Archive Device, vous devez sp\'ecifier un nom de 
253    librairie {\bf Changer Device}, ceci parce que la plupart des librairies 
254    sont control\'ees via un pseudo-fichier diff\'erent de celui utilis\'e pour 
255    lire et \'ecrire sur les cartouches. Par exemple, sur les syst\`emes Linux, 
256    on utilise g\'en\'eralement l'interface SCSI g\'en\'erique pour contr\^oler le bras 
257    de la librairie, soit {\bf Changer Device = /dev/sg0} et l'interface SCSI 
258    standard pour lire et \'ecrire sur les bandes, soit {\bf Archive Device = /dev/nst0}.
259    Notez que certaines librairies \'evolu\'ees localiseront le bras sur 
260    {\bf /dev/sg1}. De telles librairies ont souvent plusieurs lecteurs et un 
261    nombre important de cartouches.
262
263    Sur FreeBSD, on sp\'ecifiera typiquement {\bf Changer Device = /dev/pass0} ou 
264    {\bf Changer Device = /dev/passn}.
265
266    Sur Solaris, ce sera {\bf Changer Device = /dev/rdsk}.
267
268    Assurez vous que votre Storage Daemon poss\`ede les permissions d'acc\'eder \`a 
269    ce p\'eriph\'erique.
270
271 \item [Changer Command = \lt{}command\gt{}]
272    \index[sd]{Changer Command  }
273    Cette directive est utilis\'ee pour sp\'ecifier le programme externe \`a appeler 
274    et les arguments \`a lui fournir. La commande est suppos\'ee \^etre un programme 
275    ou un script shell standard qui peut \^etre ex\'ecut\'e par le syst\`eme. cette 
276    commande est invoqu\'ee chaque fois que Bacula manipule le bras de la librairie. 
277    Les substitutions suivantes sont effectu\'ees dans la ligne {\bf command} 
278    avant qu'elle ne soit envoy\'ee au syst\`eme d'exploitation pour ex\'ecution.
279
280 \footnotesize
281 \begin{verbatim}
282       %% = %
283       %a = archive device name
284       %c = changer device name
285       %d = changer drive index base 0
286       %f = Client's name
287       %j = Job name
288       %o = command  (loaded, load, or unload)
289       %s = Slot base 0
290       %S = Slot base 1
291       %v = Volume name
292 \end{verbatim}
293 \normalsize
294
295 Voici un exemple d'utilisation de {\bf mtx} avec le script {\bf mtx-changer} :
296
297 \footnotesize
298 \begin{verbatim}
299 Changer Command = "/etc/bacula/mtx-changer %c %o %S %a %d"
300 \end{verbatim}
301 \normalsize
302
303 O\`u vous devrez adapter le chemin {\bf /etc/bacula} pour qu'il co\''incide \`a 
304 la r\'ealit\'e de votre installation. Les d\'etails des trois commandes (loaded, 
305 load, unload) utilis\'ees par Bacula ainsi que la sortie qui en est attendue 
306 sont donn\'es dans la section {\bf Interface entre Bacula et les librairies} 
307 ci-dessous.
308
309 \item [Maximum Changer Wait = \lt{}time\gt{}]
310    \index[sd]{Maximum Changer Wait}
311    Cette directive sert \`a d\'efinir le d\'elai maximal durant lequel Bacula 
312    attendra la r\'eponse d'une librairie \`a une commande (par exemple, load). 
313    La valeur par d\'efaut est 120 secondes. Si votre librairie est lente, vous 
314    pouvez avoir int\'er\^et \`a allonger ce d\'elai.
315    
316    Au del\`a de ce d\'elai, le programme de chargement est tu\'e et Bacula 
317    sollicite l'intervention d'un op\'erateur.
318
319 \item [Drive Index = \lt{}number\gt{}]
320    \index[sd]{Drive Index}
321    Cette directive vous permet d'indiquer \`a Bacula d'utiliser le second 
322    lecteur et les \'eventuels suivants dans une librairie qui en contient 
323    plusieurs. Etant donn\'e que les lecteurs sont num\'erot\'es \`a partir de 
324    z\'ero, le second est d\'efini par :
325
326 \footnotesize
327 \begin{verbatim}
328 Device Index = 1
329 \end{verbatim}
330 \normalsize
331
332 Pour utiliser le second lecteur, vous devez avoir une seconde d\'efinition 
333 de ressource Device dans le fichier bacula-sd.conf. Voyez la section 
334 concernant les lecteurs multiples plus haut dans ce chapitre pour plus 
335 de plus amples informations.
336 \end{description}
337
338 De plus, pour un fonctionnement correct de la librairie, vous devez d\'efinir 
339 une ressource Autochanger.
340 \input{autochangerres}
341
342 \label{example}
343 \subsection*{Un exemple de fichier de configuration}
344 \index[general]{exemple fichier configuration}
345 \index[general]{fichier!exemple configuration}
346 \addcontentsline{toc}{subsection}{Un exemple de fichier de configuration}
347
348 Les deux ressource suivantes impl\'ementent une librairie :
349
350 \footnotesize
351 \begin{verbatim}
352 Autochanger {
353   Name = "Autochanger"
354   Device = DDS-4
355   Changer Device = /dev/sg0
356   Changer Command = "/etc/bacula/mtx-changer %c %o %S %a %d"
357 }
358
359 Device {
360   Name = DDS-4
361   Media Type = DDS-4
362   Archive Device = /dev/nst0    # Normal archive device
363   Autochanger = yes
364   LabelMedia = no;
365   AutomaticMount = yes;
366   AlwaysOpen = yes;
367 }
368 \end{verbatim}
369 \normalsize
370
371 o\`u vous adapterez les directives {\bf Archive Device}, {\bf Changer Device} et 
372 {\bf Changer Command} pour qu'elles conviennent \`a votre syst\`eme.
373
374 \subsection*{Un exemple de fichier de configuration multi-lecteurs}
375 \index[general]{Multi-lecteurs exemple fichier de configuration}
376 \addcontentsline{toc}{subsection}{Un exemple de fichier de configuration multi-lecteurs}
377
378 Les ressources suivantes impl\'ementent une librairie multi-lecteurs :
379
380 \footnotesize
381 \begin{verbatim}
382 Autochanger {
383   Name = "Autochanger"
384   Device = Drive-1, Drive-2
385   Changer Device = /dev/sg0
386   Changer Command = "/etc/bacula/mtx-changer %c %o %S %a %d"
387 }
388
389 Device {
390   Name = Drive-1
391   Drive Index = 0
392   Media Type = DDS-4
393   Archive Device = /dev/nst0    # Normal archive device
394   Autochanger = yes
395   LabelMedia = no;
396   AutomaticMount = yes;
397   AlwaysOpen = yes;
398 }
399
400 Device {
401   Name = Drive-2
402   Drive Index = 1
403   Media Type = DDS-4
404   Archive Device = /dev/nst1    # Normal archive device
405   Autochanger = yes
406   LabelMedia = no;
407   AutomaticMount = yes;
408   AlwaysOpen = yes;
409 }
410
411 \end{verbatim}
412 \normalsize
413
414 o\`u vous adapterez les directives {\bf Archive Device}, {\bf Changer Device} et
415 {\bf Changer Command} pour qu'elles conviennent \`a votre syst\`eme.
416
417 \label{SpecifyingSlots}
418 \subsection*{Sp\'ecifier des slots lors de l'\'etiquetage}
419 \index[general]{Sp\'ecifier des slots lors de l'\'etiquetage}
420 \index[general]{Etiquetage!Sp\'ecifier des slots lors de}
421 \addcontentsline{toc}{subsection}{Sp\'ecifier des slots lors de l'\'etiquetage}
422
423 Si vous utilisez la directive  {\bf Autochanger = yes} \`a la ressource Storage 
424 du fichier de configuration de votre Director, la console Bacula vous 
425 demandera automatiquement le num\'ero de slot lors de l'utilisation des 
426 commandes {\bf add} ou {\bf label} pour ce p\'eriph\'erique de stockage. Si 
427 votre script {\bf mtx-changer} est correctement install\'e, Bacula 
428 chargera la bonne cartouche \`a l'ex\'ecution de la commande {\bf label}.
429
430 Vous devez aussi sp\'ecifier {\bf Autochanger = yes} dans la ressource 
431 Device du Storage Daemon ainsi que nous l'avons d\'ecrit plus haut pour 
432 que la librairie soit utilis\'ee. Veuillez consulter la section 
433 \ilink{Ressource Storage}{Autochanger1} dans le chapitre sur la configuration 
434 du Director pour plus de d\'etails sur ce sujet.
435   
436 Ainsi, toutes les phases de l'utilisation des cartouches peuvent \^etre 
437 int\'egralement automatis\'ees. Il est aussi possible de param\'etrer ou 
438 modifier la valeur du slot en utilisant le sous-menu {\bf Volume Parameters} 
439 de la commande {\bf update} de la console.
440
441 M\^eme si tous les param\`etres ci-dessus sont correctement sp\'ecifi\'es, Bacula ne 
442 tentera d'acc\'eder \`a la librairie que s'il existe un {\bf slot} non-nul parmi 
443 les volumes enregistr\'es dans le catalogue.
444
445 Si votre librairie est \'equip\'ee d'un lecteur de codes barres, vous pouvez 
446 \'etiqueter vos volumes l'un apr\`es l'autre en utilisant la commande 
447 {\bf label barcodes}. Bacula montera et \'etiquettera chaque cartouche porteuse 
448 d'un code barres contenue dans la librairie avec le nom sp\'ecifi\'e par le 
449 code barres. L'enregistrement apropri\'e sera aussi cr\'e\'e dans le catalogue. 
450 Toute cartouche dont le code barres commence par les caract\`eres sp\'ecifi\'es par 
451 la directive {\bf Cleaning Prefix} est consid\'er\'ee comme une cartouche de 
452 nettoyage, et ne sera pas \'etiquet\'ee. Par exemple, avec :
453
454 \footnotesize
455 \begin{verbatim}
456 Pool {
457   Name ...
458   Cleaning Prefix = "CLN"
459 }
460 \end{verbatim}
461 \normalsize
462
463 toute cartouche de code barres  CLNxxxx sera trait\'ee en tant que cartouche de 
464 nettoyage, et ne sera pas mont\'ee.
465
466 \subsection*{Changer des cartouches}
467 \index[general]{Changer des cartouches}
468 \addcontentsonline{toc}{subsection}{Changer des cartouches}
469 Si vous voulez insérer ou retirer des cartouches de votre librairie, ou encore 
470 exécuter manuellement le programme {\bf mtx}, vous devez "informer" Bacula de ces opérations :
471
472 \footnotesize
473 \begin{verbatim}
474 unmount
475 (changez vos cartouches et/ou exécutez mtx)
476 mount
477 \end{verbatim}
478 \normalsize
479
480 Si vous omettez de faire "unmount" avant de telles changements, Bacula ne saura plus 
481 ce qui est dans la librairie, et ce qui n'y est pas, et peut même cesser de fonctionner 
482 parce qu'il s'attend Ã  avoir le contrôle exclusif de la librairie tandis quie le lecteur 
483 est monté.
484
485 Notez que les volumes doivent \^etre pr\'e-\'etiquet\'es pour pouvoir \^etre utilis\'es 
486 automatiquement dans la librairie lors d'une sauvegarde. Si vous ne disposez 
487 pas d'un lecteur de code barres, ceci se fait manuellement, ou \`a l'aide d'un 
488 script.
489
490 \label{Magazines}
491 \subsection*{Travailler avec plusieurs magasins}
492 \index[general]{Travailler avec plusieurs magasins}
493 \index[general]{magasins!Travailler avec plusieurs}
494 \addcontentsline{toc}{subsection}{Travailler avec plusieurs magasins}
495
496 Si vous avez plusieurs magasins ou si vous ins\'erez ou retirez des 
497 cartouches d'un magasin, vous devriez en informer Bacula. Ainsi, Bacula 
498 sera en mesure d'utiliser pr\'ef\'erentiellement des cartouches qu'il sait \^etre 
499 dans la librairie, pr\'evenant ainsi des interventions humaines inutiles.
500
501 Si votre librairie est \'equip\'ee d'un lecteur de codes barres, il est ais\'e 
502 de tenir Bacula inform\'e : chaque fois que vous changez un magasin, ajoutez 
503 ou pr\'elevez une cartouche, faites simplement : 
504
505 \footnotesize
506 \begin{verbatim}
507 unmount
508 (remove magazine)
509 (insert new magazine)
510 update slots
511 mount
512 \end{verbatim}
513 \normalsize
514
515 dans la console. Avec cette commande, Bacula se renseigne aupr\`es de la librairie 
516 pour conna\^itre les volumes qu'elle contient. Ceci ne n\'ecessite pas d'acc\'eder 
517 aux volumes car la librairie se charge de faire son inventaire lors de sa 
518 mise sous tension. Bacula s'assure alors que tout volume pr\'esent dans la 
519 librairie est marqu\'e pr\'esent dans le catalogue et que tout volume absent de la 
520 librairie est marqu\'e absent dans le catalogue. En outre, les num\'eros de slots 
521 des volumes sont corrig\'es dans le catalogue s'ils sont inexacts.
522
523 Si vous ne disposez pas d'un lecteur de codes barres, vous avez plusieurs alternatives :
524
525 \begin{enumerate}
526 \item Vous pouvez attribuer manuellement les num\'eros de slots et les drapeaux 
527   InChanger \`a l'aide de la commande {\bf update volume} dans la console. Cette 
528   m\'ethode est assez p\'enible.
529
530 \item Vous pouvez lancer la commande 
531
532 \footnotesize
533 \begin{verbatim}
534 update slots scan
535 \end{verbatim}
536 \normalsize
537    
538    qui ordonne \`a Bacula de lire l'\'etiquette (label) de chacune des cartouches 
539    dans la librairie par montage successif, et de mettre \`a jour les informations 
540    (Slot, drapeau InChanger) dans le catalogue. Cette m\'ethode est efficace, mais 
541    prend du temps pour charger chaque cartouche et en lire l'\'etiquette.
542
543 \item Vous pouvez modifier le script  mtx-changer en sorte qu'il simule une 
544   librairie \'equip\'ee d'un lecteur de codes barres. Voyez ce qui suit pour plus de 
545   d\'etails 
546 \end{enumerate}
547
548 \label{simulating}
549 \subsection*{Simuler un lecteur de codes barres dans votre librairie}
550 \index[general]{Librairie!Simuler un lecteur de codes barres dans votre}
551 \index[general]{Simuler un lecteur de codes barres dans votre}
552 \addcontentsline{toc}{subsection}{Simuler un lecteur de codes barres dans votre}
553
554 Vous pouvez simuler un lecteur de codes barres dans votre librairie en faisant 
555 en sorte que le script {\bf mtx-changer} retourne les informations que 
556 retournerait une librairie avec lecteur de codes barres. Pour cela, commentez 
557 la ligne ci-dessous dans le "case" aux alentours de la ligne 99 :
558
559 \footnotesize
560 \begin{verbatim}
561   ${MTX} -f $ctl status | grep " *Storage Element [0-9]*:.*Full" | awk "{print \$3 \$4}" | sed "s/Full *\(:VolumeTag=\)*//"
562 \end{verbatim}
563 \normalsize
564
565 en ajoutant un \# au d\'ebut de cette ligne (vous pouvez aussi supprimer la ligne). 
566 A sa place, ajoutez une nouvelle ligne dont le r\^ole est d'imprimer le contenu 
567 d'un fichier. Par exemple :
568
569 \footnotesize
570 \begin{verbatim}
571 cat /etc/bacula/changer.volumes
572 \end{verbatim}
573 \normalsize
574
575 Le nom du fichier est libre, mais assurez vous d'utiliser un chemin absolu.
576 Le contenu du fichier doit avoir le format :
577
578 \footnotesize
579 \begin{verbatim}
580 1:Volume1
581 2:Volume2
582 3:Volume3
583 ...
584 \end{verbatim}
585 \normalsize
586
587 O\`u 1, 2, 3 sont les num\'eros de slots et Volume1, Volume2, Volume3 sont les 
588 noms de volumes dans ces slots. Vous pouvez utiliser plusieurs fichiers 
589 repr\'esentant les contenus de plusieurs magasins, ainsi, lorsque vous 
590 changez de magasin, contentez vous de copier le contenu du fichier associ\'e 
591 dans le fichier {\bf /etc/bacula/changer.volumes}. Il n'est pas utile de 
592 stopper et red\'emarrer Bacula lors d'un changement de magasins, mettez simplement 
593 les bonnes valeurs dans le fichier avant de lancer la commande {\bf update slots}.
594 Votre librairie appara\^itra \`a Bacula comme \'equip\'ee d'un lecteur de codes barres.
595
596 \label{updateslots}
597
598 \subsection*{La forme compl\`ete de la commande Update Slots}
599 \index[general]{La forme compl\`ete de la commande Update Slots}
600 \index[general]{Command!La forme compl\`ete de la commande Update Slots}
601 \addcontentsline{toc}{subsection}{La forme compl\`ete de la commande Update Slots}
602
603 Si vous ne changez qu'une cartouche, vous ne voulez peut-\^etre pas passer au crible 
604 tous vos volumes, c'est pourquoi la commande {\bf update slots} (de m\^eme que la 
605 commande {\bf update slots scan}) poss\`ede la forme additionnelle :
606
607 \footnotesize
608 \begin{verbatim}
609 update slots=n1,n2,n3-n4, ...
610 \end{verbatim}
611 \normalsize
612
613 o\`u le mot-clef {\bf scan} peut \'eventuellement \^etre ajout\'e. n1, n2, n3-n4
614 repr\'esentent respectivement les num\'eros et la plage de slots que vous souhaitez 
615 mettre \`a jour. 
616
617 Cette forme est particuli\`erement utile si vous voulez utiliser "scan" (couteux en temps) 
618 en restrignant l'op\'eration \`a quelques slots.
619
620 Par exemple, si vous lancez la commande :
621
622 \footnotesize
623 \begin{verbatim}
624 update slots=1,6 scan
625 \end{verbatim}
626 \normalsize
627
628 Bacula va charger le volume du slot 6, lire son \'etiquette logicielle (label) et 
629 mettre \`a jour le catalogue, avant de faire de m\^eme avec la cartouche du slot 6.
630 Avec la commande :
631
632 \footnotesize
633 \begin{verbatim}
634 update slots=1-3,6
635 \end{verbatim}
636 \normalsize
637
638 il va lire les codes barres des volumes dans les slots 1,2,3 et 6, et faire les 
639 mises \`a jour approri\'ees dans le catalogue. Si vous n'avez pas de lecteur de 
640 codes barres, ni n'en simulez comme d\'ecrit plus haut, la commande ci-dessus 
641 ne trouvera aucun nom de volume et ne fera donc rien.
642
643 \label{FreeBSD}
644
645 \subsection*{Sp\'ecificit\'es FreeBSD}
646 \index[general]{Sp\'ecificit\'es!FreeBSD }
647 \index[general]{Sp\'ecificit\'es FreeBSD}
648 \addcontentsline{toc}{subsection}{Sp\'ecificit\'es FreeBSD}
649
650 Si vous rencontrez des probl\`emes sur FreeBSD lorsque Bacula tente de s\'electionner 
651 une cartouche, et si le message est {\bf Device not configured}, c'est 
652 parce que FreeBSD a fait dispara\^itre le fichier de p\'eriph\'erique {\bf /dev/nsa1} 
653 lorsqu'il n'y avait plus de cartouche mont\'ee dans le lecteur. Par cons\'equent, 
654 Bacula ne peut ouvrir le p\'eriph\'erique. Une solution consiste \`a charger une 
655 cartouche avant le lancement de Bacula. Ce probl\`eme est corrig\'e dans les 
656 versions de Bacula ult\'erieures \`a 1.32f-5.
657
658 Veuillez consulter le chapitre 
659 \ilink{Tester votre lecteur}{FreeBSDTapes} de ce manuel pour d'{\bf importantes} 
660 informations sur votre lecteur avant de passer au test de la librairie.
661 \label{AutochangerTesting}
662
663 \subsection*{Tester la librairie et adapter le script mtx-changer}
664 \index[general]{Tester la librairie et adapter le script mtx-changer}
665 \index[general]{Script!Tester la librairie et adapter le script mtx-changer}
666 \addcontentsline{toc}{subsection}{Tester la librairie et adapter le script mtx-changer}
667
668 Avant d'essayer d'utiliser une librairie avec Bacula, il est pr\'ef\'erable de v\'erifier 
669 "\`a la main" que le bras robotis\'e fonctionne. Pour ce faire, utilisez les commandes 
670 suivantes (\`a supposer que le script {\bf mtx-changer} est install\'e dans 
671 {\bf /etc/bacula/mtx-changer}) :
672
673 \begin{description}
674
675 \item [Assurez vous que Bacula est stopp\'e]
676
677 \item [/etc/bacula/mtx-changer \ /dev/sg0 \ list \ 0 \ /dev/nst0 \ 0]
678 \index[sd]{mtx-changer list}
679
680 Cette commande devrait afficher :  
681
682 \footnotesize
683 \begin{verbatim}
684    1:
685    2:
686    3:
687    ...
688    
689 \end{verbatim}
690 \normalsize
691
692 soit un num\'ero suivi de deux points pour chacun des slots occup\'e dans la librairie. 
693 Si votre librairie a un lecteur de codes barres, celui-ci sera affich\'e apr\`es les 
694 deux points. Si un message d'erreur s'affiche, vous devez r\'esoudre le probl\`eme 
695 (par exemple, essayez un autre nom de p\'eriph\'erique si {\bf /dev/sg0} n'est pas 
696 le bon. PAr exemple, sur FreeBSD c'est g\'en\'eralement {\bf /dev/pass2}).
697
698 \item [/etc/bacula/mtx-changer \ /dev/sg0 \ slots \ 0 \ /dev/nst0 \ 0]
699 \index[sd]{mtx-changer slots}
700
701 Cette commande devrait retourner le nombre de slots de votre librairie.
702
703 \item [/etc/bacula/mtx-changer \ /dev/sg0 \ unload \ ]
704 \index[sd]{mtx-changer unload}
705
706 Si une cartouche est charg\'ee, cette commande devrait la d\'echarger.
707
708 \item [/etc/bacula/mtx-changer \ /dev/sg0 \ load \ 3 \ /dev/nst0 \ 0 ]
709 \index[sd]{mtx-changer load}
710
711 Si vous avez une cartouche dans le slot 3, elle sera charg\'ee dans le slot 
712 de lecture (0).
713
714 \item [/etc/bacula/mtx-changer \ /dev/sg0 \ loaded \ 0 \ /dev/nst0 \ 0]
715 \index[sd]{mtx-changer loaded}
716
717 devrait afficher "3"
718
719 \item [/etc/bacula/mtx-changer \ /dev/sg0 \ unload]
720 \end{description}
721
722 Une fois que toutes les commandes ci-dessus fonctionnent correctement, Bacula 
723 devrait \^etre capable d'utiliser la librairie, pourvu que votre configuration 
724 comporte la bonne commande {\bf Changer Command}. A ce stade, il ne peut subsister 
725 qu'un probl\`eme : si votre librairie requiert un certain d\'elai pour charger la cartouche 
726 apr\`es l'ex\'ecution de la commande. Imm\'ediatement apr\`es avoir obtenu le retour 
727 du script {\bf mtx-changer}, Bacula commande le rembobinage et la lecture de la bande. 
728 S'il obtient une erreur I/O, vous devriez probablement ins\'erer une pause ({\bf sleep 20})  
729 apr\`es la commande  {\bf mtx}, mais prenez soin de terminer le script avec un 
730 code de sortie 0 en ajoutant {\bf exit 0} apr\`es toute commande que vous ajoutez 
731 au script, car Bacula contr\^ole le code de sortie du script qui devrait \^etre 0 si 
732 tout s'est bien pass\'e.
733
734 Vous pouvez tester si vous avez ou non besoin d'une telle pause en 
735 ex\'ecutant le script suivant :
736
737 \footnotesize
738 \begin{verbatim}
739 #!/bin/sh
740 /etc/bacula/mtx-changer /dev/sg0 unload
741 /etc/bacula/mtx-changer /dev/sg0 load 3
742 mt -f /dev/st0 rewind
743 mt -f /dev/st0 weof
744 \end{verbatim}
745 \normalsize
746
747 S'il fonctionne correctement, vous n'\^etes sans doute pas concern\'e par ce 
748 probl\`eme. Sinon, commencez par ajouter {\bf sleep 30}  voire {\bf sleep 60} 
749 juste apr\`es la commande "/etc/bacula/mtx-changer /dev/sg0 load 3". Si 
750 {\c c}a marche, vous pouvez alors int\'egrer cette pause dans le script 
751 {\bf mtx-changer} afin qu'elle soit effective lorsque Bacula est ex\'ecut\'e. 
752
753 Quelques rares librairies exigent l'\'ejection de la cartouche avant de pouvoir 
754 la d\'echarger. Dan ce cas, la commande /etc/bacula/mtx-changer /dev/sg0 load 3 
755 ne fonctionne jamais, quel que soit la dur\'ee de la pause. Si vous pensez 
756 avoir ce probl\`eme, ins\'erez une commande "eject" juste avant la commande 
757 /etc/bacula/mtx-changer /dev/sg0 unload :
758
759 \footnotesize
760 \begin{verbatim}
761 #!/bin/sh
762 /etc/bacula/mtx-changer /dev/sg0 unload
763 mt -f /dev/st0 offline
764 /etc/bacula/mtx-changer /dev/sg0 load 3
765 mt -f /dev/st0 rewind
766 mt -f /dev/st0 weof
767 \end{verbatim}
768 \normalsize
769
770 Naturellement, si vous avez besoin de la commande {\bf offline}, vous devriez 
771 l'int\'egrer au script mtx-changer, en n'oubliant pas de pr\'eserver le code de 
772 sortie du script par l'ajout de {\bf exit 0}.
773
774 Comme indiqu\'e pr\'ec\'edemment, plusieurs scripts qui impl\'ementent ces fonctions 
775 sont regroup\'es dans {\bf \lt{}bacula-source\gt{}/examples/devices}, ils 
776 peuvent vous inspirer pour faire en sorte que le votre fonctionne.
777
778 Si Bacula affiche "Rewind error on /dev/nst0. ERR=Input/output error." vous 
779 avez probablement besoin d'accro\^itre la pause dans le script {\bf mtx-changer}
780
781 \label{using}
782
783 \subsection*{Utiliser la librairie}
784 \index[general]{Utiliser la librairie}
785 \index[general]{Librairie!Utiliser la }
786 \addcontentsline{toc}{subsection}{Utiliser la librairie}
787
788 Supposons que vous ayez convenablement d\'efini les directives Device du 
789 Storage Daemon, et que vous ayez ajout\'e la directive {\bf Autochanger = yes} 
790 dans la ressource Storage de votre fichier bacula-dir.conf. 
791
792 Maintenant, alimentez votre librairie avec quelques cartouches vierges.
793
794 Que faire pour que Bacula acc\`ede \`a ces cartouches ?
795
796 Une strat\'egie consiste \`a pr\'e-\'etiqueter chacune des cartouches. Pour cela, 
797 d\'emarrez Bacula, puis utilisez la commande {\bf label} dans la console :
798
799 \footnotesize
800 \begin{verbatim}
801 ./console
802 Connecting to Director rufus:8101
803 1000 OK: rufus-dir Version: 1.26 (4 October 2002)
804 *label
805 \end{verbatim}
806 \normalsize
807
808 l'affichage devrait \^etre :
809
810 \footnotesize
811 \begin{verbatim}
812 Using default Catalog name=BackupDB DB=bacula
813 The defined Storage resources are:
814      1: Autochanger
815      2: File
816 Select Storage resource (1-2): 1
817 \end{verbatim}
818 \normalsize
819
820 Choisissez la librairie (choix 1), vous obtenez :
821
822 \footnotesize
823 \begin{verbatim}
824 Enter new Volume name: TestVolume1
825 Enter slot (0 for none): 1
826 \end{verbatim}
827 \normalsize
828
829 Ici saisissez {\bf TestVolume1} en guise de nom, et {\bf 1} pour le slot.
830 On vous demande alors :
831
832 \footnotesize
833 \begin{verbatim}
834 Defined Pools:
835      1: Default
836      2: File
837 Select the Pool (1-2): 1
838 \end{verbatim}
839 \normalsize
840
841 S\'electionnez le pool Default (ce qui est fait automatiquement si vous 
842 n'avez que celui-l\`a). Bacula poursuit en d\'echargeant toute cartouche 
843 charg\'ee, en chargeant celle du slot 1 et en l'\'etiquetant. Dans cet exemple, 
844 le lecteur \'etait vide, il en r\'esulte l'affichage :
845
846 \footnotesize
847 \begin{verbatim}
848 Connecting to Storage daemon Autochanger at localhost:9103 ...
849 Sending label command ...
850 3903 Issuing autochanger "load slot 1" command.
851 3000 OK label. Volume=TestVolume1 Device=/dev/nst0
852 Media record for Volume=TestVolume1 successfully created.
853 Requesting mount Autochanger ...
854 3001 Device /dev/nst0 is mounted with Volume TestVolume1
855 You have messages.
856 *
857 \end{verbatim}
858 \normalsize
859
860 Vous pouvez continuer \`a \'etiqueter les autres volumes, les messages 
861 changeront l\'eg\`erement du fait qu'il y aura cette fois une cartouche 
862 \`a d\'echarger avant de charger la suivante.
863
864 Une fois que tous vos volumes sont \'etiquet\'es, Bacula est en mesure de les 
865 charger lorsqu'il en a besoin. 
866
867 Pour "voir" votre \'etiquetage, saisissez la commande {\bf list volumes}  dans 
868 la console, vous devriez obtenir quelque chose comme :
869
870 \footnotesize
871 \begin{verbatim}
872 *{\bf list volumes}
873 Using default Catalog name=BackupDB DB=bacula
874 Defined Pools:
875      1: Default
876      2: File
877 Select the Pool (1-2): 1
878 +-------+----------+--------+---------+-------+--------+----------+-------+------+
879 | MedId | VolName  | MedTyp | VolStat | Bites | LstWrt | VolReten | Recyc | Slot |
880 +-------+----------+--------+---------+-------+--------+----------+-------+------+
881 | 1     | TestVol1 | DDS-4  | Append  | 0     | 0      | 30672000 | 0     | 1    |
882 | 2     | TestVol2 | DDS-4  | Append  | 0     | 0      | 30672000 | 0     | 2    |
883 | 3     | TestVol3 | DDS-4  | Append  | 0     | 0      | 30672000 | 0     | 3    |
884 | ...                                                                            |
885 +-------+----------+--------+---------+-------+--------+----------+-------+------+
886 \end{verbatim}
887 \normalsize
888
889 \label{Barcodes}
890
891 \subsection*{Support des codes barres}
892 \index[general]{Support!codes barres}
893 \index[general]{Support des codes barres}
894 \addcontentsline{toc}{subsection}{Support des codes barres}
895
896 Bacula utilise les codes barres \`a travers deux commandes de la console : 
897 {\bf label barcodes} et {\bf update slots}.
898
899 La commande  {\bf label barcodes} ordonne \`a Bacula de lire tous les codes 
900 barres de toutes les cartouches pr\'esentes dans la librairie \`a l'aide de la 
901 commande {\bf mtx-changer} {\bf list}. Les cartouches sont ensuite mont\'ees 
902 l'une apr\`es l'autre pour \^etre \'etiquet\'e du nom de leur code barres.
903
904 La commande {\bf update slots} commence par obtenir du script {\bf mtx-changer}
905 la liste des cartouches et de leurs codes barres. Ensuite, il confronte 
906 chacune des valeurs du catalogues \`a cette liste afin de le mettre \`a jour. 
907 Notez que si un volume ne figure pas dans le catalogue, il n'y a rien a faire. 
908 Cette commande est utile pour synchroniser Bacula avec le contenu de la librairie 
909 si vous avez chang\'e de magasin ou d\'eplac\'e des cartouches.
910
911 La directive {\bf Cleaning Prefix} peut \^etre utilis\'ee dans la ressource Pool pour 
912 d\'efinir un pr\'efixe de nom de volume qui, s'il correspond au code barres d'un volume 
913 conf\`ere \`a ce volume le statut (VolStatus) {\bf Cleaning}. Ceci \'evite que Bacula 
914 tente d'\'ecrire sur une cartouche de nettoyage.
915
916 \label{interface}
917
918 \subsection*{Interface entre Bacula et les librairies}
919 \index[general]{Interface!Bacula et les librairies}
920 \index[general]{Interface entre Bacula et les librairies}
921 \addcontentsline{toc}{subsection}{Interface entre Bacula et les librairies}
922
923 Bacula appelle le script mtx-changer que vous sp\'ecifiez au niveau de la 
924 directive {\bf Changer Command}. En principe, ce sera le script {\bf mtx-changer} 
925 que nous fournissons, mais ce pourrait \^etre n'importe quel programme 
926 qui impl\'emente les commandes {\bf loaded}, {\bf load}, {\bf unload}, {\bf list}, 
927 et {\bf slots} qu'utilise Bacula. Voici le format sous lequel ces commandes 
928 doivent retourner les informations :
929
930 \footnotesize
931 \begin{verbatim}
932 - Currently the changer commands used are:
933     loaded -- retourne le num\'ero du slot d'origine de la cartouche charg\'ee, 
934               avec pour base 1 et 0 pour le lecteur.
935     load   -- charge la cartouche du slot sp\'ecifi\'e dans le lecteur.(notez que certains 
936               mat\'eriels requi\`erent une pause de 30 secondes apr\`es cette commande)
937     unload -- d\'echarge le lecteur (la cartouche retourne dans son slot d'origine).
938     list   -- retourne une ligne par cartouche pr\'esente dans la librairie 
939               au format <slot>:<barcode> o\`u {\bf slot} est un entier non-nul 
940               repr\'esentant le num\'ero du slot, et {\bf barcode} est le code barres, 
941               s'il existe et si la librairie le prend en charge, associ\'e \`a la cartouche 
942               (dans le cas contraire, le champ "barcode" est laiss\'e blanc.
943     slots  -- retourne le nombre total de slots dans la librairie.
944 \end{verbatim}
945 \normalsize
946
947 Bacula contr\^ole le code de sortie du programme appel\'e. Si ce code est 0, les 
948 informations sont accept\'ees. Dans le cas contraire, elles sont ignor\'ees 
949 et le lecteur est trait\'e comme s'il n'\'etait pas dans une librairie.