Uploaded image for project: 'RHEL'
  1. RHEL
  2. RHEL-7746

[RFE] Allow PCS to configure all qdevice options (without --force)

    • pcs-0.11.6-6.el9
    • Low
    • FutureFeature
    • rhel-sst-high-availability
    • ssg_filesystems_storage_and_HA
    • 13
    • 19
    • 5
    • QE ack
    • False
    • Hide

      None

      Show
      None
    • Yes
    • None
    • Bug Fix
    • Hide
      .Configuring the `tls` and `keep_active_partition_tie_breaker` quorum device options without specifying `--force`

      Previously, when configuring a quorum device, a user could not configure the `tls` and `keep_active_partition_tie_breaker` options for a quorum device model `net` without specifying the `--force` option. With this update, configuring these options no longer requires you to specify `--force`.
      Show
      .Configuring the `tls` and `keep_active_partition_tie_breaker` quorum device options without specifying `--force` Previously, when configuring a quorum device, a user could not configure the `tls` and `keep_active_partition_tie_breaker` options for a quorum device model `net` without specifying the `--force` option. With this update, configuring these options no longer requires you to specify `--force`.
    • Done
    • None

      +++ This bug was initially created as a clone of Bug #2234665 +++

      1. Proposed title of this feature request

      Allow PCS to configure all qdevice options (without --force)

      2. Who is the customer behind the request?

      Account: Ceska Sporitelna, a.s. (account number #563183)
      TAM customer: yes
      CSM customer: no
      Strategic: yes

      3. What is the nature and description of the request?

      The customer wants to be able to configure all the qdevice related options (without --force) via PCS.

      4. Why does the customer need this? (List the business requirements here)

      No business reason.

      5. How would the customer like to achieve this? (List the functional requirements here)

      Enabling the option to set up all corosync-qdevice in the man page.

      "Some options described in man corosync-qdevice aren't configurable (without --force) via pcs/ha_cluster role.
      For example "tls" and "keep_active_partition_tie_breaker" in quorum.device.net section."

      This bz is for PCS, I will create another one for the ansible role.

      6. For each functional requirement listed, specify how Red Hat and the customer can test to confirm the requirement is successfully implemented.

      Running a pcs command.

      7. Is there already an existing RFE upstream or in Red Hat Bugzilla?

      No

      8. Does the customer have any specific timeline dependencies and which release would they like to target (i.e. RHEL8, RHEL9)?

      No timeline dependencies and no release specified... I'd assume RHEL8 and later

      9. Is the sales team involved in this request and do they have any additional input?

      No

      10. List any affected packages or components.

      pcs

      11. Would the customer be able to assist in testing this functionality if implemented?

      Yes

            [RHEL-7746] [RFE] Allow PCS to configure all qdevice options (without --force)

            Errata Tool added a comment -

            Since the problem described in this issue should be resolved in a recent advisory, it has been closed.

            For information on the advisory (Moderate: pcs security update), 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://access.redhat.com/errata/RHSA-2024:2113

            Errata Tool added a comment - Since the problem described in this issue should be resolved in a recent advisory, it has been closed. For information on the advisory (Moderate: pcs security update), 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://access.redhat.com/errata/RHSA-2024:2113

            rhn-support-gfialova : This bug fix was in the enhancements section of the tickets.yaml file for the 9.4 beta release notes.  I moved it to bug fix, as noted in a previous comment.

            Steven Levine added a comment - rhn-support-gfialova : This bug fix was in the enhancements section of the tickets.yaml file for the 9.4 beta release notes.  I moved it to bug fix, as noted in a previous comment.

            This bug fix has been added to the tickets.yaml file for the RHEL 9.4 Beta release notes.

            Gabriela Fialova added a comment - This bug fix has been added to the tickets.yaml file for the RHEL 9.4 Beta release notes.

            tojeline@redhat.com: For the release notes, do you think this update should be noted as a bug fix or a new feature?

            Steven Levine added a comment - tojeline@redhat.com : For the release notes, do you think this update should be noted as a bug fix or a new feature?

            BEFORE:

             

            [root@virt-482 ~]# rpm -q pcs
            pcs-0.11.6-3.el9.x86_64
            [root@virt-482 ~]# pcs quorum device add model net host=virt-481 algorithm=ffsplit tls=required keep_active_partition_tie_breaker=on
            Error: invalid quorum device model options: 'keep_active_partition_tie_breaker', 'tls', allowed options are: 'algorithm', 'connect_timeout', 'force_ip_version', 'host', 'port', 'tie_breaker', use --force to override
            Error: Errors have occurred, therefore pcs is unable to continue
            [root@virt-482 ~]# echo $?
            1
            

             

            > Not all net model options could be set before the fix

            AFTER:

             

            [root@virt-026 ~]# rpm -q pcs
            pcs-0.11.6-6.el9.x86_64

             

            Configuring qdevice with just algorithm option (as described in documentation) & check that the expected behavior persisted after the fix

            Install corosync-qdevice on each node of the cluster

            [root@virt-029 ~]# yum install corosync-qdevice -y
            {...}
            [root@virt-026 ~]# yum install corosync-qdevice -y
            {...}

            Install corosync-qnetd on the machine used as quorum device host

            [root@virt-025 ~]# yum install pcs corosync-qnetd -y
            {...}

            Start pcsd on the qdevice host

            [root@virt-025 ~]# systemctl enable pcsd --now
            Created symlink /etc/systemd/system/multi-user.target.wants/pcsd.service → /usr/lib/systemd/system/pcsd.service.

            Setup qdevice

            [root@virt-025 ~]# pcs qdevice setup model net --enable --start
            Quorum device 'net' initialized
            quorum device enabled
            Starting quorum device...
            quorum device started
            [root@virt-025 ~]# 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

            Authenticate qdevice machine from the cluster

            [root@virt-026 ~]# pcs host auth virt-025
            Username: hacluster
            Password: 
            virt-025: Authorized

            Add qdevice on cluster node

            [root@virt-026 ~]# pcs quorum device add model net host=virt-025 algorithm=ffsplit
            Setting up qdevice certificates on nodes...
            virt-026: Succeeded
            virt-029: Succeeded
            Enabling corosync-qdevice...
            virt-029: not enabling corosync-qdevice: corosync is not enabled
            virt-026: not enabling corosync-qdevice: corosync is not enabled
            Sending updated corosync.conf to nodes...
            virt-026: Succeeded
            virt-029: Succeeded
            virt-026: Corosync configuration reloaded
            Starting corosync-qdevice...
            virt-026: corosync-qdevice started
            virt-029: corosync-qdevice started
            [root@virt-026 ~]# echo $?
            0
            [root@virt-026 ~]# pcs quorum config
            Device:
              votes: 1
              Model: net
                algorithm: ffsplit
                host: virt-025
            [root@virt-026 ~]# pcs quorum status
            Quorum information
            ------------------
            Date:             Fri Dec  1 16:49:10 2023
            Quorum provider:  corosync_votequorum
            Nodes:            2
            Node ID:          1
            Ring ID:          1.9
            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 virt-026 (local)
                     2          1    A,V,NMW virt-029
                     0          1            Qdevice
            

             

            > OK

             

            Removing the qdevice

            [root@virt-026 ~]# pcs quorum device remove
            Disabling corosync-qdevice...
            virt-026: corosync-qdevice disabled
            virt-029: corosync-qdevice disabled
            Stopping corosync-qdevice...
            virt-026: corosync-qdevice stopped
            virt-029: corosync-qdevice stopped
            Removing qdevice certificates from nodes...
            virt-029: Succeeded
            virt-026: Succeeded
            Sending updated corosync.conf to nodes...
            virt-029: Succeeded
            virt-026: Succeeded
            virt-026: Corosync configuration reloaded
            [root@virt-026 ~]# echo $?
            0
            [root@virt-026 ~]# 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

            Destroying the qdevice

            [root@virt-025 ~]# pcs qdevice destroy net
            Stopping quorum device...
            quorum device stopped
            quorum device disabled
            Quorum device 'net' configuration files removed
            [root@virt-025 ~]# echo $?
            0
            [root@virt-025 ~]# pcs qdevice status net --full
            Error: Quorum device 'net' is not running

            > OK

            Configuring qdevice with options, that couldn't be configured before the fix (tls, keep_active_partition_tie_breaker)

             

            [root@virt-025 ~]# pcs qdevice setup model net --enable --start
            Quorum device 'net' initialized
            quorum device enabled
            Starting quorum device...
            quorum device started
            [root@virt-026 ~]# pcs quorum device add model net host=virt-025 algorithm=ffsplit tls=required keep_active_partition_tie_breaker=on
            Setting up qdevice certificates on nodes...
            virt-026: Succeeded
            virt-029: Succeeded
            Enabling corosync-qdevice...
            virt-029: not enabling corosync-qdevice: corosync is not enabled
            virt-026: not enabling corosync-qdevice: corosync is not enabled
            Sending updated corosync.conf to nodes...
            virt-026: Succeeded
            virt-029: Succeeded
            virt-026: Corosync configuration reloaded
            Starting corosync-qdevice...
            virt-026: corosync-qdevice started
            virt-029: corosync-qdevice started
            [root@virt-026 ~]# echo $?
            0
            [root@virt-026 ~]# pcs quorum config
            Device:
              votes: 1
              Model: net
                algorithm: ffsplit
                host: virt-025
                keep_active_partition_tie_breaker: on
                tls: required
            [root@virt-026 ~]# cat /etc/corosync/corosync.conf | grep quorum -A 13
            quorum {
                provider: corosync_votequorum
                device {
                    model: net
                    votes: 1
                    net {
                        algorithm: ffsplit
                        host: virt-025
                        keep_active_partition_tie_breaker: on
                        tls: required
                    }
                }
            }
            

             

            > OK: Desired config is in place

             

            [root@virt-026 ~]# pcs quorum status
            Quorum information
            ------------------
            Date:             Thu Dec  7 10:58:28 2023
            Quorum provider:  corosync_votequorum
            Nodes:            2
            Node ID:          1
            Ring ID:          1.16
            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 virt-026 (local)
                     2          1    A,V,NMW virt-029
                     0          1            Qdevice
            

             

            > OK

            Update qdevice with options, that couldn't be configured before the fix

             

            [root@virt-026 ~]# pcs quorum device update model tls=on keep_active_partition_tie_breaker=off
            Sending updated corosync.conf to nodes...
            virt-026: Succeeded
            virt-029: Succeeded
            virt-026: Corosync configuration reloaded
            Reloading qdevice configuration on nodes...
            virt-026: corosync-qdevice stopped
            virt-029: corosync-qdevice stopped
            virt-026: corosync-qdevice started
            virt-029: corosync-qdevice started
            [root@virt-026 ~]# echo $?
            0
            [root@virt-026 ~]# pcs quorum config
            Device:
              votes: 1
              Model: net
                algorithm: ffsplit
                host: virt-025
                keep_active_partition_tie_breaker: off
                tls: on
            [root@virt-026 ~]# cat /etc/corosync/corosync.conf | grep quorum -A 13
            quorum {
                provider: corosync_votequorum
                device {
                    model: net
                    votes: 1
                    net {
                        algorithm: ffsplit
                        host: virt-025
                        keep_active_partition_tie_breaker: off
                        tls: on
                    }
                }
            }
            

             

            > OK: Desired configuration is in place

             

            [root@virt-026 ~]# pcs quorum status
            Quorum information
            ------------------
            Date:             Thu Dec  7 17:20:27 2023
            Quorum provider:  corosync_votequorum
            Nodes:            2
            Node ID:          1
            Ring ID:          1.1f
            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 virt-026 (local)
                     2          1    A,V,NMW virt-029
                     0          1            Qdevice
            

             

            > OK

            Deleting 'tls' option from configuration

             

            [root@virt-026 ~]# pcs quorum device update model tls=
            Sending updated corosync.conf to nodes...
            virt-029: Succeeded
            virt-026: Succeeded
            virt-026: Corosync configuration reloaded
            Reloading qdevice configuration on nodes...
            virt-026: corosync-qdevice stopped
            virt-029: corosync-qdevice stopped
            virt-026: corosync-qdevice started
            virt-029: corosync-qdevice started
            [root@virt-026 ~]# echo $?
            0
            
            [root@virt-026 ~]# pcs quorum config
            Device:
              votes: 1
              Model: net
                algorithm: ffsplit
                host: virt-025
                keep_active_partition_tie_breaker: off
            [root@virt-026 ~]# cat /etc/corosync/corosync.conf | grep quorum -A 12
            quorum {
                provider: corosync_votequorum
                device {
                    model: net
                    votes: 1
                    net {
                        algorithm: ffsplit
                        host: virt-025
                        keep_active_partition_tie_breaker: off
                    }
                }
            }
            

             

            > OK

            Adding tls option to configuration

             

            [root@virt-026 ~]# pcs quorum device update model tls=required
            Sending updated corosync.conf to nodes...
            virt-026: Succeeded
            virt-029: Succeeded
            virt-026: Corosync configuration reloaded
            Reloading qdevice configuration on nodes...
            virt-026: corosync-qdevice stopped
            virt-029: corosync-qdevice stopped
            virt-026: corosync-qdevice started
            virt-029: corosync-qdevice started
            [root@virt-026 ~]# echo $?
            0
            [root@virt-026 ~]# pcs quorum config
            Device:
              votes: 1
              Model: net
                algorithm: ffsplit
                host: virt-025
                keep_active_partition_tie_breaker: off
                tls: required
            [root@virt-026 ~]# cat /etc/corosync/corosync.conf | grep quorum -A 13
            quorum {
                provider: corosync_votequorum
                device {
                    model: net
                    votes: 1
                    net {
                        algorithm: ffsplit
                        host: virt-025
                        keep_active_partition_tie_breaker: off
                        tls: required
                    }
                }
            }
            

             

            > OK

            Update qdevice with invalid option

            [root@virt-026 ~]# pcs quorum device update model invalid=1
            Error: invalid quorum device model option 'invalid', allowed options are: 'algorithm', 'connect_timeout', 'force_ip_version', 'host', 'keep_active_partition_tie_breaker', 'port', 'tie_breaker', 'tls', use --force to override
            Error: Errors have occurred, therefore pcs is unable to continue
            [root@virt-026 ~]# echo $?
            1

            > OK: Error message now includes tls and keep_active_partition_tie_breaker in all options that can be set

            Create qdevice with invalid option

             

            [root@virt-026 ~]# pcs quorum device remove
            Disabling corosync-qdevice...
            virt-026: corosync-qdevice disabled
            virt-029: corosync-qdevice disabled
            Stopping corosync-qdevice...
            virt-026: corosync-qdevice stopped
            virt-029: corosync-qdevice stopped
            Removing qdevice certificates from nodes...
            virt-029: Succeeded
            virt-026: Succeeded
            Sending updated corosync.conf to nodes...
            virt-026: Succeeded
            virt-029: Succeeded
            virt-026: Corosync configuration reloaded
            [root@virt-026 ~]# pcs quorum device add model net host=virt-025 algorithm=ffsplit tls=required keep_active_partition_tie_breaker=on invalid=1
            Error: invalid quorum device model option 'invalid', allowed options are: 'algorithm', 'connect_timeout', 'force_ip_version', 'host', 'keep_active_partition_tie_breaker', 'port', 'tie_breaker', 'tls', use --force to override
            Error: Errors have occurred, therefore pcs is unable to continue
            [root@virt-026 ~]# echo $?
            1
            

             

            > OK

            Create qdevice with all net options

             

            [root@virt-026 ~]# pcs quorum device add model net host=virt-025 algorithm=ffsplit tls=required keep_active_partition_tie_breaker=on connect_timeout=8100 force_ip_version=6 port=5403 tie_breaker=highest
            Setting up qdevice certificates on nodes...
            virt-026: Succeeded
            virt-029: Succeeded
            Enabling corosync-qdevice...
            virt-029: not enabling corosync-qdevice: corosync is not enabled
            virt-026: not enabling corosync-qdevice: corosync is not enabled
            Sending updated corosync.conf to nodes...
            virt-026: Succeeded
            virt-029: Succeeded
            virt-026: Corosync configuration reloaded
            Starting corosync-qdevice...
            virt-026: corosync-qdevice started
            virt-029: corosync-qdevice started
            [root@virt-026 ~]# echo $?
            0
            [root@virt-026 ~]# pcs quorum config
            Device:
              votes: 1
              Model: net
                algorithm: ffsplit
                connect_timeout: 8100
                force_ip_version: 6
                host: virt-025
                keep_active_partition_tie_breaker: on
                port: 5403
                tie_breaker: highest
                tls: required
            [root@virt-026 ~]# cat /etc/corosync/corosync.conf | grep quorum -A 17
            quorum {
                provider: corosync_votequorum
                device {
                    model: net
                    votes: 1
                    net {
                        algorithm: ffsplit
                        connect_timeout: 8100
                        force_ip_version: 6
                        host: virt-025
                        keep_active_partition_tie_breaker: on
                        port: 5403
                        tie_breaker: highest
                        tls: required
                    }
                }
            }
            

             

            > OK

            Trying to update one of the option with invalid value

            [root@virt-026 ~]# pcs quorum device update model tls=10
            Error: '10' is not a valid tls value, use 'off', 'on', 'required', use --force to override
            Error: Errors have occurred, therefore pcs is unable to continue
            [root@virt-026 ~]# echo $?
            1
            [root@virt-026 ~]# pcs quorum config | grep tls
                tls: required

            > OK

             

             

            [root@virt-026 ~]# pcs quorum device remove
            Disabling corosync-qdevice...
            virt-029: corosync-qdevice disabled
            virt-026: corosync-qdevice disabled
            Stopping corosync-qdevice...
            virt-029: corosync-qdevice stopped
            virt-026: corosync-qdevice stopped
            Removing qdevice certificates from nodes...
            virt-029: Succeeded
            virt-026: Succeeded
            Sending updated corosync.conf to nodes...
            virt-026: Succeeded
            virt-029: Succeeded
            virt-026: Corosync configuration reloaded
             
            

             

            Adding qdevice with all net options combined with heuristic option

             

            [root@virt-026 ~]# pcs quorum device add model net host=virt-025 algorithm=ffsplit tls=required keep_active_partition_tie_breaker=on connect_timeout=8100 force_ip_version=6 port=5403 tie_breaker=highest heuristics timeout=4000
            Setting up qdevice certificates on nodes...
            virt-026: Succeeded
            virt-029: Succeeded
            Enabling corosync-qdevice...
            virt-029: not enabling corosync-qdevice: corosync is not enabled
            virt-026: not enabling corosync-qdevice: corosync is not enabled
            Sending updated corosync.conf to nodes...
            virt-026: Succeeded
            virt-029: Succeeded
            virt-026: Corosync configuration reloaded
            Starting corosync-qdevice...
            virt-029: corosync-qdevice started
            virt-026: corosync-qdevice started
            [root@virt-026 ~]# echo $?
            0
            [root@virt-026 ~]# pcs quorum config
            Device:
              votes: 1
              Model: net
                algorithm: ffsplit
                connect_timeout: 8100
                force_ip_version: 6
                host: virt-025
                keep_active_partition_tie_breaker: on
                port: 5403
                tie_breaker: highest
                tls: required
              Heuristics:
                timeout: 4000
            [root@virt-026 ~]# cat /etc/corosync/corosync.conf | grep quorum -A 20
            quorum {
                provider: corosync_votequorum
                device {
                    model: net
                    votes: 1
                    net {
                        algorithm: ffsplit
                        connect_timeout: 8100
                        force_ip_version: 6
                        host: virt-025
                        keep_active_partition_tie_breaker: on
                        port: 5403
                        tie_breaker: highest
                        tls: required
                    }
                    heuristics {
                        timeout: 4000
                    }
                }
            

             

            > OK

            Trying to update net option 'tls' together with heuristic option

             

            [root@virt-026 ~]# pcs quorum device update model tls=on heuristics timeout=4500
            Sending updated corosync.conf to nodes...
            virt-026: Succeeded
            virt-029: Succeeded
            virt-026: Corosync configuration reloaded
            Reloading qdevice configuration on nodes...
            virt-026: corosync-qdevice stopped
            virt-029: corosync-qdevice stopped
            virt-026: corosync-qdevice started
            virt-029: corosync-qdevice started
            [root@virt-026 ~]# echo $?
            0
            [root@virt-026 ~]# pcs quorum config
            Device:
              votes: 1
              Model: net
                algorithm: ffsplit
                connect_timeout: 8100
                force_ip_version: 6
                host: virt-025
                keep_active_partition_tie_breaker: on
                port: 5403
                tie_breaker: highest
                tls: on
              Heuristics:
                timeout: 4500
            [root@virt-026 ~]# cat /etc/corosync/corosync.conf | grep quorum -A 20 
            quorum {
                provider: corosync_votequorum
                device {
                    model: net
                    votes: 1
                    net {
                        algorithm: ffsplit
                        connect_timeout: 8100
                        force_ip_version: 6
                        host: virt-025
                        keep_active_partition_tie_breaker: on
                        port: 5403
                        tie_breaker: highest
                        tls: on
                    }
                    heuristics {
                        timeout: 4500
                    }
                }
            

             

            > OK

            Verified for pcs-0.11.6-6.el9

            Michal Mazourek added a comment - BEFORE:   [root@virt-482 ~]# rpm -q pcs pcs-0.11.6-3.el9.x86_64 [root@virt-482 ~]# pcs quorum device add model net host=virt-481 algorithm=ffsplit tls=required keep_active_partition_tie_breaker=on Error: invalid quorum device model options: 'keep_active_partition_tie_breaker' , 'tls' , allowed options are: 'algorithm' , 'connect_timeout' , 'force_ip_version' , 'host' , 'port' , 'tie_breaker' , use --force to override Error: Errors have occurred, therefore pcs is unable to continue [root@virt-482 ~]# echo $? 1   > Not all net model options could be set before the fix AFTER:   [root@virt-026 ~]# rpm -q pcs pcs-0.11.6-6.el9.x86_64   Configuring qdevice with just algorithm option (as described in documentation) & check that the expected behavior persisted after the fix Install corosync-qdevice on each node of the cluster [root@virt-029 ~]# yum install corosync-qdevice -y {...} [root@virt-026 ~]# yum install corosync-qdevice -y {...} Install corosync-qnetd on the machine used as quorum device host [root@virt-025 ~]# yum install pcs corosync-qnetd -y {...} Start pcsd on the qdevice host [root@virt-025 ~]# systemctl enable pcsd --now Created symlink /etc/systemd/system/multi-user.target.wants/pcsd.service → /usr/lib/systemd/system/pcsd.service. Setup qdevice [root@virt-025 ~]# pcs qdevice setup model net --enable --start Quorum device 'net' initialized quorum device enabled Starting quorum device... quorum device started [root@virt-025 ~]# 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 Authenticate qdevice machine from the cluster [root@virt-026 ~]# pcs host auth virt-025 Username: hacluster Password:  virt-025: Authorized Add qdevice on cluster node [root@virt-026 ~]# pcs quorum device add model net host=virt-025 algorithm=ffsplit Setting up qdevice certificates on nodes... virt-026: Succeeded virt-029: Succeeded Enabling corosync-qdevice... virt-029: not enabling corosync-qdevice: corosync is not enabled virt-026: not enabling corosync-qdevice: corosync is not enabled Sending updated corosync.conf to nodes... virt-026: Succeeded virt-029: Succeeded virt-026: Corosync configuration reloaded Starting corosync-qdevice... virt-026: corosync-qdevice started virt-029: corosync-qdevice started [root@virt-026 ~]# echo $? 0 [root@virt-026 ~]# pcs quorum config Device:   votes: 1   Model: net     algorithm: ffsplit     host: virt-025 [root@virt-026 ~]# pcs quorum status Quorum information ------------------ Date:             Fri Dec  1 16:49:10 2023 Quorum provider:  corosync_votequorum Nodes:            2 Node ID:          1 Ring ID:          1.9 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 virt-026 (local)          2          1    A,V,NMW virt-029          0          1            Qdevice   > OK   Removing the qdevice [root@virt-026 ~]# pcs quorum device remove Disabling corosync-qdevice... virt-026: corosync-qdevice disabled virt-029: corosync-qdevice disabled Stopping corosync-qdevice... virt-026: corosync-qdevice stopped virt-029: corosync-qdevice stopped Removing qdevice certificates from nodes... virt-029: Succeeded virt-026: Succeeded Sending updated corosync.conf to nodes... virt-029: Succeeded virt-026: Succeeded virt-026: Corosync configuration reloaded [root@virt-026 ~]# echo $? 0 [root@virt-026 ~]# 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 Destroying the qdevice [root@virt-025 ~]# pcs qdevice destroy net Stopping quorum device... quorum device stopped quorum device disabled Quorum device 'net' configuration files removed [root@virt-025 ~]# echo $? 0 [root@virt-025 ~]# pcs qdevice status net --full Error: Quorum device 'net' is not running > OK Configuring qdevice with options, that couldn't be configured before the fix (tls, keep_active_partition_tie_breaker)   [root@virt-025 ~]# pcs qdevice setup model net --enable --start Quorum device 'net' initialized quorum device enabled Starting quorum device... quorum device started [root@virt-026 ~]# pcs quorum device add model net host=virt-025 algorithm=ffsplit tls=required keep_active_partition_tie_breaker=on Setting up qdevice certificates on nodes... virt-026: Succeeded virt-029: Succeeded Enabling corosync-qdevice... virt-029: not enabling corosync-qdevice: corosync is not enabled virt-026: not enabling corosync-qdevice: corosync is not enabled Sending updated corosync.conf to nodes... virt-026: Succeeded virt-029: Succeeded virt-026: Corosync configuration reloaded Starting corosync-qdevice... virt-026: corosync-qdevice started virt-029: corosync-qdevice started [root@virt-026 ~]# echo $? 0 [root@virt-026 ~]# pcs quorum config Device:   votes: 1   Model: net     algorithm: ffsplit     host: virt-025     keep_active_partition_tie_breaker: on     tls: required [root@virt-026 ~]# cat /etc/corosync/corosync.conf | grep quorum -A 13 quorum {     provider: corosync_votequorum     device {         model: net         votes: 1         net {             algorithm: ffsplit             host: virt-025             keep_active_partition_tie_breaker: on             tls: required         }     } }   > OK: Desired config is in place   [root@virt-026 ~]# pcs quorum status Quorum information ------------------ Date:             Thu Dec  7 10:58:28 2023 Quorum provider:  corosync_votequorum Nodes:            2 Node ID:          1 Ring ID:          1.16 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 virt-026 (local)          2          1    A,V,NMW virt-029          0          1            Qdevice   > OK Update qdevice with options, that couldn't be configured before the fix   [root@virt-026 ~]# pcs quorum device update model tls=on keep_active_partition_tie_breaker=off Sending updated corosync.conf to nodes... virt-026: Succeeded virt-029: Succeeded virt-026: Corosync configuration reloaded Reloading qdevice configuration on nodes... virt-026: corosync-qdevice stopped virt-029: corosync-qdevice stopped virt-026: corosync-qdevice started virt-029: corosync-qdevice started [root@virt-026 ~]# echo $? 0 [root@virt-026 ~]# pcs quorum config Device:   votes: 1   Model: net     algorithm: ffsplit     host: virt-025     keep_active_partition_tie_breaker: off     tls: on [root@virt-026 ~]# cat /etc/corosync/corosync.conf | grep quorum -A 13 quorum {     provider: corosync_votequorum     device {         model: net         votes: 1         net {             algorithm: ffsplit             host: virt-025             keep_active_partition_tie_breaker: off             tls: on         }     } }   > OK: Desired configuration is in place   [root@virt-026 ~]# pcs quorum status Quorum information ------------------ Date:             Thu Dec  7 17:20:27 2023 Quorum provider:  corosync_votequorum Nodes:            2 Node ID:          1 Ring ID:          1.1f 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 virt-026 (local)          2          1    A,V,NMW virt-029          0          1            Qdevice   > OK Deleting 'tls' option from configuration   [root@virt-026 ~]# pcs quorum device update model tls= Sending updated corosync.conf to nodes... virt-029: Succeeded virt-026: Succeeded virt-026: Corosync configuration reloaded Reloading qdevice configuration on nodes... virt-026: corosync-qdevice stopped virt-029: corosync-qdevice stopped virt-026: corosync-qdevice started virt-029: corosync-qdevice started [root@virt-026 ~]# echo $? 0 [root@virt-026 ~]# pcs quorum config Device:   votes: 1   Model: net     algorithm: ffsplit     host: virt-025     keep_active_partition_tie_breaker: off [root@virt-026 ~]# cat /etc/corosync/corosync.conf | grep quorum -A 12 quorum {     provider: corosync_votequorum     device {         model: net         votes: 1         net {             algorithm: ffsplit             host: virt-025             keep_active_partition_tie_breaker: off         }     } }   > OK Adding tls option to configuration   [root@virt-026 ~]# pcs quorum device update model tls=required Sending updated corosync.conf to nodes... virt-026: Succeeded virt-029: Succeeded virt-026: Corosync configuration reloaded Reloading qdevice configuration on nodes... virt-026: corosync-qdevice stopped virt-029: corosync-qdevice stopped virt-026: corosync-qdevice started virt-029: corosync-qdevice started [root@virt-026 ~]# echo $? 0 [root@virt-026 ~]# pcs quorum config Device:   votes: 1   Model: net     algorithm: ffsplit     host: virt-025     keep_active_partition_tie_breaker: off     tls: required [root@virt-026 ~]# cat /etc/corosync/corosync.conf | grep quorum -A 13 quorum {     provider: corosync_votequorum     device {         model: net         votes: 1         net {             algorithm: ffsplit             host: virt-025             keep_active_partition_tie_breaker: off             tls: required         }     } }   > OK Update qdevice with invalid option [root@virt-026 ~]# pcs quorum device update model invalid=1 Error: invalid quorum device model option 'invalid' , allowed options are: 'algorithm' , 'connect_timeout' , 'force_ip_version' , 'host' , 'keep_active_partition_tie_breaker' , 'port' , 'tie_breaker' , 'tls' , use --force to override Error: Errors have occurred, therefore pcs is unable to continue [root@virt-026 ~]# echo $? 1 > OK: Error message now includes tls and keep_active_partition_tie_breaker in all options that can be set Create qdevice with invalid option   [root@virt-026 ~]# pcs quorum device remove Disabling corosync-qdevice... virt-026: corosync-qdevice disabled virt-029: corosync-qdevice disabled Stopping corosync-qdevice... virt-026: corosync-qdevice stopped virt-029: corosync-qdevice stopped Removing qdevice certificates from nodes... virt-029: Succeeded virt-026: Succeeded Sending updated corosync.conf to nodes... virt-026: Succeeded virt-029: Succeeded virt-026: Corosync configuration reloaded [root@virt-026 ~]# pcs quorum device add model net host=virt-025 algorithm=ffsplit tls=required keep_active_partition_tie_breaker=on invalid=1 Error: invalid quorum device model option 'invalid' , allowed options are: 'algorithm' , 'connect_timeout' , 'force_ip_version' , 'host' , 'keep_active_partition_tie_breaker' , 'port' , 'tie_breaker' , 'tls' , use --force to override Error: Errors have occurred, therefore pcs is unable to continue [root@virt-026 ~]# echo $? 1   > OK Create qdevice with all net options   [root@virt-026 ~]# pcs quorum device add model net host=virt-025 algorithm=ffsplit tls=required keep_active_partition_tie_breaker=on connect_timeout=8100 force_ip_version=6 port=5403 tie_breaker=highest Setting up qdevice certificates on nodes... virt-026: Succeeded virt-029: Succeeded Enabling corosync-qdevice... virt-029: not enabling corosync-qdevice: corosync is not enabled virt-026: not enabling corosync-qdevice: corosync is not enabled Sending updated corosync.conf to nodes... virt-026: Succeeded virt-029: Succeeded virt-026: Corosync configuration reloaded Starting corosync-qdevice... virt-026: corosync-qdevice started virt-029: corosync-qdevice started [root@virt-026 ~]# echo $? 0 [root@virt-026 ~]# pcs quorum config Device:   votes: 1   Model: net     algorithm: ffsplit     connect_timeout: 8100     force_ip_version: 6     host: virt-025     keep_active_partition_tie_breaker: on     port: 5403     tie_breaker: highest     tls: required [root@virt-026 ~]# cat /etc/corosync/corosync.conf | grep quorum -A 17 quorum {     provider: corosync_votequorum     device {         model: net         votes: 1         net {             algorithm: ffsplit             connect_timeout: 8100             force_ip_version: 6             host: virt-025             keep_active_partition_tie_breaker: on             port: 5403             tie_breaker: highest             tls: required         }     } }   > OK Trying to update one of the option with invalid value [root@virt-026 ~]# pcs quorum device update model tls=10 Error: '10' is not a valid tls value, use 'off' , 'on' , 'required' , use --force to override Error: Errors have occurred, therefore pcs is unable to continue [root@virt-026 ~]# echo $? 1 [root@virt-026 ~]# pcs quorum config | grep tls     tls: required > OK     [root@virt-026 ~]# pcs quorum device remove Disabling corosync-qdevice... virt-029: corosync-qdevice disabled virt-026: corosync-qdevice disabled Stopping corosync-qdevice... virt-029: corosync-qdevice stopped virt-026: corosync-qdevice stopped Removing qdevice certificates from nodes... virt-029: Succeeded virt-026: Succeeded Sending updated corosync.conf to nodes... virt-026: Succeeded virt-029: Succeeded virt-026: Corosync configuration reloaded     Adding qdevice with all net options combined with heuristic option   [root@virt-026 ~]# pcs quorum device add model net host=virt-025 algorithm=ffsplit tls=required keep_active_partition_tie_breaker=on connect_timeout=8100 force_ip_version=6 port=5403 tie_breaker=highest heuristics timeout=4000 Setting up qdevice certificates on nodes... virt-026: Succeeded virt-029: Succeeded Enabling corosync-qdevice... virt-029: not enabling corosync-qdevice: corosync is not enabled virt-026: not enabling corosync-qdevice: corosync is not enabled Sending updated corosync.conf to nodes... virt-026: Succeeded virt-029: Succeeded virt-026: Corosync configuration reloaded Starting corosync-qdevice... virt-029: corosync-qdevice started virt-026: corosync-qdevice started [root@virt-026 ~]# echo $? 0 [root@virt-026 ~]# pcs quorum config Device:   votes: 1   Model: net     algorithm: ffsplit     connect_timeout: 8100     force_ip_version: 6     host: virt-025     keep_active_partition_tie_breaker: on     port: 5403     tie_breaker: highest     tls: required   Heuristics:     timeout: 4000 [root@virt-026 ~]# cat /etc/corosync/corosync.conf | grep quorum -A 20 quorum {     provider: corosync_votequorum     device {         model: net         votes: 1         net {             algorithm: ffsplit             connect_timeout: 8100             force_ip_version: 6             host: virt-025             keep_active_partition_tie_breaker: on             port: 5403             tie_breaker: highest             tls: required         }         heuristics {             timeout: 4000         }     }   > OK Trying to update net option 'tls' together with heuristic option   [root@virt-026 ~]# pcs quorum device update model tls=on heuristics timeout=4500 Sending updated corosync.conf to nodes... virt-026: Succeeded virt-029: Succeeded virt-026: Corosync configuration reloaded Reloading qdevice configuration on nodes... virt-026: corosync-qdevice stopped virt-029: corosync-qdevice stopped virt-026: corosync-qdevice started virt-029: corosync-qdevice started [root@virt-026 ~]# echo $? 0 [root@virt-026 ~]# pcs quorum config Device:   votes: 1   Model: net     algorithm: ffsplit     connect_timeout: 8100     force_ip_version: 6     host: virt-025     keep_active_partition_tie_breaker: on     port: 5403     tie_breaker: highest     tls: on   Heuristics:     timeout: 4500 [root@virt-026 ~]# cat /etc/corosync/corosync.conf | grep quorum -A 20  quorum {     provider: corosync_votequorum     device {         model: net         votes: 1         net {             algorithm: ffsplit             connect_timeout: 8100             force_ip_version: 6             host: virt-025             keep_active_partition_tie_breaker: on             port: 5403             tie_breaker: highest             tls: on         }         heuristics {             timeout: 4500         }     }   > OK Verified for pcs-0.11.6-6.el9

            sync bot added a comment -

            An attempt was made to sync this Jira Issue to quality engineering's test management system as a product requirement work item to be verified by Quality Engineering.

            The user defined as the QA Contact, 'cluster-qe', does not exist in the target test management system project, 'RHEL High Availability'. For more information: QA Contact

            This allows Quality Engineering to provide traceability to the testing assets that cover verification of the new functionality. It allows stakeholders visibility into the test approach, test coverage and execution results. For more information about this sync utility please see: Product Requirements Synchronization Jira to Polarion.

            sync bot added a comment - An attempt was made to sync this Jira Issue to quality engineering's test management system as a product requirement work item to be verified by Quality Engineering. The user defined as the QA Contact, 'cluster-qe', does not exist in the target test management system project, 'RHEL High Availability'. For more information: QA Contact This allows Quality Engineering to provide traceability to the testing assets that cover verification of the new functionality. It allows stakeholders visibility into the test approach, test coverage and execution results. For more information about this sync utility please see: Product Requirements Synchronization Jira to Polarion .

            sync bot added a comment -

            An attempt was made to sync this Jira Issue to quality engineering's test management system as a product requirement work item to be verified by Quality Engineering.

            The user defined as the QA Contact, 'cluster-qe', does not exist in the target test management system project, 'RHEL High Availability'. For more information: QA Contact

            This allows Quality Engineering to provide traceability to the testing assets that cover verification of the new functionality. It allows stakeholders visibility into the test approach, test coverage and execution results. For more information about this sync utility please see: Product Requirements Synchronization Jira to Polarion.

            sync bot added a comment - An attempt was made to sync this Jira Issue to quality engineering's test management system as a product requirement work item to be verified by Quality Engineering. The user defined as the QA Contact, 'cluster-qe', does not exist in the target test management system project, 'RHEL High Availability'. For more information: QA Contact This allows Quality Engineering to provide traceability to the testing assets that cover verification of the new functionality. It allows stakeholders visibility into the test approach, test coverage and execution results. For more information about this sync utility please see: Product Requirements Synchronization Jira to Polarion .

            Tests for preliminary testing were run and examined for pcs-0.11.6-6.el9.

            Michal Mazourek added a comment - Tests for preliminary testing were run and examined for pcs-0.11.6-6.el9.

            DevTestResults:

            Qdevice (the RHEL and pcs version is irrelevant here):

            [root@r09-03-a ~]# pcs qdevice setup model net --enable --start
            Quorum device 'net' initialized
            quorum device enabled
            Starting quorum device...
            quorum device started
            [root@r09-03-a ~]# 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
            

            Cluster:

            [root@r09-04-a ~]# rpm -q pcs
            pcs-0.11.6-6.el9.x86_64
            
            [root@r09-04-a ~]# pcs quorum device add model net host=r09-03-a.vm algorithm=ffsplit tls=required keep_active_partition_tie_breaker=on
            Setting up qdevice certificates on nodes...
            r09-04-a.vm: Succeeded
            r09-04-c.vm: Succeeded
            r09-04-b.vm: Succeeded
            Enabling corosync-qdevice...
            r09-04-b.vm: not enabling corosync-qdevice: corosync is not enabled
            r09-04-a.vm: not enabling corosync-qdevice: corosync is not enabled
            r09-04-c.vm: not enabling corosync-qdevice: corosync is not enabled
            Sending updated corosync.conf to nodes...
            r09-04-a.vm: Succeeded
            r09-04-b.vm: Succeeded
            r09-04-c.vm: Succeeded
            r09-04-a.vm: Corosync configuration reloaded
            Starting corosync-qdevice...
            r09-04-b.vm: corosync-qdevice started
            r09-04-c.vm: corosync-qdevice started
            r09-04-a.vm: corosync-qdevice started
            [root@r09-04-a ~]# pcs quorum config
            Device:
             votes: 1
             Model: net
               algorithm: ffsplit
               host: r09-03-a.vm
               keep_active_partition_tie_breaker: on
               tls: required
            [root@r09-04-a ~]# pcs quorum device update model keep_active_partition_tie_breaker=off tls=off
            Sending updated corosync.conf to nodes...
            r09-04-a.vm: Succeeded
            r09-04-b.vm: Succeeded
            r09-04-c.vm: Succeeded
            r09-04-a.vm: Corosync configuration reloaded
            Reloading qdevice configuration on nodes...
            r09-04-a.vm: corosync-qdevice stopped
            r09-04-b.vm: corosync-qdevice stopped
            r09-04-c.vm: corosync-qdevice stopped
            r09-04-a.vm: corosync-qdevice started
            r09-04-c.vm: corosync-qdevice started
            r09-04-b.vm: corosync-qdevice started
            [root@r09-04-a ~]# pcs quorum config
            Device:
             votes: 1
             Model: net
               algorithm: ffsplit
               host: r09-03-a.vm
               keep_active_partition_tie_breaker: off
               tls: off
            

            Michal Pospisil added a comment - DevTestResults: Qdevice (the RHEL and pcs version is irrelevant here): [root@r09-03-a ~]# pcs qdevice setup model net --enable --start Quorum device 'net' initialized quorum device enabled Starting quorum device... quorum device started [root@r09-03-a ~]# 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 Cluster: [root@r09-04-a ~]# rpm -q pcs pcs-0.11.6-6.el9.x86_64 [root@r09-04-a ~]# pcs quorum device add model net host=r09-03-a.vm algorithm=ffsplit tls=required keep_active_partition_tie_breaker=on Setting up qdevice certificates on nodes... r09-04-a.vm: Succeeded r09-04-c.vm: Succeeded r09-04-b.vm: Succeeded Enabling corosync-qdevice... r09-04-b.vm: not enabling corosync-qdevice: corosync is not enabled r09-04-a.vm: not enabling corosync-qdevice: corosync is not enabled r09-04-c.vm: not enabling corosync-qdevice: corosync is not enabled Sending updated corosync.conf to nodes... r09-04-a.vm: Succeeded r09-04-b.vm: Succeeded r09-04-c.vm: Succeeded r09-04-a.vm: Corosync configuration reloaded Starting corosync-qdevice... r09-04-b.vm: corosync-qdevice started r09-04-c.vm: corosync-qdevice started r09-04-a.vm: corosync-qdevice started [root@r09-04-a ~]# pcs quorum config Device: votes: 1 Model: net algorithm: ffsplit host: r09-03-a.vm keep_active_partition_tie_breaker: on tls: required [root@r09-04-a ~]# pcs quorum device update model keep_active_partition_tie_breaker=off tls=off Sending updated corosync.conf to nodes... r09-04-a.vm: Succeeded r09-04-b.vm: Succeeded r09-04-c.vm: Succeeded r09-04-a.vm: Corosync configuration reloaded Reloading qdevice configuration on nodes... r09-04-a.vm: corosync-qdevice stopped r09-04-b.vm: corosync-qdevice stopped r09-04-c.vm: corosync-qdevice stopped r09-04-a.vm: corosync-qdevice started r09-04-c.vm: corosync-qdevice started r09-04-b.vm: corosync-qdevice started [root@r09-04-a ~]# pcs quorum config Device: votes: 1 Model: net algorithm: ffsplit host: r09-03-a.vm keep_active_partition_tie_breaker: off tls: off

            gitlab-bot added a comment -

            Michal Pospíšil mentioned this issue in a commit of Red Hat / centos-stream / rpms / pcs on branch c9s:

            pcs-0.11.6-6

            gitlab-bot added a comment - Michal Pospíšil mentioned this issue in a commit of Red Hat / centos-stream / rpms / pcs on branch c9s : pcs-0.11.6-6

              cluster-qe Cluster QE
              tojeline@redhat.com Tomas Jelinek
              Peter Romancik Peter Romancik
              Michal Mazourek Michal Mazourek
              Steven Levine Steven Levine
              Votes:
              0 Vote for this issue
              Watchers:
              17 Start watching this issue

                Created:
                Updated:
                Resolved: