構築方法メモ
今回はメールシステムを組んだ時以来の難航作業だった(´・ω:;.:…
というのも、何処を探してもPacemaker+HeartBeatの構成は見つかるのだが、
具体的なPacemaker+Corosyncの構成が見つからなかった。
なんでCorosyncに拘ったのかと言うと、今回の構築ディストリがCentOS7であり、
yumで突っ込めるのがPacemaker+Corosyncだった為。
「yumでバイナリが用意されている = ソースから入れる事も可能」という安直な発想から突撃をしてみた。
その結果、1からドキュメントを読み直し、ソースをビルドし、ミドルウェアを連携させ、
コンフィグとinit(systemd)も自作するという果てしない道のりを歩んでしまった。
一番大変だったのは、Corosyncのビルド。はい。初っぱなから躓きました…
自分はソースビルドを行う時はprefix指定を行い、その中に全部突っ込むやり方をよくやるのだが、
Corosync+Pacemakerの場合は一部インストールディレクトリを変更してやる必要があった。
また、今回使うミドルウェア群はローレベルで読み込ませる必要もある為、
バイナリも"/usr/sbin"から拾える状態にする必要があったりと、
今までに自分の経験した事の無い構築手法をやる必要が出てきてしまった。
結果としては、prefix指定を行いながらも"/usr/sbin"からシンボリックリンクを張る方向で
なんとか落ち着かせる事ができ、バージョン管理(切り戻しなど)も行える構成に持って行けた。
………
冗長構成を組む際、本来ならインターリンクを使って本気で作ってやる必要があるのだが、
今回はNICが物理的に足りなかったり、単純な負荷分散装置としてProxy以外でも使いたかった為、
敢えて1物理鯖1NIC構成で構築を行った。結果として、これがまた面倒な事になった……(´・ω・`)
Pacemakerでインターリンクを使わない場合、クラスタノードを探しだす処理にマルチキャストを使うのだが、
"ns-lab BB"の鯖では諸事情でマルチキャストを全遮断しているので、上記の構成が使えなかった。
その為、今回はユニキャストによる決め打ちでノードを探し出す設定に変更。
ユニキャストの設定方法は色々と見つかり、例を元にアレンジも加えつつコンフィグ作成を行ったのだが、
いざPacemakerとCorosyncを起動してもcrmshでノードが拾えないという始末。
駄目だった原因はcrmshより上位層である、
そもそものPacemaker+Corosync連携でミスっていたという悲劇。
この原因を突き止める為に3週間くらいかかってしまった。
………
そんなこんなでcrmshとpcsのどっちを使うか問題とか、
Pacemakerで割り当てたEIPにping送っても戻りが無くて、(´・ω・`)としていたりとか、
色々と回り道をしつつも、なんとか冗長負荷分散Proxyを常用可能なレベルまで持っていく事が出来た。
冗長構成+負荷分散を一度でも構築した経験があれば、
NAT環境下でのサーバ冗長化も工夫次第で作れるし、色々と良い経験になった。
"ns-lab BB"配下は、シングル構成なシステムも何個かあるので、
これを気にシングル構成脱却を行っていきたい所。
« 続きを隠す