Certaines librairies comportent plusieurs périphériques de lecture/éctriture (lecteurs). La nouvelle ressource Autochanger apparue avec la version 1.37 vous permet de grouper des ressources Devices (représentant chacune un lecteur). Le Director est toujours en mesure d'adresser directement un lecteur, mais ce faisant, il outrepasse le fonctionnement propre aux groupements de lecteurs. Il est préférable que la Ressource Storage du Director définisse une ressource Autochanger, permettant ainsi au Storage Daemon de s'assurer qu'un seul lecteur à la fois utilise le script mtx-changer, et que deux lecteurs ne tentent pas de lire le même volume.
Les librairies à lecteurs multiples nécessitent d'utiliser la directive Drive Index dans la ressource Device du Storage Daemon. Les lecteurs sont numérotés à partir de zéro, ce qui constitue la valeur par défaut. Pour utiliser un deuxième lecteur dans une librairie, vous devez définir une seconde ressource Device et lui attribuer le Drive Index 1. En général, le second périphérique aura le même Changer Device (canal de contrôle) que le premier, mais une Archive Device différente.
Par défaut, les jobs Bacula préfèrent écrire sur un volume déjà monté. Si vous avez une librairie avec plusieurs lecteurs, et si vous souhaitez que Bacula écrive sur plusieurs volumes du même pool en même temps, vous devez désactiver la directive Prefer Mounted Volumes dans la ressource Job du Director. Ainsi le Storage Daemon pourra maximiser l'usage des lecteurs.
La configuration des librairies s'effectue dans Bacula au niveau de le ressource Device du Storage Daemon. Quatre directives permettent de définir l'usage de la librairie par Bacula : Autochanger, Changer Device, Changer Command et Maximum Changer Wait
Ces quatre directives sont décrites en détail ci-dessous. Notez cependant que les directives Changer Device et Changer Command ne sont pas requises dans la ressource Device si elles figurent dans la ressource Autochanger.
Sur FreeBSD, on spécifiera typiquement Changer Device = /dev/pass0 ou Changer Device = /dev/passn.
Sur Solaris, ce sera Changer Device = /dev/rdsk.
Assurez vous que votre Storage Daemon possède les permissions d'accéder à ce périphérique.
%% = %
%a = archive device name
%c = changer device name
%d = changer drive index base 0
%f = Client's name
%j = Job name
%o = command (loaded, load, or unload)
%s = Slot base 0
%S = Slot base 1
%v = Volume name
Voici un exemple d'utilisation de mtx avec le script mtx-changer :
Changer Command = "/etc/bacula/mtx-changer %c %o %S %a %d"
Où vous devrez adapter le chemin /etc/bacula pour qu'il co'incide à la réalité de votre installation. Les détails des trois commandes (loaded, load, unload) utilisées par Bacula ainsi que la sortie qui en est attendue sont donnés dans la section Interface entre Bacula et les librairies ci-dessous.
Au delà de ce délai, le programme de chargement est tué et Bacula sollicite l'intervention d'un opérateur.
Device Index = 1
Pour utiliser le second lecteur, vous devez avoir une seconde définition de ressource Device dans le fichier bacula-sd.conf. Voyez la section concernant les lecteurs multiples plus haut dans ce chapitre pour plus de plus amples informations.
De plus, pour un fonctionnement correct de la librairie, vous devez définir une ressource Autochanger.