AR ホームベーカリー

オイラのアウトプット用ホームベーカリー!

The cluster configuration is not yet confirmed by all defined management servers. This management server is still waiting for node X to connect.

タイトル長いけどエラー全文貼るとググラビリティ上がるかもしれないから許してクレメンス。

1000日(位?)以上連続稼働で無停止の MySQL Cluster をメンテした時の話

ということで。確か 1100 日位動いてたと思うけどもしかしたらオイラの勘違いでまだ 1000 日連続稼働してないかも。

メンテナンスの主目的も API ノードのサーバ筐体更新だったですけどね。ちなみに MySQL Cluster 7.2 系です。いくつが致命的なバグあるし 7.3 にアップデートしようか、って話もあって検証もしたんだけど諸般の都合で闇に葬られたりしました。わりと悲しみを背負うなど。

停止してリブート投入した

構成は以下の様にお読み替えください。今回は主系の ndb_mgm CLI で操作しました。

※そもそも MGM ノードは常時起動しなくてよいし、複数持つのはナンセンスじゃない?というご指摘もあるかと思いますが、そこはスルーしてクレメンス。

主系

  • ホスト名 : mgm-node-01
  • server-id : 1

待機系

  • ホスト名 : mgm-node-02
  • server-id : 2
[root@mgm-node-01 ~]# ndb_mgm
ndb_mgm> all stop
ndb_mgm> 2 stop
ndb_mgm> 1 stop
ndb_mgm> exit
[root@mgm-node-01 ~]# ndb_mgmd -f /PATH/TO/CONFIG/config.ini --reload
[root@mgm-node-01 ~]# ndb_mgm
-- NDB Cluster -- Management Client --
ndb_mgm> show
Connected to Management Server at: 114.5.1.4:1186
ERROR Message: The cluster configuration is not yet confirmed by all defined management servers. This management server is still waiting for node 2 to connect.

Could not get configuration
*  4012: Failed to get configuration
*        The cluster configuration is not yet confirmed by all defined management servers. This management server is still waiting for node 2 to connect.

アイエエエナンデー?!

すべての MGM ノード接続を待機すゆ

結果はタイトルどおりで、主系の MGM ノードは起動してるので認識できるけど、待機系の MGM ノードが起動してないので認識できず「接続来るまで待つよ〜」という状態です。show 叩けないのは致命的なので立ち上げましょう。

[root@mgm-node-02 ~]# ndb_mgmd -f /PATH/TO/CONFIG/config.ini --reload

立ち上がったので mgm-node-01/02 それぞれから show してみましょう。

[root@mgm-node-01 ~]# ndb_mgm
ndb_mgm> show
Connected to Management Server at: 114.5.1.4:1186
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)

...

[ndb_mgmd(MGM)] 2 node(s)
id=1    @114.5.1.4  (mysql-5.5.30 ndb-7.2.12)
id=2    @114.5.1.5  (mysql-5.5.30 ndb-7.2.12)

...

[root@mgm-node-02 ~]# ndb_mgm
ndb_mgm> show
Connected to Management Server at: 114.5.1.4:1186
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)

...

[ndb_mgmd(MGM)] 2 node(s)
id=1    @114.5.1.4  (mysql-5.5.30 ndb-7.2.12)
id=2    @114.5.1.5  (mysql-5.5.30 ndb-7.2.12)

...

ndb_connectstring = 114.5.1.4, 114.5.1.5 にしてあるので、どちらの CLI からも主系に接続されてしまいましたが、無事 show できましたね。 解説なんかを見ても「MGM ノードは一つでいいし常時起動しなくていい(インスタンス操作するときに立ち上げればいいよ)」と言われるのは多分こういうことなのかなー、いや多分ちゃうやろな、という事でひとつ。