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