7. 強制停止リソースの詳細

本章では、強制停止リソースの詳細について説明します。

7.1. 強制停止機能とは?

サーバのダウンを認識したときに残りのサーバ (正常なサーバ) からダウンしたサーバを強制的に停止させる機能です。

ダウンしたサーバを強制的に停止させる方法は、クラスタを構築した環境の種類 (物理マシン・仮想マシン・クラウド) によって異なります。強制停止機能を使用する場合は、その環境の種類に対応した 強制停止リソース を設定してください。

また、ダウンしたサーバを停止させる処理を記述した任意のスクリプトを実行することもできます。詳細は「7.6. 任意のスクリプトを使用した強制停止を理解する」を参照してください。

7.1.1. 強制停止実行条件

  • 以下の場合には強制停止を実行しません。

    • サーバダウンする前にフェイルオーバグループが正常に停止した場合

    • [clpdown] コマンド、OS のシャットダウンコマンド、Cluster WebUI でサーバをシャットダウンし、フェイルオーバグループが正常に停止した場合

    • [clpcl] コマンド、Cluster WebUI でクラスタを停止し、フェイルオーバグループが正常に停止した場合

    • サーバがダウンし、ダウンしたサーバから他のサーバにフェイルオーバさせるフェイルオーバグループが無い場合。
      (ダウンしたサーバでフェイルオーバグループが活性していない場合も含みます。)
  • 以下の場合には強制停止を実行します。

    • サーバがダウンし、ダウンしたサーバから他のサーバにフェイルオーバさせるフェイルオーバグループが有る場合。

7.2. 物理環境における強制停止を理解する

7.2.1. BMC 強制停止リソースの設定

BMC 強制停止リソースを使用するためには、各クラスタサーバに ipmitool をインストールする必要があります。

BMC 強制停止リソースで使用するコマンド

物理マシンの強制停止、強制停止リソースの状態定期チェック、強制停止実行後の停止チェックには、[ipmitool] コマンドを使用します。

コマンド実行時の下記のオプション値を設定してください。

[ipmitool] コマンドのオプション

BMC強制停止のプロパティの
サーバ一覧の編集[BMCの入力]設定項目

-H ip_address

IPアドレス

-U username

ユーザ名

-P password

パスワード

BMC 強制停止リソースの強制停止では以下のコマンドが実行されます。

強制停止アクション

コマンド

BMC パワーオフ

ipmitool -H ip_address -U username -P password power off

BMC リセット

ipmitool -H ip_address -U username -P password power reset

BMC パワーサイクル

ipmitool -H ip_address -U username -P password power cycle

BMC NMI

ipmitool -H ip_address -U username -P password power diag

上記コマンドに失敗した場合以下のコマンドを実行します。

強制停止アクション

コマンド

BMC パワーオフ

ipmitool -H ip_address -I lanplus -U username -P password power off

BMC リセット

ipmitool -H ip_address -I lanplus -U username -P password power reset

BMC パワーサイクル

ipmitool -H ip_address -I lanplus -U username -P password power cycle

BMC NMI

ipmitool -H ip_address -I lanplus -U username -P password power diag

BMC 強制停止リソースの定期チェックおよび強制停止実行後の停止チェックでは以下のコマンドが実行されます。

定期チェックコマンド
停止チェックコマンド

ipmitool -H ip_address -U username -P password power status

上記コマンドに失敗した場合以下のコマンドを実行します。

定期チェックコマンド
停止チェックコマンド

ipmitool -H ip_address -I lanplus -U username -P password power status

BMC 強制停止リソースで使用するコマンドを編集するには

強制停止リソースでは、コマンドを実行するスクリプトファイルを編集することで、強制停止で使用する任意のコマンドラインを指定することも可能です。 以下のファイルを編集することができます。

<CLUSTERPROインストールパス>\bin\clpbmcforcestop.sh

BMC 強制停止リソースでは、コマンドをスクリプトで実行する場合に必要な情報を環境変数にセットします。

スクリプト内で下図の環境変数を記述しています。

環境変数

環境変数の値

意味

CLP_BMC_ACTION
・・・強制停止アクション
power off : BMC パワーオフ
power reset : BMC リセット
power cycle : BMC パワーサイクル
power diag : BMC NMI

BMC強制停止のプロパティで設定した強制停止アクションを示します。

CLP_BMC_HOST
・・・BMCのIPアドレス

IPアドレス

BMC強制停止のプロパティで設定したIPアドレスを示します。

CLP_BMC_USER
・・・BMCのユーザ名

ユーザ名

BMC強制停止のプロパティで設定したユーザ名を示します。

CLP_BMC_PASSWORD
・・・BMCのパスワード

パスワード

BMC強制停止のプロパティで設定したパスワードを示します。

BMC 強制停止リソースの設定の詳細については本ガイドの「2. パラメータの詳細」 - 「クラスタプロパティ」 - 「フェンシングタブ」 - 「強制停止」 - 「BMC 強制停止のプロパティ」を参照してください。

7.2.2. BMC 強制停止リソースの注意事項

  • ipmitoolの注意事項について
  • 強制停止の影響点について
    強制停止機能を使用すると OS やサーバの状態によらず強制的にパワーオフ、リセット、パワーサイクル、NMI を行うため以下の機能が影響を受けます。
    • ダンプ採取
      ダンプ採取中であることが認識できないので、ダンプ採取の処理中であってもパワーオフ、リセット、パワーサイクルが発生しダンプ採取が完了しません。
    • ハートビートタイムアウト以内の電源オン操作
      ハートビートタイムアウト時間内に保守などの目的でサーバの電源を再度オンにした場合、ハートビートタイムアウト経過後にパワーオフ、リセット、パワーサイクル、NMIが発生することがあります。
  • BMC のネットワーク設定について
    BMC のマネージメント用 LAN ポートの IP アドレスと OS が使用する IP アドレスの間で通信ができるように設定をしてください。BMC のマネージメント用のネットワークが 閉塞している環境では本機能は使用できません。
    BMC のマネージメント用 LAN ポートに設定した IP アドレスと同じ IP アドレスをBMC強制停止のプロパティの サーバ一覧タブの編集ボタンからBMCの入力に設定してください。
    BMC のマネージメント用 LAN ポートの IP アドレスなどの設定方法はサーバのマニュアルなどを参照してください。
  • 強制停止機能を使用する場合、各サーバの BMC の IP アドレス、ユーザ名、パスワードの設定が必須です。ユーザ名には必ずパスワード登録されているものを設定してください。

7.3. vCenter 環境における強制停止を理解する

7.3.1. vCenter 強制停止リソースの設定

vCenter 強制停止リソースを使用するためには、VMware vSphere Command Line Interface (vCLI)をインストールする必要があります。

vCenter 強制停止リソースで使用するコマンド

仮想マシンのゲスト OSの強制停止には、VMware vSphere Command Line Interface (vCLI)の[vmcontrol] コマンドを使用します。 強制停止リソースの状態定期チェック、強制停止実行後の停止チェックには [vminfo] コマンドを使用します。

コマンド実行時の下記のオプション値を設定してください。

[vmcontrol] コマンドのオプション

vCenter 強制停止のプロパティのvCenterタブの設定項目

vCenter 強制停止のプロパティの
サーバ一覧の編集[仮想マシン名の入力 ]設定項目

--server ip_address

IP アドレス

-

--username username

ユーザ名

-

--password password

パスワード

-

--vmname virtualmachine

-

仮想マシン名

--datacenter datacenter

-

データセンター名

vCenter 強制停止リソースの強制停止では以下のコマンドが実行されます。

強制停止アクション

強制停止コマンド

パワーオフ

vmcontrol.pl --server ip_address --username username --password password --vmname virtualmachine --datacenter datacenter --operation poweroff

リセット

vmcontrol.pl --server ip_address --username username --password password --vmname virtualmachine --datacenter datacenter --operation reset

vCenter 強制停止リソースの定期チェックでは以下のコマンドが実行されます。

定期チェックコマンド

vminfo.pl --server ip_address --username username --password password --vmname virtualmachine --datacenter datacenter --powerstatus "poweredOn"

vCenter 強制停止実行後の停止チェックでは以下のコマンドが実行されます。

停止チェックコマンド

vminfo.pl --server ip_address --username username --password password --vmname virtualmachine --datacenter datacenter --powerstatus "poweredOff"

vCenter 強制停止リソースで使用するコマンドを編集するには

強制停止リソースでは、コマンドを実行するスクリプトファイルを編集することで、強制停止で使用する任意のコマンドラインを指定することも可能です。 以下のファイルを編集することができます。

<CLUSTERPROインストールパス>\bin\clpvcenterforcestop.sh

vCenter 強制停止リソースでは、コマンドをスクリプトで実行する場合に必要な情報を環境変数にセットします。

スクリプト内で下図の環境変数を記述しています。

環境変数

環境変数の値

意味

CLP_VCLI_PATH
・・・vCLIインストールパス

インストールパス

vCenter強制停止のプロパティで設定したVMware vSphere CLIインストールパスを示します。

CLP_VCENTER_ACTION
・・・強制停止アクション
poweroff : パワーオフ
reset : リセット

vCenter強制停止のプロパティで設定した強制停止アクションを示します。

CLP_VCENTER_HOST
・・・vCenterのホスト名

ホスト名

vCenter強制停止のプロパティで設定したホスト名を示します。

CLP_VCENTER_USER
・・・vCenterのユーザ名

ユーザ名

vCenter強制停止のプロパティで設定したユーザ名を示します。

CLP_VCENTER_PASSWORD
・・・vCenterのパスワード

パスワード

vCenter強制停止のプロパティで設定したパスワードを示します。

CLP_VMNAME
・・・仮想マシン名

仮想マシン名

vCenter強制停止のプロパティで設定した仮想マシン名を示します。

CLP_DATACENTER_NAME
・・・データセンタ名

データセンタ名

vCenter強制停止のプロパティで設定したデータセンタ名を示します。

vCenter 強制停止リソースの設定の詳細については本ガイドの「2. パラメータの詳細」 - 「クラスタプロパティ」 - 「フェンシングタブ」 - 「強制停止」 - 「vCenter 強制停止のプロパティ」を参照してください。

7.3.2. vCenter 強制停止リソースの注意事項

  • 仮想マシンのゲストOSの強制停止について
    パワーオフ動作、リセット動作のみが実行可能です。また、以下の場合に本機能は使用できません。
    • vSphere基盤 : VMWare vCenter Serverとの通信が行えない場合
  • 強制停止の影響点について
    強制停止機能を使用すると OS やサーバの状態によらず強制的にパワーオフ、リセットを行うため以下の機能が影響を受けます。
    • ダンプ採取
      ダンプ採取中であることが認識できないので、ダンプ採取の処理中であってもパワーオフ、リセットが発生しダンプ採取が完了しません。
    • ハートビートタイムアウト以内の電源オン操作
      ハートビートタイムアウト時間内に保守などの目的でサーバの電源を再度オンにした場合、ハートビートタイムアウト経過後にパワーオフ、リセットが発生することがあります。

7.4. AWS 環境における強制停止を理解する

7.4.1. AWS 強制停止リソースの設定

AWS 強制停止リソースを使用するためには、AWS Command Line Interface (AWS CLI)をインストールする必要があります。

AWS CLI の入手方法とインストール方法については『スタートアップガイド』 - 「注意制限事項」- 「OS インストール後、CLUSTERPRO インストール前」 - 「AWS 環境における時刻同期」および「AWS環境におけるIAMの設定について」および「AWS CLIのインストールパスについて」を参照してください。

AWS 強制停止リソースで使用するコマンド

AWS インスタンスの強制停止、強制停止リソースの状態定期チェック、強制停止実行後の停止チェックには、AWS Command Line Interface (AWS CLI)のコマンドを使用します。

コマンド実行時の下記のオプション値を設定してください。

コマンドの
オプション
AWS 強制停止のプロパティの
サーバ一覧の編集[インスタンスの入力 ]設定項目

--instance-ids instance-ids

インスタンスID

AWS 強制停止リソースの強制停止では以下のコマンドが実行されます。

強制停止アクション

強制停止コマンド

stop

aws ec2 stop-instances --instance-ids instance-ids --force

reboot

aws ec2 reboot-instances --instance-ids instance-ids

AWS 強制停止リソースの定期チェックでは以下のコマンドが実行されます。

強制停止アクション

定期チェックコマンド

stop

aws ec2 stop-instances --instance-ids instance-ids --dry-run

reboot

aws ec2 reboot-instances --instance-ids instance-ids --dry-run

AWS 強制停止実行後の停止チェックでは以下のコマンドが実行されます。

停止チェックコマンド

aws ec2 describe-instances --instance-ids instance-ids --filters \"Name=instance-state-name,Values=stopped\"

AWS 強制停止リソースで使用するコマンドを編集するには

強制停止リソースでは、コマンドを実行するスクリプトファイルを編集することで、強制停止で使用する任意のコマンドラインを指定することも可能です。 以下のファイルを編集することができます。

<CLUSTERPROインストールパス>\cloud\aws\clpawsforcestop.sh

AWS 強制停止リソースの設定の詳細については本ガイドの「2. パラメータの詳細」 - 「クラスタプロパティ」 - 「フェンシングタブ」 - 「強制停止」 - 「AWS 強制停止のプロパティ」を参照してください。

7.4.2. AWS 強制停止リソースから実行するAWS CLIへ環境変数を反映させるには

環境変数設定ファイルに環境変数を指定することにより、以下の AWS 関連リソースから実行する AWS CLI に反映させることが可能です。

  • AWS Elastic IP リソース

  • AWS 仮想 IP リソース

  • AWS セカンダリ IP リソース

  • AWS DNS リソース

  • AWS Elastic IP モニタリソース

  • AWS 仮想 IP モニタリソース

  • AWS セカンダリ IP モニタリソース

  • AWS AZ モニタリソース

  • AWS DNS モニタリソース

  • AWS 強制停止リソース

AWS環境にて、プロキシサーバを利用する場合などに有効です。

環境変数設定ファイルは、以下に配置しています。

<CLUSTERPROインストールパス>/cloud/aws/clpaws_setting.conf

環境変数設定ファイルのフォーマットは、以下のとおりです。

環境変数名 = 値

記載例)

[ENVIRONMENT]
HTTP_PROXY = http://10.0.0.1:3128
HTTPS_PROXY = http://10.0.0.1:3128

パラメータに複数の値を設定する場合は、カンマ区切り(,)で列挙してください。環境変数 NO_PROXY に除外接続先を複数指定する場合の記載例は以下となります。

記載例)

NO_PROXY = 169.254.169.254,ec2.ap-northeast-1.amazonaws.com

環境変数設定ファイルの仕様は、以下のとおりです。

  • 一行目は必ず [ENVIRONMENT] を記載してください。記載がない場合は、環境変数は設定しません。

  • 環境変数設定ファイルが存在しない場合や読み取り権限がない場合は無視します。活性異常や監視異常にはなりません。

  • 同名の環境変数が既に設定されている場合、値を上書きします。

  • 複数の環境変数の設定が可能です。複数の環境変数を設定する場合は、1行には1つの環境変数のみ設定してください。

  • = の両側のスペース有無に関わらず、設定は有効です。

  • 環境変数名の前にスペースやタブがある場合および = の両側にタブがある場合、設定は無効です。

  • 環境変数名は大文字・小文字を区別します。

  • 値にスペースが入る場合、""(ダブルクォート)で括る必要はありません。

  • # の位置に関わらず # を記載している行の環境変数は設定しません。

  • 環境変数設定ファイルで設定した環境変数は前述の AWS 関連リソースから実行する AWS CLI にのみ反映されます。そのため、それ以外のスクリプト(例.最終動作前スクリプト、活性/非活性前後スクリプト、スクリプトリソースから実行するスクリプト)には反映されません。それ以外のスクリプト内で AWS CLI を実行する場合、必要な環境変数は該当するスクリプト内で設定してください。

7.4.3. AWS 強制停止リソースの注意事項

  • インスタンスの強制停止について
    stop 動作、reboot 動作のみが実行可能です。
  • 強制停止の影響点について
    強制停止機能を使用すると OS やサーバの状態によらず強制的に stop、reboot を行うため以下の機能が影響を受けます。
    • ダンプ採取
      ダンプ採取中であることが認識できないので、ダンプ採取の処理中であっても stop、reboot が発生しダンプ採取が完了しません。
    • ハートビートタイムアウト以内の電源オン操作
      ハートビートタイムアウト時間内に保守などの目的でサーバの電源を再度オンにした場合、ハートビートタイムアウト経過後に stop、reboot が発生することがあります。

7.5. OCI 環境における強制停止を理解する

7.5.1. OCI 強制停止リソースの設定

OCI 強制停止リソースを使用するためには、Oracle Cloud Infrastructure CLI (OCI CLI)をインストールする必要があります。

OCI CLI の入手方法とインストール方法については『スタートアップガイド』 - 「注意制限事項」- 「OS インストール後、CLUSTERPRO インストール前」 - 「OCI 環境における CLI の設定について」および「OCI 強制停止リソースの設定について」を参照してください。

OCI 強制停止リソースで使用するコマンド

OCI インスタンスの強制停止、強制停止リソースの状態定期チェック、強制停止実行後の停止チェックには、Oracle Cloud Infrastructure CLI (OCI CLI)のコマンドを使用します。

コマンド実行時の下記のオプション値を設定してください。

コマンドの
オプション
OCI 強制停止のプロパティの
サーバ一覧の編集[インスタンスの入力 ]設定項目

--instance-ids instance-ids

インスタンスID

OCI 強制停止リソースの強制停止では以下のコマンドが実行されます。

強制停止アクション

強制停止コマンド

stop

oci compute instance action --action STOP --instance-id instance-ids

reboot

oci compute instance action --action RESET --instance-id instance-ids

OCI 強制停止リソースの定期チェックでは以下のコマンドが実行されます。

定期チェックコマンド

oci compute instance update --instance-id instance-ids --wait-for-state RUNNING ––max-wait-seconds 1

OCI 強制停止実行後の停止チェックでは以下のコマンドが実行されます。

停止チェックコマンド

oci compute instance get --instance-id instance-ids | grep lifecycle-state | awk -F" '{print $4}'

OCI 強制停止リソースで使用するコマンドを編集するには

強制停止リソースでは、コマンドを実行するスクリプトファイルを編集することで、強制停止で使用する任意のコマンドラインを指定することも可能です。 以下のファイルを編集することができます。

<CLUSTERPROインストールパス>\cloud\oci\clpociforcestop.sh

OCI 強制停止リソースの設定の詳細については本ガイドの「2. パラメータの詳細」 - 「クラスタプロパティ」 - 「フェンシングタブ」 - 「強制停止」 - 「OCI 強制停止のプロパティ」を参照してください。

7.5.2. OCI 強制停止リソースの注意事項

  • インスタンスの強制停止について
    stop 動作、reboot 動作のみが実行可能です。
  • 強制停止の影響点について
    強制停止機能を使用すると OS やサーバの状態によらず強制的に stop、reboot を行うため以下の機能が影響を受けます。
    • ダンプ採取
      ダンプ採取中であることが認識できないので、ダンプ採取の処理中であっても stop、reboot が発生しダンプ採取が完了しません。
    • ハートビートタイムアウト以内の電源オン操作
      ハートビートタイムアウト時間内に保守などの目的でサーバの電源を再度オンにした場合、ハートビートタイムアウト経過後に stop、reboot が発生することがあります。

7.6. 任意のスクリプトを使用した強制停止を理解する

7.6.1. カスタム強制停止リソースの設定

サーバのダウンを認識したときに 残りのサーバ (正常なサーバ) でユーザが作成した任意のスクリプトを実行する機能です。 スクリプトを記述することで、ダウンしたサーバを強制的に停止させることが可能になります。

任意のスクリプトで使用する環境変数

CLUSTERPROはスクリプトを実行する場合に、定期チェックの実行か強制停止の実行か、どのサーバがダウンしたかなどの情報を環境変数にセットします。

スクリプト内で下図の環境変数を分岐条件として、システム運用にあった処理内容を記述できます。

環境変数

環境変数の値

意味

CLP_FORCESTOP_MODE
・・・モード
0 : 定期チェック時
1 : 強制停止実行時
実行されるモードを示します。
モード毎に処理を分岐することができます。
CLP_SERVER_DOWN
・・・ダウンサーバ名

サーバ名

ダウンしたサーバ名を示します。
定期チェック時は "" をセットする。
CLP_SERVER_LOCAL
・・・ローカルサーバ名

サーバ名

スクリプトを実行するサーバ名を示します。

任意のスクリプトの戻り値

スクリプトが正常終了する時には戻り値として 0 を返却してください。

カスタム強制停止リソースの設定の詳細については本ガイドの「2. パラメータの詳細」 - 「クラスタプロパティ」 - 「フェンシングタブ」 - 「強制停止」 - 「カスタム強制停止のプロパティ」を参照してください。

7.6.2. カスタム強制停止リソースの注意事項

  • サーバを停止させる処理はお客様にて用意し、強制停止スクリプトに記述してください。

7.7. 強制停止リソースの設定に関する注意事項

  • 1つのクラスタには1つの強制停止リソースのみを設定可能です。

  • 強制停止リソースを設定する場合、ネットワークパーティション解決リソースを併せて設定することを推奨します。

  • 強制停止リソースを設定する場合、クラスタを構成する全てのサーバで強制停止リソースを使用するように設定する必要があります。