Redolog Zimbra : Le journal applicatif

  • Intitulé :  Redologs
  • En 2 mots : Assurer la cohérence des transactions
  • Produit concerné :Logo Zimbra
  • Version : 4.5 et plus
  • Cette fonctionnalité fonctionne sur ce type de licence : OSS – NE STD – NE PRO – Appliance

Zimbra intègre depuis ses premières versions un système de journalisation de l'ensemble des actions effectuées sur le serveur. Ce journal permet d'assurer la cohérence de l'ensemble des données liées au compte de l'utilisateur.

Les données Zimbra

Les données de Zimbra sont décomposées en plusieurs éléments :

  • Les emails et documents qui sont enregistrées sous forme brut, en tant que fichiers. Avec le système de stockage natif de Zimbra, une déduplication des données est réalisée sur un même serveur Store. Si un email est envoyé à plusieurs destinataires sur le même store, il sera enregistré une fois sur le disque et des hardlink seront utilisés dans l'ensemble des boites concernées.
  • Les méta-données sont stockées dans MySQL
  • Les données d'indexation sont enregistrées dans des indexes Lucene.
  • Les informations concernant les comptes sont enregistrées dans OpenLDAP.

Toutes les opérations effectuées sur les boites des utilisateurs (fichiers, MySQL et Lucene) sont enregistrées dans le système de Redolog.

Assurer la cohérence

Le système de redolog de Zimbra contient ce type d'opérations : 

On y trouve :

  • L'ajout de message et leur contenu
  • La suppresion de messages
  • Les commits de transactions
  • Depuis la version 7.2.1 : Les création de compte (sans les opérations sur le LDAP)
  • Les actions de purge des boites
  • Et d'une manière générale, toutes les opérations sur le contenu des boites des utilisateurs.

Ce système repose sur l'horloge pour assurer la chronologie des actions. N'oubliez pas de mettre en place la synchronisation NTP sur vos serveurs (même si l'histoire nous a montré que le NTP pouvait créer des problèmes).

En cas de crash du serveur, le redolog est relu afin de s'assurer que l'ensemble des transactions a bien été appliqué sur le système de fichiers, l'indexation et la base de données.

Backup (NE seulement)

Dans la version Network Edition de Zimbra, c'est les redologs qui sont utilisés dans le backup incrémental. Le fichiers de redolog en cours ainsi que les redologs d'archive sont basculés sur l'espace de backup lors du backup incrémental. Ainsi, pour restaurer un compte, Zimbra procède de la manière suivante : 

  1. Restauration des informations LDAP
  2. Restauration du dernier backup Full connu pour ce compte
  3. Relecture du fichier de redolog pour ce compte (depuis l'espace de backup et le dossier courant).

Normalement, un backup full est donc indispensable pour restaurer un compte. Cette limite est levée depuis la version 7.2.1 de Zimbra : 

add ability to restore accounts not yet backed up (but still in redologs)

Configuration

Configuration globale :

  • zimbraRedoLogEnabled : Activation des redologs (activé par défaut, même sur la version Opensource)
  • zimbraRedoLogLogPath : Chemin d'enregistrement des redologs, par défaut : redolog/redo.log
  • zimbraRedoLogArchiveDir : Chemin d'enregistrement des archives de redologs, par défaut : redolog/archive
  • zimbraRedoLogFsyncIntervalMS : Délai entre chaque fsync sur le fichier de redolog. Par défaut 10ms. En cas de crash, on pred au maximum 10ms.
  • zimbraRedoLogProvider : Quelle classe java fournit la fonction de redolog ? C'est un des point d'extension possible de Zimbra.
  • zimbraRedoLogDeleteOnRollover : Supprimer le fichier de redolog lors de la rotation. C'est le paramétrage par défaut de la version OSS. En version NE, le redolog d'archive est déplacé dans l'espace de backup lors du backup incrémental.
  • zimbraRedoLogCrashRecoveryLookbackSec : Combien de temps en arrière on doit revenir lors d'un crash pour s'assurer de l'intégrité des transactions. Par défaut : 10s.

Quelques éléments concernant le fonctionnement de la rotation des redologs : 

  • Il y a une taille minimum à partir de laquelle le redolog est éligible à la rotation : zimbraRedoLogRolloverFileSizeKB. Par défaut elle est fixée à 1Go (on trouve encore des références de documentation qui parlent de 100Mo qui était l'ancie paramétrage).
  • Il y a un temps d'existence minimum après laquelle le fichier est éligible à la rotation : zimbraRedoLogRolloverMinFileAge. Par défaut elle est fixée à 60 minutes. 
  • Les deux paramétres précédents sont nécessaires pour une rotation, sauf quand le dernier paramètre est déclenché :
  • Il y a une taille de redolog maximum au delà de laquelle la rotation est obligatoirement effectuée même si le fichier n'a pas dépassé le temps d'existence minimim : zimbraRedoLogRolloverHardMaxFileSizeKB. Par défaut elle est fixée à 4Go.

FAQ redologs

Q : Est-il possible de rejouer des redologs ?

R : Oui. Online avec les outils de restauration de compte (zmrestore), Offline avec zmplayredo (disponible aussi en version OSS).

Q : Vu que le redolog écrit toutes les opérations effectuées sur les boites, en incluant le contenu, celà charge beaucoup le serveur. Faut-il le désactiver pour gagner des performances ?

R : D'une manière générale : Non, il ne faut pas désactiver les redologs, c'est une fausse bonne idée. Dans certains cas bien précis, par exemple lors de certains imports de données, désactiver le redolog permet d'avoir un boost des performances. Mais supprimer des redologs revient à sacrifier la robustesse de la plateforme.

Q : Est-ce que les redologs sont utilisés lors que j'utilise l'IMAP ?

R : Oui, comme l'IMAP utilise le même backend que le webmail, le mécanisme des redologs est aussi utilisé. Celà signifie aussi que lors de l'import avec imapsync, toutes les données importées dans un compte sont aussi inscrite dans le redolog. Pensez-y quand vous migrerez des comptes vers Zimbra, l'espace disque pour le redolog doit être suffisant pour reçevoir les données du comptes à importer.

Q : Est-il possible de récupérer des données à partir d'un redolog si on a perdu le serveur d'origine ?

R : Oui, c'est possible. Des librairies Java existent pour lire ce format de fichier (disponibles dans Zimbra). Elles permettent d'extraire le contenu des transaction et éventuellement de les rejouer sur un autre environnement. J'ai eu à créer un script Python pour ce type de manupulation, on a pu récupérer des centaines de mail perdus suite à une mauvaise manipulation de l'administrateur.

Q : Quelle autre usage je pourrais faire des redologs ?

R : Beaucoup de possibilités ! Parmi les plus intéressantes : PRA, Backup de la version Opensource de Zimbra.

Ajouter un commentaire

Filtered HTML

  • Les adresses de pages web et de courriels sont transformées en liens automatiquement.
  • Tags HTML autorisés : <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Les lignes et les paragraphes vont à la ligne automatiquement.

Plain text

  • Aucune balise HTML autorisée.
  • Les adresses de pages web et de courriels sont transformées en liens automatiquement.
  • Les lignes et les paragraphes vont à la ligne automatiquement.