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