Database JUNKY

MySQL,MariaDBを中心としたブログです

amazon linux でgalera clusterを運用する時の注意点

あー。。別にamazon linuxに絞り込む必要はないのですが。もう、ec2以外ではそんなにやる気ないなーって思うので、備忘録がわりに残しておきます。

f:id:hit10231023:20170905173531j:plain

起動失敗ってエラーがでることがあるけど、気にしない。

Galera Cluster for MySQL に限った話かもしれないけど、例えばメンテナンスなどで一部ノードを停止して、しばらくしたら、起動しようとする時に、エラーが出る時があります。基本、起動中に、再同期をかけるものと思うのですが、MySQLの起動スクリプト側がエラーをコンソールに出力します。ここで慌てないでください。

# ps -efw | grep mysql

上記確認で、rsyncの文字があったら、慌てないでしばらく待ちましょう。mysqlには基本接続できるような状態ですので、設定を見直す必要はありません

同期(sync)できない時は、ポートを疑う

SGの設定でインバウンドにて、以下のポートが解放されているか確認すること

* tcp:4568  : snapshot state transfer用 
* tcp:4567  : node間の同期用 
* tcp:4444  : データのrsync 

障害検知

そのまま運用していると、本当に同期とれてんのか心配になってきます。じゃあ、何を見れば安心なのという話自体、突き詰めるとキリがないので(笑)これだけ見ましょう

# mysql -uadmin -ppasswwwrod -helb-node01 -e "show global status like 'wsrep_ready'"
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| wsrep_ready   | ON    |
+---------------+-------+

ここの値が、ONの場合は、正常でOFFの場合は、なんらかの要因により停止。。。といった感じになります。 nagios等で監視している場合は、これだけ見ればいいかも。ちなみに、通常のMySQLの監視項目はそのままやっておきましょう。

ELBのヘルスチェックは要注意!!

tcp: 3306をヘルスチェックしてしまうと、こんなエラーが連発します

QLSTATE[HY000] [1129] Host ‘10.0.77.11’ is blocked because of many connection errors; unblock with ‘mysqladmin flush-hosts’

リクエストあ多く、以降の接続はブロックしちゃったよとなり、flush hosts を実行しない限り接続できません。 端的にいうと、elbのヘルスチェックで、3306を使うのはやめておきましょう。