Stockage Objet : Intégration Ceph et Zimbra

Scale Zimbra to Exabyte !

Pourquoi Ceph ?

Ceph est une solution opensource innovante de gestion du stockage. RedHat a acheté la technologie en 2014 et elle est la seule technologie de ce type directement disponible dans le kernel Linux (contrairement à GlusterFS, Swift ou Scality).

Cette solution de Stockage Logiciel est massivement distribuée et sans SPOF (sans éléments non redondants).

4 méthodes de stockage sont disponibles :

  • Accès objet natif (RADOS)
  • Accès objet avec les API Swift et S3
  • Accès block RBD
  • Filesystem compatible Posix (CephFS)

API Ceph

Où sont les données dans Zimbra ?

Zimbra dispose de 3 éléments pour le stockage des données des utilisateurs :

  • les métadonnées, enregistrées dans MySQL
  • l'indexation des données de l'utilisateur dans Lucene
  • les emails et fichiers du porte document (blobs)

Dans une installation standard de Zimbra, les Blobs sont enregistrés sous forme de fichier sur le disque, avec un email pour un fichier. Zimbra permet de faire la déduplication des données à la réception, si le mail est délivré sur le même store.

Avec la technologie LIBRADOS nous avons développé une intégration permettant de placer les emails sur un stockage objet. Cela représente 95% du stockage total.

Pourquoi utiliser un stockage objet avec Zimbra ?

L'avantage de ce type de stockage est :

  • Prêt pour Zimbra 9 ! Zimbra 9 nécessitera un stockage centralisé pour profiter du système de haute disponibilité, nous pensons que l'intégration Ceph et Rados sera une bonne solution pour cela (et plus tard, CephFS le sera peut être aussi).
  • Gain sur l'espace de backup
  • Réduction du temps nécessaire pour faire le backup, fini les backups de plus de 24h, place aux snapshots instantanés (en gardant la consistance des données).
  • Très bonne scalabilité de l'espace de stockage
  • Coût de stockage réduit
  • Taille des VM réduite
  • Déplacement des boites emails facile. Vu qu'il n'y a que les méta données à déplacer lors du déplacement des boites aux lettres, vos opérations de maintenance, changement d'OS ou mise à jour de Zimbra en Rolling upgrade sont très largement simplifiées.
  • Déduplication des données sur l'ensemble des stores (ajouté le 29/12/2015)

Réponses aux questions

1) Est-il possible d'utiliser le backup Zimbra si l'intégration Ceph est activée ?

Non seulement il est possible d'utiliser le backup Zimbra mais en plus, les temps de backup sont divisés par 25 car seules les méta-données sont sauvegardées.

2) Si seulement les méta-données sont sauvegardées, comment se passe la restauration d'un compte ?

Nous avons développé une méthode et des scripts pour permettre la restauration d'un compte dans le compte initial, dans un compte séparé ou encore la restauration d'un compte supprimé. Attention lors de votre choix de solution de stockage objet avec Zimbra, ces fonctionnalités ne sont pas disponibles avec toutes les solutions de stockage objet.

3) Comment fonctionne le HSM avec l'intégration Ceph ?

Le HSM n'est pas nécessaire avec l'intégration Ceph. A la place, on mettra en place un système de tiering avec le stockage Ceph.

4) Est-ce que l'intégration Zimbra-Ceph stocke les données des stores sur Ceph en réplication (x3) ou en erasure coding ?

C'est le mode réplication qui est utilisé. Le nombre de réplication est configurable, lors de la création de votre pool de stockage. Il est possible d'utiliser le tiering pour profiter de l'erasure coding.

Nous réalisons actuellement des tests d'utilisation directe de Erasure Coding.

5) Est-ce que la commande zmblobchk qui permet de vérifier l'intégrité des blobs par rapport à la base de données fonctionne avec le connecteur Ceph ?

Oui, la commande de maintenance zmblobchk fonctionne avec le connecteur Ceph. Comme avec un serveur Zimbra standard, vous pourrez vérifier que des données n'ont pas disparu suite à un incident technique.

6) Pourquoi avoir choisi RADOS plutôt qu'une intégration avec S3 ou Swift ?

Nous avons choisi RADOS pour les raisons suivantes :

  • Rados permet de faire des snapshots (swift ne le permet pas), nous utilisons les snapshots pour réaliser les backups de boites supprimées ou restaurer des données dans une nouvelle boite.
  • Rados ne fait pas de stripping mais étant donné la facilité de développement avec cette librairie, il sera possible de l'ajouter plus tard si nécessaire. Et cela n'est nécessaire que si on manipule de gros fichiers, ce qui n'est pas le cas du mail.
  • S3 et Swift nécessitent d'utiliser une couche supplémentaire pour s'interfacer entre l'application cliente et le stockage (interface REST). Cette interface supplémentaire ajoute de la complexité et une source supplémentaire de défaillance. Dans le cas de RADOS, la communication se fait directement entre le serveur Zimbra et les OSD.
  • Utiliser RADOS, c'est aussi simple que lire et écrire un fichier.

Cependant, il est toujours possible d'utiliser nos connecteurs S3, Swift et OpenIO.

7) Vous est-il possible de développer une intégration avec une autre API objet ?

Oui, c'est possible et nous avons déjà des demandes en ce sens. Contactez nous si vous avez un besoin spécifique, notre expérience sur le sujet pourra vous aider.

Des questions ?