10.5. クォーラムデバイス
Red Hat Enterprise Linux 7.4 は、個別のクォーラムを設定する機能に完全に対応しています。主要な用途は、クォーラムルールによって許容されるノード障害の数よりも多くのノード障害をクラスターが許容するようにすることです。クォーラムデバイスは、偶数のノードを持つクラスターに推奨されます。2 ノードクラスターでクォーラムデバイスを使用すると、スプリットブレインの状況で存続するノードをより適切に判別できます。
クォーラムデバイスを設定する場合は、以下を考慮する必要があります。
- クォーラムデバイスは、クォーラムデバイスを使用するクラスターと同じ場所にある別の物理ネットワークで実行することが推奨されます。理想としては、クォーラムデバイスホストを、メインクラスターとは別のラックに置くか、少なくとも別の PSU に置くようにします。corosync リングと同じネットワークセグメントには置かないようにしてください。
- 複数のクォーラムデバイスをクラスターで同時に使用することはできません。
- 複数のクォーラムデバイスをクラスターで同時に使用することはできません。ただし、複数のクラスターが 1 つのクォーラムデバイスを同時に使用することはできます。アルゴリズムやクォーラムオプションはクラスターノード自体に保存されるため、同じクォーラムデバイスを使用する各クラスターが、複数のアルゴリズムやクォーラムオプションを使用できます。たとえば、単一のクォーラムデバイスは、
ffsplit
(fifty/fifty 分割)アルゴリズムを持つ 1 つのクラスター、およびレム(last man standing)アルゴリズムを持つ 2 番目の
クラスターで使用できます。 - クォーラムデバイスは、既存のクラスターノードで実行しないでください。
10.5.1. クォーラムデバイスパッケージのインストール リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
クラスターにクォーラムデバイスを設定するには、以下のパッケージをインストールする必要があります。
- 既存クラスターのノードに
corosync-qdevice
をインストールします。[root@node1:~]# yum install corosync-qdevice [root@node2:~]# yum install corosync-qdevice
[root@node1:~]# yum install corosync-qdevice [root@node2:~]# yum install corosync-qdevice
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - クォーラムデバイスホストに
pcs
およびcorosync-qnetd
をインストールします。[root@qdevice:~]# yum install pcs corosync-qnetd
[root@qdevice:~]# yum install pcs corosync-qnetd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow pcsd
サービスを起動し、システムの起動時にpcsd
がクォーラムデバイスホストで有効にします。[root@qdevice:~]# systemctl start pcsd.service [root@qdevice:~]# systemctl enable pcsd.service
[root@qdevice:~]# systemctl start pcsd.service [root@qdevice:~]# systemctl enable pcsd.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.5.2. クォーラムデバイスの設定 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
本セクションでは、Red Hat High Availability クラスターでクォーラムデバイスを設定する手順例を説明します。以下の手順では、クォーラムデバイスを設定し、そのクォーラムデバイスをクラスターに追加します。この例の場合:
- クォーラムデバイスに使用されるノードは
qdevice
です。 - クォーラムデバイスモデルは
net
で、現在サポートされている唯一のモデルです。net
モデルは、以下のアルゴリズムに対応します。ffsplit
: fifty-fifty 分割。これにより、アクティブなノードの数が最も多いパーティションに 1 票が提供されます。ldM
: last-man-standing。ノードがqnetd
サーバーを表示できるクラスター内に残っている唯一のノードである場合、投票を返します。警告LMS アルゴリズムにより、ノードが 1 つしか残っていなくてもクラスターはクォーラムを維持できますが、number_of_nodes - 1 と同じであるため、クォーラムデバイスの投票力が大きいことを意味します。クォーラムデバイスとの接続が失われると、number_of_nodes - 1 の票が失われます。つまり、(クォーラムデバイスを無効にすることで) すべてのノードがアクティブなクラスターのみがクォーラムに達したままになります。他のクラスターは、クォーラムに達しなくなります。
これらのアルゴリズムの実装の詳細は、corosync-qdevice
(8)の man ページを参照してください。 - クラスターノードは
node1
およびnode2
です。
以下の手順は、クォーラムデバイスを設定し、そのクォーラムデバイスをクラスターに追加します。
- クォーラムデバイスをホストするために使用するノードで以下のコマンドを使用し、クォーラムデバイスを設定します。このコマンドは、クォーラムデバイスモデル
net
を設定および開始し、システムの起動時にデバイスが開始するように設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow クォーラムデバイスの設定後、そのステータスを確認できます。corosync-qnetd
デーモンが実行中で、この時点でクライアントが接続されていないことが分かります。--full
コマンドオプションを指定すると詳細が出力されます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 以下のコマンドを実行して、
firewalld
でhigh-availability
サービスを有効にして、pcsd
デーモンおよびnet
クォーラムデバイスに必要なファイアウォールのポートを有効にします。[root@qdevice:~]# firewall-cmd --permanent --add-service=high-availability [root@qdevice:~]# firewall-cmd --add-service=high-availability
[root@qdevice:~]# firewall-cmd --permanent --add-service=high-availability [root@qdevice:~]# firewall-cmd --add-service=high-availability
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 既存クラスター内のノードのいずれかから、クォーラムデバイスをホストしているノードで
hacluster
ユーザーを認証します。[root@node1:~] # pcs cluster auth qdevice Username: hacluster Password: qdevice: Authorized
[root@node1:~] # pcs cluster auth qdevice Username: hacluster Password: qdevice: Authorized
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - クォーラムデバイスをクラスターに追加します。クォーラムデバイスを追加する前に、後で比較するために、クォーラムデバイスの現在の設定と状況を確認できます。このコマンドの出力は、クラスターがクォーラムデバイスを使用していないことを示しています。
[root@node1:~]# pcs quorum config Options:
[root@node1:~]# pcs quorum config Options:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドは、作成しておいたクォーラムデバイスをクラスターに追加します。複数のクォーラムデバイスをクラスターで同時に使用することはできません。ただし、複数のクラスターが 1 つのクォーラムデバイスを同時に使用することはできます。上記のコマンド例は、ffsplit
アルゴリズムを使用するようにクォーラムデバイスを設定します。クォーラムデバイスの設定オプションの詳細は、corosync-qdevice
(8)の man ページを参照してください。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - クォーラムデバイスの設定状態をチェックします。クラスター側から以下のコマンドを実行すると、設定の変更内容を確認できます。pcs quorum config は、設定されたクォーラムデバイスを表示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow pcs quorum status コマンドは、クォーラムデバイスのステータスを表示し、クォーラムデバイスが使用中であることを示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow pcs quorum device status には、クォーラムデバイスのランタイムステータスが表示されます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow クォーラムデバイスから以下の status コマンドを実行すると、corosync-qnetd
デーモンのステータスを表示できます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.5.3. クォーラムデバイスサービスの管理 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
PCS は、以下のコマンド例に示すように、ローカルホスト(corosync-qnetd)でクォーラムデバイスサービスを管理する機能を提供します。このコマンドは、
corosync-qnetd
サービスにのみ影響することに注意してください。
[root@qdevice:~]# pcs qdevice start net [root@qdevice:~]# pcs qdevice stop net [root@qdevice:~]# pcs qdevice enable net [root@qdevice:~]# pcs qdevice disable net [root@qdevice:~]# pcs qdevice kill net
[root@qdevice:~]# pcs qdevice start net
[root@qdevice:~]# pcs qdevice stop net
[root@qdevice:~]# pcs qdevice enable net
[root@qdevice:~]# pcs qdevice disable net
[root@qdevice:~]# pcs qdevice kill net
10.5.4. クラスターでのクォーラムデバイス設定の管理 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
以下のセクションは、クラスターでクォーラムデバイス設定を管理するために使用する PCS コマンドについて説明し、「クォーラムデバイスの設定」 のクォーラムデバイス設定を基にした例を使用します。
10.5.4.1. クォーラムデバイス設定の変更 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
クォーラムデバイスの設定を変更するには、pcs quorum device update コマンドを使用します。
警告
クォーラムデバイスモデル
net
の ホスト
オプションを変更するには、旧ホストと新しいホストが同じマシンでない限り、pcs quorum device remove コマンドおよび pcs quorum device add コマンドを使用して設定を正しく設定します。
以下のコマンドは、クォーラムデバイスアルゴリズムを
lms
に変更します。
10.5.4.2. クォーラムデバイスの削除 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
以下のコマンドを使用して、クラスターノードに設定されたクォーラムデバイスを削除します。
クォーラムデバイスを削除すると、クォーラムデバイスの状態を表示するときに、次のエラーメッセージが表示されます。
[root@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@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
10.5.4.3. クォーラムデバイスの破棄 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
クォーラムデバイスホストのクォーラムデバイスを無効にするか停止して、設定ファイルをすべて削除するには、次のコマンドを実行します。