<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
p.xmsonormal, li.xmsonormal, div.xmsonormal
        {mso-style-name:x_msonormal;
        margin:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="#0563C1" vlink="#954F72" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal">I had a SysAdmin reduce the number of nodes in a OL 7.9 cluster from three nodes to two nodes.  
<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">From internal testing, I found the following commands would work and the 2Node attribute would be automatically added.  The other cluster parameters we use are WaitForAll and LastManStanding.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="xmsonormal" style="margin-left:.5in">pcs resource disable res_app03<o:p></o:p></p>
<p class="xmsonormal" style="margin-left:.5in">pcs resource delete res_app03<o:p></o:p></p>
<p class="xmsonormal" style="margin-left:.5in">pcs cluster node remove app03<o:p></o:p></p>
<p class="xmsonormal" style="margin-left:.5in">pcs stonith delete fence_app03<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Unfortunately, real world didn’t go as planned.   I am unsure if the commands were ran out of order or something else was going on (e.g. unexpected location constraints).   When I got involved, I noticed that pcs status had the app3 node
 in an OFFLINE state, but the pcs cluster node remove app03 command was successful.   I noticed some leftover location constraints from past “moves” of resources.  I manually removed those constraints and I ended up removing the app03 node from the corosync
 configuration with “crm_node --remove=app3 --force" command.    Now pcs status no longer shows any information for app3 and crm_node -l does not show app3.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">My concern is with Quorum.   From the pcs quorum status output below, I still see Quorum set at 2 (expected to be 1) and the 2Node attribute was not added.   Am I stuck in this state until the next full cluster downtime?  Or is there a
 way to manipulate the expected quorum votes in the run time cluster?<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">#17:25:08 # pcs quorum status<o:p></o:p></p>
<p class="MsoNormal">Quorum information<o:p></o:p></p>
<p class="MsoNormal">------------------<o:p></o:p></p>
<p class="MsoNormal">Date:             Wed May 26 17:25:16 2021<o:p></o:p></p>
<p class="MsoNormal">Quorum provider:  corosync_votequorum<o:p></o:p></p>
<p class="MsoNormal">Nodes:            2<o:p></o:p></p>
<p class="MsoNormal">Node ID:          3<o:p></o:p></p>
<p class="MsoNormal">Ring ID:          1/85<o:p></o:p></p>
<p class="MsoNormal">Quorate:          Yes<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Votequorum information<o:p></o:p></p>
<p class="MsoNormal">----------------------<o:p></o:p></p>
<p class="MsoNormal">Expected votes:   2<o:p></o:p></p>
<p class="MsoNormal">Highest expected: 2<o:p></o:p></p>
<p class="MsoNormal">Total votes:      2<o:p></o:p></p>
<p class="MsoNormal">Quorum:           2<o:p></o:p></p>
<p class="MsoNormal">Flags:            Quorate WaitForAll LastManStanding<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Membership information<o:p></o:p></p>
<p class="MsoNormal">----------------------<o:p></o:p></p>
<p class="MsoNormal">    Nodeid      Votes    Qdevice Name<o:p></o:p></p>
<p class="MsoNormal">         1          1         NR app1<o:p></o:p></p>
<p class="MsoNormal">         3          1         NR app2 (local)<o:p></o:p></p>
</div>
<div> 
<p style="font-family: arial, sans-serif; font-size: 8pt; color: #6A737B">CONFIDENTIALITY NOTICE This message and any included attachments are from Cerner Corporation and are intended only for the addressee. The information contained in this message is confidential
 and may constitute inside or non-public information under international, federal, or state securities laws. Unauthorized forwarding, printing, copying, distribution, or use of such information is strictly prohibited and may be unlawful. If you are not the
 addressee, please promptly delete this message and notify the sender of the delivery error by e-mail or you may call Cerner's corporate offices in Kansas City, Missouri, U.S.A at (+1) (816)221-1024.</p>
</div>
</body>
</html>