Wednesday, July 11, 2012

Onderhoud aan een Exchange 2010 DAG member

Bij een slim ontworpen Exchange 2010 omgeving kun je onderhoud plegen aan de servers zonder de productie in gevaar te brengen, dus zonder dat de gebruikers er iets van merken. Voor de Hub Transport en Client Access rollen zorgen we dat deze verwijderd zijn uit de actieve pool van servers in de load balancer. Voor de mailbox rol betekent dit dat hij tijdelijk geen actieve kopieën van de databases mag hosten. In dit artikeltje beschrijf ik op welke manier we dit kunnen bereiken.

Client Access en Hub Transport

Wanneer de DAG member naast de Mailbox rol ook de Client Access en Hub Transport rol heeft dan moeten we zorgen dat de load balancer geen verbindingen meer gaat maken met deze server. In dit voorbeeld gebruik ik een KEMP LoadMaster load balancer maar het principe is vergelijkbaar bij andere load balancers. Om een server uit de roulatie te halen gaan we in de webinterface naar Real Servers, door op Disable te klikken nemen we een server tijdelijk uit gebruik:

image

De load balancer zal nu geen nieuwe verbindingen meer opzetten naar deze server. Bestaande verbindingen blijven gewoon actief totdat de ingestelde tijd voor dit weglekken (drainen) van de connecties verlopen is. Op dat moment worden de laatste connecties verbroken en is de server definitief uit de pool verwijderd. Bij een KEMP LoadMaster kunnen we het aantal connecties monitoren door naar Statistics te gaan in het hoofdmenu.

image

In de kolom Active Conns zien we hier bijvoorbeeld 200 connecties staan voor de real server met het IP-adres wat op .113 eindigt. We zien nu dat dit aantal afneemt omdat er geen nieuwe connecties meer opgezet worden naar deze real server.

Mailbox

Voor de mailboxrol is het onder andere van belang dat de server geen actieve mailboxdatabases meer host, en dat er tijdens het onderhoud ook geen databases actief worden gemaakt. In Exchange 2010 SP1 en hoger kunnen we hiervoor het StartDagServerMaintenance.ps1 script gebruiken. Dit script doet onder andere het volgende:

  • Actieve database kopieën worden verplaatst naar een andere node
  • De core cluster resources worden verplaatst naar een andere node, indien deze server Primary Active Manager (PAM) was
  • De node wordt gepauzeerd in failover clustering om te voorkomen dat hij tijdens het onderhoud PAM wordt
  • Er wordt voorkomen dat er databases actief kunnen worden gemaakt tijdens het onderhoud
  • De replicatie van de passieve mailbox kopieën wordt gepauzeerd

We starten het script als volgt:

cd $exscripts
.\StartDagServerMaintenance.ps1 -ServerName ServerNaam

Om de server weer in gebruik te nemen gebruiken we het StopDagServerMaintenance.ps1 script, deze maakt bovenstaande wijzigingen weer ongedaan. Het enige wat dit script niet doet is de databases op deze server weer actief maken, indien je dit wilt zoal je dat handmatig moeten doen. Het script roepen we aan op de zelfde manier:

.\StopDagServerMaintenance.ps1 -ServerName ServerNaam

Wanneer er na het uit gebruik nemen van een DAG member minder dan twee kopieën van een database over zouden blijven dan geeft het script een foutmelding. We kunnen deze controle uitschakelen door StartDagServerMaintenance.ps1 met de -OverrideMinimumTwoCopies switch te starten.

Onderhoud

Wanneer je een server op deze manier uit gebruik neemt kun je vervolgens onderhoud plegen. Houd er wel rekening mee dat je voor sommige updates extra instructies hebt, zoals bijvoorbeeld het uitschakelen van services voor antivirus en monitoring. Lees daarom altijd het bijbehorende knowledge base artikel, met name bij Update Rollups en Service Packs.

1 comment:

John van Leeuwen said...

Wow, cool ik heb gisteren exact op deze manier wat basic onderhoud uitgevoerd! Ik had deze post eerder moeten lezen dan had ik het minder "spannend" gevonden.. ;)

Ik heb (schaam) alleen de de active database niet geswitched via powershell maar gewoon via de EMC.