7. 强制停止资源的详细信息¶
本章说明强制停止资源的详细信息。
7.1. 何谓强制停止功能?¶
强制停止宕机服务器的方法取决于配置集群的环境种类(物理机/虚拟机/Cloud)。使用强制停止功能时,请根据环境种类设置**强制停止资源**。
此外,也可以执行记述了停止宕机的服务器的处理的任意脚本。详情请参考"7.7. 理解使用任意脚本的强制停止"。
强制停止资源中有“执行强制停止”和“定期检查目标服务器可否被执行强制停止”两种操作。 各种操作内容和执行的时机如下。
执行强制停止
定期检查目标服务器可否被执行强制停止
通过与将强制停止服务器的设备和基础架构系统进行通信,检查是否处于可以执行强制停止的状态。根据检查结果,强制停止资源的状态会变为“正常”(可以执行强制停止)或“异常”(不能执行强制停止)。
在集群服务运行时定期执行。
7.1.1. 强制停止的执行条件¶
以下情况不执行强制停止。
服务器宕机前失效切换组已经正常停止时
使用[clpdown]命令,Cluster WebUI关闭服务器,失效切换组已经正常停止时
使用[clpcl]命令,Cluster WebUI停止集群,失效切换组已经正常停止时
- 服务器宕机,但没有从宕机的服务器向其他服务器进行失效切换的失效切换组时。(包括宕机的服务器上没有启动失效切换组时。)
以下情况执行强制停止。
服务器宕机,且拥有从宕机的服务器向其他服务器进行失效切换的失效切换组时。
7.2. 理解物理环境下的强制停止¶
7.2.1. BMC 强制停止资源的设置¶
为了使用MC强制停止资源,必须要在每个集群服务器中安装ipmiutil。
关于ipmiutil的获取和安装方法,请参考《安装&设置指南》的"确定系统配置"的"配置硬件后的设置"的"设置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的网络设置使用强制停止资源时,请设置禁用 iLO 共享网络端口。请进行设置,使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强制停止资源有两种使用方法:使用vSphere Automation API的方法和使用VMware vSphere Command Line Interface (vCLI) 的方法。
在VMware vSphere 7.0 Update 3或更高版本的环境中无法使用VMware vSphere Command Line Interface (vCLI)。请使用vSphere Automation API 。
vCenter 强制停止资源的参数设置
参数
|
vCenter强制停止属性的vCenter标签页的设置项 |
vCenter强制停止属性的
服务器列表的编辑[输入虚拟机名]设置项
|
---|---|---|
ip_address |
IP地址 |
- |
username |
用户名 |
- |
password |
密码 |
- |
virtualmachine |
- |
虚拟机名 |
datacenter |
- |
数据中心名 |
在vCenter强制停止资源中使用的API
在vCenter强制停止资源中使用了vSphere Automation API 时,以下API将被执行。
创建会话 |
---|
curl -k -X POST -u {username}:{password} https://{ip_address}/api/session |
获取数据中心信息 |
---|
curl -k -X GET https://{ip_address}/api/vcenter/datacenter?names={datacenter} -H "vmware-api-session-id: {api_session_id}" |
获取虚拟机信息 |
---|
curl -k -X GET https://{ip_address}/api/vcenter/vm?names={virtualmachine}&datacenters={datacenter_id} -H "vmware-api-session-id: {api_session_id}" |
强制停止 |
|
---|---|
poweroff |
curl -k -X POST https://{ip_address}/api/vcenter/vm/{vm_id}/power?action=stop -H "vmware-api-session-id: {api_session_id}" |
reset |
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命令
使用VMware vSphere Command Line Interface (vCLI)的[vmcontrol]命令强制停止虚拟机的客户OS。
使用[vminfo]命令进行强制停止资源的状态定期检查,执行强制停止后的停止检查。
使用VMware vSphere Command Line Interface (vCLI)时需要安装包。
注解
设置Perl路径
添加系统环境变量
请在系统环境变量中添加变量。之后再请重启OS。变量名:PERL5LIB变量值:vCLI的Perl模块路径 (例:C:\Program Files (x86)\VMware\VMware vSphere CLI\Perl\lib)
强制停止命令 |
|
---|---|
poweroff |
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 |
定期检查命令 |
---|
vminfo.pl --server ip_address --username username --password password --vmname virtualmachine --datacenter datacenter |
停止检查命令 |
---|
vminfo.pl --server ip_address --username username --password password --vmname virtualmachine --datacenter datacenter --powerstatus "poweredOff" |
编辑在vCenter强制停止资源中使用的命令
对于强制停止资源,可以通过编辑执行命令的脚本文件来指定在强制停止时使用的任意的命令行。
使用vCenter强制停止资源的vSphere Automation API时,可以编辑以下文件。
<EXPRESSCLUSTER安装路径>\bin\clpvcenterforcestop.bat
使用vCenter强制停止资源的VMware vSphere Command Line Interface (vCLI)时,可以编辑以下文件。
<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中¶
请参阅《开始指南》的"注意限制事项" - "创建EXPRESSCLUSTER的信息时" - "AWS CLI命令行选项"。
7.4.3. 使环境变量反映到AWS强制停止资源执行的AWS CLI中¶
请参阅《开始指南》的"注意限制事项" - "创建EXPRESSCLUSTER的信息时" - "执行AWS相关功能时的环境变量"。
7.4.4. 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. 理解Azure环境中的强制停止¶
7.5.1. Azure 强制停止资源的设置¶
为了使用Azure强制停止资源,必须要安装Azure CLI。
在Azure强制停止资源中使用的命令
使用Azure CLI命令,进行Azure实例的强制停止、强制停止资源状态的定期检查、执行强制停止后的停止检查。
执行命令时请设置以下选项值。
命令选项
|
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强制停止资源中使用的命令
对于强制停止资源,可以通过编辑执行命令的脚本文件来指定在强制停止时使用的任意的命令行。
可以编辑以下文件。
<EXPRESSCLUSTER安装路径>\cloud\azure\clpazureforcestop.ps1
关于设置Azure强制停止资源的详细内容请参考本指南的"2. 参数的详细信息" - "集群属性" - "Fencing 标签页" - "强制停止" - "Azure 强制停止的属性"。
7.5.2. Azure 强制停止资源的注意事项¶
- 关于虚拟机的客户机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. 理解OCI环境中的强制停止¶
7.6.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.6.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.7. 理解使用任意脚本的强制停止¶
7.7.1. 自定义强制停止资源的设置¶
当服务器识别为宕机时,在剩余的服务器中(正常的服务器)执行用户创建的任意脚本的功能。
通过编写脚本,可以强制停止宕机的服务器。
编写的脚本在“执行强制停止”和“定期检查目标服务器可否被执行强制停止”两种操作中执行。 为了确保根据操作能进行适当的处理,使用稍后描述的环境变量描述条件分支处理。
在任意脚本中使用的环境变量
执行脚本时,EXPRESSCLUSTER 设置环境变量,其中包含是否执行定期检查或强制停止以及哪个服务器宕机等信息。
在脚本中,可以使用下图的环境变量。
环境变量 |
环境变量的值 |
意思 |
---|---|---|
CLP_FORCESTOP_MODE
・・・模式
|
0 : 定期检查时
1 : 执行强制停止时
|
表示执行的模式。
可以用于对每个模式进行分支处理。
|
CLP_SERVER_DOWN
・・・宕机服务器名
|
服务器名 |
表示宕机的服务器名。
定期检查时设置"" 。
|
CLP_SERVER_LOCAL
・・・本地服务器名
|
服务器名 |
表示执行脚本的服务器名。 |
任意脚本的返回值
脚本正常终了时请返回0。
关于设置自定义强制停止资源的详细内容请参考本指南的"2. 参数的详细信息" - "集群属性" - "Fencing 标签页" - "强制停止" - "自定义强制停止的属性"。
7.7.2. 自定义强制停止资源的注意事项¶
请客户将停止服务器的处理记入到强制停止脚本中。
如果不存在应作为定期检查执行的处理,请描述该处理,使其在作为定期检查执行时不做任何处理而结束(返回返回值 0)。
7.8. 强制停止资源的设置相关注意事项¶
一个集群只能设置一个强制停止资源。
设置强制停止资源时,建议同时设置网络分区解决资源。
设置强制停止资源时,需要将组成集群的所有服务器设置为使用强制停止资源。