Bug 1158805

Summary: Add support for qdevice/qnetd provided by corosync
Product: Red Hat Enterprise Linux 7 Reporter: Tomas Jelinek <tojeline>
Component: pcsAssignee: Tomas Jelinek <tojeline>
Status: CLOSED ERRATA QA Contact: cluster-qe <cluster-qe>
Severity: medium Docs Contact: Steven J. Levine <slevine>
Priority: high    
Version: 7.1CC: cfeist, cluster-maint, idevat, jpokorny, mlisik, mnavrati, rbednar, rsteiger, tlavigne, tojeline
Target Milestone: rcKeywords: FutureFeature, TechPreview
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: pcs-0.9.152-10.el7 Doc Type: Enhancement
Doc Text:
Support for quorum devices in a Pacemaker cluster Red Hat Enterprise Linux 7.4 provides full support for quorum devices, previously available as a Technology Preview. This feature provides the ability to configure a separate quorum device (QDevice) which acts as a third-party arbitration device for the cluster. Its primary use is to allow a cluster to sustain more node failures than standard quorum rules allow. A quorum device is recommended for clusters with an even number of nodes and highly recommended for two-node clusters. For information on configuring a quorum device, see https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/High_Availability_Add-On_Reference/.
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-11-03 20:53:29 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:
Bug Depends On: 614122    
Bug Blocks: 1296673, 1313485, 1376485, 1376495    
Attachments:
Description Flags
proposed fix 1
none
proposed fix 2
none
proposed fix 3
none
proposed fix 4
none
proposed fix 5
none
proposed fix 6
none
proposed fix 7
none
proposed fix 8
none
proposed fix 9
none
proposed fix 10
none
proposed fix 11
none
proposed fix 12
none
proposed fix 13
none
proposed fix 14
none
proposed fix 15 none

Description Tomas Jelinek 2014-10-30 09:41:37 UTC
Add support for qdevice/qnetd provided by corosync.

Comment 8 Tomas Jelinek 2016-04-15 14:10:14 UTC
Created attachment 1147667 [details]
proposed fix 2

automatically set two_node when user sets auto_tie_breaker

upstream patch:
https://github.com/feist/pcs/commit/b8a4beb9ddad151f900ddfea93e7620b7fcf2da2

Comment 9 Tomas Jelinek 2016-04-15 15:04:31 UTC
Created attachment 1147685 [details]
proposed fix 3

Add command for displaying quorum configuration, upstream patches:
https://github.com/feist/pcs/commit/f33e1a01069b7974f6fca76129a9003a7c05dc77
https://github.com/feist/pcs/commit/1af7a3ab477136c6a90214d2bcd69979e3b84686

Comment 13 Tomas Jelinek 2016-05-20 14:39:34 UTC
Created attachment 1159974 [details]
proposed fix 7

check that corosync is stopped when configuring quorum, allow to skip offline nodes when synchronizing corosync configuration in quorum commands; upstream patches:
https://github.com/feist/pcs/commit/22c6443636f07bc8845261620c268062cfc82845
https://github.com/feist/pcs/commit/869f3121ce7017e11e72a90f63e39147388bc060
https://github.com/feist/pcs/commit/816fc8d405ecc9249f5f1a5974f030091e9e28ae

Comment 16 Tomas Jelinek 2016-06-29 13:04:20 UTC
Created attachment 1173889 [details]
proposed fix 10

full qdevice support in cli, upstream patches:
https://github.com/ClusterLabs/pcs/commit/992090ff1ee39002df375ffd4bd91e5f586399b3
https://github.com/ClusterLabs/pcs/commit/6188e98c17839f0fef8ec53f64b36d4721fb9dae
https://github.com/ClusterLabs/pcs/commit/ae9fc132db04777974b180efbef0e779c46a689f
https://github.com/ClusterLabs/pcs/commit/2d16bbbe1bfb25cb89d6a2a11a6494222b8ff1ad
https://github.com/ClusterLabs/pcs/commit/c19cbdc0cef46f6724adfe33db355c8b265a49e6
https://github.com/ClusterLabs/pcs/commit/d3671294a211d5f4611d49da0b976497ae8bf266
https://github.com/ClusterLabs/pcs/commit/0bb9d53b7e972fce0c94ed9106daed8ae372b548
https://github.com/ClusterLabs/pcs/commit/152f76eb2e59c108a25aba35969bca69debd80df
https://github.com/ClusterLabs/pcs/commit/f44f1c2c324e432b9cd217c3678a05d570a6aee6
https://github.com/ClusterLabs/pcs/commit/60524ed0f2b94fe4ab0c08d8a2f464b9b3598096
https://github.com/ClusterLabs/pcs/commit/3418ad8168abecab2fb6b4f2a614bec2de85a25d
https://github.com/ClusterLabs/pcs/commit/53e72d6980a9f3f69b052f7c196d463460a27e87
https://github.com/ClusterLabs/pcs/commit/f55854b1bdf7e4984dba0b659ee985325d3c0cfa
https://github.com/ClusterLabs/pcs/commit/bb5763a4c9a31f5fcd33cd2b96257a9aba0c32c8
https://github.com/ClusterLabs/pcs/commit/ad3114930258ee9b29211f10aa5184e4aa69e1bb
https://github.com/ClusterLabs/pcs/commit/a3af280303e6918b0ce664c4691ff11365c3b33e
https://github.com/ClusterLabs/pcs/commit/2ac9f689dec06923b4f6e2fbf8cca65f7b1d2299
https://github.com/ClusterLabs/pcs/commit/5673a2d9bee5dfbd2f2e6c3faff5262b40aadb77
https://github.com/ClusterLabs/pcs/commit/e1019d761e33afddce5931f81457551a7a5d7713
https://github.com/ClusterLabs/pcs/commit/bf531dea9af0fe48c3aee84139d2434a5be51b7a
https://github.com/ClusterLabs/pcs/commit/d226c4398d2e25e1883813902ff49ed4fd30758c
https://github.com/ClusterLabs/pcs/commit/77be353fe5199a1829987865e7bded13f2974979

Comment 17 Tomas Jelinek 2016-06-29 13:06:04 UTC
Usage and test:

> requirements:
- corosync and corosync-qdevice installed on cluster nodes
- corosync-qnetd installed on a quorum device host


> First we need to setup the quorum device host:
[root@rh72-node3:~]# pcs qdevice setup model net --enable --start
Quorum device 'net' initialized
quorum device enabled
Starting quorum device...
quorum device started

> We can see qnetd is running and there are no clients connected to it:
[root@rh72-node3:~]# pcs qdevice status net --full
QNetd address:                  *:5403
TLS:                            Supported (client certificate required)
Connected clients:              0
Connected clusters:             0
Maximum send/receive size:      32768/32768 bytes

> Pcs provides standard set of commands for managing qnetd service:
pcs qdevice start|stop|enable|disable|kill net



> Let's add our new quorum device to a cluster.
> We can see the cluster is not using a quorum device yet:
[root@rh72-node1:~]# pcs quorum config
Options:

[root@rh72-node1:~]# pcs quorum status
Quorum information
------------------
Date:             Wed Jun 29 13:15:36 2016
Quorum provider:  corosync_votequorum
Nodes:            2
Node ID:          1
Ring ID:          1/8272
Quorate:          Yes

Votequorum information
----------------------
Expected votes:   2
Highest expected: 2
Total votes:      2
Quorum:           1  
Flags:            2Node Quorate 

Membership information
----------------------
    Nodeid      Votes    Qdevice Name
         1          1         NR rh72-node1 (local)
         2          1         NR rh72-node2

> Let's add our quorum device then:
[root@rh72-node1:~]# pcs quorum device add model net host=rh72-node3 algorithm=lms
Setting up qdevice certificates on nodes...
rh72-node2: Succeeded
rh72-node1: Succeeded
Enabling corosync-qdevice...
rh72-node1: corosync-qdevice enabled
rh72-node2: corosync-qdevice enabled
Sending updated corosync.conf to nodes...
rh72-node1: Succeeded
rh72-node2: Succeeded
Corosync configuration reloaded
Starting corosync-qdevice...
rh72-node1: corosync-qdevice started
rh72-node2: corosync-qdevice started

> Check it from the cluster side:
[root@rh72-node1:~]# pcs quorum config
Options:
Device:
  Model: net
    algorithm: lms
    host: rh72-node3

[root@rh72-node1:~]# pcs quorum status
Quorum information
------------------
Date:             Wed Jun 29 13:17:02 2016
Quorum provider:  corosync_votequorum
Nodes:            2
Node ID:          1
Ring ID:          1/8272
Quorate:          Yes

Votequorum information
----------------------
Expected votes:   3
Highest expected: 3
Total votes:      3
Quorum:           2  
Flags:            Quorate Qdevice 

Membership information
----------------------
    Nodeid      Votes    Qdevice Name
         1          1    A,V,NMW rh72-node1 (local)
         2          1    A,V,NMW rh72-node2
         0          1            Qdevice

[root@rh72-node1:~]# pcs quorum device status
Qdevice information
-------------------
Model:                  Net
Node ID:                1
Configured node list:
    0   Node ID = 1
    1   Node ID = 2
Membership node list:   1, 2

Qdevice-net information
----------------------
Cluster name:           rhel72
QNetd host:             rh72-node3:5403
Algorithm:              LMS
Tie-breaker:            Node with lowest node ID
State:                  Connected

> Check it from the quorum device side:
[root@rh72-node3:~]# pcs qdevice status net --full
QNetd address:                  *:5403
TLS:                            Supported (client certificate required)
Connected clients:              2
Connected clusters:             1
Maximum send/receive size:      32768/32768 bytes
Cluster "rhel72":
    Algorithm:          LMS
    Tie-breaker:        Node with lowest node ID
    Node ID 2:
        Client address:         ::ffff:192.168.122.122:50028
        HB interval:            8000ms
        Configured node list:   1, 2
        Ring ID:                1.2050
        Membership node list:   1, 2
        TLS active:             Yes (client certificate verified)
        Vote:                   ACK (ACK)
    Node ID 1:
        Client address:         ::ffff:192.168.122.121:48786
        HB interval:            8000ms
        Configured node list:   1, 2
        Ring ID:                1.2050
        Membership node list:   1, 2
        TLS active:             Yes (client certificate verified)
        Vote:                   ACK (ACK)



> It is possible to change settings:
[root@rh72-node1:~]# pcs quorum device update model algorithm=ffsplit
Sending updated corosync.conf to nodes...
rh72-node1: Succeeded
rh72-node2: Succeeded
Corosync configuration reloaded
Reloading qdevice configuration on nodes...
rh72-node1: corosync-qdevice stopped
rh72-node2: corosync-qdevice stopped
rh72-node1: corosync-qdevice started
rh72-node2: corosync-qdevice started

[root@rh72-node1:~]# pcs quorum device status --full
Qdevice information
-------------------
Model:                  Net
Node ID:                1
HB interval:            10000ms
Sync HB interval:       30000ms
Configured node list:
    0   Node ID = 1
    1   Node ID = 2
Ring ID:                1.2050
Membership node list:   1, 2
Quorate:                Yes
Quorum node list:
    0   Node ID = 1, State = member
    1   Node ID = 2, State = member
Expected votes:         3
Last poll call:         2016-06-29T13:22:15 (cast vote)

Qdevice-net information
----------------------
Cluster name:           rhel72
QNetd host:             rh72-node3:5403
Connect timeout:        8000ms
HB interval:            8000ms
VQ vote timer interval: 5000ms
TLS:                    Supported
Algorithm:              Fifty-Fifty split
Tie-breaker:            Node with lowest node ID
Poll timer running:     Yes (cast vote)
State:                  Connected
TLS active:             Yes (client certificate sent)
Connected since:        2016-06-29T13:20:30
Echo reply received:    2016-06-29T13:22:14



> When we do not want to use a quorum device any more:
[root@rh72-node1:~]# pcs quorum device remove
Sending updated corosync.conf to nodes...
rh72-node1: Succeeded
rh72-node2: Succeeded
Corosync configuration reloaded
Disabling corosync-qdevice...
rh72-node1: corosync-qdevice disabled
rh72-node2: corosync-qdevice disabled
Stopping corosync-qdevice...
rh72-node1: corosync-qdevice stopped
rh72-node2: corosync-qdevice stopped
Removing qdevice certificates from nodes...
rh72-node1: Succeeded
rh72-node2: Succeeded

[root@rh72-node1:~]# pcs quorum device status
Error: Unable to get quorum status: corosync-qdevice-tool: Can't connect to QDevice socket (is QDevice running?): No such file or directory

[root@rh72-node1:~]# pcs quorum status
Quorum information
------------------
Date:             Wed Jun 29 13:23:03 2016
Quorum provider:  corosync_votequorum
Nodes:            2
Node ID:          1
Ring ID:          1/8272
Quorate:          Yes

Votequorum information
----------------------
Expected votes:   2
Highest expected: 2
Total votes:      2
Quorum:           1  
Flags:            2Node Quorate 

Membership information
----------------------
    Nodeid      Votes    Qdevice Name
         1          1         NR rh72-node1 (local)
         2          1         NR rh72-node2

[root@rh72-node1:~]# pcs quorum config
Options:

[root@rh72-node3:~]# pcs qdevice status net --full
QNetd address:                  *:5403
TLS:                            Supported (client certificate required)
Connected clients:              0
Connected clusters:             0
Maximum send/receive size:      32768/32768 bytes



> We can destroy the quorum device:
[root@rh72-node3:~]# pcs qdevice destroy net
Stopping quorum device...
quorum device stopped
quorum device disabled
Quorum device 'net' configuration files removed

[root@rh72-node3:~]# pcs qdevice status net --full
Error: Unable to get status of quorum device 'net': corosync-qnetd-tool: Can't connect to qnetd socket (is QNetd running?): No such file or directory



> Apart from qdevice it is also possible to configure quorum options. This is only possible when corosync is not running:
[root@rh72-node1:~]# pcs quorum config
Options:

[root@rh72-node1:~]# pcs quorum update wait_for_all=1
Checking corosync is not running on nodes...
Error: rh72-node1: corosync is running
Error: rh72-node2: corosync is running

[root@rh72-node1:~]# pcs cluster stop --all
rh72-node2: Stopping Cluster (pacemaker)...
rh72-node1: Stopping Cluster (pacemaker)...
rh72-node1: Stopping Cluster (corosync)...
rh72-node2: Stopping Cluster (corosync)...

[root@rh72-node1:~]# pcs quorum update wait_for_all=1
Checking corosync is not running on nodes...
rh72-node2: corosync is not running
rh72-node1: corosync is not running
Sending updated corosync.conf to nodes...
rh72-node1: Succeeded
rh72-node2: Succeeded

[root@rh72-node1:~]# pcs quorum config
Options:
  wait_for_all: 1

Comment 18 Tomas Jelinek 2016-06-29 13:08:48 UTC
qdevice is not supported by web UI yet

Comment 19 Tomas Jelinek 2016-06-30 09:30:34 UTC
Created attachment 1174429 [details]
proposed fix 11

built-in help and documentation fixes

Comment 20 Tomas Jelinek 2016-07-01 08:47:01 UTC
additional patch - fixed tests
https://github.com/ClusterLabs/pcs/commit/c178935290a5387fdfbd54330769ee159d8916b6

Comment 22 Jan Pokorný [poki] 2016-07-11 12:20:53 UTC
Any reason why "pcs quorum" is not interpreted as "pcs quorum config"
(e.g., for consistency with "pcs alert")?

Comment 23 Jan Pokorný [poki] 2016-07-11 12:27:27 UTC
On cluster-less machine:

# pcs quorum device add model net host=rh72-node3
> Error: Unable to read /etc/corosync/corosync.conf: No such file or
> directory

would expect also something like:

> You need to set cluster up first.

Comment 24 Jan Pokorný [poki] 2016-07-11 12:47:15 UTC
On a machine with (dummy) corosync.conf but not with a running cluster:

# pcs quorum device add model net host=localhost algorithm=lm
> Setting up qdevice certificates on nodes...
> Error: localhost: Unable to read certificate:
>   No such file or directory - /etc/corosync/qnetd/nssdb/qnetd-cacert.crt

with --debug:

Running: /usr/sbin/corosync -v

> Finished running: /usr/sbin/corosync -v
> Return value: 0
> --Debug Output Start--
> Corosync Cluster Engine, version '2.4.0'
> Copyright (c) 2006-2009 Red Hat, Inc.
> 
> --Debug Output End--
> 
> Running: /usr/bin/ruby -I/usr/lib/pcsd/ /usr/lib/pcsd/pcsd-cli.rb read_tokens
> --Debug Input Start--
> {}
> --Debug Input End--
> Return Value: 0
> --Debug Output Start--
> {
>   "status": "ok",
>   "data": {
>     "localhost": "413253e2-2cf3-4c0f-a631-5228ca2dbf22"
>   },
>   "log": [
>     "I, [2016-07-11T12:41:55.120966 #17607]  INFO -- : PCSD Debugging enabled\n",
>     "D, [2016-07-11T12:41:55.121088 #17607] DEBUG -- : Did not detect RHEL 6\n",
>     "I, [2016-07-11T12:41:55.121127 #17607]  INFO -- : Running: /usr/sbin/corosync-cmapctl totem.cluster_n
> ame\n",
>     "I, [2016-07-11T12:41:55.121155 #17607]  INFO -- : CIB USER: hacluster, groups: \n",
>     "D, [2016-07-11T12:41:55.126300 #17607] DEBUG -- : []\n",
>     "D, [2016-07-11T12:41:55.126382 #17607] DEBUG -- : [\"Failed to initialize the cmap API. Error CS_ERR_
> LIBRARY\\n\"]\n",
>     "D, [2016-07-11T12:41:55.126449 #17607] DEBUG -- : Duration: 0.00510652s\n",
>     "I, [2016-07-11T12:41:55.126526 #17607]  INFO -- : Return Value: 1\n"
>   ]
> }
> --Debug Output End--
> 
> Setting up qdevice certificates on nodes...
> Sending HTTP Request to: https://localhost:2224/remote/qdevice_net_get_ca_certificate
> 
> Finished calling: https://localhost:2224/remote/qdevice_net_get_ca_certificate
> Response Code: 400
> --Debug Response Start--
> Unable to read certificate: No such file or directory - /etc/corosync/qnetd/nssdb/qnetd-cacert.crt
> --Debug Response End--
> 
> Error: localhost: Unable to read certificate: No such file or directory - /etc/corosync/qnetd/nssdb/qnetd-
> cacert.crt

Comment 25 Jan Pokorný [poki] 2016-07-11 13:20:39 UTC
[comment 25] got clarified, corosync not running will only cause
"read_tokens" to be verbose about that, but that's irrelevant
(contrary to my expectations) to the final message, which is actually
the root cause (even a bit cryptic to the novice user).

Comment 26 Tomas Jelinek 2016-07-11 13:26:58 UTC
Created attachment 1178400 [details]
proposed fix 12

Added "pcs status quorum" and "pcs status qdevice" commands. Command "pcs quorum" now displays quorum configuration instead of pcs help.

Comment 27 Tomas Jelinek 2016-07-11 13:35:05 UTC
(In reply to Jan Pokorný from comment #24)
> On a machine with (dummy) corosync.conf but not with a running cluster:
> 
> # pcs quorum device add model net host=localhost algorithm=lm
> > Setting up qdevice certificates on nodes...
> > Error: localhost: Unable to read certificate:
> >   No such file or directory - /etc/corosync/qnetd/nssdb/qnetd-cacert.crt
> 

This is expected. Quorum device needs to be created first by "pcs qdevice setup" command. This is mentioned in pcs help.

If only modification of a standalone corosync.conf is desired, use --corosync_conf=<path to corosync.conf> option.

Comment 28 Jan Pokorný [poki] 2016-07-11 14:53:13 UTC
# pcs quorum -h | sed -n '/device add/{:s;s/    //;p;n;/^$/d;bs}'
> device add [<generic options>] model <device model> [<model options>]
>     Add a quorum device to the cluster.  Quorum device needs to be created
>     first by "pcs qdevice setup" command.  It is not possible to use more
>     than one quorum device in a cluster simultaneously.  Generic options,
>     model and model options are all documented in corosync's
>     corosync-qdevice(8) man page.

I don't follow why it stresses "corosync" out (already apparent from the
man page title).  It may also be a bit misleading as for RHEL 7, the
man page is in corosync-qdevice package.

Comment 30 Steven J. Levine 2016-08-17 15:13:19 UTC
For the release note description of this feature (in the Doc Text field) I substituted the introductory paragraph from the documentation for this feature (which has already been through review in that context).  I think this introduces the features and its use.

Comment 33 Tomas Jelinek 2016-09-09 12:39:46 UTC
Created attachment 1199455 [details]
proposed fix 13

Comment 34 Tomas Jelinek 2016-09-09 12:40:26 UTC
Created attachment 1199456 [details]
proposed fix 14

Comment 36 Tomas Jelinek 2016-09-13 07:42:13 UTC
*** Bug 1368106 has been marked as a duplicate of this bug. ***

Comment 38 Tomas Jelinek 2016-09-16 12:23:22 UTC
Created attachment 1201629 [details]
proposed fix 15

Fixed following issues:

1) pcs exits with an error when qdevice is already stopped:

[root@virt-293 ~]# pcs qdevice setup model net
Quorum device 'net' initialized
[root@virt-293 ~]# pcs qdevice destroy net
Error: Unable to get status of quorum device 'net': corosync-qnetd-tool: Can't connect to qnetd socket (is QNetd running?): No such file or directory

[root@virt-293 ~]# pcs qdevice stop net
Error: Unable to get status of quorum device 'net': corosync-qnetd-tool: Can't connect to qnetd socket (is QNetd running?): No such file or directory
[root@virt-293 ~]# echo $?
1



2) corosync-qdevice gets restarted in "pcs quorum device remove":

[root@virt-294 ~]# pcs quorum device remove
Sending updated corosync.conf to nodes...
virt-294: Succeeded
virt-296: Succeeded
virt-295: Succeeded
Corosync configuration reloaded
Disabling corosync-qdevice...
virt-294: corosync-qdevice disabled
virt-296: corosync-qdevice disabled
virt-295: corosync-qdevice disabled
Stopping corosync-qdevice...
virt-295: corosync-qdevice stopped
virt-294: corosync-qdevice stopped
virt-296: corosync-qdevice stopped
Removing qdevice certificates from nodes...
virt-296: Succeeded
virt-294: Succeeded
virt-295: Succeeded
[root@virt-294 ~]# systemctl status corosync-qdevice
● corosync-qdevice.service - Corosync Qdevice daemon
   Loaded: loaded (/usr/lib/systemd/system/corosync-qdevice.service; disabled; vendor preset: disabled)
   Active: inactive (dead)

Sep 16 13:13:52 virt-294.cluster-qe.lab.eng.brq.redhat.com systemd[1]: Stopping Corosync Qdevice daemon...
Sep 16 13:13:52 virt-294.cluster-qe.lab.eng.brq.redhat.com corosync-qdevice[25963]: Signaling Corosync Qdevice daemon (corosync-qdevice) to terminate: [  OK  ]
Sep 16 13:13:52 virt-294.cluster-qe.lab.eng.brq.redhat.com corosync-qdevice[25963]: Waiting for corosync-qdevice services to unload:[  OK  ]
Sep 16 13:13:52 virt-294.cluster-qe.lab.eng.brq.redhat.com systemd[1]: Stopped Corosync Qdevice daemon.
Sep 16 13:13:53 virt-294.cluster-qe.lab.eng.brq.redhat.com systemd[1]: Starting Corosync Qdevice daemon...
Sep 16 13:13:53 virt-294.cluster-qe.lab.eng.brq.redhat.com corosync-qdevice[25995]: Starting Corosync Qdevice daemon (corosync-qdevice): [  OK  ]
Sep 16 13:13:53 virt-294.cluster-qe.lab.eng.brq.redhat.com systemd[1]: Started Corosync Qdevice daemon.
Sep 16 13:14:12 virt-294.cluster-qe.lab.eng.brq.redhat.com corosync-qdevice[26001]: 50:50 split algorithm works only if qdevice has exactly 1 vote. Node 1 has 0 votes!
Sep 16 13:14:12 virt-294.cluster-qe.lab.eng.brq.redhat.com corosync-qdevice[26001]: 50:50 split algorithm works only if qdevice has exactly 1 vote. Node 1 has 0 votes!
Sep 16 13:14:12 virt-294.cluster-qe.lab.eng.brq.redhat.com corosync-qdevice[26001]: 50:50 split algorithm works only if qdevice has exactly 1 vote. Node 1 has 0 votes!
[root@virt-294 ~]# systemctl is-active corosync-qdevice

Comment 39 Ivan Devat 2016-09-20 09:26:51 UTC
Before Fix:
[vm-rhel72-1 ~] $ rpm -q pcs
pcs-0.9.152-9.el7.x86_64

[vm-rhel72-1 ~] $ pcs qdevice setup model net
Quorum device 'net' initialized
[vm-rhel72-1 ~] $ pcs qdevice destroy net
Error: Unable to get status of quorum device 'net': corosync-qnetd-tool: Can't connect to qnetd socket (is QNetd running?): No such file or directory
[vm-rhel72-1 ~] $ echo $?
1
[vm-rhel72-1 ~] $ pcs qdevice stop net
Error: Unable to get status of quorum device 'net': corosync-qnetd-tool: Can't connect to qnetd socket (is QNetd running?): No such file or directory
[vm-rhel72-1 ~] $ echo $?
1


After Fix:
[vm-rhel72-1 ~] $ rpm -q pcs
pcs-0.9.152-10.el7.x86_64
[vm-rhel72-1 ~] $ pcs qdevice setup model net
Quorum device 'net' initialized
[vm-rhel72-1 ~] $ pcs qdevice stop net
Stopping quorum device...
quorum device stopped
[vm-rhel72-1 ~] $ pcs qdevice destroy net
Stopping quorum device...
quorum device stopped
quorum device disabled
Quorum device 'net' configuration files removed

Comment 42 Steven J. Levine 2016-09-30 15:00:57 UTC
Adding "QDevice" to the release note description since users might be searching on that particular term (event though that's not the term currently used in the doc).

Comment 44 errata-xmlrpc 2016-11-03 20:53:29 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

Comment 45 Steven J. Levine 2017-05-08 17:08:57 UTC
Updating doc text to indicate that this feature is being removed from Technology Preview for RHEL 7.4 and is now fully supported.

Comment 46 Steven J. Levine 2017-05-09 14:59:19 UTC
Explicitly noting in doc text that this feature was previously available as Technology Preview.