Kõrgkäideldavus UCARP abil
UCARP tarkvara abil on üsna lihtsalt võimalik korraldada kahe või enama arvuti nn aktiivset/passiivset klastrit kasutades CARP protokolli. Klastri igal arvutil on oma individuaalne IP aadress, ning lisaks on kogu klastri peale üks virtuaalne IP aadress, millelt on kättesaadav klastri pakutav teenus. Sõltuvalt sellest, kuidas on klastri osalised masteri osas kokku leppinud, on virtuaalne IP parasjagu masteriks oleva arvuti küljes ja teised on nö kõrval-seisvas (ingl. k. standby) asendis. UCARP on võrreldes keepalived või heartbeat tarkvaraga tagasihoidlikemate omadustega, kuid mõnel juhul võib just see ollagi eeliseks.
Sisukord
Paigaldamine ja seadistamine Debiani ja Ubuntu kasutajatele
Tarkvara paigaldamiseks tuleb öelda:
# apt-get install ucarp
Kogu seadistus käib /etc/network/intefaces faili kaudu. Järgnevalt lihtne näidiskonfiguratsioon kahest arvutist koosneva klastri jaoks, kus klastri ID (ucarp-vid) on 1.
Esimeses arvutis:
auto eth0 iface eth0 inet static address 192.168.10.51 gateway 192.168.10.1 netmask 255.255.255.0 ucarp-vid 1 ucarp-vip 192.168.10.50 ucarp-password test1234 ucarp-master yes iface eth0:ucarp inet static address 192.168.10.50 netmask 255.255.255.0
Teises arvutis:
auto eth0 iface eth0 inet static address 192.168.10.52 gateway 192.168.10.1 netmask 255.255.255.0 ucarp-vid 1 ucarp-vip 192.168.10.50 ucarp-password test1234 ucarp-master no iface eth0:ucarp inet static address 192.168.10.50 netmask 255.255.255.0
Lisainfot ja UCARP-i kõigi võimalike seadistusvõtmete kirjelduse leiab /usr/share/doc/ucarp/README.Debian failist. Kui ucarp-* seadistused on interfaces failis olemas, siis käivitatakse alglaadimisel kõik juba automaatselt.
Paigaldamine ja seadistamine RHEL, CentOS ja Fedora kasutajatele
Tarkvara paigaldamiseks tuleb öelda:
# yum install carp
Seadistamiseks tuleb kõigepealt tekitada /etc/sysconfig/carp/vip-001.conf fail, kus number on klastri unikaalne ID. See fail on kõigil klastri osalistel sama. Sisu kõige lihtsamal juhul selline:
PASSWORD="test1234" BIND_INTERFACE="eth0" VIP_INTERFACE="eth0:ucarp" OPTIONS="-P"
Teiseks on vaja luua konfiguratsioon eth0:ucarp võrguliidese jaoks, selleks kirjutame /etc/sysconfig/network-scripts/ifcfg-eth0:ucarp sisse:
DEVICE=eth0:ucarp BOOTPROTO=static ONBOOT=yes IPADDR=192.168.10.50 NETMASK=255.255.255.0
Ka see fail on kõigil klastri osalistel sama. Oletame siinkohal, et eth0 seadistused on juba olemas ja ifcfg-eth0 sisu ei esita.
Paigaldamine ja seadistamine FreeBSD kasutajatele
Kui nüüd aus olla siis ma pole kindel kas FreeBSD carp omab mingit kokkupuudet ucarpiga kuid tööpõhimõte on piisavalt sarnane st ta kasutab samuti ucarp protokolli.
Esiteks tuleb lisada faili
/boot/loader.conf
carp_load="YES"
Esimese node seadistus /etc/rc.conf
ifconfig="inet vhid 1 advskew 100 pass parool 193.40.0.13/26"
Teise node seadistus /etc/rc.conf
ifconfig="inet vhid 1 advskew 200 pass parool 193.40.0.13/26"
Kumb neist on master määratakse advskew muutujaga, masin millel on väärtus väiksem hoiab aktiivset IPd enda käes. Ifconfiguga näeb interfacel juures muutujat carp ja seda kas väärtus on master või backup.
ix0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=303<RXCSUM,TXCSUM,TSO4,TSO6> ether 82:e5:6b:6a:6d:35 nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL> media: Ethernet autoselect (10Gbase-Twinax <full-duplex,rxpause,txpause>) status: active carp: MASTER vhid 1 advbase 1 advskew 0
Keerukamad lahendused
Aliase kasutamine
ifconfig_alias0="inet vhid 1 advskew 0 pass parool 193.40.0.13/26"
Alias koos vlaniga, nagu näha ei pea enam vlani seadistust teistkorda kirjutama
ifconfig_41_alias0="inet vhid 1 advskew 0 pass parool 193.40.0.13/26"
Ja carp vlan seadmele ipv6 jagamine
ifconfig_vlan41_ipv6="inet6 2001:bb8:2001:1::13 prefixlen 64 vhid 130 advskew 0 pass parool"
Vlanide kasutamine
cloned_interfaces="vlan41" ifconfig_vlan41="inet vhid 1 advskew 200 pass parool 193.40.0.13/26 vlan 41 vlandev igb0"
Mõningad CARPi käsud
ifconfig vlan40 vhid 1 state <master/backup>
Lõpetuseks
Nagu eelnenust näha, on klastri osaliste seadistamisel ainus erinevus võrguliidese eth0 IP aadressis, mis on igal klastri osalisel oma. Virtuaalse liidese eth0:ucarp IP on alati ühine. Kindlasti tuleb tähele panna, et kõigil ühes klastris olevatel arvutitel oleks sama klastri ID ja parool (password). Kui samas võrgus on soov käivitada mitu klastrit, siis peab erinevatel klastritel olema erinev ID ja soovitavalt ka parool, muidu võib tekkida suur segadus.
Kui kõik on õigesti seadistatud ja klastri osalised käivitatud, siis peab ühes arvutis (sel hetkel master) lisaks tavalistele võrguseadmetele ilmuma seade eth0:ucarp
eth0:ucarp Link encap:Ethernet HWaddr 70:01:68:01:00:51 inet addr:192.168.10.48 Bcast:192.168.10.255 Mask:255.255.255.255 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Testimiseks võib selle arvuti välja lülitada, peale mida mõne sekundi möödumisel peab sama seade ja IP aadress ilmuma teises klastriosalises.