>>> Christine Caulfield <[email protected]> schrieb am 25.02.2021 um 08:22 in
Nachricht <[email protected]>:
> The most efficient way of getting corosync facts about nodes/quorum is
> to use the votequorum API.
>
> see /usr/include/corosync/votequorum.h
> and in the corosync sources tarball tests/testvotequorum1.c
>
> CHrissie
>
>
> On 25/02/2021 07:16, Ulrich Windl wrote:
>> Hi!
>>
>> I'm thinking about some simple cluster status display that is updated
> periodically.
>> I wonder how to get some "cluster facts" efficiently. Among those are:
>>
>> * Is corosync running, and how many nodes can be seen?
>> * Is Pacemaker running, how many nodes does it see, and does it have a
> quorum?
>> * Is the current node DC?
Hi!
It's probably not that efficient (and a bit paranoid), but basically I did this
(bash, enjoy the quotes):
readonly CQT=/usr/sbin/corosync-quorumtool
if [ -x $CQT ]; then
eval $($CQT 2>/dev/null | awk '
function assign(n, v) { print "readonly", n "=" "'\''" v "'\''" }
BEGIN { DID="000" }
NF < 2 { next }
$1 == "Nodes:" { assign("T_nodes", $2); next }
$1 == "Node" && NF == 3 && $2 == "ID:" { NID=$3; next }
$1 == "Ring" && NF == 3 && $2 == "ID:" {
if (split($3, F, /\//) == 2) DID=F[1]
next
}
$1 == "Quorate:" { assign("T_quorum", $2 == "Yes" ? "Q" : "_"); next }
$1 == "Total" && NF == 3 && $2 == "votes:" { assign("T_votes", $3); next }
$1 == "Membership" { nextfile }
END { assign("T_DC", NID == DID ? "D" : "_") }
')
>> * How many resources matching some regular expression are running?
I did this:
readonly CM=/usr/sbin/crm_mon
if [ -x $CM ]; then
eval $($CM -1 --node="$HOSTNAME" 2>/dev/null | awk '
function assign(n, v) { print "readonly", n "=" "'\''" v "'\''" }
BEGIN { P="_"; NV=0 }
NF < 5 { next }
NF > 5 && $0 ~ /partition with quorum/ { P="P"; next }
$1 == "*" && NF == 5 && $4 == "Started" && $3 ~ /VirtualDomain):/ {
++NV; next
}
END { assign("Pstatus", P NV) }
')
When all glued together, I get a very cryptic status string like "h16:T[3QD]P7"
fitting into the front panel LCD display of some popular server manufacturer ;-)
Regards,
Ulrich
>>
>> Regards,
>> Ulrich
>>
>>
>>
>> _______________________________________________
>> Manage your subscription:
>> https://lists.clusterlabs.org/mailman/listinfo/users
>>
>> ClusterLabs home: https://www.clusterlabs.org/
>>
>
> _______________________________________________
> Manage your subscription:
> https://lists.clusterlabs.org/mailman/listinfo/users
>
> ClusterLabs home: https://www.clusterlabs.org/
_______________________________________________
Manage your subscription:
https://lists.clusterlabs.org/mailman/listinfo/users
ClusterLabs home: https://www.clusterlabs.org/