Pereiti prie turinio

BruceW

Nariai
  • Pranešimai

    2.516
  • Užsiregistravo

  • Lankėsi

  • Laimėta dienų

    3
  • Atsiliepimai

    0%

BruceW Pranešimai

  1. 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.

  2. 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)

  3. Nieko panasaus, OpenVZ daug cpu naudojancioms aplikacijoms netgi gali buti geriau nei xen:

    http://download.openvz.org/contrib/doc/xen-vs-openvz/Diplomarbeit%20Servervirtualisierung%20English%20(part).pdf

     

    p.s. jei aplikacija suvartos 1 branduoli procesoriaus tai nesvarbu ar tai bus openvz ar xen, niekas nepagamins daugiau resursu nei ju yra istikro.

     

    Tai taip, tai būtų puiku jei pats vienas būtum serveryje ar ne? Imi ir nesuki galvos. Tačiau, jei tu sėdi oversell'intame serveryje ir tokių "resource hog" yra keli. Kas tuomet darosi? OVZ kenčia RAM'ai, CPU ir I/O. Tuo tarpu XEN - kenčia I/O, RAM atmintis lieka izoliuota nuo likusiujų mašinų serveryje, žinoma jei nepersistengta su SWAP.

  4. Pats sugalvojai tokia nesamone? OpenVZ tinka viskam ir jokiu problemu nera jei moki susikonfiguruoti ka reikia. Dedikuoto tikrai nereikia ir kas taupo pinigus pilnai pakanka VPS'o.

     

    Sakai? Jei uzurpuosi visą serverio CPU su žaidimu tave išmes greičiau nei spėsi sumirksėti. Resursams intensyviems žaidimams reik arba dedikuoto serverio kur nei tu trugdysi kam nors nei tau trugdys, arba stipresnės izoliacijos virtualizacijos - XEN.

    Jei netiki (tas be abejo neprivaloma) - statyk minecraft serverį ant VPS (OVZ) ir pažiūrėsi, kaip laikui bėgant, pildantis klientais serveriui tau prasideda "lag'as" ir ateini čia skūstis.

  5. O jei taip:

     

    There is one weakness in CURL, which you can exploit, it can not run javascript like a browser. So you can take advantage of this fact, one first landing on the reg page, have your server side code check for a cookie, if it isnt there, send some javascript code to the browser, this code will set the cookie and do a redirect/reload ... after reload the server side again checks for the cookie, incase of browsers it will find it.. incase of curl the cookie generation and reload/redirect wont happen in the first place.
×
×
  • Pasirinkite naujai kuriamo turinio tipą...