ZABBIX+Pacemaker+GlusterFS+nginx+php-fpmとかやってはまったこと
ZABBIXを冗長化しようと思ってます。で、どうせだからApacheが地味にメモリ食うのも嫌だし流行ってる?nginxを使ったり、DB冗長化に分散ファイルシステムでお手軽同期しようと思ったりしてはまったことをつらつら書いときます。
参考1.DRBD、Heartbeat、Pacemaker によるZabbix サーバの HA クラスタ構築
参考2.MySQLデータディレクトリの変更 - インフラ検証覚書
構成
作った大体の順番
- 1号機目を適当にRHEL6.4インストール
- yumのリポジトリとしてepelとかzabbixとかnginxとかrhel-optionalとか追加
- mysqlをyumでインストール
- nginxをyumでインストール
- PHPとphp-fpmもインストール
- GlusterFSをrpmからインストール
- ここで2号機にクローンしてIPなど初期設定、GlusterFSボリューム追加
- /var/lib/mysqlを削除し、GlusterFSボリュームで置き換え、mysql初期化
- ZABBIX用のmysql初期化実施(両方)
- WebアクセスしてZABBIX初期インストール(両方)
- pacemakerとheartbeatインストールし、クラスタ設定(両方)
はまったこと
GlusterFSが自動マウントしてくれない等
GlusterFSのマウントをfstabに書いても全然マウントしてくれない。_netdevって書いてるんですがそれでもダメ。またマウントするとマウントポイントの所有が確実にrootになってしまい、DBアクセスできなくなる。
pacemakerのせいでmysqlを遅延起動にできてるという面もあるので、結局/etc/rc.localに以下のように記述することで解決した。
mount -t glusterfs localhost:/mysql /var/lib/mysql chown mysql.mysql /var/lib/mysql