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

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

7.1. 強制停止機能とは?

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

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

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

7.1.1. 強制停止実行条件

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

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

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

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

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

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

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

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

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

ipmiutil の入手方法とインストール方法については『インストール&設定ガイド』 - 「システム構成を決定する」- 「ハードウェア構成後の設定」 - 「9. BMC と ipmiutil をセットアップする (物理マシンの強制停止機能と筐体IDランプ連携を使用する場合は必須)」を参照してください。

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

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

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

コマンドのオプション

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

-N ip_address

IP アドレス

-U username

ユーザ名

-P password

パスワード

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

強制停止アクション

強制停止コマンド

BMC パワーオフ

ipmiutil reset -d -N ip_address -U username -P password

BMC リセット

ipmiutil reset -r -N ip_address -U username -P password

BMC パワーサイクル

ipmiutil reset -c -N ip_address -U username -P password

BMC NMI

ipmiutil reset -n -N ip_address -U username -P password

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

強制停止アクション

強制停止コマンド

BMC パワーオフ

ipmiutil reset -d -N ip_address -U username -P password -J 3

BMC リセット

ipmiutil reset -r -N ip_address -U username -P password -J 3

BMC パワーサイクル

ipmiutil reset -c -N ip_address -U username -P password -J 3

BMC NMI

ipmiutil reset -n -N ip_address -U username -P password -J 3

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

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

ipmiutil health -N ip_address -U username -P password

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

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

ipmiutil health -N ip_address -U username -P password -J 3

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

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

以下のファイルを編集することができます。

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

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

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

環境変数

環境変数の値

意味

CLP_BMC_ACTION
・・・強制停止アクション
-d : BMC パワーオフ
-r : BMC リセット
-c : BMC パワーサイクル
-n : 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 強制停止リソースの注意事項

  • 強制停止の影響点について
    強制停止機能を使用すると OS やサーバの状態によらず強制的にパワーオフ、リセット、パワーサイクル、NMI を行うため以下の機能が影響を受けます。
    • ダンプ採取
      ダンプ採取中であることが認識できないので、ダンプ採取の処理中であってもパワーオフ、リセット、パワーサイクルが発生しダンプ採取が完了しません。
    • ハートビートタイムアウト以内の電源オン操作
      ハートビートタイムアウト時間内に保守などの目的でサーバの電源を再度オンにした場合、ハートビートタイムアウト経過後にパワーオフ、リセット、パワーサイクル、NMIが発生することがあります。
  • BMC のネットワーク設定について
    BMC のマネージメント用 LAN ポートの IP アドレスと OS が使用する IP アドレスの間で通信ができるように設定してください。サーバに BMC が搭載されていない場合や、BMC のマネージメント用のネットワークが閉塞している状態では、本機能は使用できません。
    BMC のマネージメント用 LAN ポートに設定した IP アドレスと同じ IP アドレスをBMC強制停止のプロパティの サーバ一覧タブの編集ボタンからBMCの入力に設定してください。
    BMC のマネージメント用 LAN ポートの IP アドレスなどの設定方法はサーバの マニュアルなどを参照してください。
  • OS の [電源オプション] の設定について
    BMC によるパワーオフ、パワーサイクルが実施された際、OS の [電源オプション] で指定された動作 (スリープ、休止状態、シャットダウンなど) が実行されることが あります。
    当該設定は、OS の下記箇所から参照・設定が可能です。
    [コントロールパネル]の[電源オプション] を開き、[電源ボタンの動作の選択] から [電源ボタンの設定] - [電源ボタンを押したときの動作] を参照。
    CLUSTERPRO で強制停止機能を使用する場合は、本設定は [何もしない] を指定することを推奨します。

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

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

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

注釈

vCLI のバージョンが 6.5 以上の場合、別途Perl の実行環境をインストールする必要があります。vCLI の実行に必要な Perl のバージョン情報等については、VMware 社の Web サイトを参照してください。
Perl の実行環境インストール後、以下の手順を実行してください。
  • Perlパスの設定

    [クラスタのプロパティ] - [フェンシング] タブ- [強制停止] - [vCenter強制停止のプロパティ] - [vCenter] タブ - [Perlパス] にPerl実行モジュールのパスを設定してください。クラスタ内のサーバにおいて、共通の設定となります。
    Perl パスについての詳細は本ガイドの「2. パラメータの詳細」 - 「クラスタプロパティ」 - 「フェンシングタブ」の「強制停止」の「vCenter 強制停止のプロパティ」を参照してください。
  • システム環境変数の追加

    システム環境変数に下記の変数を追加してください。その後、OS再起動を行ってください。
    変数名:PERL5LIB
    変数値:vCLIのPerlモジュールパス(例:C:\Program Files (x86)\VMware\VMware vSphere CLI\Perl\lib)

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

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

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

コマンドの
オプション

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

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

停止チェックコマンド

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

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

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

以下のファイルを編集することができます。

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

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強制停止のプロパティで設定したデータセンタ名を示します。

CLP_PERL_PATH
・・・Perlパス

Perlパス

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

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

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

  • 仮想マシンのゲストOSの強制停止について
    パワーオフ動作、リセット動作のみが実行可能です。また、以下の場合に本機能は使用できません。
    • vSphere基盤 : VMWare vCenter Serverとの通信が行えない場合
  • 強制停止の影響点について
    強制停止機能を使用すると OS やサーバの状態によらず強制的にパワーオフ、リセットを行うため以下の機能が影響を受けます。
    • ダンプ採取
      ダンプ採取中であることが認識できないので、ダンプ採取の処理中であってもパワーオフ、リセットが発生しダンプ採取が完了しません。
    • ハートビートタイムアウト以内の電源オン操作
      ハートビートタイムアウト時間内に保守などの目的でサーバの電源を再度オンにした場合、ハートビートタイムアウト経過後にパワーオフ、リセットが発生することがあります。
  • OS の [電源オプション] の設定について
    VMware vSphere による仮想マシンのゲスト OSのパワーオフが実施された際、OS の [電源オプション] で指定された動作 (スリープ、休止状態、シャットダウンなど) が実行されることが あります。
    当該設定は、OS の下記箇所から参照・設定が可能です。
    [コントロールパネル]の[電源オプション] を開き、[電源ボタンの動作の選択] から [電源ボタンの設定] - [電源ボタンを押したときの動作] を参照。
    CLUSTERPRO で強制停止機能を使用する場合は、本設定は [何もしない] を指定することを推奨します。

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

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

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

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

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.ps1

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 が発生することがあります。
  • OS の [電源オプション] の設定について
    AWS CLI による stop、reboot が実施された際、OS の [電源オプション] で指定された動作 (スリープ、休止状態、シャットダウンなど) が実行されることが あります。
    当該設定は、OS の下記箇所から参照・設定が可能です。
    [コントロールパネル]の[電源オプション] を開き、[電源ボタンの動作の選択] から [電源ボタンの設定] - [電源ボタンを押したときの動作] を参照。
    CLUSTERPRO で強制停止機能を使用する場合は、本設定は [何もしない] を指定することを推奨します。

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

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

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

OCI CLI の入手方法とインストール方法については『スタートアップガイド』 - 「注意制限事項」- 「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.ps1

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

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

  • インスタンスの強制停止について
    stop 動作、reboot 動作のみが実行可能です。
  • 強制停止の影響点について
    強制停止機能を使用すると OS やサーバの状態によらず強制的に stop、reboot を行うため以下の機能が影響を受けます。
    • ダンプ採取
      ダンプ採取中であることが認識できないので、ダンプ採取の処理中であっても stop、reboot が発生しダンプ採取が完了しません。
    • ハートビートタイムアウト以内の電源オン操作
      ハートビートタイムアウト時間内に保守などの目的でサーバの電源を再度オンにした場合、ハートビートタイムアウト経過後に stop、reboot が発生することがあります。
  • OS の [電源オプション] の設定について
    OCI CLI による stop、reboot が実施された際、OS の [電源オプション] で指定された動作 (スリープ、休止状態、シャットダウンなど) が実行されることが あります。
    当該設定は、OS の下記箇所から参照・設定が可能です。
    [コントロールパネル]の[電源オプション] を開き、[電源ボタンの動作の選択] から [電源ボタンの設定] - [電源ボタンを押したときの動作] を参照。
    CLUSTERPRO で強制停止機能を使用する場合は、本設定は [何もしない] を指定することを推奨します。

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つの強制停止リソースのみを設定可能です。

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

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