(modifié le 24 octobre 2017 à 15:41)

Dans ce tutoriel nous allons voir comment passer des serveurs Exchange 2010 hébergeant des boites emails (rôle MBX) en mode maintenance afin d'y installer le dernier rollup disponible.

Ceci dans le but de les mettre à jour avec une interruption de service maitrisée.

Avant de commencer

Je vous invite à lire entièrement ce billet avant de vous lancer, une étape importante pour lister les services peut être lancée avant de commencer pour vous rassurer. Toutes les commandes devront être saisies dans Exchange Management Shell (EMS) accessible via le menu démarrer, depuis un compte avec des permissions admin sur exchange/AD.

Avant tout notez bien la version de Microsoft Exchange installée sur tous vos serveurs.

Pour connaître la version à partir de la console de gestion Exchange "? > A propos de Exchange Serveur 2010".

Pour connaître la version à partir de EMS :

Get-Command ExSetup | ForEach {$_.FileVersionInfo}

Rendez-vous sur cette page technet pour connaître la correspondance entre le numéro de version et le rollup + Service Pack.

Exemple : 14.03.0123.004 correspond à la version SP3 sans rollup (RTM)

Vérifiez sur chaque serveur que l'ensemble des services fonctionnent :

Get-Service | Where {$_.DisplayName -Like "*Exchange*"} | ft DisplayName, Name, Status -autosize

Il est tout à fait normal que tous les services ne soient pas démarrés. C'est le cas chez moi de Microsoft Exchange Server Extension for Windows Server Backup et de la Surveillance Microsoft Exchange.

Important : avant de commencer quoi que ce soit faites des backups de :

  • vos certificats sur les CAS
  • vos databases + logs (MBX)
  • l'état du système complet de vos DC

Grâce à cela vous pourrez restaurer si vous foutez l'infra par terre. Et quand je dis backup c'est sauvegarde, pas un snapshot car un retour arrière est impossible avec l'AD et Exchange.

L'infrastructure à mettre à jour

Pour ce tutoriel nous allons partir d'une infrastructure Exchange 2010 simple.

Elle est composée de :

  • un cluster CAS NLB (Network Load Balancing)
  • un cluster MBX DAG (Database Availability Group)

Chaque cluster est hébergé par un minimum de 2 machines : 2 CAS et 2 MBX.

Ce type d'opération n'est pas sans impact, les clients Outlook peuvent avoir des messages d'erreur ou des demandes de reconnexion. Il est est donc préférable de mener cette opération en heure non ouvrée. A vous de voir.

Un ordre à respecter

Je rappelle que l'ordre d'installation des mises à jour cumulatives (rollup) est importante. Il faut toujours mettre à jour les CAS puis les MBX.

La raison est simple : techniquement le rôle du CAS est nettement moins impliqué dans le fonctionnement d'une infrastructure Exchange, il se cantonne à relayer les demandes des clients vers les serveurs MBX.

Il n'est pas nécessaire d'installer les rollups précédents, vous pouvez tout à fait installer le dernier en date en étant en RTM. Par contre vous devez être sur le bon service pack, le dernier en date pour Exchange 2010 est le SP3.

Vous n'avez pas besoin de désinstaller les rollups précédents non plus, installez par dessus c'est fait pour.

Cas particulier : si vous avez installé des mises à jour intérimaires (interim rollup) vous devrez les désinstaller, mais si c'est le cas vous devriez savoir pourquoi vous l'avez fait car c'est un cas très très particulier. Ces mises à jour sont visibles dans "programmes et fonctionnalités". Si vous n'en voyez pas il n'y en a pas.

Mise à jour des CAS

Aucune opération particulière n'est nécessaire.

Je vous conseille de lancer l'installation à partir d'une invite en tant qu'administrateur. Voici pour l'installation du Rollup 18 (2010 SP3) :

msiexec /update C:\temp\Exchange2010-KB4018588-x64-fr-RL18.msp /lxv* c:\temp\rollup.log

En cas d'erreur d'installation vous n'aurez qu'à consulter le fichier rollup.log pour trouver la cause du problème.

Vous pouvez installer le rollup sur un premier serveur puis sur l'autre.

Pensez à redémarrer le serveur après l'installation et :

  • vérifiez que l'ensemble des services fonctionnent (cf "avant de commencer")
  • vérifiez les entrées dans l'observateur d'évènements
  • connectez-vous via OWA sur chaque serveur (au lieu de l'adresse NLB)

En cas de doute je vous invite à lancer cette commande avant l'installation des RollUp, si les services qui tournaient avant l'installation du rollup tournent après alors cela vous rassurera.

Ordre de mise à jour des MBX

Admettons que nous avons MBX-1 et MBX-2.

Voici les étapes  :

  1. basculer des databases le serveur MBX-1
  2. passer MBX-2 en mode maintenance
  3. installation du rollup + reboot sur MBX-2
  4. sortir MBX-2 du mode maintenance
  5. basculer toutes les databases le serveur MBX-2
  6. passer MBX-1 en mode maintenance
  7. installation du rollup + reboot sur MBX-1
  8. redistribution automatique des bases sur les 2 serveurs (cluster DAG)

1 - Bascule des databases sur MBX-1

Nous aurons plus tard besoin du nom du DAG :

Get-DatabaseAvailabilityGroup

Dans mon cas le nom est "BM-DAGMBX".

Avant de basculer les bases il faut savoir quelles bases sont hébergées sur le serveur à mettre à jour :

Get-MailboxDatabase | Get-MailboxDatabaseCopyStatus

Il suffit de lire le nom du serveur en face de "Mounted".

Toutes les bases doivent être en bonne santé "Healthy". Si ce n'est pas le cas traitez ce point avant d'aller plus loin (script PS1).

Toutes les bases montées sur MBX-2 doivent être basculées sur MBX-1 :

Move-ActiveMailboxDatabase "Ma Base 1go" -ActivateOnServer MBX-1 -confirm:$False

Pas d'erreur ? passons à la suite !

2 - Activation du mode maintenance sur MBX-2

Nous allons utiliser le script intégré à Exchange pour cela.

cd $exscripts
.\StartDagServerMaintenance.ps1 -serverName MBX-2

Pour vérifier que le mode maintenance est bien actif vérifiez que les bases sont en mode "suspendues" :

Get-MailboxDatabase | Get-MailboxDatabaseCopyStatus | fl name,activationSuspended, suspendComment

Vous devriez obtenir :

Name : Ma Base 1go
ActivationSuspended : True
SuspendComment : Suspended ActivationOnly by StartDagServerMaintenance.ps1 at 2017-10-23T14:31:15

Notre serveur étant en mode maintenance passons à la suite.

3 - Installation du rollup sur MBX-2

Il est temps d'installer le rollup sur MBX-2, la commande est identique à l'installation du rollup sur le CAS :

msiexec /update C:\temp\Exchange2010-KB4018588-x64-fr-RL18.msp /lxv* c:\temp\rollup.log

Pas d'erreur ? Pensez à redémarrer le serveur après l'installation et :

  • vérifiez que l'ensemble des services fonctionnent (cf "avant de commencer")
  • vérifiez les entrées dans l'observateur d'évènements
  • connectez-vous via OWA sur chaque serveur (au lieu de l'adresse NLB)

Redémarrez le serveur puis vérifiez que tous les services tournent (cf "avant de commencer") sur le serveur MBX-2.

4 - Sortir MBX-2 du mode maintenance

La sortie du mode maintenance se fait avec StopDagServerMaintenance.ps1:

cd $exscripts
.\StopDagServerMaintenance.ps1 -serverName MBX-2

Pour vérifier que le mode maintenance est bien désactivé vérifiez que les bases ne sont plus en mode "suspendues" :

Get-MailboxDatabase | Get-MailboxDatabaseCopyStatus | fl name,activationSuspended

Le reste des étapes est similaire, la seule chose qui diffère est le nom du serveur donc je vais être bref.

5 - Basculer toutes les databases le serveur MBX-2

Move-ActiveMailboxDatabase "Ma Base 1go" -ActivateOnServer MBX-2 -confirm:$False

6 - Activation du mode maintenance sur MBX-1

cd $exscripts
.\StartDagServerMaintenance.ps1 -serverName MBX-1

7 - Installation du rollup sur MBX-1

msiexec /update C:\temp\Exchange2010-KB4018588-x64-fr-RL18.msp /lxv* c:\temp\rollup.log

Reboot + vérifications.

8 - Redistribution des bases

Cette ultime étape permet de ré-équilibrer les bases sur l'ensemble des serveurs du DAG.

cd $exscripts
.\RedistributeActiveDatabases.ps1 -DagName BM-DAGMBX -BalanceDbsByActivationPreference

Répondre "[T] oui pour tout"

A la fin vérifiez que vous n'avez pas d'erreur :

----------------
Summary of Moves
----------------
Successfully moved : 3
Moved to less preferred : 0
Failed to move : 0
Not moved : 2

Enfin, jetez un dernier coup d’œil sur les databases pour vérifier qu'elles sont bien réparties :

Get-MailboxDatabase

Conclusion

L'opération n'a rien de compliqué, je l'ai détaillé au maximum mais si tout se passe bien c'est relativement trivial.

Par contre c'est long, pour ma part j'ai compté environ 30 minutes par CAS et 45-60 minutes par MBX.

Je vous conseille de tester cette procédure en labo avant de vous lancer sur la production, bien sûr. Si vous êtes sur une infra Exchange 2013 ou 2016 la procédure est sensiblement la même.

source complémentaire

 

Auteur : Mr Xhark

Fondateur du blog et passionné par les nouvelles techno, suivez-moi sur twitter