5.3. Efectuați un Failover
Fiind un cluster de tip high-availability, ar trebui să testăm failover-ul noii noastre resurse înainte de a merge mai departe.
Întâi, găsiți nodul pe care rulează adresa IP.
resource ClusterIP is running on: pcmk-1
Opriți Pacemaker și Corosync pe acea mașină.
Signaling Pacemaker Cluster Manager to terminate: [ OK ]
Waiting for cluster services to unload:. [ OK ]
Stopping Corosync Cluster Engine (corosync): [ OK ]
Waiting for services to unload: [ OK ]
Odată ce Corosync nu mai rulează, mergeți pe celălalt nod și verificați status-ul clusterului cu crm_mon.
============
Last updated: Fri Aug 28 15:27:35 2009
Stack: openais
Current DC: pcmk-2 - partition WITHOUT quorum
Version: 1.1.5-bdd89e69ba545404d02445be1f3d72e6a203ba2f
2 Nodes configured, 2 expected votes
1 Resources configured.
============
Online: [ pcmk-2 ]OFFLINE: [ pcmk-1 ]
Sunt trei aspecte de ținut cont în legătură cu starea curentă a clusterului. Primul este acela că, așa cum ne așteptam, pcmk-1 este acum offline. Totodată putem vedea că, ClusterIP nu rulează nicăieri!
5.3.1. Quorum și Clusterele Formate din Două Noduri
Acest lucru este datorită faptului că, clusterul nu mai are quorum, după cum poate fi observat din textul "partition WITHOUT quorum" (ieșind în evidență în verde) în rezultatul de ieșire de mai sus. Pentru a reduce posibilitatea coruperii datelor, comportamentul implicit al Pacemaker-ului este să oprească toate resursele dacă clusterul nu are quorum.
Un cluster este considerat că are quorum când mai mult de jumătate din nodurile cunoscute sau așteptate sunt online, sau pentru cei cu înclinație către matematică, în orice moment în care ecuația următoare este adevărată:
numărul_total_de_noduri < 2 * numărul_de_noduri_active
Therefore a two-node cluster only has quorum when both nodes are running, which is no longer the case for our cluster. This would normally make the creation of a two-node cluster pointless
, however it is possible to control how Pacemaker behaves when quorum is lost. In particular, we can tell the cluster to simply ignore quorum altogether.
node pcmk-1
node pcmk-2
primitive ClusterIP ocf:heartbeat:IPaddr2 \
params ip="192.168.122.101" cidr_netmask="32" \
op monitor interval="30s"
property $id="cib-bootstrap-options" \
dc-version="1.1.5-bdd89e69ba545404d02445be1f3d72e6a203ba2f" \
cluster-infrastructure="openais" \
expected-quorum-votes="2" \
stonith-enabled="false" \
no-quorum-policy="ignore"
După câteva momente, clusterul va porni adresa IP pe nodul rămas. Luați aminte, clusterul încă nu are quorum.
============
Last updated: Fri Aug 28 15:30:18 2009
Stack: openais
Current DC: pcmk-2 - partition WITHOUT quorum
Version: 1.1.5-bdd89e69ba545404d02445be1f3d72e6a203ba2f
2 Nodes configured, 2 expected votes
1 Resources configured.
============
Online: [ pcmk-2 ]
OFFLINE: [ pcmk-1 ]
ClusterIP (ocf::heartbeat:IPaddr): Started pcmk-2
Acum simulați recuperarea nodului restartând stiva de cluster pe pcmk-1 și verificați status-ul clusterului.
Starting Corosync Cluster Engine (corosync): [ OK ]
Starting Pacemaker Cluster Manager: [ OK ]# crm_mon
============
Last updated: Fri Aug 28 15:32:13 2009
Stack: openais
Current DC: pcmk-2 - partition with quorum
Version: 1.1.5-bdd89e69ba545404d02445be1f3d72e6a203ba2f
2 Nodes configured, 2 expected votes
1 Resources configured.
============
Online: [ pcmk-1 pcmk-2 ]
ClusterIP (ocf::heartbeat:IPaddr): Started pcmk-1
Aici putem vedea ceva ce unii ar putea considera surprinzător, IP-ul rulează înapoi pe locația sa originală!