2010-08-12

Pachování Exchange 2010 HA infrastruktury

Když už po mě jeden zákazník chtěl popsat postup při patchování Exchange 2010 zclusterované infrastruktury, a kyž už jsem to sepsal, tak co bych se nepodělil, že jo :) Takže následuje popis, kterak opatchovat a restartovat Exchange servery v HA režimu (NLB, Failover), aniž to omezí klienty a způsobí případnou nekonzistenci dat.

Pořadí patchování serverů je v podstatě lhostejné, ale doporučuji začínat CAS servery, páč ty zejména při velkém počtu aktivních uživatelů trvají opravdu dlóóóuho. Na druhou stranu, většinou se patchuje mimo produkční hodiny, takže to zas tak strašný není (když se na vás useři nedomluvej a nenechaj puštěný Outlooky přes noc :-)

Patchování CAS/Hub serverů v NLB Clusteru

 

  1. Prvně je třeba zařídit, aby se server, který hodláme patchovat, zbavil všech klientských sessions. Jelikož je členem NLB clusterum nejde jen prostě zastavit služby, je taky potřeba NLB clusteru říct, aby na tento server už nesměroval žádná nová spojení. Ta stávající budeme muset nechat dožít.
    • To se provede tak, že v NLB Manageru rigkt-clickneme na server, zvolíme Control Host -> Drainstop, příp. můžeme třeba ve skriptu použít příkaz "nlb drainstop"
      • Výsledkem tohoto bude status "Host is Stopped" u všech port rules daného serveru v NLB Manageru (viz tuhleten obrázek). Nutno dodat, že přechod do tohoto stavu může při větším počtu klientů trvat opravdu dlouho. V podstatě jsme jim odkázáni na milost, kdy oni ukončí svoje sessions - chceme patchovat a restartovat s minimálním dopadem na jejich pohodlí a hlavně zdraví jejich dat, áááno? :-)
      • Příp. ještě můžeme zkontrolovat Performance Monitorem příslušné countery, abychom si ověřili, že počet aktivních uživatelů přes všemožné protokoly (pop3, imap4, owa, activesync, rpc, etc.) je roven nule, abychom snad nějakýmu velkýmu "zvířeti" nepřivodili nějakou újmu :-)
  2. Jako druhý krok následuje zastavení všech služeb Exchange
    • net stop msexchangeadtopology /y
    • net stop msexchangefba /y
    • net stop msexchangemonitoring /y
  3. Tak, a teď už můžem patchovat a restartovat :-)
    • Po restartu si ještě uděláme kontrolu, jestli je všechno v cajku:
      • Zkontrolujeme v NLB Manageru, jestli jsou všechny servery NLB clusteru "zelený" a všechny port rules ve stavu "Enabled"
      • Zkontrolujeme, jestli běžej všechny služby nastavený na "Automatic"
      • Zkontrolumeme EventLog a radši nastavíme "block red" filtr :-)

 

Pozn.: Pokud některý z CAS/Hub serverů plní funkci FSW pro DAG skupinu, logicky se při jeho restartu objeví na serverech DAG skupiny několik chybových hlášek od Failover Clusteru - tyto můžete "Safely ignore" :-)

Patchování MBX serverů ve Failover Clusteru

 

  1. Prvně je potřeba přesunout všechny aktivní databáze ze serveru který chceme patchovat, na ostatní členy DAG skupiny.
    • To je možné udělat např. PowerShell příkazem "Move-ActiveMailboxDatabase -server <server>", kde <server> je jméno serveru, ze kterého chceme aktivní kopie přesunout jinam (tedy aktuálně patchovaný server). Takto bez dalších parametrů si Exchange sám rozhodne, na které servery DAG skupiny tu kterou databázi přesune, parametrem "-ActivateOnServe" můžeme podtrčit jméno konrétního Exchange.
  2. Dále je vhodné zablokovat možnost aktivace lokálních kopií databází, aby se v případě výpadku jiného serveru DAG skupiny nezačaly databáze zase stěhovat na patchovaný server.
    • Toho dosáhneme spuštěním PowerShell přkazu "Get-MailboxDatabaseCopyStatus -Server <server> | Suspend-MailboxDatabaseCopy -ActivationOnly -Confirm:$False", kde <server> je jméno serveru, který patchujeme.
  3. Taky je dobrý samotnýmu Failover Clusteru říct, aby si přestěhoval resources z "Cluster Group" (i.e. jméno a ip clusteru a FSW) na jiný server, drží-li je zrovna aktuálně patchovaný server
    • (a)řádkový příkaz "cluster <cluster> group "Cluster Group" /moveto:<server2>", kde <cluster> je název samotného clusteru (pozor, nikoliv DAG skupiny!) a <server2> je název serveru, na který chceme resources přesunout.
  4. Teď nastává chvíle pro zastavení všech služeb Exchange
    • net stop msexchangeadtopology /y
    • net stop msexchangefba /y
    • net stop msexchangesa /y
    • net stop msexchangis /y
    • net stop msexchangemonitoring /y
  5. Včil můžeme patchovat a restartovat
    • Po restartu je opět vhodné udělat kontrolu:
      • Zkontrolujeme Failover Cluster, jestli jsou všechny resources "Cluster Group" online
      • Zkontrolujeme, jestli běžej všechny služby nastavený na "Automatic"
      • Zkontrolumeme EventLog a radši nastavíme "block red" filtr :-)
      • A hlavně (!) opět obnovíme možnost aktivace lokálních kopií databází:
        • PowerShell příkaz "Get-MailboxDatabaseCopyStatus -Server <server> | Resume-MailboxDatabaseCopy", kde <server> je jméno serveru, který jsme právě restartovali.

 

Tak, shora uvedeným postupem bychom měli dosáhnout toho, že patchování a příp. restart Exchange serverů bude bezbolestný z hlediska uživatelů i z hlediska konzistence jejich dat. Možná jsem na něco zapomněl, ale největší "špeky" jsem snad vychytal. Kdyžtak mě klidně setřete nejakým šťavnatým komentářem :-)

Žádné komentáře:

Okomentovat

Mazat komentáře nehodlám, výjimky však tvoří vulgární a off-topic komentáře!