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.

ParameterVýznam parametra
GroupNameTextový 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.
KernelNameJednoznač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 stavuHodnotaPopis
HS0Aktívny server v RDS
SBS1Pripravený STANDBY server
CS2Server po chybe
SS3Štartujúci server
FS4Chybné nastavenie parametra State
TS5Test 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ý stavParameter RDS ohraničujúci stav [s]Popis
iNoneRD_TIMEOUT_iNoneStabilný stav
iElectionRD_TIMEOUT_iElectionHlasovanie
iWaitingHotRD_TIMEOUT_iWaitingHotČakanie na HS
iWaitingReadyHotRD_TIMEOUT_iWaitingReadyHotČakanie na pripravený HS
iStartingKernelToSBSRD_TIMEOUT_iStartingKernelToSBSŠtart servera do stavu SBS
iStartingKernelToHOtRD_TIMEOUT_iStartingKernelToHOTŠtart servera do stavu HS
iHotOrSBSToSBS_WaitForHotRD_TIMEOUT_iHotOrSBSToSBS_WaitForHotČakanie na HS po riadenej zmene
iHotOrSBSToSBS_WaitAnsConnRD_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:

ParameterPopis
NetCheck_Ping_TIME_OUTČasové ohraničenie pre službu PING [ms]
NetCheck_Ping1Pripravený STANDBY server
NetCheck_Ping2IP adresa
........
NetCheck_PingNIP 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:

ParameterPopis
IPMaskIP Maska siete do ktorej patria adresy IPAddr1 a IPAddr2
IPAddr1IP adresa servera na primárnej sieti
IPAddr2IP 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).


Napíšte komentár