Pereiti prie turinio

Aukšto pasiekiamumo web serveris


Rekomenduojami pranešimai

Sveiki,

 

Pateikiu pamoką apie tai, kaip sukurti aukšto pasiekiamumo web serverį jūsų svarbiems projektams. Pamoka toli gražu ne baigta, jei atsiras žmonių - įkels papildymą su DRBD.

Formuosime Linux klusterį su "Heartbeat" programa CentOS 5.x sistemai.

 

Ko mums reikės:

 

  • 2 VPS serverių su įdentiškom OS
  • Abiejuose serveriuose bus naudojama Apache web serveris
  • Abu serveriai turi būti vienodos virtualizacijos (pvz.: OpenVZ)

 

1. Vienas serveris bus mūsų pagrindinis, todėl jo IP (pvz.: AA.xx.xx.xx) pridedam prie eth0.

 

ifconfig eth0 AA.xx.xx.xx

 

2. Priskiriam "hostname" mūsų serveriams.

 

AA.xx.xx.xx - node01 (pagrindinis)

BB.xx.xx.xx - node02 (atsarginis "slave")

 

hostname node01
hostname node02

 

Tam jog įsitikintumėte ar teisingai priskyrėte "hostname", kiekviename VPS'e įrašykit:

 

uname -n

 

Turėtų rodyti node01 arba node02 atitinkamai.

 

Dėmesio, CC.xx.xx.xx bus mūsų virtualus IP adresas kuris bus naudojamas mūsų Apache web serveriui.

 

3. Siunčiamės ir instaliuojam "Heartbeat" programą ant abiejų serverių.

 

yum install heartbeat

 

4. Programas turime tinkamai sukonfiguruoti. Konfiguravimas pagrinde atliekamas 3 failų pagalba:

 

  • authkeys
  • ha.cf
  • haresources

 

4. Pradedam konfiguraciją (node01 serveryje), bet prieš tai perkeliam failus į atitinkamus katalogus:

 

cp /usr/share/doc/heartbeat-VERSIJA/authkeys /etc/ha.d/
cp /usr/share/doc/heartbeat-VERSIJA/ha.cf /etc/ha.d/
cp /usr/share/doc/heartbeat-VERSIJA/haresources /etc/ha.d/

 

5. Pirma konfiguruojam authkeys failą. Naudosim 2 identifikavimo metodą sha1.

 

vi /etc/ha.d/authkeys

 

Ir įklijuojam šias eilutes:

 

auth 2
2 sha1 test-ha

 

Suteikiam šiam failui reikalingas teises:

 

chmod 600 /etc/ha.d/authkeys

 

5. Judam prie mūsų antro konfiguracijos failo ha.cf .

 

vi /etc/ha.d/ha.cf

 

Ir įklijuojam žemiau esantį tekstą:

 

logfile /var/log/ha-log
logfacility local0
keepalive 2
deadtime 30
initdead 120
bcast eth0
udpport 694
auto_failback on
node node01
node node02

 

6. Paskutinis konfiguracijos failas haresources. Šiame faile pateikiame duomenys apie tai kokius servisus norite aktyvuoti kaip "aukšto pasiekiamumo". Mūsų atveju - web serveris httpd.

 

vi /etc/ha.d/haresources

 

Ir įklijuojam žemiau esantį tekstą:

 

node01 CC.xx.xx.xx httpd

 

7. Nukopijuojam /etc/ha.d/ aplanką į node02 serverį.

 

8. Konfiguruojam patį httpd servisą aukštam pasiekiamumui.

 

vi /etc/httpd/conf/httpd.conf

 

Ir įklijuojam žemiau esantį tekstą:

 

Listen CC.xx.xx.xx:80

 

Pastaba: Tai mūsų virtualus IP adresas, nesumaišykit.

 

9. Nukopijuojam /etc/httpd/conf/httpd.conf į node02.

 

10. Sukuriam index.html failus abiejuose serveriuose.

 

node01:

echo "node01 apache test serveris" > /var/www/html/index.html

 

node02:

echo "node02 apache test serveris" > /var/www/html/index.html

 

11. Paleidžiame "Heartbeat" programą serveriuose node01 ir node02.

 

/etc/init.d/heartbeat start

 

12. Atidarom naršyklėje http://CC.xx.xx.xx . Turėtų rodyti node01 index.html failą.

 

13. Dabar sustabdome node01 "Heartbeat" servisą.

 

/etc/init.d/heartbeat stop

 

Ir vėl įrašome į naršyklės langą http://CC.xx.xx.xx . Turėtų rodyti node02 index.html failą.

 

------

 

Viskas, klusteris paruoštas. Pamoka labai supaprastinta, kaip jau minėjau prie "Heartbeat" reiktų naudoti DRBD programą duomenų sinchronizavimui tarp node serverių. Jei atsiras laiko ir noro, pridėsiu pamoką kaip tai padaryti. Galimos klaidos ir neaiškumai pamokoje manau bus nuodugniai išnarstytos forumo "adminų".

 

Naudingos nuorodos:

 

  1. Linux HA (Heartbeat) dokumentacija/user manual
  2. DRBD
    Pamokos originali nuoroda (ENG)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Čia įžanga į "failover" sistemas. Vienas serveris lūžta, darbą nedelsiant perima atsarginis. Tol kol taisai sugedusį serverį, atsarginis puikiai gelbėja. Čia naudinga ir reikalinga tiems kas uždirba iš savo puslapio ir kiekviena offline minutė yra nuostolis.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Hight availability aka Load balanced

 

O gal ir klystu :)

 

Ne, Load balanced eina iškart ant kelių mašinų, High avavilability - kai lūžta vienas, jį iškart keičia antras. Čia aišku reik dar DNS | MySQL | Mail servisų replikacijos į "slave" serverį jei turit sudėtingą svetainę ir pageidaujat visiško nepertraukiamo svetainės darbo.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Ne, Load balanced eina iškart ant kelių mašinų, High avavilability - kai lūžta vienas, jį iškart keičia antras. Čia aišku reik dar DNS | MySQL | Mail servisų replikacijos į "slave" serverį jei turit sudėtingą svetainę ir pageidaujat visiško nepertraukiamo svetainės darbo.

 

cia gal tas variantas kai narsykles lange raso www1 www2?

 

 

 

Nuoroda į pranešimą
Dalintis kituose puslapiuose
  • po 1 mėnesio...
  • po 1 mėnesio...

Neblogas gidas, tačiau jei serveris, į kurį kreipiamasi, bus ne su neveikiančiu heartbeat daemonu, o visai išjungtas, web bus nepasiekiamas visiškai, tiesa? Ar yra kokia decentralizuota alternatyva tam? Žinau round-robin DNS, bet vėlgi, tai labiau load balancingas ir nėra jokio tikrinimo, ar serveriai gyvi.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...