スマートスタイル TECH BLOG

データベース&クラウド技術情報

ClustrixDB Monitor – MaxScale 2.4 新機能

本記事は MariaDB Corporation より寄稿された記事となります

はじめに

2018年9月に MariaDB Corporation は Clustrix 社を買収しましたが,先日 GA となった MaxScale 2.4 では新機能として Clustrix Monitor が追加されました。
この新機能では,既存の MariaDB Monitor, Galera Monitor と同様にバックエンドのDBサーバの死活監視などを行い,Router サービスと連携してクエリのルーティング等を行うことが可能です。
今回は Clustrix Monitor の簡単な検証を行ってみます。

テスト環境

以下の構成でテストを実施しました。いずれのノードもOSは CentOS 7.6.1810 を用いています。

  • ClustrixDB 9.1.4 x 3 ノード
  • MaxScale 2.4.2 GA

MaxScale 2.4 設定

/etc/maxscale.cnf を以下のように設定します。Clustrix Monitor の module 名は clustrixmon となり,他の monitor と同様にモニターする DB サーバのリスト,接続ユーザ名,パスワードを設定します。

ClustrixDB ノードでは接続ユーザに以下の権限を与えておく必要があります。

  • system.nodeinfo
  • system.membership
  • system.softfailed_nodes

例えば,以下の GRANT 文で maxuser に各権限を与えることができます。

なお,同一クラスタ内の1ノードでユーザ設定を行えばよく,すべてのノードで同じ作業を行う必要はありません。

MaxScale の起動,各 ClustrixDB ノードのステータス確認

systemctl により MaxScale を起動します。

maxctrl list servers コマンドで各 server (ノード) のステータスを確認します。

各 CluxtrixDB ノードが正常に稼働している場合は,上記のような出力が得られます。デフォルト設定では,dynamic_node_detection が true(有効)になっており,動的に各ノードのリストが取得されます(ClustrixDBは分散DBで各ノードがクラスタ内のすべてのノードの存在を把握しているため)。

maxscale.cnf の clustrixmon セクションの設定において,以下のように dynamic_node_detection を false に設定すれば,動的にノード検出は行われず,maxscale.cnf の server セクションで指定したノードのみ表示されます。

maxctrl list servers の出力は以下のようになります。

ClustrixDB は分散RDBMSのため,すべてのノードに書込を行うことができ,そのため各ノードのステータスが Master となっています。

transaction_replay(master_reconnection)のテスト

transaction_replay に関するブログ投稿と同様に,定期的にテストテーブルに INSERT を行い,テスト途中で ClustrixDB 1 ノードをシャットダウン,master_reconnection が Clustrix Monitor でも機能するか確認してみます。

transaction_replay(master_reconnection)により,アプリケーション(テストスクリプト)側では ClustrixDB との接続が途切れることはありませんでした。rwsplit テーブルを確認してみます。

cluster_monitor_interval パラメータのデフォルト値が 60000 ms (1分間)と比較的大きい値となってるために,ID=11と12の間で2分強時間が空いていますが,アプリケーション側で再接続を行うことなく,継続的にデータ書きができていることが確認できました。

なお,ノードが停止している際は maxctrl list servers の出力は以下のようになります。

まとめ

今回は2019年8月にリリースされた MaxScale 2.4 の新機能,Clustrix Monitor の簡単な機能検証を行ってみました。 MariaDB Server と同様に master_reconnection が機能することが確認でき,これまで ClustrixDB では DB Proxy として HAProxy の利用を推奨してきましたが,MariaDB MaxScale を利用することが可能になったと言えます。


執筆者情報

後藤 智(GOTO Satoru)
2017年6月よりMariaDB CorporationにてAPAC(Asia Pacific)地域におけるプリセールス業務を主に担当。現在は主に日本を担当。
この執筆者の他の記事をよむ
Return Top