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 - Pre-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 是客戶的責任。
> 功能位置:維護 → 系統記錄和分析 → 在主機上執行指令檔

GW 維護 
執行指令檔 

步驟和流程

執行指令檔於:
1.整個系統 - 所有 PowerFlex 節點
指令檔預設在第一個主機的保護網域 (PD) 上執行,然後再移至第二個,依此類推。
以並行方式在不同的保護網域上停用 - 預設為清除核取方塊。
PD 詳細資料
已啟用「並行在不同的保護網域上」- 選取此選項後,patch_script 將以並行方式在所有 PD 上執行。
沒有 MDM 的 PD 最先執行,叢集節點最後執行。
2_2 (1).png

2.保護網域 - 特定 PD
沒有 MDM 的 PD 最先執行,MDM 叢集節點最後執行。

3.故障集 - 特定 FS。
沒有 MDM 的 FS 最先執行,MDM 叢集節點最後執行。

4.SDS - 單一 SDS 節點


執行組態:
1.在指令檔失敗時停止程序。
1.1 已啟用「指令檔失敗時停止程序」- 預設為勾選此核取方塊。
當 patch_script (如果選取,則為 verification_script) 結束時,出現 0 (零) 以外的其他任何代碼,則整個執行將會失敗並停止。
執行組態
1.2 已停用「在指令檔失敗時停止程序」。
當 patch_script 失敗時,該節點的執行將會失敗,系統將移至下一個節點,並在該節點上執行 patch_script
執行組態

2.指令檔逾時 - 等待 patch_script 完成需要多少時間?
執行指令檔具有可設定的逾時,該逾時由使用者選擇。
預設設定為 15 分鐘 → 由於錯誤,在 PowerFlex 3.6 之前的版本中,逾時已強制編碼為 15 分鐘。
指令碼執行逾時後,整個執行將會失敗並停止。

3.驗證指令檔 - 是否要在執行 patch_script 後執行 verification_script
3.1 執行 - patch_script 將會執行,執行完成後,verification_script 將會根據 patch_script 後續動作是否為重新開機來執行 (區段 #4)。
3.2 不執行 - patch_script 將會執行,執行完成後,整個執行將會停止並成功完成。
執行組態

4.後續指令檔動作 - 是否要在執行 patch_script 後將節點重新開機?
4.1 重新開機 - patch_script 完成執行並以代碼 0 (零) 結束後,節點將會重新開機,並根據是否選擇執行 verification_script 來停止或繼續 (區段 #3)。
如果閘道在要重新開機的節點上,它將不會重新開機,作業會成功,並會顯示快顯訊息提醒我們手動將其重新開機。
4.2 不重新開機 - 在 patch_script 完成執行並以代碼 0 (零) 結束後,節點將不會重新開機,並根據是否選擇執行 verification_script 來停止或繼續 (區段 #3)。
執行組態


在主機上執行指令檔:
按下「在主機上執行指令檔」 -->驗證階段開始。
此階段會向節點的每個 LIA 傳送驗證 patch_script 與 verification_script (若選取) 檔案是否存在於以下位置的要求 /opt/emc/scaleio/lia/bin/
代碼邏輯會選取要在其上執行之節點的隨機清單 (根據前述條件)。
執行指令檔


開始執行階段:
按「開始執行階段」按鈕。
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 - Post-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,這將是修補程式命令的裝載 (必須手動將 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
 


執行修補程式命令:

 
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

    提示- 特殊交換器,可在故障診斷或測試時將指令檔保留在節點中:

    • 編輯檔案 /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.