La ressource Autochanger supporte les librairies à un ou plusieurs lecteurs en regroupant une ou plusieurs ressources Device en une unité nommée Autochanger dans Bacula (souvent désignée en tant que librairie de bandes par les constructeurs). Si vous possédez une librairie, et si vous voulez qu'elle fonctionne correctement, vous devez avoir une ressource Autochanger dans le fichier de configuration de votre Storage Daemon, et les directives Storage de votre Director doivent se référer au nom de la ressource Autochanger si elles sont supposées utiliser la librairie. Dans les versions antérieures à 1.38.0, les directives Storage du Director se référaient directement aux ressources Device qui étaient des librairies. Désormais, ce type de référence directe ne fonctionne plus avec les librairies.
Voici un exemple de définition de ressource Autochanger valide :
Autochanger {
Name = "DDS-4-changer"
Device = DDS-4-1, DDS-4-2, DDS-4-3
Changer Device = /dev/sg0
Changer Command = "/etc/bacula/mtx-changer %c %o %S %a %d"
}
Device {
Name = "DDS-4-1"
Drive Index = 0
Autochanger = yes
...
}
Device {
Name = "DDS-4-2"
Drive Index = 1
Autochanger = yes
...
Device {
Name = "DDS-4-3"
Drive Index = 2
Autochanger = yes
Autoselect = no
...
}
Notez l'importance de la directive Autochanger = yes dans chaque définition de périphérique appartenant à une librairie. Un périphérique ne devrait pas être défini comme appartenant à plusieurs librairies. Aussi, votre directive Device dans la ressource Storage du Director devrait comporter le nom de la ressource Autochanger plutôt que le nom de l'un des lecteurs.
Si vous avez un lecteur qui appartient physiquement à une librairie mais que vous ne souhaitez pas que Bacula puisse l'utiliser automatiquement (par exemple, si vous voulez le réserver pour les restaurations) vous pouvez utiliser la directive :
Autoselect = no
à la ressource Device de ce lecteur. Dans ce cas, Bacula ne le sélectionnera pas automatiquement en accédant à la librairie. Vous pouvez encore utiliser le lecteur en le désignant par son nom de ressource device plutôt que par celui de la ressource Autochanger. Un exemple d'une telle définition est montré ci-dessus pour le lecteur DDS-4-3, qui ne sera pas sélectionné si le nom DDS-4-changer est utilisé dans une ressource Storage, mais le sera si DDS-4-3 est utilisé.
Pour une description de la ressource Messages, veuillez consulter le chapitre La ressource Messages de ce manuel.
Voici un exemple de fichier de configuration du Storage Daemon :
#
# Default Bacula Storage Daemon Configuration file
#
# For Bacula release 1.37.2 (07 July 2005) -- gentoo 1.4.16
#
# You may need to change the name of your tape drive
# on the "Archive Device" directive in the Device
# resource. If you change the Name and/or the
# "Media Type" in the Device resource, please ensure
# that bacula-dir.conf has corresponding changes.
#
Storage { # definition of myself
Name = rufus-sd
Address = rufus
WorkingDirectory = "$HOME/bacula/bin/working"
Pid Directory = "$HOME/bacula/bin/working"
Maximum Concurrent Jobs = 20
}
#
# List Directors who are permitted to contact Storage daemon
#
Director {
Name = rufus-dir
Password = "ZF9Ctf5PQoWCPkmR3s4atCB0usUPg+vWWyIo2VS5ti6k"
}
#
# Restricted Director, used by tray-monitor to get the
# status of the storage daemon
#
Director {
Name = rufus-mon
Password = "9usxgc307dMbe7jbD16v0PXlhD64UVasIDD0DH2WAujcDsc6"
Monitor = yes
}
#
# Devices supported by this Storage daemon
# To connect, the Director's bacula-dir.conf must have the
# same Name and MediaType.
#
Autochanger {
Name = Autochanger
Device = Drive-1
Device = Drive-2
Changer Command = "/home/kern/bacula/bin/mtx-changer %c %o %S %a %d"
Changer Device = /dev/sg0
}
Device {
Name = Drive-1 #
Drive Index = 0
Media Type = DLT-8000
Archive Device = /dev/nst0
AutomaticMount = yes; # when device opened, read it
AlwaysOpen = yes;
RemovableMedia = yes;
RandomAccess = no;
AutoChanger = yes
Alert Command = "sh -c 'tapeinfo -f %c |grep TapeAlert|cat'"
}
Device {
Name = Drive-2 #
Drive Index = 1
Media Type = DLT-8000
Archive Device = /dev/nst1
AutomaticMount = yes; # when device opened, read it
AlwaysOpen = yes;
RemovableMedia = yes;
RandomAccess = no;
AutoChanger = yes
Alert Command = "sh -c 'tapeinfo -f %c |grep TapeAlert|cat'"
}
Device {
Name = "HP DLT 80"
Media Type = DLT8000
Archive Device = /dev/nst0
AutomaticMount = yes; # when device opened, read it
AlwaysOpen = yes;
RemovableMedia = yes;
}
#Device {
# Name = SDT-7000 #
# Media Type = DDS-2
# Archive Device = /dev/nst0
# AutomaticMount = yes; # when device opened, read it
# AlwaysOpen = yes;
# RemovableMedia = yes;
#}
#Device {
# Name = Floppy
# Media Type = Floppy
# Archive Device = /mnt/floppy
# RemovableMedia = yes;
# Random Access = Yes;
# AutomaticMount = yes; # when device opened, read it
# AlwaysOpen = no;
#}
#Device {
# Name = FileStorage
# Media Type = File
# Archive Device = /tmp
# LabelMedia = yes; # lets Bacula label unlabeled media
# Random Access = Yes;
# AutomaticMount = yes; # when device opened, read it
# RemovableMedia = no;
# AlwaysOpen = no;
#}
#Device {
# Name = "NEC ND-1300A"
# Media Type = DVD
# Archive Device = /dev/hda
# LabelMedia = yes; # lets Bacula label unlabeled media
# Random Access = Yes;
# AutomaticMount = yes; # when device opened, read it
# RemovableMedia = yes;
# AlwaysOpen = no;
# MaximumPartSize = 800M;
# RequiresMount = yes;
# MountPoint = /mnt/cdrom;
# MountCommand = "/bin/mount -t iso9660 -o ro %a %m";
# UnmountCommand = "/bin/umount %m";
# SpoolDirectory = /tmp/backup;
# WritePartCommand = "/etc/bacula/dvd-handler %a write %e %v"
# FreeSpaceCommand = "/etc/bacula/dvd-handler %a free"
#}
#
# A very old Exabyte with no end of media detection
#
#Device {
# Name = "Exabyte 8mm"
# Media Type = "8mm"
# Archive Device = /dev/nst0
# Hardware end of medium = No;
# AutomaticMount = yes; # when device opened, read it
# AlwaysOpen = Yes;
# RemovableMedia = yes;
#}
#
# Send all messages to the Director,
# mount messages also are sent to the email address
#
Messages {
Name = Standard
director = rufus-dir = all
operator = root = mount
}