Linux-HA Debianiga

Allikas: Kuutõrvaja
Redaktsioon seisuga 24. juuni 2009, kell 12:50 kasutajalt Imre (arutelu | kaastöö) (ha.cf)

Sissejuhatus

Üldiselt nimetatakse kõrgkäideldavaks (ingl. k. High Availability, HA) sellist süsteemi, mis vaatlusalusel ajal suudab järjepidevalt nõuetele vastavat teenust pakkuda. Linux-HA (High-Availability Linux) http://www.linux-ha.org/ projekt oli ajalooliselt esimene, mis tegeles kõrgkäideldava lahenduse tekitamisega kasutades Linux operatsioonisüsteemi.

Kõrgkäideldava arvutisüsteemi puhul ei tohiks põhimõtteliselt olla süsteemis ühtegi nn SPOF (ingl. k. Single Point of Failure) kohta. Kui arvutisüsteemi kujutleda kihiliselt, siis peavad olema dubleeritud või ümberlülitamise võimalusega nt sellised komponendid

  • võrk - interface bonding/trunking, OSPF
  • arvutid - Heartbeat, Relayd
  • salvestusseadmed - RAID, DRBD

Sõltuvalt asjaoludest võib olla praktiline asendada võimalikult täpselt rikenenud kompoent, nt riistvaralise RAID skeemi üks ketas või siis kogu riknenud sõlm, nt üks arvuti. Linux-HA puhul on iseloomulik, et süsteemi sees toimuvad ümberlülitused automaatselt, kuigi ümberlülituse saab teha ka käsitsi

  • switchover - käsitsi ümberlülitus
  • failover - automaatne ümberlülitus

Kõrgkäideldav kluster

Nimetus kõrgkäideldav kluster rõhutab asjaolu, et tegu on tervikliku süsteemiga, mille erinevad komponendid on dubleeritud ja usaldavad üksteist ning ühe komponenendi riknemisel on valmis teine komponent töö üle võtma säilitades nii süsteemi poolt pakutava teenuse järjepidevuse. Tavaliselt on klustriga seotud üks teenuse ip aadress ning igal komponendil on nö isiklik ip aadress.

 TODO skeem

Teenuse ip aadress on igal ajahetkel omistatud ühele klustri komponendile, mis pakub kasutajatele teenust. Kõrgkäideldavust tagav tarkvara hoolitseb selle eest, et teha kindlaks kui seni teenust pakkuv komponent on riknenud ja seadistab teenuse ip aadressi valmis olnud klustri mõnele muule komponendile.

Heartbeat

Linux-HA projekt tegeleb klustri tarkvaraga Heartbeat, millest on levinud kaks versiooni

  • R1 ehk legacy versioon - seadistamine on lihtne, toetab kahe komponendilist klustrit, ei võimalda monitoorinda teenuseid, vaid komponendi võrgus olekut ja mitte-olekut
  • CRM ehk versioon 2 - seadistamine on keeruline, toetab kuni 255 komponendilist klustrit, võimaldab monitoorida teenuseid

2009 aasta keskpaigaks on Linux-HA projekt arendenud sellisesse seisu, et on eraldatud kaks kihti

  • klustri infrastruktuur - vastutab osaliste 'communication and membership' eest, kaks prominentsemat projekti on Heartbeati viimase aja versioonid ise ning OpenAIS
  • klustri ressursside haldus (ingl. k. cluster resource managament, CRM) - vastutab teenuste jälgimise ja käivitamise ning seiskamise eest

Praktiliselt on oluline tähele panna, et Heartbeat v. 2 on kasutatav nii R1 kui CRM režiimis sõltuvalt sellest, kuidas seadistusfailis on öeldud.

Heartbeat R1 kasutamine

Klassikaline ehk Heartbeat R1 lahendus tegeleb klustri kasutajate lülitamise ühe või teise teenust pakkuva arvuti vahel seadistades parasjagu teenust pakkuvale arvutile teenuse ip aadressi.

Eesmärk

Olgu eesmärgiks seadistada käima veebikoha teenust pakkuv kluster, mis koosneb kahest Apache veebiserverist

                  brauser
                     |
                     .
                    ...
                     | 
                  ruuter              
                     |
                     |
                     |
    --|--------------|-------------|--
      |                            |         
      |   eth0:0 - 192.168.10.53   | 
      |                            |
      |   primaarne                |   sekundaarne
      |   www-1                    |   www-2
     _|_  eth0 - 192.168.10.51    _|_  eth0 - 192.168.10.52
    |   |                        |   |       
    |___|                        |___|       
      |                            |
      |____________________________|

          heartbeat andmevahetus             
 
  eth1 - 192.168.11.51          eth1 - 192.168.11.52

kus

  • eth0 võrguseadmeid kasutatakse teenusega seotud anmdmevahetuseks
  • eth1 võrguseadmeid kasutatakse klustri komponentide nö elusolekuga seotud anmdmevahetuseks
  • www-1 on üks veebiserver, ip aadressiga 192.168.10.51
  • www-2 on üks veebiserver, ip aadressiga 192.168.10.52
  • veebikoha teenuse ip aadress on 192.168.10.53

Klustri töö tulemusena on

  • igal ajahetkel teenindab kasutajaid ainult üks veebiserveri, kas www-1 või www-2
  • mõlema veebiserveri korrasolekul teenindab kasutajaid www-1
  • kui www-1 ei tööta, siis teenindab kasutajaid www-2

Korrasolek ja mitte töötamine käivad antud juhul operatsioonisüsteemi kohta, mitte kasutajale pakutava teenuse enda kohta, see on tegelikult üks R1 lahenduse oluline puudus.

Tarkvara paigaldamine

Debian v. 5.0 (Lenny) sisaldab paketihalduses Heartbeat versiooni 2.1.3, paigaldamiseks tuleb öelda

 # apt-get install heartbeat

Kuigi see tarkvara versioon on iseenesest CRM-võimeline, selgitatakse järgnevates alapunktides Heartbeati kasutamist nn legacy või R1 režiimis.

Tulemusena moodustatakse seas sellised failid

  • seadistufailide ja skriptide kataloog - /etc/heartbeat -> ha.d

Klustri komponentide ettevalmistamine

Klustri moodustavatel arvutitel peab olema

  • ülaltoodud skeemile vastalt on seadistatud arvuti endi ip aadressid (ja mitte teenuse ip aadress)
  • arvutites on käivitatud kõik teenused peale veebiserveri
  • arvutid peavad käsu 'uname -n' vastuseks ütlema oma hostname'i esimese osa, www-1 või www-2
  • mõlemad arvutid peavad suutma lahendada teise arvuti hostname'i vastavaks ip aadressiks
  • kõik Heartbeat seadistusfailid peavad olema mõlemas arvutis samasuguse sisuga

Klustri komponentide seadistamine

Heartbeati tööd juhib kolm seadistusfaili

  • /etc/ha.d/ha.cf
  • /etc/ha.d/authkeys
  • /etc/ha.d/haresources -
ha.cf
 debugfile /var/log/ha-debug
 logfile /var/log/ha-log
 logfacility     local0
 keepalive 2
 deadtime 30
 warntime 10
 initdead 120
 udpport 694
 bcast   eth1
 auto_failback on
 node    www-1 www-2

kus

  • debugfile - salvestatakse üksikasjalisemalt info Heartbeat töö kohta
  • logfile - salvestatakse logi
  • logfacility - ?
  • keepalive - iga kahe sekundi järel saadavad osalised välja heartbeat pakette
  • deadtime -
  • wartime -
  • initdead -
  • udpport - millist udp porti kasutatakse heartbeat pakettide jaoks
  • bcast eth1 - kuidas heartbeat pakette saadetekse, bcast tähendab, et saadetakse broadcast pakette, antud juhul aadressile 192.168.
  • auto_failback
  • node - loetletakse klustri komponentide hostname'id
authkeys
 auth 3
 3 md5 salasona
haresources
 www-1      192.168.10.134

Klustri käivitamine

TODO

Klustri kasutamine

TODO

Kasulikud lisamaterjalid