Rappel des billets précédents :
Exchange et le Stockage – Partie 1
Exchange et le Stockage – Partie 2
Exchange et le Stockage – Partie 3
Exchange et le Stockage – Partie 4
Exchange et le Stockage – Partie 5
Exchange et le Stockage – Partie 6
Exchange et le Stockage – Partie 7
Exchange et le Stockage – Partie 8
Aujourd’hui nous allons voir dans le détail comment calculer manuellement vos besoins en stockage pour Exchange 2010.
Les informations sont sur TechNet mais ce n’est pas toujours facile de remettre tout cela dans le bon ordre.
Premièrement, quelles sont les informations dans vous allez avoir besoin ?
• Nombre total d’utilisateur (mailboxes) dans l’environnement Exchange
• Nombre d’utilisateur par serveur de boîtes aux lettres
• Taille limite boîte aux lettres
• Profile IO Utilisateur (Nombre de messages Envoyés/Reçus par jour)
• Taille moyenne d’un mail
• Mode Outlook
• Profondeur de protection des logs
• Règle de rétention des objets supprimés (SIR)
• Pourcentage de concurrence des utilisateurs
• Pourcentage de déplacement de boîtes aux lettres par semaine
• Ratio Lecture/Ecriture
• Si HA avec DAG (Réplication), Nombre de copies de base de données
• Besoin en Sauvegarde/Restauration (RTO/RPO)
• Outils tierce qui peuvent affecter l’espace consommé ou les IO (Blackberry, etc)
Un exemple :
Informations |
Valeur |
Nombre total d’utilisateur (mailboxes) dans l’environnement Exchange |
22000 |
Nombre d’utilisateur par serveur de boîtes aux lettres |
11000 dans une configuration switchover (5500 actifs/5500 passifs) |
Taille limite boîte aux lettres |
1.5 GB (1500 MB) par utilisateur |
Profile IO Utilisateur (Nombre de messages Envoyés/Reçus par jour) |
100 messages par utilisateur par jour (80 Reçus/20 Envoyés) |
Taille moyenne d’un mail |
200 KB |
Mode Outlook |
Mode en cache |
Number of mailbox servers per building block |
4 |
Besoin HA (JBOD RAID-Less) |
1 DAG, 4 copies de database par DAG |
Besoin HA (RAID) |
1 DAG, 2 copies de database par DAG |
Nombre de databases par serveur (JBOD RAID-Less) |
10 Actives/30 Passives |
Nombre de databases par serveur (RAID) |
7 Actives/7 Passives |
Mode de stockage (JBOD RAID-Less) |
1 LUN = 1 Disque = DB + logs |
Mode de stockage (RAID) |
2 LUN = 1 LUN pour la DB et 1 LUN pour ses logs |
Nombre d’utilisateurs pas base de données (JBOD RAID-Less) |
550 |
Nombre d’utilisateurs pas base de données (RAID) |
786 |
Règle de rétention des objets supprimés (SIR) |
14 jours |
Profondeur de protection des logs (en cas de problèmes de backup) |
3 jours |
Configuration 24 x 7 BDM |
Activé |
Ratio base de données Lecture/Ecriture |
3:2 (60/40) dans une configuration HA |
Pourcentage de concurrence des utilisateurs |
100 pourcent |
Outils tierce qui peuvent affecter l’espace consommé ou les IO |
Non présent |
Passons aux calculs 🙂
- Calcul des IO pour avoir le nombre de disques nécessaires (JBOD RAID-Less / RAID Config)
IOPs type Utilisateur
Base d’informations : http://technet.microsoft.com/fr-fr/library/ee832793(v=EXCHG.140).aspx
Pour 100 messages par jour par utilisateur on a : 0.10 IOPs par boîte aux lettres (mode HA)
Formule : IOPS type Utilisateur = <nombre d’utilisateurs> * <profile utilisateur> + <overhead aditionel si besoin (Microsoft préconise 20%)>
IOPs type Utilisateur = 22000*0.10+20% = 2200 + 440 = 2640 IOPs (Ratio 60/40 Lecture/Ecriture)
IOPs pour les logs
Formule : IOPs pour les logs en Ecriture = 50% de IOPs type Utilisateur en Ecriture)
IOPs pour les logs en Lecture = 10% de IOPs pour les logs en Ecriture
IOPs pour les logs = IOPs pour les logs en Ecriture + IOPs pour les logs en Lecture
IOPs pour les logs en Ecriture = (2640*0,4)*0.5 = 528 IOPs
IOPs pour les logs en Lecture = 528*0.1 = 52,8 IOPs
IOPs pour les logs = 528 + 52,8 = 581 IOPs
Besoin total en IOPs = 2640 + 581 = 3221 IOPs
Maintenant le nombre de disques nécessaires (par rapport aux nombres d’IOPs d’un disque SAS 7200tr/m et de la pénalité RAID de chaque type RAID si nous sommes en mode RAID (je vous renvoie à mes précédents billets si cela ne vous parle pas)).
- Mode JBOD RAID-Less (pas de pénalité car pas de RAID) (DB + LOG sur le même disque)
2640 / 65 = 50 disques
- Mode RAID (avec pénalité en écriture) (Ratio 60/40 Lecture/Ecriture)
Formule : (<IOPS type Utilisateur> *.60) + <Pénalité RAID> * (<IOPS type Utilisateur> *.40) + <IOPS pour les logs> = <total IOPS> / 65 = <Nombre total de disques requis par building block >
RAID 10 (pénalité de 2) = (2640*0.6)+2*(2640*0.4)+581 = 4277 / 65 = 66 disques
RAID 5 (pénalité de 4) = (2640*0.6)+4*(2640*0.4)+581 = 6389 / 65 = 98 disques
RAID 6 (pénalité de 6) = (2640*0.6)+6*(2640*0.4)+581 = 8501 / 65 = 131 disques
- Calcul des espaces nécessaires
Pour déterminer la taille du volume d’une base de données il va falloir calculer :
- La taille d’une boîte mail utilisateur sur le disque
- La taille d’une base de données sur le disque
- La taille de la LUN contenant la base de données
Taille d’une boîte mail utilisateur sur le disque
Formule : Taille boîte mail utilisateur sur disque = <Taille boîte mail> + <whitespace> + <dumpster>
Formule Whitespace = <nombre de messages Envoyés/Reçus par jour> * <taille moyenne d’un message> / 1024 MB
Whitespace = 100*200/1024 = 19,5 MB
Formule Dumpster = (<nombre de messages Envoyés/Reçus par jour> * <taille moyenne d’un message> / 1024 MB * <nombre de jours pour la rétention des objets supprimés>) + (<taille boîte mail> * 0.012) + (<taille boîte mail> * 0.058)
Dumpster = (100*200/1024*14)+(1536*0.012)+(1536*0.058) = 381 MB
DONC : Taille boîte mail utilisateur = 1536 + 19.5 + 381 = 1936.5 MB
Taille d’une base de données sur le disque
Formule : Taille d’une base de données sur disque = <nombre de boîte mail sur une base de données> * <taille boîte mail utilisateur sur disque> * <Facteur base de données overhead extension>
Microsoft préconise un Facteur base de données overhead extension de 20%
Taille d’une base de données sur disque = 550*1936.5*1.2 = 1278090 MB = 1278090/1024/1024 = 1.2 TB
Taille d’une base de données sur disque = 786*1936.5*1.2 = 1826500 MB = 1278090/1024/1024 = 1.74 TB
Taille de la LUN contenant la base de données (pour le RAID)
Formule : Taille de la LUN contenant la base de données = (<taille d’une base de données sur disque > + <taille d’une base de données sur disque > * <facteur d’index de contenu>) / (1 – <facteur d’espace libre préconisé>)
Microsoft préconise un facteur d’index de contenu de 10% et un facteur d’espace libre 20%
Taille de la LUN contenant la base de données = (1.74+0.12)/(1-0.2) = 2.33 TB
Pour déterminer la taille des logs pour une base de données il va falloir calculer :
- Nombre de logs générés par boîte mail par jour
- Nombre de jours pendant lesquels on retient les logs avant de les tronquer
- Facteur de déplacements de boîtes mails
- Facteur d’overhead d’extension
- Facteur HA
Taille de la LUN contenant les logs (pour le RAID)
Base d’informations : http://technet.microsoft.com/en-us/library/ee832796.aspx
Formule : Taille de la LUN contenant les logs d’une base de données = <logs par jour, par mailbox> * <nombre de mailbox sur la base de données> * <buffer de protection contre l’échec de la troncation des logs, en jour> * < facteur d’espace libre préconisé >
Microsoft préconise un facteur d’espace libre 20%
Nombre de logs par jour voici un tableau pour 100 messages par jour par utilisateur
Average message size |
Nombre de logs |
75 KB |
20 |
150 KB |
38 |
200 KB |
50 |
300 KB |
76 |
Taille de la LUN contenant les logs des bases de données d’un serveur mailbox = 50*786*3*1.2 = 141480 MB = 138,2 GB
Note : si vous souhaitez prendre en compte les déplacements de mailbox pour un facteur de 3% par exemple, il faudra ajouter
550*0.03*1936.5/1024 = 31.2 GB soit un total de 127,9 GB
786*0.03*1936.5/1024 = 44.6 GB soit un total de 182,8 GB
Taille de la LUN contenant la base de données + les logs (pour le JBOD RAID-Less)
Formule : Taille de la LUN contenant la base de données + les logs = ( <taille des logs pour une base de données> + <taille d’une base de données sur disque > + <taille d’une base de données sur disque > * <facteur d’index de contenu>) / (1 – <facteur d’espace libre préconisé>)
Taille de la LUN contenant la base de données + les logs = (((50*550*3)/1024/1024)+(1.2+0.12))/(1-0.2) = 1.7483 TB
DONC AU TOTAL :
Nous avons pour 1 serveur (RAID : bases actives = 7) :
Total LUN size pour les bases de données = 7 * 2.33 = 16.3 TB
Total LUN size pour les logs = 7 * 138,2 = 967,4 GB
Total nombre de LUN = 14
Total volumétrie = 17,4 TB
Nous avons pour 1 serveur (JBOD RAID-Less : bases actives = 10) :
Total LUN size pour les bases de données + les logs = 10 * 1.74 = 17.4 TB
Total nombre de LUN = 10
Total volumétrie = 17,4 TB
Nombre de disques nécessaires pour contenir la volumétrie = 17,4 / 1,834 = 10 disques
(1,834 est la volumétrie utilite disponible sur un disque de 2TB SAS 7200tr/m)
Nous avons 2 copies de databases au total (avec le HA) donc il nous faut en fait 20 disques / serveur
Nous avons un total de 4 serveurs pour soutenir notre infrastructure exchange pour 22000 users
Donc il nous faut 4 * 20 disques = 80 disques
En terme d’IO nous avons vu au début qu’en RAID 10 nous avions besoin de 66 disques, avec les 80 nécessaires pour la volumétrie, nous avons donc suffisamment de disques.
Nous sommes en RAID 10 donc il faut doubler le nombre de disques pour la partie mirroring, et le résultat final sera 80*2 = 160 disques
Pour du JBOD RAID-Less il faudra 40 disques par serveurs * 4 serveurs donc 160 disques aussi
Notes :
En RAID avec des contrôleurs intelligent il faudra aussi ajouter de l’espace en plus car il n’est jamais recommandé d’avoir des RAID Group FULL ! il faudra ajouter aussi des Hot Spare (les best practices sont 1 HS tous les 30 disques (dans notre cas cela fera tout de même 160/30 = 6 disques))
En JBOD RAID-Less pas besoin d’autant de HS ni d’espace en plus car pas de notions de RAID Group.
Il ne faudra pas oublier non plus des disques pour les RDB les LUN de restauration temporaire de backup (ex-RSG (Restor Storage Group))
Pour finir une solution JBOD RAID-Less reste moins couteuse que sont pendant en RAID !! (Il n’y a pas d’infrastructure SAN Fibre par exemple …)
Pour toutes questions n’hésitez pas.
Anthony COSTESEQUE
La classe Monsieur Costeseque !
Bonjour à tous,
Suite à différentes remontés d’informations que j’ai eu, 3 choses :
1- Il y a une erreur de saisie dans les calculs :p merci à Benoit pour l’info : 2640 / 65 = 50 disques … il s’agit de 3221 / 65 = 50 disques (3221 étant la valeur trouvée la ligne au dessus)
2- concernant mon choix de 65 IOPs par axe comme base de calcul pour la partie JBOD/RAID-Less
a. Nous parlons de disque NL-SAS à 7200 tours (pas de SATAII) la technologie SAS permet les 65 IOPS
b. Les performances ne seraient pas au rendez-vous avec 100% de charge (sur 1 axe) : OUI c’est vrai mais il est absolument impossible d’avoir 100% des 550 utilisateurs hébergés sur cette axe là (disque) qui travaillerait au même instant « T » ! c’est pour cela que le rapport charge/perf m’a fait choisir 65 IOPs / 550 utilisateurs par disque.
D’expérience ce type de calculs fonctionnent parfaitement en production 🙂
3- A aucun moment je ne parle d’application tiers installées ou qui impacteraient les MBX comme par exemple un serveur BES (Blackberry) pour toute charge supplémentaires il faudra faire des concessions réduire le nombre d’utilisateurs sur un disque par exemple.
J’ai un certain nombre de clients dans ce type de configuration que je suis régulièrement au niveau performance stockage et aucune anomalie n’a été rencontré aucun goulot d’étranglement.
Pour toutes questions n’hésitez pas.
Cordialement,
Anthony COSTESEQUE