質問: 前提と問題 ------ LVS keepalived で DSR のロードバランシングを行っています。 ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/b93ef04f25c954e92ea1f8ae670f183c.png) 上図のように apache, mysql(クラスタリング) を同居させたリアルサーバが2台あり、冗長化しています。 ブラウザからは http://192.168.1.5/ にアクセスすることでapacheへのアクセスがロードバランシングされ、apache からは mysql://192.168.1.5/ にアクセスすることにより、mysql接続がロードバランシングされます。 この冗長化により、いずれかのサーバがダウンしても稼働を継続させることができます。 **問題としては、上図の 192.168.1.4 から VIPである 192.168.1.5 に対してアクセスを行った場合、192.168.1.4 自身が自分でパケットを受け取り処理していまうことです。** 具体的な例 ------ 例えば、 192.168.1.4 の apache は生きているが、mysql がダウンした場合、 192.168.1.4 の apache から VIPである 192.168.1.5 に対してアクセスしますが、そのパケットを 192.168.1.4 自身が受け取り、処理しようとしてしまいます。 当然、 192.168.1.4 の mysql はダウンしているため、応答しません。 --- 片系の mysql のみがダウンした場合でもサービスを継続できるような方法がありましたら教えてください。 お力をお貸しいただければ幸いです。
回答: 昔、似たような状況になったことがあって、Apache httpdとMySQLの間にHAProxyを入れることによって解決しました。 (そしてその時はHAProxyを入れたことと前段にロードバランサがあったことによってkeepalivedは要らない、という結論になってしまったのですが)