PowerFlex:在主机上运行脚本(又称操作系统修补)功能说明

Summary: 该功能用于在托管 MDM 或 SDS 组件的服务器上运行用户提供的脚本。 该功能可用于 PowerFlex 系统外部的任何用途,例如运行一组 Linux shell 命令、给操作系统打补丁等。

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Instructions

UI — PFMP 前 (PowerFlex 4.x)

前提条件

必需 — 主脚本位于 /opt/emc/scaleio/lia/bin/ 目录中,具有执行权限。

  • 脚本名称必须是 patch_script 

可选 — 验证脚本位于 /opt/emc/scaleio/lia/bin/ 目录中,具有执行权限。

  • 脚本名称必须是 verification_script


> 此功能仅在 Linux(RHEL 和 SLES)上受支持。
>此该功能会在执行结束时检查退出代码是否为 0(零)。
>退出代码和脚本运行可在 LIA 日志中找到。
>在使用网关运行此过程之前,客户应负责测试 patch_script 和 verification_script。
> 功能位置:Maintain → System Logs and Analysis → Run Script on Hosts

GW 维护 
运行脚本 

步骤和流程

在以下位置运行脚本:
1.整个系统 — 所有 PowerFlex 节点
默认情况下,脚本在第一个主机的保护域 (PD) 上运行,然后移至第二个主机,依此类推。
禁用 In parallel on different Protection Domains — 默认情况下,该复选框处于清除状态。
PD 详细信息
启用 In parallel on different Protection Domains — 选择此选项后,patch_script 将在所有 PD 上并行运行。
不带 MDM 的物理磁盘排在最前面,群集节点排在最后。
2_2 (1).png

2.保护域 — 某个特定 PD
没有 MDM 的 PD 排在最前面,MDM 群集节点排在最后。

3.故障集 — 某个特定 FS。
没有 MDM 的 FS 排在最前面,MDM 群集节点排在最后。

4.SDS — 单个 SDS 节点


运行配置:
1.Stop the process on script failure。
1.1 启用 Stop process on script failure — 默认情况下,该复选框处于选中状态。
如果 patch_script(以及 verification_script,如果选中)退出并显示除 0(零)以外的任何其他代码,整个运行将失败并停止。
运行配置
1.2 禁用 Stop process on script failure。
如果 patch_script 失败,该节点的执行将失败,系统将移至下一个节点并在该节点上运行 patch_script
运行配置

2.Script timeout — 等待 patch_script 完成的时间有多长?
运行脚本具有可配置的超时值,该值由用户选择。
默认情况下配置为 15 分钟 → 在早于 PowerFlex 3.6 的版本中,由于一个 bug,超时被硬编码为 15 分钟。
脚本运行超时后,整个运行将失败并停止。

3.Verification script — 是否要在 patch_script 运行后运行 verification_script
3.1 Run — patch_script 将运行,完成后,verification_script 将运行,具体取决于 patch_script 运行后的操作是重新启动还是不重新启动(第 4 部分)。
3.2 Do not Run — patch_script 将运行,完成后,整个运行将停止并成功完成。
运行配置

4.Post script action — patch_script 运行后是否要重新启动节点?
4.1 Reboot — patch_script 完成运行,退出并显示代码 0(零)后,节点将重新启动,停止还是继续,取决于您选择 verification_script 是否选择运行(第 3 部分)。
如果网关位于要重新启动的节点上,节点将不会重新启动,操作成功,并且会显示一个弹出窗口,提醒我们手动重新启动节点。
4.2 Do not reboot — patch_script 完成运行,退出并显示代码 0(零)后,节点将不会重新启动,停止或继续取决于您选择 verification_script 是否运行(第 3 部分)。
运行配置


在主机上运行脚本:
按下“Run Script on Hosts”—> 验证阶段开始。
此阶段向每个节点的 LIA 发送请求,以验证 patch_scriptverification_script(如果选中)文件是否存在于以下位置: /opt/emc/scaleio/lia/bin/
代码逻辑选择要运行的随机节点列表(根据上述条件)。
运行脚本


开始执行阶段:
按下“Start execution phase”按钮。
1.网关进行以下验证:

a. 确保没有失败容量。
b.确保有效的备用容量。
c.确保有效的群集状态。
d.确保没有其他 SDS 处于维护模式。

2.使 SDS 进入维护模式。
3.运行 patch_script — 成功运行后,该文件将被删除,并在同一目录中创建它的备份文件。
名称为 backup_patch_script
4.重新启动主机(如果选中)
5.运行 verification_script(如果选中)— 成功运行后,该文件将被删除,并在同一目录中创建它的备份文件,名称为 backup_verification_script
6.使 SDS 退出维护模式。
7.操作已成功完成。
Start execute phase (1).png

 

RESTAPI — PFMP 后 (PowerFlex 4.x)

  • 在所有或部分系统节点上运行补丁脚本,此外可选择重新启动以及运行验证脚本。该操作具有一定程度的并行性。
  • 脚本文件应存储在节点的文件夹中:/opt/emc/scaleio/lia/bin。或者,可以由 GW 上传到节点。脚本可以从 GW 本地文件夹获取,也可以从 HTTP/HTTPS 共享下载。
  • 可以提供 SdsIds 和/或 mdmIds 的列表,以显式选择要运行的节点。
  • 文件名是硬编码的,不能更改:patch_scriptverification_script

REST 命令

  • /im/types/Configuration/actions/liaRunOsPatching

必需参数

  • 以下参数之一是必需的:pdIds/fsIds/sdsIds/mdmIds / executeOnAllSdss / executeOnAllMdms
    • pdIds  — 在属于以下保护域 (PD ID) 的所有节点上运行,十进制格式
    • fsIds  — 在属于以下故障集 (FS ID) 的所有节点上运行,十进制格式
    • sdsIds  — 在按 ID 列出的所有 SDS 上运行,十进制格式
    • mdmIds  — 在按 ID 列出的所有 MDM 上运行,十进制格式
    • executeOnAllSdss  — 在所有 SDS 上运行(true/false)
    • executeOnAllMdms  — 在所有 MDM 上运行(true/false)

可选参数

  • isRebootRequired — 每个节点在运行补丁脚本后是否应该重新启动(值:true/false)
  • isVerificationScriptRequired — 验证脚本是否应该在每个节点上运行(值:true/false)
  • isRunningInParallelOnPds — 操作是否应该在属于不同 PD 的节点上以并行方式运行(值:true/false)
  • isStopProcessingOnScriptFailure — 当脚本失败时,是否应该停止整个操作(值:true/false)
  • TimeoutMs — 运行补丁脚本的超时,以毫秒为单位
  • isUploadFileNeeded  — GW 是否应该将脚本上传到节点(值:true/false)

当 isUploadFileNeeded  为“true”时,以下字段是相关字段:

  • patchScriptFilePath  — 补丁脚本的本地文件夹名称或 http/https URL
  • verificationScriptFilePath  — 验证脚本的本地文件夹名称或 http/https URL
  • maintenanceModeType  — 维护模式类型(值:IMM/PMM)
  • verificationScriptTimeoutSec  — 验证脚本超时,以秒为单位
  • rebootTimeoutSec  — 节点重新启动超时,以秒为单位

请注意,在运行 liaRunOsPatching 命令之前,您应该先登录并获取系统配置,请参阅下面的示例。
 

命令示例

*token 变量包含从 /auth/login 或 /api/gatewayLogin 返回的 Keycloak 令牌。
**<ip-address> — 包含要运行的脚本的 http 服务器的 IP 地址

获取系统配置的 json,这将是 patch 命令的有效负载(必须手动将 liaPassword 和 mdmPassword 从 null 替换为某个字符串)。


将此命令(包含固定密码)的输出插入到 config.json 文件中:

curl -s -X POST -k -H  "Content-Type: application/json" -d '{ "mdmIps":["1.2.3.4","5.6,7,8"], "mdmUser":"<mdm_username>", "mdmPassword":"<mdm_password>", "securityConfiguration":{ "allowNonSecureCommunicationWithMdm":"true", "allowNonSecureCommunicationWithLia":"true", "disableNonMgmtComponentsAuth":"false" } }' -H "Authorization: Bearer ${token}"  https://<m&o-ip-address>/im/types/Configuration/instances
 


运行 patch 命令:

 
curl -v -k -X -i POST -H "Content-Type:application/json" -H "Authorization: Bearer ${token}" 
 "https:/<m&o-ip-address>/im/types/Configuration/actions/liaRunOsPatching?executeOnAllSdss=true &isRebootRequired=true&isVerificationScriptRequired=true&patchScriptFilePath=https://<ip-address>/patch_script&verificationScriptFilePath=https://<ip-address>/verification_script&maintenanceModeType=IMM&rebootTimeoutSec=30" -d @config.json
 

    Additional Information

    日志

    网关:

    • /opt/emc/scaleio/gateway/logs/scaleio.log
    • /opt/emc/scaleio/gateway/logs/scaleio-trace.log

    LIA:
    /opt/emc/scaleio/lia/logs/trc.x

    提示 — 用于在故障处理或测试时将脚本保留在节点中的特殊开关:

    • Edit file /opt/emc/scaleio/gateway/webapps/ROOT/WEB-INF/classes/gatewayInternal.properties
    • 找到字段“ospatching.delete.scripts=false”
    • 更改为 true 以进行故障处理(默认值为 false)

    Affected Products

    PowerFlex rack, ScaleIO
    Article Properties
    Article Number: 000206981
    Article Type: How To
    Last Modified: 23 Sept 2025
    Version:  4
    Find answers to your questions from other Dell users
    Support Services
    Check if your device is covered by Support Services.