Konfigurácia redundantej 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
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
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]

Celá výmena informácií medzi členmi RDS prebieha prostredníctvom MULTICASTOV. Týmto je dané ohraničenie množiny počítačov, na ktorých sa môžu nachádzať členovia RDS. Pre správnu funkciu je potrebné aby server ako člen RDS poznal nasledujúce parametre:

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.

Napíšte komentár