This site best when viewed with a modern standards-compliant browser. We recommend Firefox Get Firefox!.

Linux-HA project logo
Providing Open Source High-Availability Software for Linux and other OSes since 1999.

USA Flag UK Flag

Japanese Flag

ホームページ

サイトについて

コンタクト情報

使用条件

協力方法

セキュリティ

This web page is no longer maintained. Information presented here exists only to avoid breaking historical links.
The Project stays maintained, and lives on: see the Linux-HA Reference Documentation.
To get rid of this notice, you may want to browse the old wiki instead.

2010.1.28
追加パッケージ集リニューアル
追加パッケージ集は、こちらから

2008.8.28
RHEL用rpm更新
更新情報はこちらから

2008.8.18
Heartbeat 2.1.4
リリース!
Downloadはこちらから

2007.11.13
Linux-ha-japan日本語ML移植しました

2007.10.5
日本語サイトOPEN
日本語MLも開設しました

2007.10.5
OSC2007 Tokyo/Fall で Heartbeat紹介
発表資料を公開しました

Last site update:
2018-10-22 23:39:00

Diskcheck リソースエージェント

Diskcheckは共有ディスクの健全性を確認するためのリソースエージェントです。

対象ハードウェア

Diskcheckでは以下のハードウェア環境でテストしています。

  • HP社 MSA500G2:SCSI接続、シングルパス構成、ccissドライバ(Ver.2.6.14.RH2)
  • HP社 MSA1000:ファイバチャネル接続、マルチパス構成、qlaドライバ(Ver.8.01.06.01-fo)
  • IBM社 DS4300:ファイバチャネル接続、マルチパス構成、IBM付属ドライバ(linuxrdac 09.01.B5.31)

注意:ドライバのバージョンの違いなどにより正常に動作しない場合があります。事前に動作検証を行なってから利用してください。

ダウンロード

インストール

  • ファイルをダウンロード&展開

  # tar xzvf Diskcheck-1.0.tar.gz
  Diskcheck-1.0/Diskcheck

  • オーナ、実行権限の変更

 # cd Diskcheck-1.0
 # chown root Diskcheck
 # chgrp root Diskcheck
 # chmod 755 Diskcheck
  • リソースエージェント指定ディレクトリへ移動

 # cp -p Diskcheck /usr/lib/ocf/resource.d/heartbeat/.

cib.xmlの設定

DiskcheckはACT/SBY構成の両ノードで動作することを前提に作成されています。両ノードで動作させるためにはcloneリソースの設定を使用します。

  • clone設定

(略)
<resource>
  <clone id="clone0">
    <instance_attributes id="clone0_instance_attrs">
      <attributes>
        <nvpair id="clone0-clone_max" name="clone_max" value="2"/>
        <nvpair id="clone0-clone_node_max" name="clone_node_max" value="1"/>
      </attributes>
    </instance_attributes>
    <primitive class="ocf" type="Diskcheck" ←★ typeにDiskcheckを指定してください。
      provider="heartbeat" id="clone0-diskcheck"> 
      <operations> (略) </operations>
      <instance_attributes id="clone0-diskcheck_instance_attrs"> ←★ Disk種別によって設定方法が違います。次節で解説します。
        <attributes>   (略)  </attributes>
      </instance_attributes>
    </primitive>
  </clone>
</resource>
(略)
  • 動作環境毎の設定

<resource>
  <clone id="clone0">
   (略)
    <instance_attributes id="clone0_instance_attrs"> (略) </instance_attributes>
    <primitive class="ocf" type="Diskcheck" provider="heartbeat" id="clone0-diskcheck">
      <operations> (略) </operations>
      <instance_attributes id="clone0-diskcheck_instance_attrs">
        <attributes> ←★ 動作環境毎に設定値が異なります。
          <nvpair id="clone0-diskcheck_attr_name" name="attr_name" value="diskcheck_status"/>
          <nvpair id="clone0-diskcheck_driver_type" name="driver_type" value="CCISS"/>
          <nvpair id="clone0-diskcheck_ctrl_serialno" name="ctrl_serialno" value="PAB360NX3TU030"/>
        </attributes>
      </instance_attributes>
    </primitive>
  </clone>
</resource>
(略)
  • 属性

    MSA500G2

    MSA1000

    DS4300

    fdisk※3

    備考

    attr_name

    任意

    任意

    任意

    任意

    デフォルト値はdiskcheck_status

    driver_type

    CCISS

    QLA

    RDAC

    FDISK

    指定必須項目。ディスク環境によって文字列が変わる

    ctrl_serialno

    指定必須

    指定不可

    指定不可

    指定不可

    MSA500G2を使う場合のコントローラのシリアルナンバー※1

    mppfile_path

    指定不可

    指定不可

    指定必須

    指定不可

    共有ディスクのドライバ情報ファイルへのパスを指定※2

    device_name

    指定不可

    指定不可

    指定不可

    指定必須

    共有ディスクのデバイス名(例:/dev/sdb, /dev/sdb1)を指定

    • ※1:"hpacucli controller all show"を実行した際に出力される、sn: PAB360NX3TU030といった番号です。
      ※2:"/proc/scsi/mpp/5"といった形式で指定します。環境によって異なるので調査の上指定します。
      ※3:ディスクによらない方法としてfdisk -lコマンドを使用する方法もあります。fdiskでは故障が検知できない場合があるようですので、もし使用する場合は事前に十分検証を行い、利用可能か判断してください。

  • ルール設定

(略)
 <constraints>
  <rsc_location id="diskcheck0:grpPostgreSQLDB" rsc="grpPostgreSQLDB">
    <rule id="diskcheck0:rule0" score="-INFINITY" boolean_op="and">
      <expression id="diskcheck0:rule0-0" attribute="diskcheck_status" operation="defined"/>
      <expression id="diskcheck0:rule0-1" attribute="diskcheck_status" operation="eq" value="ERROR"/>
    </rule>
  </rsc_location>
 </constraints> 
(略)
  • diskcheck_statusが定義されており、diskcheck_statusの値がERRORとなった場合、そのノードではリソースが動かない状態(score=-INFINITY)ととするルール設定をcib.xmlに記述します。通常はdiskcheck_statusの値がnormalですが、ディスクに異常が発生した場合にはdiskcheck_statusがERRORとなります。そして、scoreが-INFINITYとなるため、そのノードではすべてのノードが動作しない状態になります。

ログメッセージ一覧

Diskcheckが出力するログメッセージ一覧を示します。

ログ種別

ログメッセージ

意味

対処方法

info

Diskcheck start ..

Diskcheckの起動が開始した

info

Diskcheck started.

Diskcheckの起動が完了した

info

Diskcheck stopped .

Diskcheckが停止した

warn

failed to update attribute (#)

属性値の更新に失敗した。(括弧内は失敗した回数)

attrd_updaterコマンドの実行権を確認する。
heartbeatが起動していることを確認する。

warn

detected all connections are failed (#).

共有ディスクと接続している全ケーブルが断線していることを検知した(括弧内は検知した回数)

共有ディスクとのケーブル接続を確認する。
共有ディスクの電源がついていることを確認する。

warn

detected some connections are failed (#).

共有ディスクと接続しているケーブルの一部が断線していることを検知した(括弧内は検知した回数)

共有ディスクとのケーブル接続を確認する。

warn

detected all connections are failed.

共有ディスクと接続している全ケーブルが断線していることを検知した

共有ディスクとのケーブル接続を確認する。
共有ディスクの電源がついていることを確認する

warn

detected some connections are failed.

共有ディスクと接続しているケーブルの一部が断線していることを検知した

共有ディスクとのケーブル接続を確認する。

warn

Disk connection is Error.

ディスク故障を検知した

共有ディスクとのケーブル接続を確認する。
共有ディスクの電源がついていることを確認する。

err

Diskcheck failed to start.

Diskcheckの起動に失敗した

直前にDiskcheckが出力したログを確認する。

err

Can’t execute /usr/sbin/attrd_updater

/usr/sbin/attrd_updater(属性値を更新するコマンド)が実行できない

attrd_updaterコマンドの実行権を確認する。
attrd_updaterコマンドの存在を確認する。

err

Can't execute /usr/sbin/hpacucli

/usr/sbin/hpacucli(ccissドライバ使用時のディスク接続状態確認用コマンド)が実行できない

hpacucliコマンドの実行権を確認する。
hpacucliコマンドの存在を確認する

err

<mppfile_path> file doesn't exist.

パラメータ”mppfile_path”で指定したファイルが存在しない

指定したパスにドライバ情報ファイルが存在することを確認する。

err

Can't execute /usr/sbin/adapter_info

/usr/sbin/adapter_info(qlaドライバ使用時のディスク接続状態確認用コマンド)が実行できない

adapter_infoコマンドの実行権を確認する。
adapter_infoコマンドの存在を確認する。

err

Can't execute /sbin/fdisk

/sbin/fdiskコマンドが実行できない

fdiskコマンドの実行権を確認する。
fdiskコマンドの存在を確認する

err

ctrl_serialno is required.

パラメータ”driver_type”が”CCISS”であるにもかかわらずパラメータ”ctrl_serialno”が設定されていない

コントローラのシリアルナンバーを調べて、cib.xmlに定義する

err

mppfile_path is required.

パラメータ”driver_type”が”RDAC”であるにもかかわらずパラメータ”mppfile_path”が設定されていない

ドライバ情報ファイルのパスを調べてcib.xmlに定義する。

err

device_name is required.

パラメータ”driver_type”が”FDISK”であるにもかかわらずパラメータ”device_name”が設定されていない

共有ディスクのデバイス名を調べて、cib.xmlに定義する。

err

driver type is unknown.

cib.xmlで指定された、共有ディスクのドライバの種類が不正である

Diskcheckに対応したdriver_typeを指定する。{CCISS|IBM|QLA|FDISK}

err

<stateファイル名> doesn't exist.

stateファイルが存在しない

/var/run/heartbeat/rsctmp/ディレクトリ配下にDiskcheck-****.stateファイルが生成されているか確認する。

err

Can't read <stateファイル名>

stateファイルの読み込みに失敗した

stateファイルのパーミッションを確認する。

err

Can't write <stateファイル名>

stateファイルの書き出しに失敗した

stateファイルのパーミッションを確認する。

err

Diskcheck is failed.

ディスク接続状態の通知処理に失敗した

直前にDiskcheckが出力したログを確認する。

debug

get probe. (Diskcheck is not running.)

probe(start前に発信される起動確認)を受信した

debug

Disk connection is Normal.

ディスクの接続状態は正常である

debug

Diskcheck is succeeded.

ディスク接続状態の確認および通知処理が正常に終了した

リリース情報

関連情報

Heartbeat用 追加パッケージ集 (contrib)