Pacemakerを用いてのMaxscaleのHA化についてあったので、試してみる事にした。7を用い、Maxscaleはインストール済、SELinuxとFirewalldは無効化済とする。同じHAのカテゴリとしてLsyncdを用いる手法も紹介されていたが、正直これは単にmaxscale.confを自動同期させるだけでそこまで役に立つものでもないので無視する。Pacemakerをインストールする。fence-agents-allこれで、パッケージのインストールが出来た。Pacemakerの設定を行う。各ノードでホスト名での通信が行えるよう、hostsでIPアドレスとホスト名の紐付けを行う。この際、自分自身には「current-node」という名称も付与する。ホスト名が「BS-PUB-GFRONT-01」~「BS-PUB-GFRONT-03」まであったと仮定すると、hostsは以下のようになる。current-nodehostsの設定が終わったら、各ノードでcorosyncで用いられるユーザ「hacluster」のパスワード設定を行う。hacluster以下のコマンドを実行し、corosync及びpcsdを起動させる。pcsdサービス起動後、以下のコマンドでcorosyncのノード認証を実施し、クラスタを作成・起動する。Cluster...クラスタ起動後、しばらくしてから以下のコマンドを実行し、ステータス確認を行う。active/enabledクラスタが正常に構成されたことを確認したら、以下のコマンドを実行し設定を追加する。Links次に、以下のコマンドでmaxscaleのヘルスチェック関連の設定を追加する。expected-quorum-votes=3設定追加後、再度ステータスを確認する。BS-PUB-GFRONT-03これで、クラスタの基本的な設定が完了した。次に、maxscaleクラスタで仮想IPを設定することで、共通のIPアドレスを指定しておけばノード障害が発生してもフェイルオーバーが発生するだけで済むようにする。クラスタ構成ノードで、以下のコマンドを実行する。MaxScale上記コマンド実行後、ステータスを確認すると以下のようになっている。BS-PUB-GFRONT-01これで、クラスタで共通で利用される仮想IPの設定ができた。この仮想IPからmaxscaleに接続するにあたり、以下の設定を書き換える必要があるので注意。[(none)]>なお、フェイルオーバーした際は自動的に元のマスターノードに戻らないので注意。何かメンテナンスがある際は、ちゃんと直前にどこかマスターになっているのか確認すること。BS-PUB-GFRONT-02これで、無事にMaxscaleの冗長化設定ができた。動作としては、Active-Stanbyとなってしまうのだが、LB専用VMとしてMaxscaleを構築するのであれば、冗長化の一つの方法になるだろう。blacknonインフラエンジニア(...のつもり)。仕事で使うならクライアントはWindowsよりはUNIXの方が好き。Commentコメントをキャンセルメールアドレスが公開されることはありません。