Pacemaker-Corosync kasutamine operatsioonisüsteemiga Debian v. 9 Stretch

Allikas: Imre kasutab arvutit
Mine navigeerimisribaleMine otsikasti

Sissjuhatus

TODO

Mõisted

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

Kasulikud lisamaterjalid