PowerFlex: 호스트에서 스크립트 실행(OS 패치라고도 함) 기능 설명

Summary: 이 기능은 MDM 또는 SDS 구성 요소를 호스팅하는 서버에서 사용자가 제공한 스크립트를 실행하는 데 사용됩니다. 이 기능은 Linux 셸 명령 실행, 운영 체제 패치 적용 등 PowerFlex 시스템 외부에서 모든 용도로 사용할 수 있습니다.

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. Entire System - 모든 PowerFlex 노드
기본적으로 스크립트는 첫 번째 호스트의 PD(Protection Domain)에서 실행된 다음 두 번째 항목으로 이동하는 방식으로 실행됩니다.
In parallel on different Protection Domains 비활성화됨 - 기본적으로 이 확인란은 선택 취소되어 있습니다.
PD 세부 정보 
In parallel on different Protection Domains 활성화됨 - 이 옵션을 선택하면 patch_script가 모든 PD에서 병렬로 실행됩니다.
MDM이 없는 PDS가 첫 번째이고 클러스터 노드가 마지막입니다.
2_2 (1).png

2. Protection Domain - 특정 PD
MDM이 없는 PD가 첫 번째이고 MDM 클러스터 노드가 마지막입니다.

3. Fault Set - 특정 FS.
MDM이 없는 FS가 첫 번째이고 MDM 클러스터 노드가 마지막입니다.

4. SDS - 단일 SDS 노드


구성 실행:
1. 스크립트 실패 시 프로세스를 중지합니다.
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 이전 버전에서는 시간 초과가 15분으로 하드 코딩됩니다.
스크립트 실행 시간이 초과되면 전체 실행이 실패하고 중지됩니다.

3. Verification script - patch_script를 실행한 후 verification_script를 실행하시겠습니까?
3.1 Run - patch_script가 실행되고 완료되면 patch_script 사후 작업이 재부팅되었는지 여부에 따라 verification_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(Protection Domain) ID의 일부인 모든 노드에서 10진수 형식으로 실행
    • fsIds  - 다음 FS(Fault Set) ID의 일부인 모든 노드에서 10진수 형식으로 실행
    • sdsIds  - ID별로 나열된 모든 SDS에서 10진수 형식으로 실행
    • mdmIds  - ID별로 나열된 모든 MDM에서 10진수 형식으로 실행
    • executeOnAllSdss  - 모든 SDS에서 실행(true/false)
    • executeOnAllMdms  - 모든 MDM에서 실행(true/false)

Optional Parameters(선택적 매개변수)

  • 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 명령을 실행하기 전에 먼저 로그인하여 시스템 구성을 가져와야 합니다. 아래 예를 참조하십시오.
 

명령 예

*토큰 변수에는 /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.