Projet

Général

Profil

Anomalie #1934

Sauvegarde interminable

Ajouté par Anonyme il y a presque 13 ans. Mis à jour il y a plus de 12 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Catégorie:
-
Début:
19/07/2011
Echéance:
% réalisé:

100%

Distribution:

Description

Bonjour,

Premier problème
Sur HORUS et SCRIBE NG 2.2, nous rencontrons souvent le problème suivant lors de sauvegardes sur disque USB :
  • Le disque USB arrive à saturation (mauvais dimensionnement du disque ou dépôt massif de fichiers volumineux sur le serveur)
  • Bacula demande alors l'insertion d'un nouveau volume ..... (comme s'il s'agissait de bandes et qu'une action d'un opérateur soit nécessaire)

En conséquence, bacula attend indéfiniment et les services arrêtés au début de la sauvegarde (samba notamment) ne sont jamais redémarrés.

Cela peut être évité avec la directive Max Wait Time dans le JobDefs IntegralBackup.
Cette directive fixe une limite (en secondes) au bout de laquelle le job en cours est annulé si une situation bloquante survient (attente de l'insertion d'un nouveau volume qui n'arrivera jamais par exemple).

J'ai patché le template bacula-dir.conf à cet effet avec une durée de 300 secondes.

Deuxième problème
Une fois le premier problème contourné, le Job de sauvegarde est bien annulé après 300 secondes.
Ensuite le job BackupCatalog est exécuté et échoue de manière tout à fait logique comme indiqué ci-dessous :

19-jui 15:36 127.0.0.1-dir JobId 346: BeforeJob: cp: écriture de `/var/sauvegardes/horus-2.2-bacula.sql': Aucun espace disponible sur le périphérique
19-jui 15:36 127.0.0.1-dir JobId 346 : Erreur : Runscript : BeforeJob s'est terminé avec un statut différent de 0 statut=1. ERR=Child exited with code 1

Le problème est que suite à cela, le disque USB reste monté (ce qui n'est pas catastrophique, mais néanmoins pas trop rigoureux).
J'ai donc à nouveau patché le template bacula-dir.conf afin d'ajouter la directive :

RunAfterFailedJob = "/usr/share/eole/bacula/baculaservices.sh postcatalogerr"

dans la définition du job BackupCatalog.

Dernier problème
La fonction postcatalogerr est bien définie dans /usr/share/eole/bacula/baculaservices.sh mais on ne peut pas l'utiliser en tant qu'argument de baculaservices.sh
J'ai donc corrigé le script afin de rendre l'argument postcatalogerr utilisable.

Voici le patch de bacula-dir.conf :

--- distrib/bacula-dir.conf    2010-10-25 11:04:03.000000000 +0200
+++ modif/bacula-dir.conf    2011-07-19 15:49:42.000000000 +0200
@@ -46,6 +46,7 @@
 %end if
   Write Bootstrap = "/var/sauvegardes/%%auto_module().capitalize()%slurp
 BootStrap.bsr" 
+  Max Wait Time = 300
   RunBeforeJob = "/usr/share/eole/bacula/baculaservices.sh lock" 
   RunBeforeJob = "/usr/share/eole/bacula/baculaservices.sh prebackupldap" 
   RunBeforeJob = "/usr/share/eole/bacula/baculaservices.sh prebackupmysql" 
@@ -70,6 +71,7 @@
   RunBeforeJob = "/usr/share/eole/bacula/baculaservices.sh precatalog" 
   RunAfterJob = "/usr/share/eole/bacula/baculaservices.sh postcatalog" 
   RunAfterJob = "/usr/share/eole/bacula/baculaservices.sh unlock" 
+  RunAfterFailedJob = "/usr/share/eole/bacula/baculaservices.sh postcatalogerr" 
   RunAfterFailedJob = "/usr/share/eole/bacula/baculaservices.sh unlock" 
 }

Et voici celui de /usr/share/eole/bacula/baculaservices.sh :

--- baculaservices.sh    2011-06-27 11:43:35.000000000 +0200
+++ baculaservices.sh.new    2011-07-19 17:13:37.000000000 +0200
@@ -540,6 +540,9 @@
   postcatalog)
       postcatalog
       ;;
+  postcatalogerr)
+      postcatalogerr
+      ;;
   prerestoreall)
       prerestoreall
       ;;

Voilà tout.


Demandes liées

Lié à eole-bacula - Anomalie #1764: problème : le graphe sauvegarde reste au vert Fermé 11/05/2011

Révisions associées

Révision 89a7c5d4 (diff)
Ajouté par Emmanuel GARETTE il y a presque 13 ans

Ajout de l'option Max Wait Time (fixes #1934)

Historique

#1 Mis à jour par Joël Cuissinat il y a presque 13 ans

  • Assigné à mis à Emmanuel GARETTE
  • Version cible mis à Mises à jour 2.3 - 02 RC

#2 Mis à jour par Emmanuel GARETTE il y a presque 13 ans

Sur 2.3 : ajout de l'option "Max Wait Time" + question en mode expert pour "Max Run Time" (désactivé par défaut).

Les deux derniers points ne doivent plus exister dans le nouveau code.

Commit 4229fea42dd57486944e32b637273a836f439f46.

#3 Mis à jour par Emmanuel GARETTE il y a presque 13 ans

  • Statut changé de Nouveau à Résolu
  • % réalisé changé de 0 à 100

#4 Mis à jour par Emmanuel GARETTE il y a presque 13 ans

  • Version cible changé de Mises à jour 2.3 - 02 RC à Mises à jour 2.2.3 - 02 RC

#5 Mis à jour par Joël Cuissinat il y a plus de 12 ans

  • Statut changé de Résolu à Fermé
root@serv-pedago:~# grep Wait /etc/eole/distrib/*bacu*
/etc/eole/distrib/bacula-dir.conf:  Max Wait Time = 300

Formats disponibles : Atom PDF