PowerFlex: GET_INFO - Support Bundle Collection Utility
요약: get_info.sh - PowerFlex 호스트에서 진단 정보를 수집하여 지원 번들에 압축합니다.
지침
get_info.sh [옵션]
설명
get_info.sh 는 PowerFlex(이전의 ScaleIO) 호스트에서 디버그 정보를 수집하고 지원 담당자가 분석할 수 있도록 압축된 번들에 보관하는 진단 유틸리티입니다.
이 유틸리티는 다음과 같은 여러 소스에서 데이터를 수집합니다.
- PowerFlex 구성 요소 로그, 구성 및 추적 파일
- MDM/SCLI 쿼리 출력 및 내부 디버그 덤프
- PowerFlex 구성 요소 내부 진단
- 운영 체제 구성, 로그 및 런타임 상태
- 하드웨어 인벤토리(스토리지 컨트롤러, 네트워크 디바이스, NVMe, NVDIMM 등)
- 코어 덤프(기존 덤프 및 필요에 따라 선택적으로 생성됨)
- 진단 데이터 수집기(
diag_coll) 통계
결과 번들은 추가 분석을 위해 PowerFlex 지원으로 전송할 수 있는 단일 압축 아카이브(기본적으로 tar/gz)입니다.
의 단 하나의 인스턴스입니다. get_info.sh 지정된 시간에 호스트에서 실행할 수 있습니다. 출력에 사용할 수 있는 공간이 충분하지 않으면 실행을 거부합니다(공간 검사를 명시적으로 건너뛰지 않는 한).
옵션
일반 옵션
-
-a, --all모든 데이터를 수집합니다. 이는 다음을 지정하는 것과 같습니다.
--mdm-repository,--collect-cores,--max-cores=2,--valgrind-cores및--analyse-diag-coll. -
-A, --analyse-diag-coll진단 데이터 수집기 분석(
diag coll) 데이터 -
-b[COMPONENTS], --collect-cores[=COMPONENTS]공백으로 구분된 사용자 영역 목록에 대한 기존 코어 덤프 수집
COMPONENTS. 기본값(COMPONENTS가 생략됨): 모든 사용자 영역 구성요소
-b 및 구성 요소. 긴 형식의 경우 =
예제
-b'mdm sds'
--collect-cores='mdm sds'
-
-d OUT_DIR, --output-dir=OUT_DIR결과 번들을 디렉토리 아래에 저장합니다.
OUT_DIR. Default: <WORK_DIR>/scaleio-getinfo(참조:--work-dir). -
-f, --skip-mdm-loginPowerFlex MDM 로그인 자격 증명에 대한 쿼리를 건너뜁니다. 사용자가 이미 수동으로 로그인한 경우에 유용합니다.
-
-h, --help도움말 메시지를 표시하고 종료합니다. 와 결합하는 경우
--tech에 기술 지원 담당자 옵션도 표시됩니다. -
-J, --xzCU 대신
tar/xz기본값 대신 수집된 번들의 형식tar/gz.시스템의tar(1)지원하지 않음--use-compress-program또는xz(1)은(는) 찾을 수 없습니다. -
-k NUM, --max-cores=NUM최대 수거
NUM각 구성 요소의 core 파일. 기본: 모든 코어 파일은 다음을 의미합니다.--collect-cores -
-l, --light라이트 번들을 생성합니다. 번호가 매겨진 최신 세대의 로그 파일만 수집되며 코어를 수집할 때 구성 요소 실행 파일 또는 라이브러리는 포함되지 않습니다. 이 옵션을 사용하면 지원 가능성이 감소하므로 사용하지 않는 것이 좋습니다.
-
-m NUM, --max-traces=NUM최대 수거
NUM각 구성 요소의 PowerFlex 추적 파일. 기본: 모든 파일 -
-N, --skip-space-check데이터를 수집하기 전에 사용 가능한 디스크 공간 확인을 건너뜁니다.
-
-P PATH, --collect-path=PATH추가 경로 수집
PATH.절대 경로만 허용됩니다. 와일드카드를 사용할 수 있습니다. 와일드카드는 따옴표로 묶어야 합니다. 이 옵션은 여러 경로를 수집하기 위해 여러 번 지정할 수 있습니다. -
-q, --quiet, --silent표준 출력에서 메시지를 표시하지 않습니다.
-
-r, --mdm-repositoryMDM 리포지토리 파일을 수집합니다.
-
-s, --skip-sdbgSDBG(진단 디버거) 출력의 수집을 건너뜁니다.
-
-S, --pause-core-generation데이터 수집 중 PowerFlex 구성 요소의 코어 생성을 일시 중지합니다. 수집이 완료된 후 원래 구성이 복원됩니다.
-
-w WORK_DIR, --work-dir=WORK_DIR디렉토리 사용
WORK_DIR임시 파일의 경우. 기본:/tmp. -
-x FILE, --output-file=FILE수집된 번들을
FILE. 해당 파일 이름 접미사(.tgz,.zip, 등)이 자동으로 추가됩니다. 만약FILE다음과 같음-(대시), 표준 출력에 번들을 씁니다(--quiet)를 제공해야 합니다. 번들이 표준 출력에 기록될 때 디스크에 번들 파일이 생성되지 않습니다. 기본:getInfoDump. -
-z, --zipCU 대신
zip기본값 대신 수집된 번들의 형식tar/gz. 다음과 같은 경우 무시됩니다.zip(1)시스템에서 찾을 수 없습니다. -
--mdm-port=PORT포트를 사용하여 MDM에 연결
PORTSCLI 명령의 경우. 기본:scli default behavior. -
--overwrite-output-file출력 파일이 이미 있는 경우 덮어씁니다. 출력 파일 또는 디렉토리가 명시적으로 지정된 경우(
-x또는-d), 기본 동작은 덮어쓰기를 거부하는 것입니다. 이 옵션은 이를 재정의합니다. -
--tech도움말 메시지 출력에 기술 지원 담당자 옵션을 포함합니다.
MDM 로그인 옵션
다음 옵션이 SCLI로 전달됩니다. --login 명령어와 동일한 방식으로 AUTHC를 사용합니다. 해당 동작 및 기본값은 SCLI에 의해 제어됩니다.
-
-n, --use-nonsecure-communication비보안 모드에서 MDM에 연결합니다.
-
-p PASSWORD, --password=PASSWORDCU 대신
PASSWORDPowerFlex MDM 로그인용. 기본: SCLI 기본 동작 -
-u USERNAME, --username=USERNAMECU 대신
USERNAMEPowerFlex MDM 로그인용. 기본: SCLI 기본 동작 -
--ldap-authenticationLDAP 기반 인증을 사용하여 PowerFlex MDM에 로그인합니다.
-
--management-system-ip=ADDRESS연결 대상
SSO/M&OatADDRESSPowerFlex 로그인용. 기본: SCLI 기본 동작 -
--p12-password=PASSWORDPowerFlex 로그인 암호화
PKCS#12파일을 사용하여PASSWORD. 기본: SCLI 기본 동작 -
--p12-path=FILEPowerFlex 로그인 저장
PKCS#12파일 형식FILE. 기본: SCLI 기본 동작
기술 지원 담당자 옵션
다음 옵션은 기술 지원 담당자를 위한 것이며 다음과 같은 경우에만 도움말 메시지에 표시됩니다. --tech 가 지정됩니다.
-c[COMPONENTS], --generate-cores[=COMPONENTS]
코어 파일 생성( gcore(1)) 공백으로 구분된 사용자 토지 목록의 실행 중인 프로세스의 경우 COMPONENTS. 기본값: 모든 사용자 영역 구성 요소, 다음을 의미합니다. --collect-executables및 requires gdb 및 gcore.
-c 및 COMPONENTS. 긴 형식의 경우 =.
예:
-c'mdm sds'
--generate-cores='mdm sds'
-
-C CORE_FILE, --reference-core-file=CORE_FILE마지막 수정 시간을 기준으로 제품 로그 및 코어를 수집합니다(
mtime)의CORE_FILE, 실행 시작 시간 대신. 의미--collect-cores -
-E REF_TIME, --event-time=REF_TIME다음에 관련된 제품 로그 및 코어 수집
REF_TIME, 실행 시작 시간 대신. 에서 이해할 수 있는 모든 형식 허용date(1). 의미--collect-cores. -g[COMPONENTS], --valgrind-cores[=COMPONENTS]
수집 valgrind 지정된 사용자 영역에 대한 코어 덤프 COMPONENTS. 기본값: 모든 사용자 영역 구성 요소. 의미 --collect-executables.
-b 및 COMPONENTS. 긴 형식의 경우 =
예:
-g'mdm sds'
--valgrind-cores='mdm sds'
-
-t MIN, --minutes-before-event=MIN제품 로그 수집 및 최대 생성된 코어
MIN참조 시간 몇 분 전입니다. 기본: 15 -
-T MIN, --minutes-after-event=MIN제품 로그 수집 및 최대 생성된 코어
MIN참조 시간보다 분 후입니다. 기본: 5 -
-X[COMPONENTS], --collect-executables[=COMPONENTS]지정된 사용자 영역에 대한 구성 요소 실행 파일 및 해당 공유 라이브러리 수집
COMPONENTS. 기본: 모든 사용자 영역 구성요소
-b 및 COMPONENTS. 긴 형식의 경우 =
예:
-X'mdm sds'
--collect-executables='mdm sds'
-
--keep-work-dir번들 생성 후 생성된 임시 작업 디렉토리를 유지합니다(자동으로 정리됨).
번들 구조
출력 번들은 압축된 단일 아카이브입니다.
- 번들 최상위 디렉토리는 수집된 시스템의 호스트 이름입니다.
- 일반 호스트 명령 출력은
server/하위 디렉터리.
파일 이름:<command>+<arguments>+ 접미사(.txt기본적으로). 다음으로 대체된 공백_, 영숫자가 아닌 문자가 제거
됨 예:server/ip_-s_addr.txt – output of ip -s addr - 제품 명령 출력은 구성 요소의 하위 디렉토리로 이동합니다.
mdm/예를 들어,scli,sdc/예를 들어,drv_cfg, 등등.
명령 이름(scli,drv_cfg등)이 제거됩니다. 첫 번째 의미 있는 인수는 파일 이름이 됩니다. 파일은 관련 접미사로 할당됩니다..txt입니다.
예:
-
mdm/query_cluster.txt- 의 출력scli --query_clustermdm/tgt_dump.txt- 의 출력scli --debug_action --tgt_dumpsdc/query_mdms.txt- 의 출력drv_cfg --query_mdmssds/sdbg.txt- SDBG 출력dumpallscreensSDS용
- 제품 구성 요소 파일(명령 출력과 반대)
<component>/cfg,<component>/logs, 등
접두사가 제거된 구성 요소의 디렉토리에서 복사됩니다.
예:
-
mdm/cfg/conf.txt- 사본/opt/emc/scaleio/mdm/cfg/conf.txtsds/logs/trc.0- 사본/opt/emc/scaleio/sds/logs/trc.0
- 호스트 파일 시스템 파일은 번들 루트를 기준으로 해당 파일 시스템 경로에 배치됩니다.
예:
-
etc/os-release- 사본/etc/os-releasevar/log/messages- 사본/var/log/messagesproc/cpuinfo- 사본/proc/cpuinfo
- diag_coll(Diagnostic Collector) 파일은
/opt접두사가 제거되어 내부 구조가 유지됩니다.
예:diag_coll/logs/sar.0- 사본/opt/diag_coll/logs/sar.0 - 숨김 파일(점 접두사)은 선행 점을 제거하여 "숨김 해제"됩니다.
- 유틸리티 실행 로그,
get_info_run.log호스트 이름>/루트 바로 아래에 배치됩니다<.
번들 디렉토리 트리 구조:
<hostname>/
|-- get_info_run.log Utility execution log
|-- server/ General command output directory
| |-- ip_-s_addr.txt
| |-- uptime.txt
| |-- uname_-a.txt
| |-- ps_-elF.txt
| |-- dmesg.txt
| +-- ... (one file per collected command)
|
|-- mdm/ PowerFlex component data (if installed)
| |-- cfg/ Configuration files (excl. PEM)
| |-- logs/ Trace and log files
| |-- rep/ Repository (if --mdm-repository)
| |-- query_all.txt SCLI query outputs
| |-- sdbg.txt SDBG screen dumps
| +-- ...
|-- sds/
|-- pds/
|-- dgwt/
|-- sdr/
|-- sdt/
|-- lia/
|-- sdc/
|-- gateway/
|
|-- diag_coll/ Diagnostic data collector (if installed)
| |-- logs/
| |-- cfg/
| +-- ...
|
|-- etc/ Host files
| |-- os-release
| |-- sysconfig/
| |-- network/
| +-- ...
|-- var/
| |-- log/
| | |-- messages
| | +-- ...
| +-- ...
|-- proc/
| |-- cpuinfo
| |-- meminfo
| +-- ...
|-- sys/
|-- ...
|
|-- scaleio-getinfo-extra/ Extra diagnostic data (if present)
+-- scaleio-getinfo-backup/ Backed-up configuration files (if any)
제품 로그 및 코어 파일 필터링
이 섹션에 설명된 옵션은 제품 로그 파일(예: 추적 파일이라고도 함)을 제어하는 방법을 제어합니다. trc.0, trc.1, exp.0) 및 코어 덤프 파일이 수집된 번들에 포함되도록 선택됩니다. 이를 위해 참조 시간, 주변 시간 창 및 카운트 제한을 정의합니다.
필터링 옵션을 지정하지 않으면 모든 제품 로그 파일 및 모든 코어 덤프 파일(코어 수집이 활성화된 경우)이 수집됩니다. 필터링 옵션은 아래에 설명된 대로 이 선택 범위를 점진적으로 좁힙니다.
참조 시간
참조 시간은 다음 중 하나를 사용하여 설정할 수 있습니다. -E/--event-time 또는 -C/--reference-core-file.
둘 다 없는 경우 --event-time 도 --reference-core-file 가 주어지면, 시간 창 필터링이 수행되지 않습니다: 참조 시간은 기본적으로 현재 시간으로 설정되며 카운트 제한(-m 또는 -k)가 적용됩니다(아래 개수 제한 참조).
둘 다 -E 및 -C 이 나타나면 명령줄의 마지막 항목이 적용됩니다.
기간
참조 시간이 설정된 경우( --event-time 또는 --reference-core-file), 그 주위에 시간 창이 설정됩니다. 기간 범위는 다음을 사용하여 설정할 수 있습니다. -t/--minutes-before-event 및/또는 -T/--minutes-after-event, 기본값은 각각 15분 및 5분입니다. 콘텐츠가 이 창과 겹치는 파일만 수집할 수 있습니다.
예를 들어 다음과 같습니다. -E "2020-03-20 14:30" -t 10 -T 3 14:20:00에서 14:33:00까지의 파일을 수집합니다.
--minutes-before-event 및 --minutes-after-event 둘 다 아닌 경우 무시됩니다. --event-time 도 --reference-core-file 가 지정됩니다.
개수 제한
다음을 사용하여 파일 개수 제한을 설정할 수 있습니다. -m/--max-traces 및 -k/--max-cores, 각각 로그 파일 및 코어 파일의 경우입니다. 한도는 구성 요소별로 측정됩니다.
NUM보다 많은 파일이 시간 창 내에 있는 경우(또는 활성화된 창이 없는 경우 사용 가능한 경우) 참조 시간에 가장 가까운 NUM 파일이 수집됩니다.
개수 제한이 없이 사용되는 경우 --event-time 또는 --reference-core-file, 모든 파일이 후보(시간 창 없음)이고 NUM 가장 최근 파일이 선택됩니다.
필터링 논리
파일 필터링은 먼저 기간에 적용된 다음 개수 제한에 적용됩니다.
- 후보를 설정합니다. 구성 요소에 대한 모든 제품 로그 파일 및/또는 코어 덤프 파일이 열거됩니다.
- 콘텐츠 기간을 파생합니다. 제품 로그 파일 콘텐츠는 기간을 나타냅니다. 콘텐츠 기간은 이전 작업의 마지막 수정 시간(
mtime) 또는 선행 제품이 없는 UNIX epoch; 파일 자체에서 끝납니다.mtime. 코어 덤프 파일은 파일의mtime. - 기간을 적용합니다(
-E또는-C지정됨). 내용이 완전히 창 밖에 있는 파일은 선택 항목에서 삭제됩니다. 제품 로그 파일의 경우 창 내에 파일이 없으면 구성 요소에 대해 번들이 비어 있지 않도록 창에 가장 가까운 단일 파일이 유지됩니다. 코어 덤프 파일의 경우 이러한 대체가 적용되지 않습니다. - Apply count limit(
-m및/또는-k지정됨). 나머지 파일 중 기껏해야NUM이 선택되어 참조 시간에 가장 가까운 시간을 선호합니다. 참조 시간 전과 후의 파일은 선택을 위해 동등하게 경쟁합니다.
인증
운영 MDM 프로세스가 예상 포트(기본값: 6611)
MDM 로그인 옵션이 SCLI로 전달됩니다. --login 명령하고 그것에 의해 처리됩니다.
로그인에 실패하면 유틸리티가 종료되고 오류가 발생합니다.
로그인을 건너뛰면 SCLI 명령이 계속 시도됩니다(사용자가 사전에 수동으로 로그인한 시나리오를 지원하기 위해). SCLI 오류가 세 번 발생하면 경고가 표시되고 이후의 모든 SCLI 명령은 건너뜁니다.
다음과 같은 경우 로그인을 건너뜁니다.
- 로컬 호스트에서 운영 MDM 프로세스를 찾을 수 없습니다.
- 이
--skip-mdm-login옵션이 지정되었습니다.
다음과 같은 경우 로그인이 실패합니다.
- MDM 프로세스 소유자가 승인된 사용자 목록에 없습니다(기본값:
root)로 표시되며 보안 로그인이 활성화됩니다. - SCLI는
--login명령은 오류(예: 잘못된 자격 증명)를 반환합니다.
디스크 공간
임시 파일 및 결과 번들에 대한 디스크 공간 요구 사항은 상당히 다를 수 있습니다.
유틸리티는 임시 공간 사용을 최소화하려고 시도합니다. 수집된 가상 파일 시스템의 명령 출력 및 복제본(/proc 및 /sys) 파일.
번들은 다음을 사용하여 원격 호스트에서 스트리밍할 수 있습니다. --output-file=- 를 사용하여 PowerFlex 호스트의 디스크 공간 사용량을 최소화합니다. 번들 파일은 표준 출력(stdout) 스트리밍할 때; 디스크에 생성되지 않습니다.
유틸리티는 데이터를 수집하기 전에 임시 작업 디렉토리와 출력 번들 모두에 필요한 디스크 공간을 추정합니다.
예상되는 필수 공간이 관련 파일 시스템에서 사용 가능한 공간을 초과하면 유틸리티가 오류와 함께 종료됩니다. 이 검사는 다음을 사용하여 건너뛸 수 있습니다. --skip-space-check.
작업 디렉토리와 출력 디렉토리는 서로 다른 파일 시스템에 상주할 수 있습니다. 각각은 독립적으로 확인됩니다.
예상 공간 요구 사항은 유틸리티의 로그 파일에 기록됩니다. get_info_run.log.
종료 상태
| 0 | 성공적인 완료 |
| 1 | 오류(잘못된 인수, 공간 부족, 로그인 실패, 이미 실행 중인 다른 인스턴스, 번들 생성 실패, 신호 포착 등) |
파일
<WORK_DIR>/get_info_run.log |
실행 로그(번들에도 있음) |
<WORK_DIR>/scaleio-getinfo-tmp/ |
임시 작업 디렉터리(성공 시 정리됨) |
/tmp/scaleio-getinfo/getInfoDump.tgz |
기본 출력 번들 위치 |
<WORK_DIR>/scaleio-getinfo-extra/
/tmp/scaleio-getinfo-extra/ |
선택적 추가 진단 데이터 디렉터리 |
/tmp/scaleio-getinfo-backup/ |
수정된 구성 파일의 임시 백업(자동 생성됨) |
/opt/emc/scaleio/ |
PowerFlex 설치 디렉토리 |
환경
필수 구성 요소
- 유틸리티는 다음과 같이 실행되어야 합니다.
root(또는 구성 요소 파일을 읽고, 진단 명령을 실행하고,/proc,/sys, 등). - 표준 유틸리티:
tar,gzip,stat,find,awk,sed,getopt(1)(향상됨),nice. - *선택 사항:
zip(--zip),xz(--xz),gdb/gcore(--generate-cores)
동시성
의 단 하나의 인스턴스입니다. get_info.sh 한 번에 실행할 수 있습니다. 이 유틸리티는 다음을 사용하여 실행 중인 기존 인스턴스를 확인합니다. pidof(1) 인스턴스가 발견되면 종료됩니다.
신호 처리
유틸리티 트랩 INT, EXIT및 TERM 데이터 수집 중 신호. 신호를 수신하면 다음과 같습니다.
- 백업된 구성 파일(예: 코어 생성 설정)을 복원합니다.
- 임시 디렉토리 정리
- 상태가 1인 종료
실행 로그가 보존되고 해당 경로가 표준 오류로 인쇄됩니다.
예
표준 지원 번들을 수집합니다.
get_info.sh
원격 PowerFlex 호스트에 번들 파일을 생성하지 않고 SSH 연결을 통해 번들을 스트리밍합니다.
ssh <host> 'get_info.sh --output-file=-' > getInfoDump-<host>.tgz
다른 작업 디렉터리를 사용하여 채우지 않도록 합니다 /tmp파일로 교체합니다.
get_info.sh --work-dir=/var/tmp
번들에 사용자 지정 경로를 포함합니다.
get_info.sh --collect-path=/opt/custom/app/logs --collect-path='/var/log/app*'
SDS 및 MDM 구성 요소에 대해서만 최신 코어 덤프를 수집합니다.
get_info.sh --collect-cores='mdm sds' --max-cores=1
사용자 지정 기간을 사용하여 코어 파일의 수정 시간을 중심으로 데이터를 수집합니다.
get_info.sh --reference-core-file=/opt/emc/scaleio/sds/bin/core.1000 \
--minutes-before-event=10 \
--minutes-after-event=2