Zimbra Forum France
Montée en charge et haute disponibilité Présenté par Soliman HINDY
Société Netixia
Plan
1. Une architecture adaptée à la montée
en charge
2. Une architecture adaptée à la haute
disponibilité
Introduction
1.La messagerie est un élément essentiel du SI des entreprises et collectivités.
2.Les solutions classiques de messagerie ne sont pas optimisées pour de grands déploiements
3.Besoin d'architecture logicielle et matérielle adaptée à :
• La monté en charge
• La haute disponibilité
Partie 1
Une architecture adaptée à la montée en charge
Architecture SMTP/IMAP classique
S E R V E U R P O P / I M A P S E R V E U R S M T P
W E B M A I L I M A P
• Performance limitée du webmail car utilisation du protocole IMAP
• Montée en charge et
haute disponibilité et
difficiles à atteindre
Architecture de Zimbra
S T O R E F ic h ie r s m a ils S E R V E U R S M T P
I N D E X
D o n n é e s m o t e u r d e r e c h e r c h e L D A P
C o n f ig u r a t io n
D B
D o n n é e s u t ilis a t e u r s
S E R V E U R D ’A P P L I C A T I O N
LDAP : Configuration
• Permet de stocker les paramètres : – configuration générale
– serveurs Zimbra
– domaines de messagerie – utilisateurs
– … etc …
• Déploiement possible de replicas de la base
LDAP (haute-disponibilité, montée en charge)
DB: Données utilisateurs
• Permet principalement de stocker : – Les en-têtes des mails
– Les dossiers
– Les calendriers, contacts, …
• Sur chaque serveur mailbox :
– Une base de données principale zimbra
– 100 bases de données mboxgroup (1% de
l'ensemble des données sur chaque base...)
STORE: Fichiers mails
• Les contenus des mails sont stockés sous forme de fichiers
• Très simple : 1 mail = 1 fichier
• Importance du choix du système de fichiers
• Zimbra sait gérer plusieurs volumes
• Sur la version Network, la technologie HSM
permet de stocker les mails anciens sur du
stockage à moindre coût
INDEX: Moteur de recherche
• Les mails envoyés et reçus sont indexés à la volée
• Les recherches zimbra n'utilisent pas par la base de données MySQL
• La version Network sait indexer les pièces
jointes
Connexion à ZIMBRA
# name pierre@mondomaine.com cn: pierre
mail: pierre@mondomaine.com objectClass: organizationalPerson objectClass: zimbraAccount
objectClass: amavisAccount sn: pierre
uid: pierre
userPassword: VALUE-BLOCKED ...
zimbraId: 6b964221-ad3a-4820-840a-89640d80a228 ...
zimbraMailHost: zimbra.mondomaine.com ...
L D A P C o n f ig u r a t io n
Le webmail de ZIMBRA
S T O R E I N D E X D o n n é e s m o t e u r
d e r e c h e r c h e
D B
D o n n é e s u t ilis a t e u r s
Fonctionnement interne
m y s q l > c o n n e c t z i m b r a ;
m y s q l > s e l e c t i d , g r o u p _ i d , a c c o u n t _ i d , c o m m e n t f r o m m a i l b o x w h e r e c o m m e n t = " p i e r r e @ m o n d o m a i n e . c o m " ;
+ - - - + - - - + - - - + - - - +
| i d | g r o u p _ i d | a c c o u n t _ i d | c o m m e n t | + - - - + - - - + - - - + - - - +
| 1 5 0 4 | 4 | 6 b 9 6 4 2 2 1 - a d 3 a - 4 8 2 0 - 8 4 0 a - 8 9 6 4 0 d 8 0 a 2 2 8 | p i e r r e @ m o n d o m a i n e . c o m | + - - - + - - - + - - - + - - - +
D B Z im b r a
Fonctionnement interne
m y s q l > c o n n e c t m b o x g r o u p 4 ;
m y s q l > s e l e c t m a i l b o x _ i d , i d , t y p e , d a t e , s i z e , s u b j e c t f r o m m a i l _ i t e m w h e r e m a i l b o x _ i d = 1 5 0 4 ; + - - - + - - - + - - - + - - - + - - - + - - - +
| m a i l b o x _ i d | i d | t y p e | d a t e | s i z e | s u b j e c t | + - - - + - - - + - - - + - - - + - - - + - - - +
| 1 5 0 4 | 1 | 1 | 1 2 5 8 4 6 6 5 5 5 | 0 | U S E R _ R O O T |
| 1 5 0 4 | 2 | 1 | 1 2 5 8 4 6 6 5 5 5 | 1 | I n b o x |
| 1 5 0 4 | 3 | 1 | 1 2 5 8 4 6 6 5 5 5 | 0 | T r a s h |
| 1 5 0 4 | 4 | 1 | 1 2 5 8 4 6 6 5 5 5 | 0 | J u n k |
| 1 5 0 4 | 5 | 1 | 1 2 5 8 4 6 6 5 5 5 | 0 | S e n t |
| 1 5 0 4 | 6 | 1 | 1 2 5 8 4 6 6 5 5 5 | 0 | D r a f t s |
| 1 5 0 4 | 7 | 1 | 1 2 5 8 4 6 6 5 5 5 | 0 | C o n t a c t s |
| 1 5 0 4 | 8 | 1 | 1 2 5 8 4 6 6 5 5 5 | 0 | T a g s |
| 1 5 0 4 | 9 | 1 | 1 2 5 8 4 6 6 5 5 5 | 0 | C o n v e r s a t i o n s |
| 1 5 0 4 | 1 0 | 1 | 1 2 5 8 4 6 6 5 5 5 | 0 | C a l e n d a r |
| 1 5 0 4 | 1 1 | 1 | 1 2 5 8 4 6 6 5 5 5 | 0 | R O O T |
| 1 5 0 4 | 1 2 | 1 | 1 2 5 8 4 6 6 5 5 5 | 0 | N o t e b o o k |
| 1 5 0 4 | 1 3 | 1 | 1 2 5 8 4 6 6 5 5 5 | 1 | E m a i l e d C o n t a c t s |
| 1 5 0 4 | 1 4 | 1 | 1 2 5 8 4 6 6 5 5 5 | 0 | C h a t s |
| 1 5 0 4 | 1 5 | 1 | 1 2 5 8 4 6 6 5 5 5 | 0 | T a s k s |
| 1 5 0 4 | 1 6 | 1 | 1 2 5 8 4 6 6 5 5 5 | 0 | B r i e f c a s e |
| 1 5 0 4 | 2 5 7 | 5 | 1 2 5 8 4 6 6 6 2 3 | 4 8 4 | M a n o u v e l l e m e s s a g e r i e | + - - - + - - - + - - - + - - - + - - - + - - - +
D B m b o x g r o u p 4
Fonctionnement interne
m y s q l > s e l e c t i d , t y p e , n a m e , p a t h f r o m v o l u m e ; + - - - - + - - - + - - - + - - - +
| i d | t y p e | n a m e | p a t h | + - - - - + - - - + - - - + - - - +
| 1 | 1 | m e s s a g e 1 | / o p t / z i m b r a / s t o r e |
| 2 | 1 0 | i n d e x 1 | / o p t / z i m b r a / i n d e x |
| 3 | 2 | m e s s a g e 2 | / m n t / s t o r e 2 | + - - - - + - - - + - - - + - - - +
/ o p t / z i m b r a / s t o r e / 0 / 1 5 0 4 / m s g / 0 / 2 5 7 - 2 . m s g
m y s q l > s e l e c t v o l u m e _ i d , m a i l b o x _ i d , i d , m o d _ c o n t e n t , s i z e , s u b j e c t f r o m m a i l _ i t e m w h e r e m a i l b o x _ i d = 1 5 0 4 a n d i d = 2 5 7 ;
+ - - - + - - - + - - - + - - - + - - - + - - - -+
| v o l u m e _ i d | m a i l b o x _ i d | i d | m o d _ c o n t e n t | s i z e | s u b j e c t | + - - - + - - - + - - - + - - - + - - - + - - - -+
| 1 | 1 5 0 4 | 2 5 7 | 2 | 4 8 4 | M a n o u v e l l e m e s s a g e r i e |
D B z im b r a
S T O R E
Fonctionnement interne
$ c d / o p t / z i m b r a / s t o r e / 0 / 1 5 0 4 / m s g / 0
$ l s - a l
- r w - r - - - 1 z i m b r a z i m b r a 4 8 4 N o v 1 7 1 5 : 0 3 2 5 7 - 2 . m s g
$ c a t 2 5 7 - 2 . m s g
D a t e : T u e , 1 7 N o v 2 0 0 9 1 5 : 0 3 : 4 3 + 0 1 0 0 ( C E T ) F r o m : p i e r r e @ m o n d o m a i n e . c o m
T o : m i c h e l @ m o n d o m a i n e . c o m M e s s a g e - I D :
< 8 8 2 8 9 3 2 . 5 3 1 2 5 8 4 6 6 6 2 3 3 0 2 . J a v a M a i l . r o o t @ v 5 . y a z i b a . n e t >
S u b j e c t : M a n o u v e l l e m e s s a g e r i e M I M E - V e r s i o n : 1 . 0
C o n t e n t - T y p e : t e x t / p l a i n ; c h a r s e t = u t f - 8 C o n t e n t - T r a n s f e r - E n c o d i n g : 7 b i t
X - O r i g i n a t i n g - I P : [ 9 5 . 4 1 . 1 3 4 . 5 6 ]
X - M a i l e r : Z i m b r a 5 . 0 . 1 9 _ G A _ 3 0 8 3 . U B U N T U 6 ( Z i m b r a W e b C l i e n t - F F 3 . 0 ( W i n ) / 5 . 0 . 1 9 _ G A _ 3 0 8 3 . U B U N T U 6 )
C e c i e s t u n m a i l p o u r t e s t e r m a n o u v e l l e m e s s a g e r ie
S T O R E
Partie 2
Une architecture adaptée à la haute disponibilité
ZIMBRA sur un seul serveur
• Principaux services déployés : – LDAP
– Mailbox – MTA
• Montée en charge limitée à la puissance du serveur
• Pas de haute disponibilité
z i m b r a . m o n d o m a i n e .c o m
2xLDAP + Mailbox/MTA
W A N
m a ilb o x - M T A
L O C A L
• Deux serveurs LDAP répliqués et redondants
• Possibilité d'ajouter
d'autres serveurs replica
2xLDAP + Mailbox + MTA
W A N
m a ilb o x
L O C A L
ld a p - p r im a ir e ld a p - r e p lic a M T A
• Séparation du service Mailbox et MTA
• Meilleure montée en charge...
• … mais pas encore de
haute disponibilité sur
Mailbox et MTA
2xLDAP + 2xMailbox + 2xMTA
W A N
m a ilb o x 1
L O C A L M T A 1
m a ilb o x 2 M T A 2
• Comptes mails répartis sur 2 serveurs mailbox
• 2 MTA redondants
• On peut ajouter autant
de serveur mailbox et MTA que l'on veut
• Défaut: chaque
utilisateur doit connaître
son serveur mailbox
LDAP+Mailbox+MTA+Proxy
W A N
L O C A L M T A 1
p r o x y 1 p r o x y2 M T A 2
L o a d b a la n c e r