renay****@ybb*****
renay****@ybb*****
2015年 6月 4日 (木) 08:19:14 JST
金城さん こんにちは、山内です。 eth0の停止不良ということは、以下のvip1リソースに故障を起こして、 stopに失敗している状態と思います。 > primitive vip1 ocf:heartbeat:IPaddr2 \ > params \ > ip="10.0.2.10" \ > nic="eth0" \ > cidr_netmask="24" \ > op start interval="0s" timeout="60s" > on-fail="restart" \ > op monitor interval="10s" timeout="60s" > on-fail="restart" \ > op stop interval="0s" timeout="60s" > on-fail="block" この場合、stopのon-fail="block"ですので、stopに失敗するとFO(MySQLのSlaveはMasterに昇格されない)しません。 #on-fail="block"は、そのままで何もしない。 #on-fail="ignore"は、失敗を無視して処理を継続。 #on-fail="restart"は、stop->startを実行。 #on-fail="fence"は、stonithを実行。 on-fail="fence"に設定して、stonithリソースの導入を検討して頂くか、 on-fail="ignore"に設定して、VIPcheckリソースを先頭リソースとして採用して頂くなどの対応が必要です。 #on-fail="ignore"でVIPcheckを採用した場合、eth0の故障で、実際にvip1が外れていなかった場合には、Slaveノードからvip1に疎通が取れる為、やはりFOに失敗しますが、 #Master側のeth0がハード故障などで、Slaveノードからvip1に疎通が取れない場合にはFO可能です。 設定に関しては、MLやLinuxha-japanの資料に記載があったと思います。 以上です。 ----- Original Message ----- > From: Yoshiki Kinjo <yossr****@gmail*****> > To: Linux****@lists***** > Cc: > Date: 2015/6/3, Wed 17:22 > Subject: [Linux-ha-jp] DBのMaster/Slaveセットと仮想IPの同居について > > お世話になります。金城と申します。 > > 下記の環境において、DBサーバのMaster/Slaveセットの内、 > Master側のネットワークに何かしらの不良(断線やIF故障)があった場合に、 > SlaveをMasterに昇格させたいのですが、eth0に不良があった場合に > 仮想IP(vip1)が停止せず、MySQLのSlaveはMasterに昇格されない > 状態です。 > > 原因や解決策をご存知であれば、ご教授頂けますでしょうか。 > (場合によってはVIPcheckなど他のリソースが必要と考えていますが、 > 何を選択すべきか、調べたものの、今ひとつ分かっていません。) > > お手数をお掛けして申し訳ありませんが、宜しくお願い致します。 > 以下、詳細です。 > > > [要件] > CentOSサーバ2台でMySQLのMaster/Slaveセットを構築する。 > 各ノードにはネットワークIFが2枚(eth0/eth1)装備されており、 > それぞれに仮想IPを設定する。 > 他のホストからのアクセスの際は仮想IP経由でMaster側へアクセスする。 > > 各ネットワークIFの役割は下記の通り。 > eth0:外部サービスとの連携 > eth1:内部ネットワーク内の接続(Webアプリからの接続等) > > > [環境] ※テスト用に仮想環境を構築 > CentOS 6.6(64bit) > pacemaker 1.1.12-1.el6 > corosync 2.3.4-1.el6 > MySQL 5.6.24-1.el6 > > (host1) > eth0: 10.0.2.11/24 > eth1: 192.168.56.11/24 > > (host2) > eth0: 10.0.2.12/24 > eth1: 192.168.56.12/24 > > eth0には仮想IPアドレス"10.0.2.10"を、 > eth1には仮想IPアドレス"192.168.56.10"を付与する。 > > > [host1にてifconfig eth0 downを実行した結果(一部省略)] > # crm_mon -fA1 > Online: [ host1 host2 ] > > Resource Group: grpNetwork > vip1 (ocf::heartbeat:IPaddr2): Started host1 ←停止するのを期待 > vip2 (ocf::heartbeat:IPaddr2): Started host1 > mailto (ocf::private:MailTo): Started host1 > Master/Slave Set: msMysql [mysql] > Masters: [ host1 ] > Slaves: [ host2 ] > > > [設定(etc/corosync/corosync.conf)] > totem { > version: 2 > > crypto_cipher: none > crypto_hash: none > rrp_mode:active > > interface { > ringnumber: 0 > bindnetaddr: 192.168.56.0 > mcastport: 5405 > ttl: 1 > } > interface { > ringnumber: 1 > bindnetaddr: 10.0.2.0 > mcastport: 5405 > ttl: 1 > } > transport: udpu > } > > logging { > fileline: off > to_logfile: yes > to_syslog: no > logfile: /var/log/cluster/corosync.log > debug: off > timestamp: on > logger_subsys { > subsys: QUORUM > debug: off > } > } > > nodelist { > node { > ring0_addr: 192.168.56.11 > nodeid: 1 > } > > node { > ring0_addr: 192.168.56.12 > nodeid: 2 > } > } > > quorum { > # Enable and configure quorum subsystem (default: off) > # see also corosync.conf.5 and votequorum.5 > provider: corosync_votequorum > expected_votes: 2 > } > > > [設定(crm configureコマンドを用いてインポートしたテキスト)] > ### Cluster Option ### > property no-quorum-policy="ignore" \ > stonith-enabled="false" \ > startup-fencing="false" > > ### Resource Defaults ### > rsc_defaults resource-stickiness="INFINITY" \ > migration-threshold="1" > > ### Group Configuration ### > group grpNetwork \ > vip1 \ > vip2 > > ### Clone Configuration ### > > ### Master/Slave Configuration ### > ms msMysql mysql \ > meta \ > master-max="1" \ > master-node-max="1" \ > clone-max="2" \ > clone-node-max="1" \ > notify="true" > > ### Fencing Topology ### > > ### Primitive Configuration ### > primitive vip1 ocf:heartbeat:IPaddr2 \ > params \ > ip="10.0.2.10" \ > nic="eth0" \ > cidr_netmask="24" \ > op start interval="0s" timeout="60s" > on-fail="restart" \ > op monitor interval="10s" timeout="60s" > on-fail="restart" \ > op stop interval="0s" timeout="60s" > on-fail="block" > > primitive vip2 ocf:heartbeat:IPaddr2 \ > params \ > ip="192.168.56.10" \ > nic="eth1" \ > cidr_netmask="24" \ > op start interval="0s" timeout="60s" > on-fail="restart" \ > op monitor interval="10s" timeout="60s" > on-fail="restart" \ > op stop interval="0s" timeout="60s" > on-fail="block" > > primitive mysql ocf:private:mysql56 \ > params \ > binary="/usr/bin/mysqld_safe" \ > pid="/var/run/mysqld/mysqld.pid" \ > replication_user="****" \ > replication_passwd="****" \ > op start interval="0s" timeout="120s" > on-fail="restart" \ > op stop interval="0s" timeout="120s" > on-fail="block" \ > op monitor interval="20s" timeout="30s" > on-fail="restart" \ > op monitor interval="10s" timeout="30s" > on-fail="restart" role="Master" \ > op monitor interval="30s" timeout="30s" > on-fail="restart" role="Slave" \ > op promote interval="0s" timeout="120s" > on-fail="restart" \ > op demote interval="0s" timeout="120s" > on-fail="stop" \ > op notify interval="0s" timeout="90s" > > ### Resource Location ### > > ### Resource Colocation ### > colocation colocation-1 inf: grpNetwork msMysql:Master > > ### Resource Order ### > order order-1 inf: msMysql:promote grpNetwork:start symmetrical=false > order order-2 0: msMysql:demote grpNetwork:stop symmetrical=false > > > [特記事項] > ・設定内容の記述中のMySQLのログイン情報はマスクしております。 > ・MySQLのリソースエージェントは、標準のもの(ocf:heartbeat:mysql)が > v5.6に対応していない様で、カスタマイズしたものを使用しておりますが、 > 今回の「仮想IP(vip1)が停止しない」という現象とは直接的な関係が > 考えにくいため、カスタマイズの詳細は一旦割愛します。 > _______________________________________________ > Linux-ha-japan mailing list > Linux****@lists***** > http://lists.osdn.me/mailman/listinfo/linux-ha-japan >