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

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

7.1. 強制停止機能とは?

ハートビートの途絶によりサーバのダウンを認識したときに、残りのサーバ (正常なサーバ) からダウンしたサーバを強制的に停止させる機能です。
サーバがダウンしたと認識されたとき、実際にはサーバのストールにより一時的に動作不能になっている場合等があります。このような場合に、ダウンしたサーバから健全なサーバに業務アプリケーションをフェイルオーバする前に、ダウンしたサーバを確実に停止状態に移行させることにより、同一資源を複数のサーバからアクセスしデータ破壊を引き起こす危険性を減らすことができます。

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

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

強制停止リソースには「強制停止実行」と「定期チェック」という2種類の動作があります。 それぞれの動作内容や実行されるタイミングは以下のとおりです。

  • 強制停止実行

    • サーバの状態を管理する装置や基盤システムの機能を使用して、ダウンしたサーバを強制的に停止します。

    • サーバのダウンを認識したときに実行されます。詳細な実行条件は「7.1.1. 強制停止実行条件」を参照してください。

  • 定期チェック

    • サーバを強制停止する装置や基盤システムと通信を行うことにより、強制停止を実行できる状態であるかどうかをチェックします。チェックの結果の応じて、強制停止リソースのステータスは "正常" (強制停止を実行可能) または "異常" (強制停止を実行不可能) に変化します。

    • クラスタサービス起動中に、一定時間ごとに実行されます。

7.1.1. 強制停止実行条件

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

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

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

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

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

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

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

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

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

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

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 のネットワーク設定について
    強制停止リソースを使用する場合は、iLO 共有ネットワークポートを無効に設定してください。
    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 強制停止リソースでは、vSphere Automation API を使用する方法と、 VMware vSphere Command Line Interface (vCLI) を使用する方法があります。

VMware vSphere 7.0 Update 3 以降の環境では、VMware vSphere Command Line Interface (vCLI) を使用できません。また、VMware vSphere 7.0 Update 2 より前の環境では、vSphere Automation API を使用できません。

vCenter 強制停止リソースのパラメータ設定

vCenter 強制停止リソースでは下記のパラメータを設定してください。
vSphere Automation API ではリクエストに指定するパラメータになります。
VMware vSphere Command Line Interface (vCLI) ではコマンドのオプションに指定するパラメータになります。
パラメータ

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

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

ip_address

IP アドレス

-

username

ユーザ名

-

password

パスワード

-

virtualmachine

-

仮想マシン名

datacenter

-

データセンター名

vCenter 強制停止リソースで使用する API

vCenter 強制停止リソースで vSphere Automation API を使用した場合、以下の API が実行されます。

セッションを作成し、セッションID(api_session_id)を取得します。

セッション作成

curl -k -X POST -u {username}:{password} https://{ip_address}/api/session

データセンター情報からデータセンターID(datacenter_id)を取得します。

データセンター情報取得

curl -k -X GET https://{ip_address}/api/vcenter/datacenter?names={datacenter} -H "vmware-api-session-id: {api_session_id}"

仮想マシン情報から、電源状態と仮想マシンID(vm_id)を取得します。
電源状態は、vCenter 強制停止リソースの定期チェックと強制停止実行後の停止チェックで利用します。

仮想マシン情報取得

curl -k -X GET https://{ip_address}/api/vcenter/vm?names={virtualmachine}&datacenters={datacenter_id} -H "vmware-api-session-id: {api_session_id}"

仮想マシンのゲストOSの強制停止を実行します。

強制停止

パワーオフ

curl -k -X POST https://{ip_address}/api/vcenter/vm/{vm_id}/power?action=stop -H "vmware-api-session-id: {api_session_id}"

リセット

curl -k -X POST https://{ip_address}/api/vcenter/vm/{vm_id}/power?action=reset -H "vmware-api-session-id: {api_session_id}"

作成したセッションを削除します。

セッション削除

curl -k -X DELETE https://{ip_address}/api/session -H "vmware-api-session-id: {api_session_id}"

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

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

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 強制停止リソースの強制停止では以下のコマンドが実行されます。

強制停止コマンド

パワーオフ

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 強制停止リソースで使用するコマンドを編集するには

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

vCenter 強制停止リソースの vSphere Automation API を使用した場合、以下のファイルを編集することができます。

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

vCenter 強制停止リソースの VMware vSphere Command Line Interface (vCLI) を使用した場合、以下のファイルを編集することができます。

<CLUSTERPROインストールパス>\bin\clpvcentercliforcestop.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へコマンドラインオプションを反映させるには

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

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

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

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

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

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

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

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

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

コマンドのオプション

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

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

--name/-n

-

仮想マシン名

--username/-u

ユーザURI

-

--tenant/-t

テナントID

-

--password/-p

サービスプリンシパルのファイルパス

-

--resource-group/-g

リソースグループ名

-

Azure CLI コマンドを使用するために以下のコマンドが実行されます。

Azure CLI へのログイン

az login --service-principal -u MyUserUri -p MyCertfile.pem --tenant MyTenantId

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

強制停止アクション

強制停止コマンド

stop

az vm deallocate -g MyResourceGroup -n MyVm

reboot

az vm restart -g MyResourceGroup -n MyVm --force

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

定期チェックコマンド

az vm update -g MyResourceGroup -n MyVm --no-wait

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

停止チェックコマンド

az vm get-instance-view -g MyResourceGroup -n MyVm --query instanceView.statuses[1].displayStatus --output tsv

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

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

<CLUSTERPROインストールパス>\cloud\azure\clpazureforcestop.ps1

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

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

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

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

7.6.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.6.2. OCI 強制停止リソースの注意事項

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

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

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

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

記述されたスクリプトは、「強制停止実行」と「定期チェック」の両方の動作で実行されます。 動作に応じて適切な処理が行われるように、後述の環境変数を使った条件分岐処理を記述してください。

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

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

スクリプト内で下図の環境変数を使用することができます。

環境変数

環境変数の値

意味

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

サーバ名

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

サーバ名

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

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

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

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

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

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

  • 定期チェックとして実行すべき処理が無い場合は、定期チェックとして実行された際に何もせずに終了 (戻り値 0 を返却) するように処理を記述してください。

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

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

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

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

  • 強制停止リソース実行中のフェイルオーバグループの両系活性を防止するために、サービス起動遅延時間を以下となるように設定してください。

    • DISK ネットワークパーティション解決リソースを設定する場合
      サービス起動遅延時間 >= 強制停止リソースの強制停止タイムアウト + 強制停止リソースの停止完了待ち時間 + ハートビートタイムアウト + ハートビートインターバル + DISK ネットワークパーティション解決リソースの IO 待ち時間 + 10 秒
    • DISK ネットワークパーティション解決リソースを設定しない場合
      サービス起動遅延時間 >= 強制停止リソースの強制停止タイムアウト + 強制停止リソースの停止完了待ち時間 + ハートビートタイムアウト + ハートビートインターバル

    サービス起動遅延時間につきましては 「CLUSTERPRO のサービス起動時間を調整する (必須)」 を参照してください。