Konfigurácia redundantnej skupiny (Server)

Konfigurácia redundantnej skupiny (Server)

Konfigurácia redundantnej skupiny (Server)

Redundantnú skupinu tvorí jeden, alebo viac aplikačných serverov, pričom každý z nich je umiestnený na inom počítači. Pri štarte aplikácie sa server pokúša prečítať parametre RDS, ktoré sú jednoznačne zviazané s aplikáciou.

Parameter

Význam parametra

Parameter

Význam parametra

GroupName

Textový reťazec definujúci meno RDS. Ak server pri štarte tento parameter nenájde, alebo je to reťazec nulovej dĺžky neprebehne pokus o zaradenie do RDS a aplikácia beží bez podpory redundancie. Tento parameter je vhodné miesto, kde je možné zakázať všetky vlastnosti redundancie pred štartom servera a aplikáciu spustiť v normálnom režime.

KernelName

Jednoznačné meno aplikačného servera v rámci RDS. Ak parameter neexistuje, alebo je prázdny text, použije sa meno počítača (Host Name).

State

Požadovaný stav aplikačného servera po štarte. V aktuálnej implementácii je jediný prípustný cieľový stav - SBS.

Priority

Priorita aplikačného servera vzhľadom k ostatným zaradeným v RDS. Vyššie číslo znamená vyššiu prioritu. Priorita sa používa pri neočakávanom výpadku HS a určuje, ktorý SBS preberie funkcie HS (stane sa HS). Priorita 0 znemožní serveru automatický prechod do stavu HS. Tento je možné vykonať jedine prostredníctvom procesu D2000 System Console.


Aplikačný server zaradený do RDS môže podľa situácie nadobúdať nasledujúce stavy:

Označenie stavu

Hodnota

Popis

Označenie stavu

Hodnota

Popis

HS

0

Aktívny server v RDS

SBS

1

Pripravený STANDBY server

CS

2

Server po chybe

SS

3

Štartujúci server

FS

4

Chybné nastavenie parametra State

TS

5

Test server: nie je implementovaný


Prechod servera medzi jednotlivými stavmi SS, HS, SBS, CS sa vyznačuje prechodom cez dočasné podstavy, ktoré sú časovo vymedzené parametrami RDS. Ich zoznam je v tabuľke:

Dočasný stav

Parameter RDS ohraničujúci stav [s]

Popis

iNone

RD_TIMEOUT_iNone

Stabilný stav

iElection

RD_TIMEOUT_iElection

Hlasovanie

iWaitingHot

RD_TIMEOUT_iWaitingHot

Čakanie na HS

iWaitingReadyHot

RD_TIMEOUT_iWaitingReadyHot

Čakanie na pripravený HS

iStartingKernelToSBS

RD_TIMEOUT_iStartingKernelToSBS

Štart servera do stavu SBS

iStartingKernelToHOt

RD_TIMEOUT_iStartingKernelToHOT

Štart servera do stavu HS

iHotOrSBSToSBS_WaitForHot

RD_TIMEOUT_iHotOrSBSToSBS_WaitForHot

Čakanie na HS po riadenej zmene

iHotOrSBSToSBS_WaitAnsConn

RD_TIMEOUT_iHotOrSBSToSBS_WaitAnsConn

Čakanie na potvrdenie prihlásenia sa SBS k HS


Vzhľadom na to, že v RDS súčastne beží viacero aplikačných serverov pripravených prevziať funkciu HS pri jeho výpadku, je nanajvýš dôležité aby pri výpadkoch komunikačných ciest (výpadok komunikačnej siete, alebo jej časti) nenastal prechod viacerých SBS do stavu HS. Toto môže nastať ak dôjde k poruche komunikačnej karty na počítači, kde beží člen RDS v stave SBS. Z jeho pohľadu došlo k výpadku HS a preto sa ho snaží nahradiť a prejsť do stavu HS.

Za účelom zamedzenia popísaného stavu si každý aplikačný server začlenený do RDS priebežne kontroluje „viditeľnosť“ aspoň jednej IP adresy z daného zoznamu prostredníctvom protokolu ICMP službou PING. Za neúspešný PING sa považuje, ak služba skončí s chybou alebo nie je ukončená v stanovenom časovom limite. Ak ani jedna adresa zo zoznamu nie je viditeľná aplikačný server prechádza do stavu CS a končí.

Zoznam IP adries a časový limit je súčasťou parametrov RDS:

Parameter

Popis

NetCheck_Ping_TIME_OUT

Časové ohraničenie pre službu PING [ms]

NetCheck_Ping1

Pripravený STANDBY server

NetCheck_Ping2

IP adresa

....

....

NetCheck_PingN

IP adresa

V reálnej aplikácii je vhodné, aby si každý člen RDS overoval prítomnosť ostatných členov a aspoň jedného počítača, ktorý nie je členom RDS. Dôsledok uvedenej činnosti je:

  1. Server sa odmietne naštartovať (a následne prejsť do stavu HS) ak všetky počítače z tabuľky pre službu PING sú vypnuté (resp. neprístupné službou PING).

Pri nastavovaní konštanty NetCheck_Ping_TIME_OUT je dôležité, aby ak počítač nie je na sieti túto skutočnosť zistil skôr ako bude ukončený stav iElection. Server pred prechodom do stavu CS v prípade ak nie je dosiahnuteľná ani jedna adresa zo zoznamu, tento zoznam prechádza ešte raz. V najhoršom prípade ho teda prejde dva krát. Doba trvania tejto činnosti môže dosiahnuť 2*N* NetCheck_Ping_TIME_OUT. N je počet adries NetCheck_Ping. Tento čas musí byť menší ako RD_TIMEOUT_iElection.

2*N* NetCheck_Ping_TIME_OUT < RD_TIMEOUT_iElection
a preto
NetCheck_Ping_TIME_OUT < RD_TIMEOUT_iElection / (2*N)

Napríklad: Ak N=6 a RD_TIMEOUT_iElection = 7 [s] tak musí platiť:

NetCheck_Ping_TIME_OUT < 7 000 / (2 * 6) NetCheck_Ping_TIME_OUT < 580 [ms]

Pre správnu funkciu je potrebné aby server ako člen RDS poznal nasledujúce parametre:

Parameter

Popis

Parameter

Popis

IPMask

IP Maska siete do ktorej patria adresy IPAddr1 a IPAddr2

IPAddr1

IP adresa servera na primárnej sieti

IPAddr2

IP adresa servera na záložnej sieti

Umiestnenie parametrov je popísané v časti Umiestnenie konfiguračných parametrov.
IPAddr1 je IP adresa na ktorú sa budú pripájať klienti servera. Ak je použitá z dôvodov bezpečnosti a redundancie záložná komunikačná sieť, je potrebné zadať aj parameter IPAddr2.
Ak žiaden z parametrov IPAddr1 a IPAddr2 nie je definovaný (alebo sú obidva prázdne), server na platforme Windows si ich zisťuje od operačného systému. Na platforme OpenVMS musia byť uvedené, pokiaľ je server v redundantnej skupine.
Poznámka: pokiaľ má server viac ako 2 rozhrania alebo viac ako 2 IP adresy (napr. IP aliasy), je vhodné nastaviť parametre IPAddr1 a IPAddr2, pretože pri zisťovaní adries nie je zaručené poradie, v ktorom ich od operačného systému dostane (sú použité prvé dve získané IP adresy, do úvahy sa neberie loopback 127.0.0.1).
Obzvlášť je odporúčané nastavenie parametrov IPAddr1 a IPAddr2 v systémoch s meniacimi sa IP adresami (dynamické aliasy, clustre a pdobne), pretože D2000 Server zisťuje adresy iba pri štarte.

Adresy sú šírené po sieti prostredníctvom MULTICASTOV pri dotaze na stav RDS. Dotaz využívajú jednotlivé aplikačné servery zaradené do RDS ale aj klienti pripájaný do RDS prostredníctvom parametra /RD.

Koordinácia a výmena informácií medzi členmi RDS prebieha podľa parametra UseIPMulticast popísanom v kapitole Špeciálne nastavenia. Na základe nastavenia sa použije:

a) IP MULTICAST, pre prevádzku v sieťovej infraštruktúre, kde je dostupná služba IP multicast. Týmto je dané ohraničenie množiny počítačov, na ktorých sa môžu nachádzať členovia RDS.

alebo

b) IP UNICAST, pre prevádzku v sieťovej infraštruktúre, kde nie je dostupná služba IP multicast. Členovia redundantnej skupiny potrebujú mať vyplnenú tabuľku s IP adresami všetkých ostatných členov redundantnej skupiny. Umiestnenie a formát tabuľky je popísaný v kapitole Konfigurácia a pripojenie klienta.

Multicasty aj unicasty su UDP pakety s dynamickým zdrojovým portom a s cieľovým portom 3119.

Multicasty sa štandardne šíria v rámci jedného sieťového segmentu (po najbližší router). Preposielanie multicastov do iných sieťových segmentov vyžaduje konfiguráciu na strane routrov.

Unicasty sú užitočné, ak sa D2000 Servery nachádzajú na rôznych sieťových segmentoch. Akurát  je nutné povoliť prestup UDP paketov na všetkých firewalloch medzi D2000 Servermi (včítane Windows Firewallu).