Pacemaker klastr se dvema linkami
Jan Kasprzak
kas na fi.muni.cz
Úterý Srpen 4 17:27:39 CEST 2020
Dobry den,
mam tady historickou instalaci klastru s heartbeatem - za ta leta funguje
a vim co od ni cekat, no ale HB uz se nevyviji, tak delam pokusy
s pacemakerem a corosyncem, momentalne na CentOSu 8.
Chtel bych mit dvouuzlovy klastr nezavisly na vypadku switche mezi temi
uzly. V HB jsem to resil tak, ze uzly byly propojene vice nezavislymi
linkami, pripadne jednou linkou naprimo krizenym kabelem. Snazim se toto
nasimulovat v pcs - vypada to nejak takto:
===================================
# pcs cluster corosync
totem {
version: 2
cluster_name: yklastr
transport: knet
crypto_cipher: aes256
crypto_hash: sha256
}
nodelist {
node {
name: pcs1.yenya.net
nodeid: 1
ring1_addr: 10.0.0.147
ring2_addr: 172.26.1.147
}
node {
name: pcs2.yenya.net
nodeid: 2
ring1_addr: 10.0.0.208
ring2_addr: 172.26.1.208
}
}
quorum {
provider: corosync_votequorum
two_node: 1
}
logging {
to_logfile: yes
logfile: /var/log/cluster/corosync.log
to_syslog: yes
timestamp: on
}
===================================
Klastr je zda se spokojeny:
===================================
# pcs cluster status
Cluster Status:
Cluster Summary:
* Stack: corosync
* Current DC: pcs1.yenya.net (version 2.0.3-5.el8_2.1-4b1f869f0f) - partition with quorum
* Last updated: Tue Aug 4 17:05:51 2020
* Last change: Tue Aug 4 16:00:56 2020 by hacluster via crmd on pcs1.yenya.net
* 2 nodes configured
* 0 resource instances configured
Node List:
* Online: [ pcs1.yenya.net pcs2.yenya.net ]
PCSD Status:
pcs1.yenya.net: Online
pcs2.yenya.net: Online
===================================
A ted bych si chtel nasimulovat vypadek jedne linky.
Pokus 1: odriznu sitovy provoz jedne linky pres iptables:
pcs2# iptables -I INPUT -i eth1 -j DROP
pcs2# iptables -I OUTPUT -o eth1 -j DROP
Tohle se projevi tak, ze "pcs cluster status" si porad mysli
ze je vse v poradku, akorat ve /var/log/cluster/corosync.log pribudou
radky o vypadku jedne z linek, a "best link" je ta druha.
Toto je v zasade to co chci, nicmene bylo by pekne, aby v nejakem
prikazu bylo videt, ze neni vsechno uplne v poradku.
DOTAZ 1: ve kterem prikazu by byl videt vypadek jedne z linek?
Pokus 2: misto zariznuti provozu pres iptables shodim cely interface:
pcs2# ifdown eth1
Tohle se projevi tak, ze pcs1 nejprve zaznamena vypadek linky
a "best link" je ta druha. V tuto chvili zacne corosync na pcs2
zrat temer 100 % casu, "pcs status" na pcs1 pise ze pcs2 je offline,
"pcs status" na pcs2 trva strasne dlouho a pak napise, ze oba uzly jsou OK.
corosync ma zreme real-time prioritu, takze odezva na uzlu pcs2 je pomala.
V corosync.log na pcs1 se po chvili objevi "host 2 has no active links".
V tcpdumpu na zivem interface je videt jen UDP komunikace pcs1->pcs2
(na obou strojich).
DOTAZ 2: proc v tomto pripade corosync nefunguje normalne po zbyvajici lince?
Diky,
-Y.
--
| Jan "Yenya" Kasprzak <kas at {fi.muni.cz - work | yenya.net - private}> |
| http://www.fi.muni.cz/~kas/ GPG: 4096R/A45477D5 |
IORING_OP_NOP ... the benefits of doing nothing asynchronously are minimal,
but sometimes a placeholder is useful. --Jonathan Corbet at LWN
Další informace o konferenci Linux