デバイス一括監視機能は、Xen仮想環境上において Heartbeat 2.1.4 によるクラスタリングを構築する場合に使用できます。 Domain-Uで行っていたディスクデバイスやネットワークデバイスの監視をDomain-0で一括監視し、Domain-Uはデバイスの状態をDomain-0との通信によって把握する機能です。
デバイス一括監視機能は、ログデーモン監視機能(Domain-0用)を併用することでha-logにログを出力することができます。
ログデーモン監視機能(Domain-0用)のリリースのファイルを表示
デバイス一括監視機能によって、Domain-Uでデバイスを監視している場合に発生する以下の問題点を回避することができます。
デバイス一括監視機能のモジュール一覧は以下になります。
モジュール名 | 機能概要 | 起動ドメイン |
hb_vmmom_client | hb_vmmonitorにデバイス監視結果の問い合わせを行う | Domain-U |
hb_vmmonitor | デバイス監視デーモン(pingd、diskd)の監視やhb_vmmom_clientとの通信を行う | Domain-0 |
diskd | 一定間隔で指定されたディスクにアクセスすることによりディスクの正常性を監視する | Domain-0 |
pingd | ネットワーク状態を監視(指定されたIPアドレスに対してネットワーク疎通を確認)する | Domain-0 |
ここでは、デバイス監視に内蔵ディスクを行った場合のインストール方法例を説明します。 Domain-0は、既にOSインストールや仮想ネットワークの設定などの基本設定が終わっていることを前提として説明します。
ACTノード側Domain-0、SBYノード側Domain-0両方で、以下のインストールを行います。 ここでは図1の例で、ACTノード側Domain-0である dom0_1へのインストール例を記述します。
Domain-0でのOS上のグループ、および、ユーザを作成し、パスワードを設定します。
dom0_1# groupadd -g 90 haclient dom0_1# useradd -u 90 -g haclient -c HACLUSTER -d /home/hacluster -s /bin/bash -m hacluster dom0_1# passwd hacluster Changing password for user hacluster. New password: (任意のパスワードを入力) Retype new password: (上記と同じパスワードを入力) passwd: all authentication tokens updated successfully.
デバイス一括監視機能のインストールには、Domain-0へのHeartbeat本体のインストールも必要です。 Heartbeat本体(rpmファイル)を任意のディレクトリに配置し、以下の順序でインストールを行います。
dom0_1# rpm -ivh pils-2.1.4-1.x86_64.rpm Preparing... ########################################### [100%] 1:pils ########################################### [100%] dom0_1# rpm -ivh stonith-2.1.4-1.x86_64.rpm Preparing... ########################################### [100%] 1:stonith ########################################### [100%] dom0_1# rpm -ivh heartbeat-2.1.4-1.x86_64.rpm Preparing... ########################################### [100%] 1:heartbeat ########################################### [100%]
デバイス一括監視機能のrpmファイルを任意のディレクトリに配置し、以下の通りインストールを行います。
dom0_1# rpm -ivh hb-vmmonitor-1.00-1.el5.x86_64.rpm Preparing... ########################################### [100%] 1:hb-vmmonitor ########################################### [100%]
ログデーモン監視機能とは、Domain-0上でhb_vmmonitorが出力するログメッセージをha-logに出力するために、ha-logdの起動や監視を行う機能です。
ログデーモン監視機能のrpmファイルを任意のディレクトリに配置し、以下の通りインストールを行います。
dom0_1# rpm -ivh vm-logd-monitor-1.00-1.el5.x86_64.rpm Preparing... ########################################### [100%] 1: vm-logd-monitor ########################################### [100%]
Heartbeatのrpmインストール時に自動作成されたHeartbeatログローテーションファイルにログデーモン監視用ログファイルに対する記述を追加します。
dom0_1# vi /etc/logrotate.d/heartbeat /var/log/ha-debug { missingok } /var/log/ha-log { missingok } /var/log/heartbeat_process_monitor.log { missingok }
Heartbeat用のログの設定ファイルを /etc に作成します。
dom0_1# vi /etc/logd.cf ←新規作成 logfile /var/log/ha-log ←Heartbeat用のログファイル名を設定 debugfile /var/log/ha-debug ←Heartbeat用のデバッグログファイル名を設定 logfacility none ←boot.logやmessageファイルへのHeartbeatの出力を設定
デバイス一括監視機能とログデーモン監視機能をOSと併せて起動、終了させるためinittabに以下を追加します。
dom0_1# vi /etc/inittab : logm:35:respawn:/etc/ha.d/monitoring/vm_logd_monitor.sh monitor slep:35:wait:/bin/sleep 1 vmmd:35:respawn:/usr/lib64/heartbeat/hb-vmmonitor/hb_vmmonitor -p 54321 ^^^^①
① Domain-0とDomain-U間の通信で使用するポートを指定します。
デバイス一括監視機能設定ファイル(hb_vmmonitor.conf)を /etc に作成します。
ここでは、ディスク監視を行う属性値名例を「diskcheck_status_internal_1」として説明します。
dom0_1# vi /etc/hb_vmmonitor.conf ← 新規作成 [diskcheck_status_internal_1] timeout = 90 exec_cmdline = /usr/lib64/heartbeat/hb-vmmonitor/diskd -a diskcheck_status_internal_1 -N /dev/sda -i 10 -P ^^^^^^^^^^^^^^^^^^^^^^^^^^② ^^^^^^^③
② ディスク監視を行う属性値名を指定します。
③ Domain-UのOSイメージ領域として割り当てているディスクのデバイスファイル名からパーティション番号を除いたデバイスファイル名を指定します。
すべての設定終了後、inittabの設定を有効にするためにサーバを再起動します。
dom0_1# shutdown -r now
Domain-U側は、既にOSインストールやネットワークの設定などの基本設定が終わり、Heartbeat 2.1.4 も既にインストール済みであることを前提として説明します。
ACTノード側Domain-U、SBYノード側Domain-U両方で、以下のインストールを行います。 ここでは図1の例で、サービスAのACTノード側Domain-Uである domu_a1へのインストール例を記述します。
デバイス一括監視機能のrpmファイルを任意のディレクトリに配置し、以下の通りインストールを行います。
domu_a1# rpm -ivh hb-vmmonitor-1.00-1.el5.x86_64.rpm Preparing... ########################################### [100%] 1:hb-vmmonitor ########################################### [100%]
Domain-U毎にha.cfの作成を行います。
ha.cfに、以下の行を追記します。
respawn root /usr/lib64/heartbeat/hb-vmmonitor/hb_vmmon_client -p 54321 -a diskcheck_status_internal_1 -s 172.21.108.101 -i 10 ^^^^④ ^^^^^^^^^^^^^^^^^^^^^^^^^^⑤ ^^^^^^^^^^^^^⑥④ Domain-0とDomain-U間の通信で使用するポートを指定します。(①と同じポートを設定)
この設定を追加した場合の、ha.cf の記述例は以下のようになります。
domu_a1# vi /etc/ha.d/ha.cf ←新規作成 crm on use_logd on debug 0 udpport 694 ←インターコネクト通信用ポート番号を設定 keepalive 2 warntime 20 deadtime 24 initdead 48 bcast eth1 ←インターコネクトLAN1 ネットワークデバイス名を設定 bcast eth2 ←インターコネクトLAN2 ネットワークデバイス名を設定 node domu_a1 ←ノード1=ACTノード側Domain-Uサーバ名を設定 node domu_a2 ←ノード2=SBYノード側Domain-Uサーバ名を設定 watchdog /dev/watchdog respawn root /usr/lib64/heartbeat/hb-vmmonitor/hb_vmmon_client -p 54321 -a diskcheck_status_internal_1 -s 172.21.108.101 -i 10
cib.xmlに、以下2つの制約事項を追記します。
内蔵ディスク監視に関する制約を追加設定します。
<rsc_location id="diskd-grpXXX" rsc="grpXXX"> ^^^^^⑦ <rule boolean_op="and" id="diskd-grpXXX-rule:1" score="-INFINITY"> <expression attribute="diskcheck_status_internal_1" ^^^^^^^^^^^^^^^^^^^^^^^^^^⑧ id="diskd-grpXXX-rule:1-expression:1" operation="defined"/> <expression attribute="diskcheck_status_internal_1" ^^^^^^^^^^^^^^^^^^^^^^^^^^⑧ id="diskd-grpXXX-rule:1-expression:2" operation="eq" value="ERROR"/> </rule> </rsc_location>⑦ Domain-UのサービスAで動作させるグループID(<group id="grpXXX">)を指定します。
Domain-0~Domain-U間通信監視に関する制約を追加設定します。
<rsc_location id="vmmon_disk1:disconnect" rsc="grpXXX"> ^^^^^⑨ <rule id="prefered_vmmon_disk1:disconnect" score="-INFINITY" boolean_op="and"> <expression attribute="vmmon_diskcheck_status_internal_1" ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^⑩ id="vmmon_disk1:error:expr:defined" operation="defined"/> <expression attribute="vmmon_diskcheck_status_internal_1" ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^⑩ id="vmmon_disk1:error:expr:error" operation="ne" value="normal"/> </rule> </rsc_location>⑨ Domain-UのサービスAで動作させるグループID(<group id="grpXXX">)を指定します。(⑦と同じ値を設定)
[PageInfo]
LastUpdate: 2010-06-11 13:21:03, ModifiedBy: takayukitanaka
[Permissions]
view:all, edit:login users, delete/config:members