前回までのエントリー(コレとコレ)で、heartbeatのインストールとVIPの引継ぎができました。しかしそれだけじゃ冗長化には程遠いってのが人情。次は、apacheのサービスを引き継がせてみましょう。
■ httpdの停止
[重要]
heartbeatの設定をする前に、既存のhttpdを停止します。勿論、httpdの自動起動も停止しておきます。これは、今後httpdの起動停止をheartbeatがつかさどるためです。
[root@ishikari ~]# /etc/init.d/httpd stop
[root@ishikari ~]# chkconfig httpd off
[root@ishikari ~]# chkconfig httpd –list
httpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
↑
すべてのランレベルでoffになっていることを確認する。
※ 注意
yumでhttpdをインストールして、/etc/sysconfig/httpd ファイルを使って apache を worker モードで動かしている場合、heartbeat経由ではこの設定が失われてしまいます(preforkで動作してしまうってこと)。よって、 /usr/sbin/httpd を /usr/sbin/httpd.orig としてバックアップし、 /usr/sbin/httpd.worker へのシンボリックリンクとして /usr/sbin/httpd を設定すること。
例)
# mv /usr/sbin/httpd /usr/sbin/httpd.orig ; ln -s /usr/sbin/httpd.worker /usr/sbin/httpd
■ heartbeat停止
一旦両系でheartbeatを停止します。
[root@ishikari ~]# /etc/init.d/heartbeat stop
Stopping High-Availability services:
[ OK ]
■ httpd監視設定を行う
[root@ishikari ~]# cd /var/lib/heartbeat/crm/
※ すべてのファイルをバックアップする
[root@ishikari crm]# tar czf cib.tar.gz *
※ cib.xml.last cib.xml.sig cib.xml.sig.last を削除する
[root@ishikari crm]# rm -f cib.xml.last cib.xml.sig cib.xml.sig.last
cib.xml を編集する
[root@ishikari crm]# vi cib.xml
まず、<nodes>タグの直下にある、<resources>の閉じタグ「<resources/>」を削除します。(そもそも閉じタグだけで、<resources> タグが開始されていないが・・・)
※ ここを
<nodes>
<node id=”12979f53-e6ec-40f0-a7c2-66dfadf286ba” uname=”sorachi.in.example.com” type=”normal”/>
<node id=”82d27f7b-4e9a-478e-bcc1-80da0140a4a7″ uname=”ishikari.in.example.com” type=”normal”/>
</nodes>
<resources/>
※ こうする
<nodes>
<node id=”12979f53-e6ec-40f0-a7c2-66dfadf286ba” uname=”sorachi.in.example.com” type=”normal”/>
<node id=”82d27f7b-4e9a-478e-bcc1-80da0140a4a7″ uname=”ishikari.in.example.com” type=”normal”/>
</nodes>
次に、<nodes>タグの直下に、以下を追記します。
ココで投入する固有の値は「group_apache(どうやらグループの名前は何でもよいっぽい)」「192.168.0.200(httpをlistenするVIPの値)」「eth0(VIPをeth0インターフェイスのエイリアスにする)」「24(サブネットマスクのビット数)」「/etc/httpd/conf/httpd.conf(httpd.confのフルパス)」です。
<resources>
<group id=”group_apache”>
<primitive id=”ipaddr” class=”ocf” type=”IPaddr” provider=”heartbeat”>
<instance_attributes id=”ia_ipaddr”>
<attributes>
<nvpair id=”ia_ipaddr_ip” name=”ip” value=”192.168.0.200″/>
<nvpair id=”ia_ipaddr_nic” name=”nic” value=”eth0″/>
<nvpair id=”ia_ipaddr_netmask” name=”netmask” value=”24″/>
</attributes>
</instance_attributes>
</primitive>
<primitive id=”apache” class=”ocf” type=”apache” provider=”heartbeat”>
<instance_attributes id=”ia_apache”>
<attributes>
<nvpair id=”ia_apache_configfile” name=”configfile” value=”/etc/httpd/conf/httpd.conf”/>
</attributes>
</instance_attributes>
</primitive>
</group>
</resources>
以上の設定が終わったら保存します。
■ httpd.confを修正する
[root@ishikari crm]# cd /etc/httpd/conf
[root@ishikari conf]# cp -p httpd.conf httpd.conf.20090104
[root@ishikari conf]# vi httpd.conf
※ ここを
Listen 80
※ こうする
Listen 192.168.0.200:80
※ ここを
#<Location /server-status>
# SetHandler server-status
# Order deny,allow
# Deny from all
# Allow from .example.com
#</Location>
※ こうする
<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from 192.168.0
</Location>
■ heartbeatを起動する
[root@ishikari ~]# /etc/init.d/heartbeat start
Starting High-Availability services:
[ OK ]
[root@sorachi ~]# /etc/init.d/heartbeat start
Starting High-Availability services:
[ OK ]
■ 起動後の確認
しばらく時間をおいて、両系にて監視コマンドを実行します。以下のよう
No comment