前回までのエントリー(コレコレ)で、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


Name


Email (will not pubblished)


Website/URL