最近更改

2011-05-06
2011-02-22
2011-02-18
2011-02-16
2011-02-15

最新文件发布

[1-01] pm_extra_tools: Pacemaker-2系追加パッケージ (RHEL8以降) (1.5-1 (RHEL8/RHEL9))2023-09-20 13:00
[2-01] Pacemaker-1.1系リポジトリパッケージ (RHEL7) (1.1.21-1.1)2019-10-02 13:00
[2-02] Pacemaker-1.1系/1.0系リポジトリパッケージ (RHEL6) (1.1.21-1.1)2019-10-02 13:00
[2-03] Pacemaker-1.0系リポジトリパッケージ (RHEL5) (1.0.13-2.1)2014-08-13 09:28
[2-10] pm_ctl : 運用管理連携機能 (1.0-1)2012-11-05 11:20
[2-11] pm_logconv-cs : ログメッセージ制御機能(Corosync対応) (1.0-1)2012-11-12 09:53
[3-01] Heartbeat (RedHat/CentOS用rpmパッケージ) (2.1.4-1)2008-08-28 09:53
[3-02] hb-monitor:クラスタ状態表示機能 (1.03-1)2011-02-16 07:21
[3-03] hb-extras:拡張リソースエージェント・プラグイン (1.02-1)2011-02-16 07:21
[3-04] hb-logconv:ログメッセージ制御機能 (1.02-1)2011-02-16 07:21
[3-05] hb-cibgen:cib.xml編集ツール (1.03-1_1)2009-11-16 13:31
[3-06] hb-diskd:ディスク監視デーモン (1.10-1)2010-01-22 10:20
[3-07] VIPcheck:VIPcheckリソースエージェント (1.1)2009-11-30 07:21
[3-08] hb-sfex:共有ディスク排他制御 (1.30-1)2010-01-22 10:00
[3-09] hb-logmoni:ロギングデーモン監視 (2.00-1)2010-01-22 10:10
[3-10] hb-ipv6:IPv6対応追加パッケージ (1.00-1)2010-01-29 07:21
[3-11] hb-vmmonitor:デバイス一括監視機能 (1.00-1)2010-06-11 07:21
[3-12] vm-logd-monitor:ログデーモン監視機能(Domain-0用) (1.00-1)2010-06-11 07:21
[3-13] stonith-wrapper2:STONITHラッパープラグイン2 (2.00)2010-06-18 07:21
[3-14] hb-actmonitor:フェイルオーバ抑止機能 (1.00-1)2010-11-26 07:21

Wiki Guide

Sidebar

デバイス一括監視機能 (hb-vmmonitor)

デバイス一括監視機能は、Xen仮想環境上において Heartbeat 2.1.4 によるクラスタリングを構築する場合に使用できます。 Domain-Uで行っていたディスクデバイスやネットワークデバイスの監視をDomain-0で一括監視し、Domain-Uはデバイスの状態をDomain-0との通信によって把握する機能です。

デバイス一括監視機能のリリースのファイルを表示

デバイス一括監視機能は、ログデーモン監視機能(Domain-0用)を併用することでha-logにログを出力することができます。

ログデーモン監視機能(Domain-0用)のリリースのファイルを表示


デバイス一括監視機能によって、Domain-Uでデバイスを監視している場合に発生する以下の問題点を回避することができます。

  • 内蔵ディスクの状態監視ができない場合がある。
  • 複数の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

vm_monitor_1.png


Domain-0 側のインストール

ここでは、デバイス監視に内蔵ディスクを行った場合のインストール方法例を説明します。 Domain-0は、既にOSインストールや仮想ネットワークの設定などの基本設定が終わっていることを前提として説明します。

ACTノード側Domain-0、SBYノード側Domain-0両方で、以下のインストールを行います。 ここでは図1の例で、ACTノード側Domain-0である dom0_1へのインストール例を記述します。

Heartbeat用ユーザの作成

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.

Heartbeat本体のインストール

デバイス一括監視機能のインストールには、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用)のインストール

ログデーモン監視機能とは、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
}

ログ出力先設定(/etc/logd.cf)

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の出力を設定

デバイス一括監視機能、ログデーモン監視機能の起動設定(/etc/inittab)

デバイス一括監視機能とログデーモン監視機能を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間の通信で使用するポートを指定します。

デバイス監視先の設定(/etc/hb_vmmonitor.conf)

デバイス一括監視機能設定ファイル(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イメージ領域として割り当てているディスクのデバイスファイル名からパーティション番号を除いたデバイスファイル名を指定します。

Domain-0に設定した起動設定の反映

すべての設定終了後、inittabの設定を有効にするためにサーバを再起動します。

dom0_1# shutdown -r now


Domain-U側のインストール

Domain-U側は、既にOSインストールやネットワークの設定などの基本設定が終わり、Heartbeat 2.1.4 も既にインストール済みであることを前提として説明します。

ACTノード側Domain-U、SBYノード側Domain-U両方で、以下のインストールを行います。 ここでは図1の例で、サービスAのACTノード側Domain-Uである domu_a1へのインストール例を記述します。

Domain-Uへのデバイス一括監視機能のインストール

デバイス一括監視機能のrpmファイルを任意のディレクトリに配置し、以下の通りインストールを行います。

domu_a1# rpm -ivh hb-vmmonitor-1.00-1.el5.x86_64.rpm
Preparing...                ########################################### [100%]
   1:hb-vmmonitor          ########################################### [100%]

クラスタの基本設定ファイル(ha.cf)の設定

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間の通信で使用するポートを指定します。(①と同じポートを設定)
⑤ Domain-0のhb_vmmonitor.confに設定したディスク監視属性名を指定します。(②と同じ値を設定)
⑥ Domain-Uが所属するDomain-0と通信を行うための IPアドレスを指定します。

この設定を追加した場合の、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の設定

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のhb_vmmonitor.confに設定したディスク監視属性名を指定します。(②と同じ値を設定)

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">)を指定します。(⑦と同じ値を設定)
⑩ デバイスと紐づいた属性名の先頭に ”vmmon_” を付与した文字列を指定します。(②の値の先頭に "vmmon_"を付与した値を設定)