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 |
---|---|
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:
- 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 |
---|---|
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).
Add Comment