7. 强制停止资源的详细信息

本章说明强制停止资源的详细信息。

7.1. 何谓强制停止功能?

发现服务器宕机时,其他服务器(正常的服务器)强制停止宕机的服务器的功能。

强制停止宕机服务器的方法取决于配置集群的环境种类(物理机/虚拟机/Cloud)。使用强制停止功能时,请根据环境种类设置**强制停止资源**。 此外,也可以执行记述了停止宕机的服务器的处理的任意脚本。详情请参考"7.6. 理解使用任意脚本的强制停止"。

7.1.1. 强制停止的执行条件

  • 以下情况不执行强制停止。

    • 服务器宕机前失效切换组已经正常停止时

    • 使用[clpdown]命令,Cluster WebUI关闭服务器,失效切换组已经正常停止时

    • 使用[clpcl]命令,Cluster WebUI停止集群,失效切换组已经正常停止时

    • 服务器宕机,但没有从宕机的服务器向其他服务器进行失效切换的失效切换组时。
      (包括宕机的服务器上没有启动失效切换组时。)
  • 以下情况执行强制停止。

    • 服务器宕机,且拥有从宕机的服务器向其他服务器进行失效切换的失效切换组时。

7.2. 理解物理环境下的强制停止

7.2.1. BMC 强制停止资源的设置

为了使用MC强制停止资源,必须要在每个集群服务器中安装ipmiutil。

关于ipmiutil的获取和安装方法,请参考《安装&设置指南》的"确定系统配置"的"配置硬件后的设置"的"9. 设置BMC和ipmiutil(使用物理机的强行停止功能和机箱ID指示灯联动时必须)"。

在BMC强制停止资源中使用的命令

使用 IPMI Management Utilities 的 [ipmiutil reset] 命令强制停止物理机。 使用[ipmiutil health] 进行强制停止资源的状态定期检查,执行强制停止后的停止检查。

执行命令时请设置以下选项值。

[ipmiutil]命令选项

BMC强制停止属性的
服务器列表的编辑[输入BMC]设置项

-N ip_address

IP地址

-U username

用户名

-P password

密码

BMC强制停止资源的强制停止时,执行以下命令。

强制停止动作

命令

BMC Power off

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

BMC reset

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

BMC Power cycle

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

BMC NMI

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

以上命令失败时,执行以下命令。

强制停止动作

命令

BMC Power off

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

BMC reset

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

BMC Power cycle

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强制停止资源中使用的命令

对于强制停止资源,可以通过编辑执行命令的脚本文件来指定在强制停止时使用的任意的命令行。

可以编辑以下文件。

<EXPRESSCLUSTER安装路径>\bin\clpbmcforcestop.bat

对于BMC强制停止资源,使用脚本执行命令时,在环境变量中设置所需信息。

在脚本中描述下图的环境变量。

环境变量

环境变量的值

意思

CLP_BMC_ACTION
・・・强制停止动作
-d : BMC Power off
-r : BMC reset
-c : BMC Power cycle
-n : BMC NMI

表示在BMC强制停止属性中设置的强制停止动作。

CLP_BMC_HOST
・・・BMC的IP地址

IP地址

表示在BMC强制停止属性中设置的IP地址。

CLP_BMC_USER
・・・BMC的用户名

用户名

表示在BMC强制停止属性中设置的用户名。

CLP_BMC_PASSWORD
・・・BMC的密码

密码

表示在BMC强制停止属性中设置的密码。

关于设置BMC强制停止资源的详细内容请参考本指南的"2. 参数的详细信息"的"集群属性"的"Fencing 标签页"的"强制停止"的"BMC 强制停止的属性"。

7.2.2. BMC 强制停止资源的注意事项

  • 关于强制停止的影响点
    如果使用强制停止功能,则不论OS或服务器处于何种状态,都会进行强制的power off,reset,power cycle 或NMI,因此以下功能将受到影响。
    • Dump收集
      由于无法识别是否正在进行Dump收集,所以即便正在进行Dump收集处理,也会发生power off,reset,power cycle,无法完成Dump收集。
    • 心跳超时以内的电源开启操作
      在心跳超时时间内以维护等为目的再次开启服务器电源时,超过心跳超时时间后,有时也会发生power off,reset,power cycle,NMI。
  • 关于BMC的网络设置
    请进行设置,使BMC的管理用LAN端口的IP地址和OS使用的IP地址之间可以进行通信。服务器中没有装载BMC时,或BMC的管理用网络处于闭塞状态时,本功能无法使用。
    请将与BMC的管理用LAN端口中设置的IP地址相同的IP地址,从BMC强制停止属性的服务器列表标签页的编辑按钮设置为输入BMC。
    BMC的管理用LAN端口的IP地址等的设置方法请参考服务器的手册。
  • 关于OS的[电源选项]的设置
    通过BMC执行关机或重启时,可能会执行OS的[电源选项]中指定的操作(睡眠、休眠、关机等)。
    该设置可以从OS的以下位置进行参考/设置。
    打开[控制面板]的[电源选项],从[选择电源计划]中选择[电源按钮设置] - [按电源按钮时:.]
    在EXPRESSCLUSTER中使用强制停止功能时,本设置推荐指定为[无操作]。

7.3. 理解vCenter环境中的强制停止

7.3.1. vCenter 强制停止资源的设置

为了使用vCenter 强制停止资源,必须安装VMware vSphere Command Line Interface (vCLI)。

注解

vCLI的版本为6.5及其以上时,需要单独安装Perl的运行环境。关于运行vCLI时所需的Perl的版本信息等,请参考VMware公司的网站。
安装Perl运行环境后,请执行以下步骤。
  • 设置Perl路径

    请在[集群属性] - [Fencing ] 标签页- [强制停止] - [vCenter强制停止属性] - [vCenter]标签页 - [Perl路径]中设置Perl执行模块的路径。此设置对集群中的所有服务器通用。
    关于Perl路径的详细信息,请参考本指南"2. 参数的详细信息" - "集群属性" - "扩展标签页"。
  • 添加系统环境变量

    请在系统环境变量中添加变量。之后再请重启OS。
    变量名:PERL5LIB
    变量值:vCLI的Perl模块路径 (例:C:\Program Files (x86)\VMware\VMware vSphere CLI\Perl\lib)

vCenter强制停止资源中使用的命令

使用VMware vSphere Command Line Interface (vCLI)的[vmcontrol]命令强制停止虚拟机的客户OS。

使用[vminfo]命令进行强制停止资源的状态定期检查,执行强制停止后的停止检查。

执行命令时设置以下选项值。

命令选项

vCenter强制停止属性的vCenter标签页的设置项

vCenter强制停止属性的
服务器列表的编辑[输入虚拟机名]设置项

--server ip_address

IP地址

-

--username username

用户名

-

--password password

密码

-

--vmname virtualmachine

-

虚拟机名

--datacenter datacenter

-

数据中心名

vCenter强制停止资源的强制停止时会执行以下命令。

强制停止动作

命令

Power off

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

reset

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强制停止资源中使用的命令

对于强制停止资源,可以通过编辑执行命令的脚本文件来指定在强制停止时使用的任意的命令行。

可以编辑以下文件。

<EXPRESSCLUSTER安装路径>\bin\clpvcenterforcestop.bat

对于vCenter强制停止资源,使用脚本执行命令时,在环境变量中设置所需信息。

在脚本中描述下图的环境变量。

环境变量

环境变量的值

意思

CLP_VCLI_PATH
・・・vCLI安装路径

安装路径

表示在vCenter强制停止属性中设置的VMware vSphere CLI安装路径。

CLP_VCENTER_ACTION
・・・强制停止动作
poweroff : Power off
reset : 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. 参数的详细信息" - "集群属性" - "Fencing 标签页" - "强制停止" - "vCenter 强制停止的属性"。

7.3.2. vCenter 强制停止资源的注意事项

  • 关于虚拟机的客户机OS的强制停止
    只可以执行power off、reset。此外,以下情况下不能使用本功能。
    • vSphere基础架构 :没有与VMWare vCenter Server进行通信。

  • 关于强制停止的影响点
    如果使用强制停止功能,则不论OS或服务器处于何种状态,都会进行强制的power off,reset,因此以下功能将受到影响。
    • Dump收集
      由于无法识别是否正在进行Dump收集,所以即便正在进行Dump收集处理,也会发生power off,reset,无法完成Dump收集。
    • 心跳超时以内的电源开启操作
      在心跳超时时间内以维护等为目的再次开启服务器电源时,超过心跳超时时间后,有时也会发生power off,reset。
  • 关于OS的[电源选项]的设置
    通过VMware vSphere执行虚拟机的客户OS断电时,可能会执行OS的[电源选项]中指定的操作(睡眠、休眠、关机等)。
    该设置可以从OS的以下位置进行参考/设置。
    打开[控制面板]的[电源选项],从[选择电源计划]中选择[电源按钮设置] - [按电源按钮时:.]
    在EXPRESSCLUSTER中使用强制停止功能时,本设置推荐指定为[无操作]。

7.4. 理解AWS环境中的强制停止

7.4.1. AWS 强制停止资源的设置

为了使用AWS强制停止资源,必须安装AWS Command Line Interface (AWS CLI)。

关于AWS CLI的获取和安装方法,请参考《开始指南》的"注意限制事项"的"安装OS后,安装EXPRESSCLUSTER前"的"AWS环境中的时刻同步"以及"关于AWS环境中IAM的设置"。

在AWS强制停止资源中使用的命令

使用AWS Command Line Interface (AWS CLI)命令,进行AWS实例的强制停止、强制停止资源的状态定期检查、执行强制停止后的停止检查。

执行命令时请设置以下选项值。

命令选项
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强制停止资源中使用的命令

对于强制停止资源,可以通过编辑执行命令的脚本文件来指定在强制停止时使用的任意的命令行。

可以编辑以下文件。

<EXPRESSCLUSTER安装路径>\cloud\aws\clpawsforcestop.ps1

关于设置AWS强制停止资源的详细内容请参考本指南的"2. 参数的详细信息" - "集群属性" - "Fencing 标签页" - "强制停止" - "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环境中,使用代理服务器等场合时有效。

环境变量设置文件的配置如下所示。
环境变量设置文件不存在时,请创建此文件。
<EXPRESSCLUSTER安装路径>\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]。不指定时,不设置环境变量。

  • 环境变量设置文件不存在时,以及没有读取权限时忽略。不会导致启动异常和监视异常。

  • 已设置了同名的环境变量时,会覆盖原有的值。

  • 可设置多个环境变量。设置多个环境变量时,一行请只设置一个环境变量。

  • =两侧的空格的有无不影响设置是否有效。

  • 环境变量名的前面存在空格或者标签时,以及=的两侧存在标签时,设置无效。

  • 环境变量区分大小写。

  • 值中含有空格时,不需要使用""(双引号)括起来。

  • 没有设置描述#无论A的位置如何#的行的环境变量。

  • 在环境变量设置文件中设置的环境变量仅反映在从上述AWS相关资源执行的AWS CLI中。因此,不会反映在其他脚本中(例:最终动作前脚本、启动/停止前后脚本、从脚本资源执行的脚本)。如果是在其他脚本中执行AWS CLI,请在该脚本中设置所需的环境变量。

7.4.3. AWS 强制停止资源的注意事项

  • 关于虚拟机的客户机OS的强制停止
    只可以执行stop 、reboot操作。此外,以下情况下不能使用本功能。
  • 关于强制停止的影响点
    如果使用强制停止功能,则不论OS或服务器处于何种状态,都会进行强制的power off,reset,因此以下功能将受到影响。
    • Dump收集
      由于无法识别是否正在进行Dump收集,所以即便正在进行Dump收集处理,也会发生power off,reset,无法完成Dump收集。
    • 心跳超时以内的电源开启操作
      在心跳超时时间内以维护等为目的再次开启服务器电源时,超过心跳超时时间后,有时也会发生power off,reset。
  • 关于OS的[电源选项]的设置
    通过AWS CLI执行stop、reboot 时,可能会执行OS的[电源选项]中指定的操作(睡眠、休眠、关机等)。
    该设置可以从OS的以下位置进行参考/设置。
    打开[控制面板]的[电源选项],从[选择电源计划]中选择[电源按钮设置] - [按电源按钮时:.]
    在EXPRESSCLUSTER中使用强制停止功能时,本设置推荐指定为[无操作]。

7.5. 理解OCI环境中的强制停止

7.5.1. OCI 强制停止资源的设置

为了使用OCI强制停止资源,必须要安装Oracle Cloud Infrastructure CLI (OCI CLI)。

关于OCI CLI的获取和安装方法,请参考《开始指南》的"注意限制事项"的"安装OS后,安装EXPRESSCLUSTER前"的"关于OCI环境中CLI的设置"以及"关于OCI强制停止资源的设置"。

在OCI强制停止资源中使用的命令

使用Oracle Cloud Infrastructure CLI (OCI CLI)命令,进行OCI实例的强制停止、强制停止资源状态的定期检查、执行强制停止后的停止检查。

执行命令时请设置以下选项值。

命令选项
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强制停止资源中使用的命令

对于强制停止资源,可以通过编辑执行命令的脚本文件来指定在强制停止时使用的任意的命令行。

可以编辑以下文件。

<EXPRESSCLUSTER安装路径>\cloud\oci\clpociforcestop.ps1

关于设置OCI强制停止资源的详细内容请参考本指南的"2. 参数的详细信息" - "集群属性" - "Fencing 标签页" - "强制停止" - "OCI 强制停止的属性"。

7.5.2. OCI 强制停止资源的注意事项

  • 关于虚拟机的客户机OS的强制停止
    只可以执行stop 、reboot操作。此外,以下情况下不能使用本功能。
  • 关于强制停止的影响点
    如果使用强制停止功能,则不论OS或服务器处于何种状态,都会进行强制的power off,reset,因此以下功能将受到影响。
    • Dump收集
      由于无法识别是否正在进行Dump收集,所以即便正在进行Dump收集处理,也会发生power off,reset,无法完成Dump收集。
    • 心跳超时以内的电源开启操作
      在心跳超时时间内以维护等为目的再次开启服务器电源时,超过心跳超时时间后,有时也会发生power off,reset。
  • 关于OS的[电源选项]的设置
    通过OCI CLI执行stop、reboot 时,可能会执行OS的[电源选项]中指定的操作(睡眠、休眠、关机等)。
    该设置可以从OS的以下位置进行参考/设置。
    打开[控制面板]的[电源选项],从[选择电源计划]中选择[电源按钮设置] - [按电源按钮时:.]
    在EXPRESSCLUSTER中使用强制停止功能时,本设置推荐指定为[无操作]。

7.6. 理解使用任意脚本的强制停止

7.6.1. 自定义强制停止资源的设置

当服务器识别为宕机时,在剩余的服务器中(正常的服务器)执行用户创建的任意脚本的功能。

通过编写脚本,可以强制停止宕机的服务器。

在任意脚本中使用的环境变量

执行脚本时,EXPRESSCLUSTER 设置环境变量,其中包含是否执行定期检查或强制停止以及哪个服务器宕机等信息。

在脚本中,可以使用下图所示的环境变量作为分支条件来描述适合系统运行的处理内容。

环境变量

环境变量的值

意思

CLP_FORCESTOP_MODE
・・・模式
0 : 定期检查时
1 : 执行强制停止时
表示执行的模式。
可以对每个模式的处理进行分支。
CLP_SERVER_DOWN
・・・宕机服务器名

服务器名

表示宕机的服务器名。
定期检查时设置 "" 。
CLP_SERVER_LOCAL
・・・本地服务器名

服务器名

表示执行脚本的服务器名。

任意脚本的返回值

脚本正常终了时请返回0。

关于设置自定义强制停止资源的详细内容请参考本指南的"2. 参数的详细信息" - "集群属性" - "Fencing 标签页" - "强制停止" - "自定义强制停止的属性"。

7.6.2. 自定义强制停止资源的注意事项

  • 请客户将停止服务器的处理记入到强制停止脚本中。

7.7. 强制停止资源的设置相关注意事项

  • 一个集群只能设置一个强制停止资源。

  • 设置强制停止资源时,建议同时设置网络分区解决资源。

  • 设置强制停止资源时,需要将组成集群的所有服务器设置为使用强制停止资源。