next up previous contents index
suivant: La ressource Autochanger monter: Adapter les fichiers de précédent: Configuration du Client/File Daemon   Table des matières   Index

Sous-sections


Configuration du Storage Daemon

General

Le fichier de configuration du Storage Daemon a relativement peu de définitions de resources. Cependant, en raison du nombre pléthorique de media et de systèmes, il doit être hautement paramétrable. Par conséquent, il existe un nombre assez important de directives dans la définition de ressource Devices qui vous permettent de définir toutes les caractéristiques de votre périphérique de stockage. Heureusement, avec les matériels modernes, les valeurs par défaut sont généralement suffisantes, et très peu de directives sont réellement indispensables.

Des exemples de directives de ressources device connues pour fonctionner pour beaucoup de lecteurs de bandes communs peuvent être trouvés dans le répertoire : <bacula-src>/examples/devices. La plupart seront énumérés ici.

Pour une discussion générale concernant les fichiers de configuration de Bacula, les ressources et les types de données reconnus, veuillez consulter le chapitre Configuration de ce manuel. Les définitions de ressources Storage suivantes doivent être définies :


Ressource Storage

En général, les propriétés spécifiées au niveau de la ressource Storage définissent des propriétés globales du Storage Daemon. Chaque fichier de configuration de Storage Daemon doit avoir sa propre définition de ressource Storage.

Name = <Storage-Daemon-Name>
Spécifie le nom du Storage Daemon. Cette directive est requise.
Working Directory = <Répertoire>
Cette directive spécifie un répertoire où le Storage Daemon peut placer ses fichiers d'état. Ce répertoire ne devrait être utilisé que par Bacula, mais peut être partagé par d'autres daemons Bacula, pourvu que les noms donnés à chaque daemon soient uniques. Cette directive est requise.

Pid Directory = <Répertoire>
Cette directive spécifie un répertoire où le Storage Daemon peut déposer son fichier d'Id de processus. Ce fichier est utilisé pour stopper Bacula et prévenir l'exécution simultanée de plusieurs copies de Bacula. Les substitutions shell standard sont effectuées à la lecture du fichier de configuration, de sorte que des valeurs telles que $HOME seront correctement substituées.

Typiquement, sur les systèmes Linux, vous utiliserez ici /var/run. Si vous n'installez pas Bacula dans les répertoires système, vous pouvez utiliser le répertoire de travail Working Directory défini plus haut. Cette directive est requise.

Heartbeat Interval = <Période>
Cette directive définit la période des pulsations émises par le Storage Daemon vers le File Daemon lorqu'il (le SD) se trouve en situation d'attente du montage d'une cartouche par l'opérateur. La valeur par défaut est zéro, ce qui désactive les pulsations. Cette fonctionnalité est particulièrement utile si vous avez un routeur (tel que les 3Com) qui ne suit pas les standards Internet et expire une connection valide après une courte durée, bien que keepalive soit activé. Ceci produit habituellement un message d'erreur du type broken pipe.

Maximum Concurrent Jobs = <nombre>
Où <nombre> est nombre maximal de jobs qui peuvent être exécutés simultanément. La valeur par défaut est fixée à 10, mais vous pouvez définir une valeur plus grande. Chaque connexion depuis le Director (par exemple une requête de statut, le lancement d'un job...) est considérée comme un job, aussi, si vous voulez conserver la possibilité d'utiliser la commande status dans la console alors qu'un job est en cours d'exécution, vous devez utiliser une valeur strictement supérieure à 1. Pour exécuter plusieurs jobs simultanément, vous devez paramétrer plusieurs autres directives dans le fichier de configuration du Director. Selon ce que vous voulez faire, il faudra intervenir sur l'un ou l'autre paramètre, mais vous devrez presque surement régler le paramètre Maximum Concurrent Jobs de la ressource Storage du fichier de configuration du Director, et peut-être aussi ceux des ressources Job et Client.

SDAddresses = <Adresse IP>
Précise les ports et adresses sur lesquels le Storage Daemon est à l'écoute de connections du Director. En principe, les valeurs par défaut sont suffisantes, et vous n'avez pas besoin d'utiliser cette directive. La meilleure explication du fonctionnement de cette directive est certainement un exemple :

 SDAddresses  = { ip = {
        addr = 1.2.3.4; port = 1205; }
    ipv4 = {
        addr = 1.2.3.4; port = http; }
    ipv6 = {
        addr = 1.2.3.4;
        port = 1205;
    }
    ip = {
        addr = 1.2.3.4
        port = 1205
    }
    ip = {
        addr = 1.2.3.4
    }
    ip = {
        addr = 201:220:222::2
    }
    ip = {
        addr = bluedot.thun.net
    }
}

où "ip", "ip4", "ip6", "addr", et "port" sont des mots-clef. Notez que les adresses peuvent être spécifiées sous forme de quadruplets pointés, de nom symboliques (uniquement dans la spécification "ip") ou en notation IPv6 à double points. Le port peut quand à lui être spécifié par son numéro, ou par sa valeur mnémonique du fichier /etc/services. Si un port n'est pas spécifié, la valeur par défaut est utilisée. Si une section ip est spécifiée, la résolution peut être réalisée par ipv4 ou ipv6. En revanche, si ip4 ou ip6 est spécifiée, seule la résolution correspondante fonctionne.

Vous pouvez, avec ces directives, remplacer les valeurs des directives SDPort et SDAddress montrées ci-dessous.

SDPort = <Numéro de port>
Spécifie le numéro de port sur lequel le Storage Daemon écoute les connexions en provenance du Director. La valeur par défaut est 9103.

SDAddress = <Adresse IP>
Cette directive est optionnelle. Lorsqu'elle est spécifiée, le Storage Daemon n'accepte de connections (de Director(s) ou de File(s) Daemon(s)) que de l'adresse spécifiée Adresse-IP, qui peut être soit un nom de domaine, soit une adresse IP au format quadruplet pointé. Si cette directive n'est pas spécifiée, le Storage Daemon acceptera des connections de de toute adresse valide.

Voici une définition typique d'une ressource Storage du Storage Daemon :

#
# "Global" Storage daemon configuration specifications appear
# under the Storage resource.
#
Storage {
  Name = "Storage daemon"
  Address = localhost
  WorkingDirectory = "~/bacula/working"
  Pid    Directory = "~/bacula/working"
}


La ressource Director

La ressource Director spécifie le nom du Director qui est autorisé à utiliser les services du Storage Daemon. Il peut exister plusieurs ressources Director. Le nom et le mot de passe du Director doivent s'accorder avec leurs homologues dans le fichier de configuration du Storage Daemon.

Name = <Nom-du-Director>
Spécifie le nom du Director autorisé à se connecter au Storage Daemon. Cette directive est requise.

Password = <Mot-de-passe-du-Director>
Spécifie le mot de passe qui doit être soumis par le Director susnommé. Cette directive est requise.

Monitor = <yes|no>
Si cette directive est désactivée (no), ce qui est le cas par défaut, ce Director dispose d'un accès illimité à ce Storage Daemon. Dans le cas contraire, ce Director est bridé de façon à pouvoir seulement récupérer le statut courant de ce Storage Daemon.

Si ce Director est utilisé par un superviseur, nous vous recommandons fortement d'activer cette directive pour éviter de sérieux problèmes de sécurité.

Voici un exemple d'une définition de ressource Director valide :

Director {
  Name = MainDirector
  Password = my_secret_password
}

La Ressource Device

La ressource Device spécifie les détails de chaque périphérique (en général, un lecteur de bandes) qui peut être utilisé par le Storage Daemon. Un Storage Daemon peut disposer de plusieurs ressources Device. En général, les propriétés spécifiées dans la ressource Device sont spécifiques au périphérique.

Name = Nom-de-périphérique
Spécifie le nom que le Director devra utiliser pour désigner ce périphérique. Il s'agit d'un nom logique, c'est une chaîne qui peut comporter jusqu'à 127 caractères. C'est en général une bonne idée d'utiliser un nom qui corresponde au nom "humain" du périphérique (NDT: la vo dit "the english name"). Le nom physique du périphérique est spécifié au niveau de la directive Archive Device décrite ci-dessous. Le nom que vous spécifiez ici est aussi utilisé dans le fichier de configuration de votre Director au niveau de la directive Device de sa ressource Storage.

Archive Device = chaîne-nom
La chaîne-nom (NDT : name-string dans la vo) spécifie le nom de fichier système du périphérique de stockage géré par ce daemon. Il s'agit en général d'un nom de périphérique amovible, par exemple un lecteur de bande désigné par "/dev/nst0" ou "/dev/rmt/0mbn". Dans le cas d'un graveur de DVD, ce sera par exemple /dev/hdc. Ce peut être aussi un un nom de répertoire si vous sauvegardez sur disque. Dans ce cas, vous devez soumettre le chemin absolu vers ce répertoire. Lorsque vous utilisez un lecteur de bandes, il est préférable d'utiliser la variante "non-rewind" du fichier de périphérique. De plus, sur les systèmes tels que Sun, qui disposent de plusieurs méthodes d'accès aux cartouches, prenez soin de spécifier l'usage de la convention I/O Berkeley avec les périphériques. le b de la spécification /dev/rmt/0mbn Solaris (Sun) est ce qui est requis dans ce cas. Bacula ne supporte pas le comportement SysV des lecteurs de bandes.

Comme mentionné plus haut,Archive Device est, en principe, le nom d'un lecteur de bandes, mais vous pouvez tout aussi bien spécifier le chemin absolu vers un répertoire existant. Dans ce cas, Bacula utilisera un fichier pour stocker les données dans le répertoire spécifié, le nom de fichier utilisé sera celui du volume tel que spécifié dans le catalogue. Si vous souhaitez écrire dans plusieurs répertoires (dans le but de répartir la charge sur plusieurs disques), vous devez définir deux ressources Device, chacune comportant une Archive Device avec un répertoire différent.

Une troisième possibilité consiste à spécifier le nom d'un FIFO. Un FIFO est un fichier spécial qui connecte deux programmes via la mémoire du noyau. Si vous spécifiez un FIFO en guise d'Archive Device, vous devez avoir un programme qui lit ce que Bacula écrit dans le FIFO. Lorsque le Storage Daemon démarre le job, il attend que le programme lecteur commence à lire pendant un délai maximal de de MaximumOpenWait secondes, au delà duquel le job est terminé. Par conséquent, il est préférable de lancer le programme lecteur au début du job, par exemple grâce à la directive RunBeforeJob. Pour ce type de périphérique, vous ne devez jamais spécifier AlwaysOpen, puisque vous voulez que le Storage Daemon ne l'ouvre que lorsqu'un job démarre, aussi veuillez attribuer explicitement la valeur No à cette directive. Puisqu'un FIFO est un périphérique à sens unique, Bacula ne tente pas d'en lire le label, il se contente d'y écrire. Pour créer un volume FIFO dans le catalogue, utilisez la commande add plutôt que la commande label afin d'éviter de tenter d'écrire un label.

Lors d'une opération de restauration, si l'Archive Device est un FIFO, Bacula tente de lire le FIFO, aussi vous devez avoir un programme externe qui écrit dans le FIFO. Bacula attend que ce programme commence à écrire pendant un délai maximal de MaximumOpenWait secondes après quoi il termine le job. Comme mentionné ci-dessus, vous pouvez utiliser la directive RunBeforeJob pour lancer ce programme auteur dès le début du job.

La directive Archive Device est requise.

Device Type = Spécification-de-type
La spécification Device Type de déclarer explicitement à Bacula quel type de périphérique vous définissez. La valeur de Spécification-de-type peut être l'une des suivantes :
File
Indique à Bacula que le périphérique est un fichier. Ce peut être un fichier défini sur un médium fixe ou au contraire amovible (par exemple, un périphérique USB). Tous les fichiers doivent être des périphériques en accès sélectif (NDT : traduction Google sans doute à revoir de "random access")
tape
Indique à Bacula que le périphérique est un lecteur de bandes, donc à accès séquentiel. Ces périphériques sont controlé par les appels ioctl().
Fifo
Indique à Bacula que le périphérique est un périphérique à accès séquentiel "first-in-first-out" (premier entré, premier sorti) en lecture seule ou en écriture seule.
DVD
Indique à Bacula que le périphérique est un DVD. Les DVDs sont à accès séquentiel en écriture et à accès sélectif (NDT : traduction Google sans doute à revoir de "random access") en lecture.

La directive Device Type n'est pas requise, et si elle n'est pas spécifiée, Bacula tentera de deviner cette information selon la spécification Archive Device fournie. Il existe plusieurs avantages à spécifier explicitement le type de périphérique. D'abord, sur certains systèmes, les périphériques bloc et caractère ont le même type, ce qui signifie que sur ces systèmes, Bacula est probablement incapable de deviner qu'un périphérique est un DVD. Ensuite, si vous spécifiez explicitement le type de périphérique, le point de montage n'a pas besoin d'être défini jusqu'à ce que le périphérique soit ouvert. C'est le cas de la plupart des périphériques amovibles tels que les USB montés par le daemon HAL. Au contraire, si le type de périphérique n'est pas spécifié explicitement, le point de montage doit exister dès le démarrage du Storage Daemon.

Cette directive est apparue avec la version 1.38.6 de Bacula.

Media Type = name-string
La chaîne name-string spécifiée baptise le type de média supporté par ce périphérique, par exemple, "DLT7000". Les noms de type de média sont arbitraires, vous pouvez utiliser le nom de votre choix, mais ils doivent être connus du catalogue pour qu'il puisse garder trace de quel daemon peut lire quel type de média. En général, chaque type de stockage devrait avoir un type de média unique associé. Le même nom name-string doit apparaître dans la définition de ressource Storage appropriée du fichier de configuration du Director.

Même si les noms que vous assignez sont arbitraires, vous devriez les choisir avec circonspection, car le Media Type est utilisé pour déterminer le périphérique de stockage à sélectionner lors d'une restauration. Ainsi, vous devriez certainement utiliser le même Media Type pour tous les lecteurs dont les cartouches sont interchangeables. Ce n'est généralement pas un problème si vous n'avez qu'un Storage Daemon, mais c'en est un avec plusieurs Storage Daemon, surtout s'ils utilisent des média incompatibles.

Si, par exemple, vous spécifiez le Media Type "DDS-4", Bacula pourra lors de restaurations sélectionner tout Storage Daemon qui supporte les "DDS-4". Si vous avez une librairie, vous voudrez peut-être baptiser son Media Type d'un nom qui lui soit unique, à moins que vous souhaitiez pouvoir utiliser ses volumes dans d'autres lecteurs. Vous devriez aussi vous assurer d'avoir des noms de Media Type uniques si les media ne sont pas compatibles d'un lecteur à l'autre. Cette spécification est requise pour tous les périphériques.

Enfin, si vous utilisez le stockage sur disque, sachez que chaque ressource Device a généralement un point de montage (ou répertoire) différent. Afin que Bacula puisse sélectionner correctement la ressource Device à utiliser, chacun doit avoir un Media Type distinct.

Autochanger = Yes|No
Si cette directive est à yes, alors Bacula considère que le périphérique concerné est dans une librairie, et il vous faut spécifier une ressource Autochanger qui pointe vers les ressources Device. Vous devez aussi renseigner la directive Changer Device. Si la directive est à No (valeur par défaut), les volumes doivent être changés manuellement. Vous devriez aussi avoir une directive identique à la Storage resource dans le fichier de configuration du Director, de sorte que Bacula vous demande le slot lors de l'étiquetage des cartouches.

Changer Device = chaîne-nom
La chaîne-nom spécifiée doit être le nom de périphérique SCSI générique associé à l'Archive Device spécifiée dans la ressource Device. Ce nom de périphérique SCSI générique devrait être spécifié si vous avez une librairie ou si vous n'avez qu'un lecteur standard mais souhaitez utiliser la commande Alert (voir ci-dessous). Par exemple, sur les systèmes Linux, vous spécifierez certainement /dev/nst0 pour le nom d'Archive Device, et /den/sg0 pour le nom de Changer Device. Selon votre configuration, le nombre de librairies dont vous disposez et leurs types, le nom que vous serez amené à spécifier ici peut varier. Cette directive est optionnelle. Consultez le chapitre Utiliser une librairie de ce manuel pour plus de détails concernant les directives relatives aux librairies.

Changer Command = chaîne nom
La chaîne-nom désigne un programme externe qui aura pour tâche le changement des volumes à la demande de Bacula. En principe, cette directive n'est spécifiée qu'au niveau de la ressource AutoChanger, qui est alors utilisée pour tous les périphériques. Cependant, vous pouvez parfaitement utiliser une commande Changer Command différente pour chaque ressource Device. La plupart du temps, vous spécifierez le script mtx-changer fourni avec Bacula de la façon suivante :

Changer Command = "/path/mtx-changer %c %o %S %a %d"

Et vous installerez le programme mtx sur votre système (paquetage tiers). Un exemple de cette commande figure dans le fichier de configuration par défaut du Storage Daemon, bacula-sd.conf. Pour plus de détails concernant les substitutions de caractères qui peuvent être utilisées pour configurer votre librairie, veuillez consulter le chapitre sur l'utilisation des Librairies. Les utilisateurs de FreeBSD voudront probablement jeter un oeil aux quelques scripts fournis dans le répertoire examples/autochangers.

Alert Command = name-string
La chaîne-nom désigne un programme externe à appeler au terme de chaque job après que le périphérique ait été libéré. Le but de cette commande est de récupérer d'éventuels messages d'alerte du lecteur pour vous prévenir si quelque chose ne fonctionne pas correctement (ces messages existent au moins sur la plupart des lecteurs modernes). Les mêmes substitutions que celles décrites au niveau de la Changer command peuvent être utilisées ici. Pour plus d'informations, veuillez consulter le chapitre sur les Librairies de ce manuel.

Notez que vous pouvez trouver un usage à cette commande sans nécessairement posséder une librairie. L'exemple ci-dessous utilise le programme tapeinfo qui vient avec le paquet mtx mais peut être utilisé avec n'importe quel lecteur. Vous devrez tout de même spécifier une directive Changer Device dans votre ressource Device (voir ci-dessus) afin que le périphérique SCSI générique puisse être édité dans la commande (avec %c).

Voici un exemple qui affiche les alertes en provenance du lecteur dans les rapports de jobs :

Alert Command = "sh -c 'tapeinfo -f %c | grep TapeAlert'"
      

Et un exemple de ce qui peut en sortir lorqu'il y a un problème :

bacula-sd  Alert: TapeAlert[32]: Interface: Problem with SCSI interface
                  between tape drive and initiator.

Drive Index = number
Le numéro de lecteur, ou Drive Index, que vous spécifiez ici est passé au script mtx-changer et donc au programe mtx. Par défaut, le Drive Index vaut zéro, aussi, si vous n'avez qu'un lecteur dans votre librairie, tout fonctionnera correctement. Si en revanche vous avez plusieurs lecteurs, vous devez spécifier plusieurs ressources Device (une par lecteur). Il n'est pas nécessaire de spécifier la valeur zéro pour la directive Drive Index dans la première de ces ressources (valeur par défaut). Par contre, la seconde devrait contenir une directive Drive Index égale à 1, la troisième une directive Drive Index égale à 2, et ainsi de suite. A partir de la version 1.38.0, en utilisant la ressource Autochanger, Bacula s'assure qu'un seul lecteur à la fois utilise le script d'autochargement (script mtx-changer), aussi vous n'avez plus besoin de scripts de verrouillage comme ce fut le cas dans le passé -- Le script mtx-change fourni avec Bacula fonctionne avec un nombre quelconque de lecteurs.

Autoselect = Yes|No
Si cette directive vaut yes (valeur par défaut), et si le périphérique appartient à une librairie, alors lorsque la librairie est référencée par le Director, ce périphérique peut être automatiquement sélectionné. Si cette directive vaut no, alors le périphérique peut seulement être désigné par son nom de périphérique (Device Name) dans le Director. Ceci permet de réserver un lecteur pour une tâche particulière, comme une sauvegarde hautement prioritaire, ou des opérations de restaurations.

Maximum Changer Wait = time
Cette directive spécifie le délai maximum, en secondes, pendant lequel Bacula peut attendre d'une librairie qu'elle change de volume. Au delà de ce délai, Bacula invalide le numéro de slot référencé dans le catalogue et essaye à nouveau. Si aucun autre volume n'est disponible dans la librairie, Bacula réclame l'intervention d'un opérateur. La valeur par défaut est 5 minutes.

Maximum Rewind Wait = time
Cette directive spécifie le délai maximum, en secondes, pendant lequel Bacula peut attendre d'un lecteur qu'il rembobine une cartouche. Au delà de ce délai, le job est effacé. La valeur par défaut est 5 minutes.

Maximum Open Wait = time
Cette directive spécifie le délai maximum, en secondes, pendant lequel Bacula peut attendre après une commande Open.Au delà de ce délai, le job est effacé. La valeur par défaut est 5 minutes.

Always Open = Yes|No
Si la valeur spécifiée ici est Yes (valeur par défaut), Bacula garde le périphérique ouvert, à moins qu'il ne soit explicitement démonté (unmounted) depuis la console Bacula. Ceci permet à Bacula de s'assurer que le lecteur est toujours disponible. Si vous réglez AlwaysOpen à no Bacula, Bacula ouvre le lecteur seulement lorsque nécessaire, et le libère à la fin du job, si aucun autre job ne l'utilise. Lors de l'utilisation suivante, Bacula doit rembobiner la cartouche et se repositionner au bon endroit. Pour éviter ces rembnobinages inutiles et les interventions de l'opérateur, il est hautement recommandé de garder la valeur Always Open = yes. Ceci assure aussi que le lecteur est disponible lorsque Bacula en a besoin.

Si vous avez spécifié Always Open = yes (comme recommandé) et si vous voulez utiliser le lecteur pour autre chose, libérez-le simplement avec la commande unmount dans la console Bacula. N'oubliez-pas ensuite de remonter le lecteur avec la commande mount afin que Bacula soit prèt à prendre en charge le prochain job planifié.

Pour le stockage sur disque (File Storage), cette directive est ignorée. Dans le cas d'un stockage FIFO, vous devez mettre cette directive à No.

Notez bien que si vous mettez cette directive à No, Bacula libère le lecteur entre chaque job, obligeant le lecteur à rembobiner la cartouche, et à replacer la bande à la fin de la zone de données, ce qui peut prendre beaucoup de temps.

Volume Poll Interval = période
Si la période spécifiée pour cette directive est non nulle alors, après avoir demandé à l'opérateur de monter un nouveau volume, Bacula retentera périodiquement de lire le lecteur selon la période spécifiée au cas où un nouveau volume aurait été monté. Si la valeur spécifiée est zéro, ces tentatives de lecture n'ont pas lieu. Cette directive est utile lorsque vous souhaitez éviter l'intervention d'un opérateur à la console. Au lieu de quoi l'opérateur se contente de sortir la cartouche précédente et de monter la nouvelle qui sera reconnue à la prochaine tentative. Soyez conscient que si vous spécifiez une période trop courte, vous risquez de solliciter excessivement votre lecteur si la cartouche précédente demeure dans le lecteur, puisque Bacula la lira à chaque tentative. Vous pouvez éviter ceci en éjectant la cartouche avec les directives Offline On Unmount et Close on Poll. Cependant, si vous utilisez un noyau Linux 2.6 ou un autre système d'exploitation tel FreeBSD ou Solaris, les commandes Offline ou Unmount laisseront le lecteur sans cartouche, et Bacula, incapable de d'ouvrir correctement le lecteur, pourrait échouer ses jobs. Pour plus d'informations sur ce problème, veuillez consulter la section description of Offline On Unmount du chapitre relatif aux tests des lecteurs de bandes.

Close on Poll= Yes|No
Si cette directive est à Yes, Bacula ferme le périphérique et le réouvre à chaque tentative (ce qui est équivalent à unmount, sauf qu'il n'est pas nécessaire d'utiliser mount ensuite). En principe, cette directive n'est pas très utile à moins que vous ayez activé la directive Offline on Unmount, auquel cas le lecteur sera considéré hors-ligne (NDT : offline) prévenant ainsi de nombreux mouvements inutiles de la bande lors de chaque tentative de lecture. Une fois que l'opérateur aura chargé une nouvelle cartouche, Bacula sera en mesure de s'en rendre compte à la prochaine tentative et poursuivra automatiquement la sauvegarde. Voyez ci-dessus pour plus de détails.

Maximum Open Wait = time
Cette directive spécifie le délai maximum, en secondes que Bacula accorde à un périphérique occupé. La valeur par défaut est 5 minutes. Si le périphérique ne peut être obtenu, le job en cours est terminé en erreur. Bacula tentera à nouveau d'ouvrir le lecteur lorsqu'un nouveau job le réclamera.

Removable media = Yes|No
Réglez cette directive à Yes si le périphérique concerné supporte des média amovibles (par exemple des cartouches ou des CDROMs). Dans le cas de média inamovibles (par exemple, une zone de sauvegardes intermédiaires sur un disque dur), mettez Removable media = No

Random access = Yes|No
Si cette directive est à Yes, le périphérique de stockage est considéré comme étant un médium à accès aléatoire (NDT : random access medium) qui supporte les commodités lseek (ou lseek64 si l'option Largefile a été activée lors de la compilation).

Minimum block size = size-in-bytes
Sur la plupart des lecteurs modernes, vous n'aurez pas besoin de cette directive, dont le but est d'utiliser des blocs de taille fixe. Cette directive ne s'applique qu'aux périphériques à accès séquentiel (NDT : non-random access devices) comme, par exemple, les lecteurs de bandes. Les blocs écrits par le Storage Daemon sur un périphérique à accès séquentiel ne seront jamais de taille inférieure à la taille spécifiée size-in-bytes. Le Storage Daemon tente de remplir au mieux les blocs avec les données reçues, mais il complète si nécessaire pour atteindre la taille minimum requise Minimum block size .

Pour contraindre la taille des blocs à être fixe, comme c'est le cas de certains périphériques à accès séquentiel, stipulez des tailles de blocs minimum Minimum block size et maximum Maximum block size identiques. Le paramétrage par défaut est 0 pour les deux directives et la taille de bloc par défaut est de 64 512 octets.

Par exemple, si vous souhaitez fixer la taille des blocs à 100K octets, spécifiez :

 
    Minimum block size = 100K
    Maximum block size = 100K
Notez que si vous spécifiez une taille de blocs fixe comme ci-dessus, le lecteur doit être réglé soit en mode "taille de blocs variable", soit en mode "taille de blocs fixe" avec impérativement la même taille de blocs fixe que celle spécifiée dans Bacula (ce paramètre se règle généralement au niveau du lecteur avec mt), faute de quoi vous aurez des erreurs à la relecture de vos cartouches.

Si vous voulez que votre taille de blocs soit variable mais comprise entre 64 Ko et 200 Ko, spécifiez :

 
    Minimum block size = 64K
    Maximum blocksize = 200K

Maximum block size = size-in-bytes
Sur la plupart des lecteurs modernes, vous n'aurez pas besoin de cette directive. Dans le cas contraire, ce sera probablement pour utiliser des blocs de taille fixe (voir la directive Minimum block size ci dessus). Le Storage Daemon tente d'écrire des blocs de la taille spécifiée size-in-bytes sur le périphérique. Par conséquent cette directive fixe à la fois la taille maximale et la taille par défaut des blocs. La taille écrite n'excède jamais la taille spécifiée ici. Lorsque l'ajout de données provoquerait un dépassement, le bloc est écrit sur le périphérique, et un nouveau bloc est entamé. avec les données reçues, mais il complète si nécessaire pour atteindre

Si aucune valeur n'est spécifiée (ou si la valeur spécifiée est 0), le Storage Daemon utilise la valeur par défaut de 64 512 octets.

Hardware End of Medium = Yes|No
Si la valeur attribuée à cette directive est No, le périphérique de stockage n'a pas besoin de supporter les requêtes ioctl "fin de médium", le Storage Daemon utilisant la fonction d'avance jusqu'au prochain espace pour trouver la fin du médium. Si la valeur est Yes, le périphérique doit supporter l'appel ioctl MTEOM qui positionne la cartouche à la fin des données enregistrées. De plus, votre driver SCSI doit garder trace du nombre de fichiers enregistrés sur la cartouche, et le retourner correctement à l'appel MTIOCGET ioctl. Notez que certains pilotes SCSI savent se positionner correctement à la fin de la zone de données enregistrées sur la cartouche, mais ne gardent pas trace du nombre de fichiers. Sur les machines Linux, le driver SCSI a une option fast-eod qui, si elle est utilisée provoque la perte du nombre de fichiers. assurez-vous toujours que cette option est bien désactivée (à l'aide du programme mt).

Le réglage par défaut de cette directive est Yes. Cette option est utilisée lors de l'écriture à la suite d'une cartouche, pour s'assurer que les données précédemment écrites ne seront pas corrompues. Nous vous recommandons, si vous avez un lecteur non-standard ou inhabituel, de le tester avec le programme btape pour vérifier s'il supporte ou non cette fonction. Tous les lecteurs modernes (au delà de 1998) la supportent.

Fast Forward Space File = Yes|No
Si la valeur attribuée à cette directive est No, le périphérique de stockage n'a pas besoin de supporter les requêtes ioctl MTIOCGET "nombre de fichiers" lors du déplacement sur la bande jusqu'au prochain espace. Si au contraire vous spécifiez yes, le lecteur doit supporter l'appel ioctl MTFSF, que presque tous les pilotes supportent, mais de plus votre pilote SCSI doit garder trace et retourner correctement le nombre de fichiers à l'appel ioctl MTIOCGET . Notez que certains pilotes SCSI exécutent correctement les déplacements sur bande "jusqu'au prochain espace" sans toutefois garder trace du nombre de fichiers enregistrés, et même plus grave pour certains : sans signaler la fin du support.

La valeur par défaut de cette directive est Yes.

Use MTIOCGET = Yes|No
Si la valeur attribuée à cette directive est No, le système d'exploitation n'a pas besoin de garder trace du nombre de fichiers sur la cartouche, ni de le retourner à l'appel ioctl MTIOCGET. La valeur par défaut est Yes. Si vous devez mettre No ici, Bacula prendra en charge la détermination des positions de fichiers, mais cela implique des mouvements très inefficaces de la bande. Heureusement, cette déficience du système d'exploitation semble n'être l'apanage que de quelques *BSD. Solaris, Linux et FreeBSD sont connus pour fonctionner correctement.

BSF at EOM = Yes|No
Si cette directive est à No (valeur par défaut), Bacula n'entreprend aucune action particulière lorsque la fin du médium est atteinte car la cartouche est positionnée après la dernière marque de fin de fichier EOF, et Bacula peut écrire à la suite. Cependant, sur certains systèmes tels que FreeBSD, lorsque Bacula lit la marque de fin de cartouche, la cartouche est positionnée après la seconde marque de fin de fichier EOF (deux marques EOF successives indiquent la fin du support). Si Bacula écrit au delà de cette marque, toutes les données ajoutées seront perdues. La solutions pour ces systèmes consiste à spécifier BSF at EOM, ainsi Bacula recule en écrasant la seconde marque de fin de fichier. Pour savoir si vous avez besoin de cette directive, utilisez la commande test du programme btape.

(NDT : Paragraphe à revoir VO ci dessous) If No, the default, no special action is taken by Bacula with the End of Medium (end of tape) is reached because the tape will be positioned after the last EOF tape mark, and Bacula can append to the tape as desired. However, on some systems, such as FreeBSD, when Bacula reads the End of Medium (end of tape), the tape will be positioned after the second EOF tape mark (two successive EOF marks indicated End of Medium). If Bacula appends from that point, all the appended data will be lost. The solution for such systems is to specify BSF at EOM which causes Bacula to backspace over the second EOF mark. Determination of whether or not you need this directive is done using the test command in the btape program.

TWO EOF = Yes|No
Si cette directive est à Yes, Bacula écrit deux marques de fin de fichier EOF lorsqu'il a fini d'utiliser une cartouche -- c'est à dire après le dernier job, ou à la fin de la cartouche. Dans le cas contraire (la valeur par défaut), Bacula n'écrit qu'une marque de fin de fichier pour terminer une cartouche.

Backward Space Record = Yes|No
Si cette directive est à Yes, le périphérique supporte MTBSR ioctl pour reculer dans les enregistrements. Sinon, cet appel n'est pas utilisé et la bande doit être rembobinée puis avancée de fichier en fichier jusqu'à la position désirée. La valeur par défaut est Yes pour un périphérique à accès séquentiel. Cette fonction, si activée, est utilisée à la fin des volumes après écriture d'une marque fin de fichier et de toute étiquette ANSI/IBM pour déterminer si oui ou non le dernier bloc a été écrit correctement. Si vous désactivez cette fonction, le test ne sera pas fait. Ce n'est pas un problème car le processus de relecture est une précaution plutôt qu'une nécessité.

Backward Space File = Yes|No
Si cette directive est à Yes, le périphérique supporte les appels MTBSF et ioctl MTBSF pour reculer en-deça d'un marque de fin de fichier et se replacer au début du fichier. Si cette directive est à No, ces appels ne sont pas utilisés et le lecteur doit rembobiner la cartouche, puis avancer de fichier en fichier jusqu'à la position désirée. La valeur par défaut est Yes pour les périphériques à accès séquentiel.

Forward Space Record = Yes|No
Si cette directive est à Yes, le périphérique doit supporter les appels MTFSR ioctl pour avancer à travers les enregistrements. Si la valeur est No, les données doivent être lues dans l'ordre pour positionner la cartouche. La valeur par défaut est Yes pour les périphériques à accès séquentiel.

Forward Space File = Yes|No
Si cette directive est à Yes, le périphérique doit supporter les appels MTFSF ioctl pour déplacer la bande en se repérant aux marques de fichiers. Si la valeur est No, les données doivent être lues pour positionner la bande. La valeur par défaut est Yes pour les périphériques à accès séquentiel.

Offline On Unmount = Yes|No
Si cette directive est à Yes, le périphérique doit supporter les appels MTOFFL ioctl pour rembobiner et placer le volume à l'état offline. Dans ce cas, Bacula lance requête eject avant de fermer le lecteur lors de la commande unmount. Si la valeur est No (valeur par défaut), Bacula ne tente pas de mettre la cartouche à l'état offline avant de la démonter. Après que la cartouche ait été mise hors ligne, elle est éjectée requérant ainsi l'intervention d'un opérateur pour poursuivre. Certains systèmes exigent que la commande de chargement mt -f /dev/xxx load soit lancée avant de pouvoir reconnaître la cartouche. Si vous utilisez une librairie, sachez que certaines requièrent de passer le lecteur à l'état offline pour pouvoir changer de cartouche. Cependant, la plupart n'en on pas besoin et pourraient être déroutés si cette directive est à Yes.

Si vous utilisez un noyau Linux 2.6, ou un système tel que FreeBSD ou Solaris, la directive Offline On Unmount abandonnera votre lecteur sans cartouche, et Bacula incapable de l'utiliser. Pour plus d'informations sur ce problème, consultez la section description de Offline On Unmount dans le chapitre sur les tests de lecteurs.

Maximum Volume Size = size
Avec cette directive, vous pouvez imposer une limite au poids de données à écrire sur chaque volume. La valeur size représente le nombre d'octets autorisés. Cette directive est surtout utilisée à des fins de tests pour simuler des petits volumes, mais elle peut aussi se révéler utile si voulez limiter la taille de vos volumes, par exemple à 2 Go. Certains rares lecteurs vraiment anciens ne signalent pas correctement lorsque la fin de la cartouche est atteinte lors d'une opération d'écriture (Bien que j'aie lu des choses au sujet de tels lecteurs, je n'en n'ai jamais rencontré moi-même). Notez que cette directive est obsolète, rendue inutile par la directive Maximum Volume Bytes définie dans le fichier de configuration du Director.

Maximum File Size = size
Cette directive vous permet d'imposer une limite au poids des fichiers logiques sur le volume. La valeur size représente le nombre d'octets autorisés par fichier. Une fois cette valeur atteinte, une marque de fin de fichier est placée sur le volume et les données suivantes sont placées dans un nouveau fichier. Ce découpage des longues séquences de données en blocs plus petits permet un positionnement plus rapide du lecteur au début d'un flux de données et peut contribuer à prévenir les erreurs de lecture sur la cartouche lors des restaurations. La valeur par défaut est 1 Go.

Block Positioning = yes|no
Cette directive n'est pas utilisée en fonctionnement normal (et n'a pas encore été testée). Son rôle est d'enjoindre Bacula à ne plus utiliser le positionnement par blocs lors de la lecture des cartouches. Ceci peut rendre les opérations de restauration extrèmement lentes. Vous utiliserez cette directive si vous avez écrit vos cartouches avec Bacula en mode "taille de blocs variable" tandis que votre lecteur était en taille de blocs fixe. Si tout fonctionne comme je l'espère, Bacula sera capable de relire vos cartouches.

Maximum Network Buffer Size = bytes
Cette directive permet de spécifier la taille initiale du tampon réseau à utiliser avec le File Daemon. La valeur bytes est la taille exprimée en octets. Cette valeur es appelée à être ajustée à la baisse si elle est trop importante, jusqu'à ce qu'elle soit accepée par le système d'exploitation. Soyez circonspect dans l'usage de cette directive, car si vous utilisez une valeur trop grande, elle sera diminuée par incréments de 521 octets jusqu'à satisfaction du système d'exploitation, ce qui peut nécessiter un grand nombre d'appels système. La valeur par défaut est 32 768 octets.

La valeur par défaut a été choisie relativement importante, mais pas trop, au cas ou vous transmettriez vos données via Internet. Il est clair que sur un réseau local rapide, vous pouvez augmenter cette valeur et améliorer les performances. Par exemple, certains utilisateurs ont obtenu des facteurs d'accélération de l'ordre de 5 à 10 en utilisant un tampon réseau initial de 65 536 octets. La plupart des utilisateurs indiquent que des valeurs plus grandes ne semblent pas améliorer les performances. Si vous voulez améliorer la viteese de vos sauvegardes, cette directive est probablement le meilleur endroit pour expérimenter. Vous voudrez probablement effectuer les modifications correspondantes dans les fichiers de configuration de chacun des File Daemons.

Maximum Spool Size = bytes
Cette directive limite à la valeur spécifiée (en octets) le volume occupé par le tampon (NDT : spool) disque pour tous les jobs en exécution. Par défaut, il n'y a pas de limite.

Maximum Job Spool Size = bytes
Cette directive limite à la valeur spécifiée (en octets) le volume occupé par le tampon disque pour chaque job. Par défaut, il n'y a pas de limite. Cette directive est apparue avel la version 1.37.

Spool Directory = directory
Cette directive spécifie le nom du répertoire à utiliser en tant que tampon disque pour ce périphérique. Ce répertoire est aussi utilisé pour stocker les fichiers partiels lors de l'écriture sur des supports qui requièrent un montage (DVD). Le comportement par défaut est d'utiliser le répertoire de travail de Bacula (working directory).

Maximum Part Size = bytes
Cette directive précise la taille maximale (en octets) d'un fichier partiel. Par défaut, il n'y a pas de limite. Cette directive est apparue avec la version 1.37.

Si le périphérique requiert un montage, l'ordre de montage est transmis lorsque cette valeur est atteinte. Dans ce cas, vous devez vous assurer d'avor suffisament d'espace dans votre répertoire tampon, faute de quoi vos données resteront dans le répertoire tampon.

Cette directive est ignorée pour les lecteurs de bandes et les FIFO.

Périphériques qui requièrent un montage (DVD)

Toutes les directives décrites dans cette section sont implémentées dans Bacula à partir de la version 1.37.

A partir de la version 1.39.5, les directives "Requires Mount", "Mount Point", "Mount Command", et "Unmount Command" s'appliquent aux systèmes de fichiers amovibles tels que les périhériques USB, et plus seulement aux DVDs.

Requires Mount = Yes|No
Cette directive doit être à yes pour les graveurs de DVDs, et à no pour tous les autres périphériques (cartouches/fichiers). Elle indique si le périphérique nécessite d'être monté pour être lu, et si un moyen particulier doit être employé pour y écrire. Si vous activez cette directive, vous devez aussi définir les directives Mount Point, Mount Command, Unmount Command et Write Part Command.

Mount Point = directory
Cette directive spécifie le répertoire où le périphérique peut être monté. (le point de montage)

Mount Command = name-string
Cette directive spécifie la commande à exécuter pour monter le périphérique. Avant l'exécution de la commande, %a est remplacé par le périphérique de stockage, et %m par le point de montage (Mount Point).

La plupart du temps, vous le définirez ainsi :

  Mount Command = "/bin/mount -t iso9660 -o ro %a %m"

Unmount Command = name-string
Cette directive spécifie la commande à exécuter pour démonter le périphérique. Avant l'exécution de la commande, %a est remplacé par le périphérique de stockage, et %m par le point de montage (Mount Point).

La plupart du temps, vous le définirez ainsi :

  Unmount Command = "/bin/umount %m"

Write Part Command = name-string
Cette directive spécifie la commande à exécuter pour écrire une partition (NDT : Revoir cette partie, VO ci-dessous) sur le périphérique. Avant l'exécution de la commande, %a est remplacé par le périphérique de stockage, %m par le point de montage, %e par 1 s'il s'agit de la première partition, 0 sinon, et %v avec le nom de fichier de la partition courante.

Pour un DVD, vous utiliserez la plupart du temps le script fourni dvd-handler comme suit :

Command that must be executed to write a part to the device. Before the command is executed, %a is replaced with the Archive Device, %m with the Mount Point, %e is replaced with 1 if we are writing the first part, and with 0 otherwise, and %v with the current part filename.

For a DVD, you will most frequently specify the Bacula supplied dvd-handler script as follows:

  Write Part Command = "/path/dvd-handler %a write %e %v"

/path est le chemin vers votre répertoire de scripts, et dvd-handler est le script fourni avec Bacula. Cette commande est déjà présente quoique commentée dans le fichier de configuration du Storage Daemon. Pour l'utiliser, il vous suffit de supprimer le caractère #.

Free Space Command = name-string
Cette directive spécifie la commande à exécuter pour contrôler l'espace disponible sur le périphérique. Avant l'exécution de la commande, %a est remplacé par le périphérique de stockage, %m par le point de montage, %e par 1 s'il s'agit de la première partition, 0 sinon, et %v avec le nom de fichier de la partition courante.

Pour un DVD, vous utiliserez la plupart du temps le script fourni dvd-handler comme suit :

  Free Space Command = "/path/dvd-handler %a free"

/path est le chemin vers votre répertoire de scripts, et dvd-handler est le script fourni avec Bacula. Si vous voulez spécifier votre propre commande, examinez le code de dvd-handler afin de voir le type de retour attendu par Bacula. Cette commande est déjà présente quoique commentée dans le fichier de configuration du Storage Daemon. Pour l'utiliser, il vous suffit de supprimer le caractère #.

Si vous n'utilisez pas cette directive, Bacula s'attendra à ce qu'il y ait toujours de la place dur le périphérique.


next up previous contents index
suivant: La ressource Autochanger monter: Adapter les fichiers de précédent: Configuration du Client/File Daemon   Table des matières   Index
Kern Sibbald 2007-11-03