Pacemaker-Corosync kasutamine operatsioonisüsteemiga Ubuntu v. 16.04
Sissjuhatus
Mõisted
TODO
Tööpõhimõte
Interaktiivne shell
root@dns-1:~# crm crm(live)# node status <nodes> <node id="1084754583" uname="dns-1"/> <node id="1084754585" uname="dns-3"/> <node id="1084754584" uname="dns-2"/> </nodes>
Ettevalmistused
Klustri õlad peavad
- teadma üksteist hostname järgi, mis on staatiliselt kirjas /etc/hosts failis
- ssh võtmega saama root kasutajana teiste osaliste poole pöörduda
/etc/hosts
.. 10.0.13.64 imre-pm-1.arendus.kit imre-pm-1 10.0.13.65 imre-pm-2.arendus.kit imre-pm-2 10.0.13.66 imre-pm-3.arendus.kit imre-pm-3
root kasutajaga sisselogimine
# ssh-keygen
kopeerida laiali faili
/root/.ssh/authorized_keys
ning logida risti-rästi sisse arvutitesse.
forwarding sisselülitada
# grep net.ipv4.ip_forward /etc/sysctl.conf net.ipv4.ip_forward=1
Tarkvara paigaldamine
Tarkvara paigaldamiseks sobib öelda, sõltuvustena paigaldatakse corosync, pacemaker jt
# apt-get install crmsh
TODO
Tundub, et Ubuntu v. 16.04 ei sisalda pyhton parallax'i
# apt-get install python-pip ssh-askpass rpm # pip install parallax
# ln -s /usr/bin/rpm /bin/rpm # ln -s /bin/systemctl /usr/bin/systemctl
OCF ...
Teenuste nimekirja esitamine
# crm ra list ocf
Klastri haldamine
Klastri moodustamiseks
# crm cluster init nodes=imre-pm-1,imre-pm-2,imre-pm-3
Ubuntu 16.04 juures tuleb failis /etc/corosync/corosync.conf muuta
< bindnetaddr: 127.0.0.1 > bindnetaddr: 10.0.13.0
node lisamine olemasolevasse klastrisse
TODO
töötava node eemaldamiseks
TODO
kadunud node eemaldamiseks
# crm node delete imre-pm-2
stonith väljalülitamine, tundub, et see on uue klastri puhul reeglina vajalik teha
.. crm(live)configure# property stonith-enabled=no
Corosync kihi oleku küsimine
# crm corosync status Printing ring status. Local node ID 1084754583 RING ID 0 id = 192.168.10.151 status = ring 0 active with no faults Quorum information ------------------ Date: Sun Oct 16 20:17:34 2016 Quorum provider: corosync_votequorum Nodes: 3 Node ID: 1084754583 Ring ID: 56 Quorate: Yes ...
kogu klastri oleku küsimine
# crm status Stack: corosync Current DC: dns-1 (version 1.1.15-e174ec8) - partition with quorum Last updated: Sun Oct 16 20:24:25 2016 Last change: Sun Oct 16 19:29:22 2016 by root via cibadmin on dns-1 3 nodes and 2 resources configured Online: [ dns-1 dns-2 dns-3 ] Full list of resources: IP-nginx (ocf::heartbeat:IPaddr2): Started dns-3 Nginx-rsc (ocf::heartbeat:apache): Started dns-3
Teenuste nimekiri
# crm resource list IP-nginx (ocf::heartbeat:IPaddr2): Started Nginx-rsc (ocf::heartbeat:apache): Started
Teenuse restartimine
# crm resource restart Nginx-rsc INFO: ordering Nginx-rsc to stop waiting for stop to finish . done INFO: ordering Nginx-rsc to start
Teenuse staatus
# crm resource status Nginx-rsc resource Nginx-rsc is running on: dns-1
Klastri node'i localhost aadressil töötava teenuse haldamine
Klastri node'i localhost aadressil töötava teenusete kasutamist illustreerib skeem
teenuse kliendid ..... internet .. nsd-vip-1 - 192.168.10.155, nsd-vip-2 - 192.168.10.156 .... | | | __|__ ens18: 192.168.10.151 __|__ ens18: 192.168.10.152 __|__ ens18: 192.168.10.153 | | | | | | | | | | | | |_____| |_____| |_____| dns-1.moraal dns-2.moraal dns-3.moraal lo: 127.0.0.1:53 lo: 127.0.0.1:53 lo: 127.0.0.1:53 unbound unbound unbound
kus
- üks teenuse protsess töötab igal node'il pidavalt
- kõigi node'ide andmed on samasugused
- kliendid kasutavad neid read-only režiimis
- paketifiltri abil suunatakse kliendi päringud localhost teenuse pordile
- klustrihaldus paigutab teenustele vastavaid VIP aadresse ringi
Selliste teenuste hulka võiks kuuluda nt
- Unbound rekursiivne nimeserver
- NSD pädev nimeserver
Kõigis arvutites on paigaldatud nsd pakett ning kävitatud, vastab päringutele 127.0.0.1:53/tcp/udp peal
# cat /etc/nsd/nsd.conf server: hide-version: yes ip-address: 127.0.0.1
Klastrihalduse tarkvara tegeleb ainult VIP aadresside ümberpaigutamisega, arvutisse jõudnud paketi suunab paketifilter localhost aadressil töötavale rakendusele
# sysctl -w net.ipv4.conf.all.route_localnet=1 # iptables -t nat -A PREROUTING -i ens18 -p udp -d 192.168.10.155 --dport 53 -j DNAT --to 127.0.0.1:53 # iptables -t nat -A PREROUTING -i ens18 -p tcp -d 192.168.10.155 --dport 53 -j DNAT --to 127.0.0.1:53 # iptables -t nat -A PREROUTING -i ens18 -p udp -d 192.168.10.156 --dport 53 -j DNAT --to 127.0.0.1:53 # iptables -t nat -A PREROUTING -i ens18 -p tcp -d 192.168.10.156 --dport 53 -j DNAT --to 127.0.0.1:53
kus
- 192.168.10.155 - nsd-1-vip
- 192.168.10.156 - nsd-2-vip
Klastrihalduses tuleb kirjeldada nsd-1-vip ja nsd-2-vip aadressid
primitive nsd-1-vip IPaddr2 \ params ip=192.168.10.155 nic=ens18 cidr_netmask=24 \ meta migration-threshold=2 \ op monitor interval=20 timeout=60 on-fail=restart
primitive nsd-2-vip IPaddr2 \ params ip=192.168.10.156 nic=ens18 cidr_netmask=24 \ meta migration-threshold=2 \ op monitor interval=20 timeout=60 on-fail=restart
Klastrihalduse abil kasutajate ümberlülitamine õlgade vahel
# crm resource migrate nsd-1-vip dns-3
Teenuse töötamise kontrollimiseks sobib öelda nt
node# ip addr show klient$ dig +tcp @192.168.10.155 localhost
LSB resource agent
Teenuste nimekirja esitamine
# crm ra list lsb
Nt vsftpd
- paigaldada kõigisse node'idesse vsftpd tarkvara ja automaatne operatsioonisüsteemi poolt käivitamine välja lülitada
# systemctl disable vsftpd
- kirjeldada crm teenus
# crm configure primitive ftp_service lsb:vsftpd
- teenuse seiskamine
# crm resource stop ftp_service
- teenuse kustutamine
# crm configure delete ftp_service
Kasulikud lisamaterjalid
Misc
Seadistatud ressursi omaduste küsimine
root@dns-1:~# crm crm(live)# configure crm(live)configure# show nsd-vip primitive nsd-vip IPaddr2 \ params ip=192.168.10.155 nic=ens18 cidr_netmask=24 \ meta migration-threshold=2 \ op monitor interval=20 timeout=60 on-fail=restart
Klastri viimine hooldusrežiimi, http://lzone.de/cheat-sheet/Linux-HA, öelda ühes node'is
# crm configure property maintenance-mode=true
ja normaalsesse olekusse tagasi
# crm configure property maintenance-mode=false
Sedasi on võimalik klastri seadisust ära sodida
# crm configure property uusjama2 # crm configure property uusjama3
# crm configure show cib-bootstrap-options property cib-bootstrap-options: \ have-watchdog=false \ dc-version=1.1.16-94ff4df \ cluster-infrastructure=corosync \ cluster-name=debian \ stonith-enabled=no \ maintenance-mode=false \ uusjama2 \ uusjama3
jama kustutamiseks sobib öelda, satutakse default editori sisse, tavalisel viisil siis kustutada jama.
# crm configure edit cib-bootstrap-options
Klastri node lisamine
# crm cluster add dns-1 INFO: Add a new node to an already existing cluster INFO: Nodes: dns-3, dns-2, dns-1 OK: Check cluster OK: Validate parameters OK: Install required packages OK: Copy configuration files OK: Configure firewall OK: Start cluster on new node