質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Q&A

解決済

1回答

5680閲覧

keepalivedによるMySQLの死活監視

just

総合スコア90

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

0グッド

0クリップ

投稿2016/03/11 09:46

お世話になります。
標題の件、keepalivedを使ってDBサーバ2台の冗長構成を実現したいと考えております。
マスタ側のMySQLのサービスがシャットダウンしたとき、
仮想IPアドレスをスレイブ側に移したいのですが上手くいきません。
設定の不備等があればご指摘いただけますでしょうか。
設定はDBサーバ1(192.168.186.131)、DBサーバ2(192.168.186.132)で同様です。

・/etc/keepalived/keepalived.conf

! Configuration File for keepalived global_defs { notification_email { acassen@firewall.loc failover@firewall.loc sysadmin@firewall.loc } notification_email_from Alexandre.Cassen@firewall.loc smtp_server 192.168.200.1 smtp_connect_timeout 30 router_id LVS_DEVEL } vrrp_instance VI_1 { state BACKUP interface eth0 nopreempt virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.186.200/24 } } virtual_server 192.168.186.200 3306 { delay_loop 3 lvs_sched lc lvs_method DR nat_mask 255.255.255.0 protocol TCP real_server 192.168.186.131 3306 { weight 1 TCP_CHECK { connect_port 3306 connect_timeout 10 } notify_down "/usr/local/shutdown_keepalived.sh" } real_server 192.168.186.132 3306 { weight 1 TCP_CHECK { connect_port 3306 connect_timeout 10 } notify_down "/usr/local/shutdown_keepalived.sh" } }

よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TaichiYanagiya

2016/03/11 17:01

OS の種類、バージョン、keepalived のバージョン、および、shutdown_keepalived.sh の内容を教えてください。自ノードの MySQL の監視に失敗した場合のみ keepalived を停止させ、相手ノードの MySQL の監視に失敗した場合は何もしない? また、real_server が 2つありますが、DB を Active-Active にしたいのですか? それとも Active-Standby にしたいのですか?
guest

回答1

0

ベストアンサー

もし、TCP_CHECK で死活監視に失敗したときに実行される shutdown_keepalived.sh が、単純に自ノードの keepalived を停止するのであれば、MySQL が停止すると両ノードの keepalived が停止してしまい、VIP が付かないのではないでしょうか。

DB 2台に負荷分散したい場合

HAクラスタソフトではなく、LVS を使っているということは、マルチマスターまたは双方向レプリケーションの Read を負荷分散したいのだと推測します。

DBサーバー1 の MySQL が停止した場合に、DBサーバー1 の keepalived だけが停止するよう、notify_down を片側のみに設定すればいいのではないでしょうか。

(DBサーバー1) virtual_server 192.168.186.200 3306 { (略) real_server 192.168.186.131 3306 { (略) notify_down "/usr/local/shutdown_keepalived.sh" } real_server 192.168.186.132 3306 { (略) # notify_down は設定しない } } (DBサーバー2) virtual_server 192.168.186.200 3306 { (略) real_server 192.168.186.131 3306 { (略) # notify_down は設定しない } real_server 192.168.186.132 3306 { (略) notify_down "/usr/local/shutdown_keepalived.sh" } }

DB 1台のみにアクセスを寄せ、VIP のみ切り替えたい場合

双方向レプリケーションなどで、Active-Active だけれども接続は 1台だけにしたい場合は、real_server を 1つだけ(自ノードだけ)設定します。

(DBサーバー1) virtual_server 192.168.186.200 3306 { (略) real_server 192.168.186.131 3306 { (略) notify_down "/usr/local/shutdown_keepalived.sh" } # real_server 192.168.186.132 は設定しない } (DBサーバー2) virtual_server 192.168.186.200 3306 { (略) real_server 192.168.186.132 3306 { (略) notify_down "/usr/local/shutdown_keepalived.sh" } # real_server 192.168.186.131 は設定しない }

負荷分散しないのであれば、pacemaker + corosync などの HAクラスタソフトでもいいと思います(mysql リソースは clone で両ノードで起動・監視し、vip と constraint で制約を付ける)。

投稿2016/03/12 03:13

TaichiYanagiya

総合スコア12146

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

just

2016/03/14 01:33

回答ありがとうございます。 ご質問に対してもう一度設定を確認したところ、/usr/local/shutdown_keepalived.shの内容に不備があったことがわかりました。 やりたいことは「DB 1台のみにアクセスを寄せ、VIP のみ切り替えたい場合」ですのでconfファイルの設定も変更しました。 ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問