Bug 1327739

Summary: Need a way to set expected votes on a live system
Product: Red Hat Enterprise Linux 7 Reporter: Chris Feist <cfeist>
Component: pcsAssignee: Tomas Jelinek <tojeline>
Status: CLOSED ERRATA QA Contact: cluster-qe <cluster-qe>
Severity: medium Docs Contact: Milan Navratil <mnavrati>
Priority: unspecified    
Version: 7.3CC: ccaulfie, cfeist, cluster-maint, idevat, jliberma, mnavrati, omular, rsteiger, tojeline, vcojot
Target Milestone: rcKeywords: FutureFeature
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: pcs-0.9.152-3.el7 Doc Type: Release Note
Doc Text:
*pcs* now supports setting expected votes on a live cluster When nodes fail in a cluster, user sometimes needs to manually lower expected votes in order to recover the cluster. You can now use the "pcs quorum expected-votes" command to set expected votes on a live cluster.
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-11-03 20:58:24 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
proposed fix none

Description Chris Feist 2016-04-15 18:56:11 UTC
Description of problem:
Currently there isn't a way to set expected votes on a live cluster pcs.

For example: If we have a 3 node cluster and 2 nodes have failed, we should allow an administrator to manually go in and set the expected votes to 1 so we can do some recovery options in the cluster.

You can that fix now with 'corosync-quorumtool -e1', but we'd like a way to have pcs set this option.  Maybe something like 'pcs cluster expected-votes <n>'.  One thing to note about corosync is that as the other nodes join the cluster the expected votes will automatically go back to what it was before.  (Also, this should only affect the live cluster, not touch any configuration files).

Comment 2 Tomas Jelinek 2016-06-30 13:34:17 UTC
Created attachment 1174593 [details]
proposed fix

Test:

> set expected votes higher than original value
[root@rh72-node1:~]# pcs quorum status | grep Expected
Expected votes:   2
[root@rh72-node1:~]# pcs quorum expected-votes 5
[root@rh72-node1:~]# pcs quorum status | grep Expected
Expected votes:   5

> invalid expected votes value produces an error
[root@rh72-node1:~]# pcs quorum expected-votes -1
Error: '-1' is not a valid expected votes value, use positive integer
[root@rh72-node1:~/devel/pcs/pcs]# echo $?
1

> corosync does not allow to set expected votes below its limits...
[root@rh72-node1:~]# pcs quorum status | grep Nodes:
Nodes:            2
[root@rh72-node1:~]# pcs quorum expected-votes 1
[root@rh72-node1:~/devel/pcs/pcs]# echo $?
0
[root@rh72-node1:~]# pcs quorum status | grep Expected
Expected votes:   2

> ... unless some nodes are down
[root@rh72-node1:~]# pcs cluster stop rh72-node2
rh72-node2: Stopping Cluster (pacemaker)...
rh72-node2: Stopping Cluster (corosync)...
[root@rh72-node1:~]# pcs quorum status | grep Nodes:
Nodes:            1
[root@rh72-node1:~]# pcs quorum expected-votes 1
[root@rh72-node1:~]# pcs quorum status | grep Expected
Expected votes:   1

Comment 3 Ivan Devat 2016-07-01 11:37:09 UTC
Before fix:
There isn't a way to set expected votes on a live cluster pcs

After fix:
[vm-rhel72-1 ~] $ rpm -q pcs
pcs-0.9.152-3.el7.x86_64

> set expected votes higher than original value
[vm-rhel72-1 ~] $ pcs quorum status | grep Expected
Expected votes:   2
[vm-rhel72-1 ~] $ pcs quorum expected-votes 5
[vm-rhel72-1 ~] $ pcs quorum status | grep Expected
Expected votes:   5

> invalid expected votes value produces an error
[vm-rhel72-1 ~] $ pcs quorum expected-votes -1
Error: '-1' is not a valid expected votes value, use positive integer
[vm-rhel72-1 ~] $ echo $?
1

> corosync does not allow to set expected votes below its limits...
[vm-rhel72-1 ~] $ pcs quorum status | grep Nodes:
Nodes:            2
[vm-rhel72-1 ~] $ pcs quorum expected-votes 1
[vm-rhel72-1 ~] $ echo $?
0
[vm-rhel72-1 ~] $ pcs quorum status | grep Expected
Expected votes:   2

> ... unless some nodes are down
[vm-rhel72-1 ~] $ pcs cluster stop vm-rhel72-3
vm-rhel72-3: Stopping Cluster (pacemaker)...
vm-rhel72-3: Stopping Cluster (corosync)...
[vm-rhel72-1 ~] $ pcs quorum status | grep Nodes:
Nodes:            1
[vm-rhel72-1 ~] $ pcs quorum expected-votes 1
[vm-rhel72-1 ~] $ pcs quorum status | grep Expected
Expected votes:   1

Comment 7 errata-xmlrpc 2016-11-03 20:58:24 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHSA-2016-2596.html