Sunday, January 15, 2017

Exchange 2016 (4) : configuration de la première base de données de boîtes aux lettres

English summary: the first Exchange mailbox database, created at installation, is located by default on the C: drive with the operating system and the Exchange program files. This is not optimal for performance and the name of the mailbox database includes a randomly created number that is not particularly meaningful  - or easy to enter when working at the command line. In the lines that follow, I create other volumes for the mailbox database and associated transaction log files, and then rename and move the mailbox database to the new location.

***

La prochaine tâche que nous allons accomplir consiste à configurer une base de données pour les boîtes à lettres ("mailbox database").

En fait, nous avons à notre disposition une base de données par défaut mais elle se trouve sur le lecteur C: (avec le système d'exploitation et les binaires Exchange), comme les journaux de transaction d'ailleurs.

En outre, cette base de données porte un nom aléatoire (une séquence de chiffres) qui n'a aucune signification particulière et qui serait ennuyeux à saisir à la ligne de commande.

Nous aurons donc pour objectif de créer un autre volume pour la base de données et de déplacer celle-ci vers cet nouvel emplacement. Nous ferons de même pour les journaux de transaction.

En cela, nous allons tenter de respecter les "meilleures pratiques" concernant le stockage pour Exchange. Il est vrai que celles-ci ont évolué dans le temps et encore aujourd'hui varient selon les cas de figure :

  • Avons-nous de simples disques ("JBOD" - "Just a bunch of disks") sans aucune tolérance aux pannes?
  • Avons-nous plutôt un ensemble de plusiers disques configurés en RAID 1, 5, etc. ?
  • Allons-nous configurer un DAG qui comprend trois membres ou plus ?

La meilleure pratique pour Exchange 2007, par exemple, consistait non seulement à mettre les bases de données et les journaux de transaction ailleurs que sur le volume où se trouvait le système d'exploitation mais à consacrer un disque (ou volume RAID) distinct aux bases de données et encore un autre aux journaux de transaction.

Grace aux améliorations de performance en matière d'entrée/sortie ("IOPS") depuis Exchange 2010, nous pourrions envisager de mettre les bases de données et les journaux de transaction sur un même disque. A l'inverse, en cas de très nombreuses bases de données (la version Entreprise d'Exchange en prend en charge jusqu'à cent), nous pourrions plutôt préférer répartir les bases de données (et les journaux de transaction) entre de multiples volumes.

***

Dans mon scénario (un simple banc d'essai), je vais créer deux nouveaux volumes :

  • un volume E: pour notre base de données de BAL
  • un volume F: pour les journaux de transaction

Note : pour en arriver là, nous ajoutons, selon le cas, deux disques physiques, deux volumes RAID ou deux disques virtuels. Dans un milieu d'essai, avec VMware Workstation par exemple, c'est sans doute cette dernière option que nous choisirions.

Pour mon premier essai, j'ai utilisé la console "Gestion de disque" pour créer les volumes. C'est parfaitement acceptable si nous choisissons NTFS pour le système de fichiers. Si nous choisissons, au contraire, ReFS, la console risque de nous causer des ennuis.

En effet, il est recommandé de désactiver une certaine fonction de ReFS (la vérification de l'intégrité des données) ce qui est impossible dans l'interface graphique.

Note : ReFS pourrait constituer un sujet à lui seul. D'abord, il faut utiliser NTFS pour le volume où se trouvent le système d'exploitation et les binaires Exchange. ReFS n'est pas une option là. Quant aux volumes contenant les bases de données et les journaux de transaction, ReFS est recommandé. Mais en ce qui concerne Exchange 2016, il n'est pas tout à fait clair s'il est obligatoire de désactiver la vérification des données ou seulement recommandé. Par ailleurs, il n'est pas clair si cette restriction s'applique aux volumes contenant les journaux de transactions.

Exigences matérielles et logicielles pour Exchange 2016 :

Exchange 2016 system requirements

La version originale anglaise ne précise rien sur la question de la vérification de l'intégrité des données.

-

Si j'en crois Paul Cunningham, c'est seulement "recommandé" pour Exchange 2016 à la différence d'Exchange 2013 :

"ReFS data integrity features are recommended to be disabled."

Resilient File System (ReFS) and Microsoft Exchange Server

-

L'article "Exchange 2016 Preferred Architecture" fait mention des bases de données...

"Each disk that houses an Exchange database is formatted with ReFS (with the integrity feature disabled)"

mais ne précise rien pour les journaux de transaction.

The Exchange 2016 Preferred Architecture

-

Quoi qu'il en soit, il vaudrait mieux recourir à PowerShell pour configurer nos volumes ReFS avec la vérification de l'intégrité désactivée.

Pour le disque contenant notre base de données, il faudrait exécuter la commande suivante où "1" est le second disque que nous avons ajouté et où "Databases" est l'étiquette du volume :

Get-Disk 1 | Initialize-Disk -PartitionStyle GPT -PassThru | New-Partition -UseMaximumSize | Format-Volume -FileSystem REFS -NewFileSystemLabel Databases -SetIntegrityStreams $false

Note : les disques se comptent à partir de 0.

Si, comme moi, vous avez configuré le volume avec la console "Gestion de disque" (Disk Management), vous pouvez (peut-être) vous rattraper avec la commande suivante :


Note : vous pouvez cliquer sur l'image pour l'agrandir.

Comment peut-on savoir si la vérification de l'intégrité a effectivement été désactivée ?

A priori, il suffirait de créer un fichier texte sur le volume et puis exécuter la commande suivante :



En principe, la commande est censée afficher les objets pour lesquels la vérification de l'intégrité est désactivée (Enabled = False).

Mais j'ai obtenu le même résultat sur le volume F: - même sans avoir exécuté la commande pour désactiver la vérification.

Si tout cela vous laisse aussi perplexe que moi, vous pouvez toujours vous rabattre sur NTFS.


***

Maintenant que nous avons deux autres volumes, l'un pour la base de données et l'autre pour les journaux de transaction, nous allons renommer la base de données de boîtes aux lettres par défaut et puis la déplacer vers son nouvel emplacement. Nous ferons de même pour les journaux de transaction (que nous n'avons pas besoin de renommer d'ailleurs).

Nous pouvons voir quelques propriétés de la base de données (le nom en particulier) avec la simple commande suivante :

Get-MailboxDatabase

Nous pouvons la renommer en copiant son nom que nous plaçons dans la commande suivante comme ceci (avec des guillemets en raison des espaces dans le nom) :

Set-MailboxDatabase "Mailbox Database 0536918210" -Name MBXDB-01

Note : j'ai choisi le nom "MBXDB-01". Vous pouvez, bien entendu, choisir le nom qui vous convient.

Nous pouvons vérifier le changement de nom en exécutant la première commande de nouveau.

Voici une capture d'écran de l'ensemble des opérations :



Mais la base de données (et les journaux de transaction associés) se trouvent toujours sur le lecteur C. Nous les déplaçons avec les commandes suivantes :

Move-DatabasePath MBXDB-01 -EdbFilePath E:\MBXDB-01\MBXDB01.edb

Move-DatabasePath MBXDB-01 -LogFolderPath F:\MBXDB-01

Note : nous pouvons absolument déplacer la base de données et les journaux de transaction en même temps et avec une seule commande. J'ai séparé les deux opérations pour raccourcir les commandes, ce qui favorise, je crois (à tort ou à raison) la mise en page de ce billet de blogue. Le résultat est exactement le même.

Et en voici la capture d'écran de ces deux opérations :



Note : vous pouvez cliquer sur les images pour les agrandir !


***


Notre première base de données est désormais prête pour la création de boîtes aux lettres (sans compter les boîtes à lettres "système" qui ont déjà été créées à l'installation d'Exchange). Ce sera le sujet d'un billet de blogue à venir (et probablement le prochain). 

No comments:

Post a Comment