2019年6月9日日曜日

クラスタパラメータ設定

ここまで設定できれば、ブラウザからもアクセス出来ると思う。
ブラウザを起動して、https://(sagittariusかaquariusのIP):2224/ にアクセスすれば、ブラウザから設定確認や設定変更が出来るんじゃないか?
と思ったけど、pcsd(ブラウザでアクセスする先のサービス)に、今回のクラスタを組み込ませていなかった。
ブラウザでアクセスし、Add Existing から組み込んでおこう。設定をブラウザから確認できるのはなんだかんだ便利だ。

クラスタの基本パラメータを設定しておこう。
今作っているクラスタは2Nodeで、既にcorosync.confには2Nodeパラメータは設定されている。
設定しておきたいのは
  • 片方落ちていて、片方しか動かせない時の起動時状態
  • スプリットブレイン時に働くstonithをどうするか?
  • スプリットブレインが発生した時の各ノードグループの動作
の3点。
今回の構成的には、
ハートビート/Stonith用のLANは存在しない。(サービスLANと共有)
ストレージはiSCSIで、専用LANは無い。(サービスLANと共有)
だ。
そもそもスプリットブレインが発生するシチュエーションはほとんど無い。
そのため、後者2点はほとんど考えなくて良いのだが、一応設定しておく。

まずは1点目。
ただ、これを実行すると、作ったクラスタが破壊されて再構築される。今はまだ何も設定していないから大丈夫なはずだ。
(sagittarius) $ sudo pcs cluster setup --name kvmcluster sagittarius aquarius --wait_for_all=0 --force
(sagittarius) $ sudo pcs cluster start --all
(sagittarius) $ sudo pcs cluster enable
せっかく作ったクラスタが破壊されて作り直されるのが嫌なら、以下の手順だ。
(sagittarius) $ sudo pcs cluster stop --all
(sagittarius) $ sudo vi /etc/corosync/corosync.conf
-----
two_node: 1 の上に、以下の行を追加する。
wait_for_all: 0
-----
(sagittarius) $ sudo pcs cluster sync
(aquarius) $ sudo cat /etc/corosync/corosync.conf
wait_for_all:0 が反映されているのを確認する。

wait_for_all の設定が出来たら、反映を確認しておこう。
$ sudo corosync-quorumtool -s
Flags に有ったはずの WaitForAll が無くなったはずだ。

これで、片方故障していても、起動停止出来るはずだ。
試してみよう。
(sagittarius) $ sudo pcs cluster stop aquarius --force
(sagittarius) $ sudo pcs status
aquariusが切り離されたはず。
(sagittarius) $ sudo pcs cluster stop sagittarius --force
(sagittarius) $ sudo pcs status
クラスタダウンしている。
(sagittarius) $ sudo pcs cluster start sagittarius
(sagittarius) $ sudo pcs cluster enable sagittarius
(sagittarius) $ sudo pcs status
1ノード(sagittarius)のみでも、partition with quorum になったはずだ。
(sagittarius) $ sudo corosync-quorumtool -s
Quorate が Yes のはず。
これで「片方落ちていて、片方しか動かせない時の起動状態」の設定が完了。

次は stonith だ。過去には色々検証したが、今の構成だと stonith はあまり意味が無いと思われるので、無効化してしまう。
$ sudo pcs property show --all
stonith-enabled: が true になっているはずだ。
これを無効化してしまおう。
$ sudo pcs property set stonith-enabled=false
$ sudo pcs property show --all
stonith-enabled: が false に変わったのが確認できるはずだ。

と思ったのだが、stonith-enabled が falseの場合、dlm や dlmに依存するリソース(clvmやgfs2)が起動できなくなるようだ。
ということで、デフォルトに戻しておこう。
$ sudo pcs property set stonith-enabled=
$ sudo pcs property show --all
これでデフォルト(true)に戻った。

ってことは、fence-device も定義しないとアカンのかなー。

最後に、スプリットブレイン(というか、2ノードなのでクォーラムロストか)が発生した時の挙動だ。
$ sudo pcs property show --all
no-quorum-policy: が stop に設定されている。これを freeze に設定し直す。
$ sudo pcs property set no-quorum-policy=freeze
$ sudo pcs property show --all
設定が変わったのが確認できる。
ちなみに、no-quorum-policyは、stop/freeze/ignore/suicide の4つが指定出来るようだ。

これで、基本的な初期パラメータ設定はおしまいかな。

0 件のコメント:

コメントを投稿