PowerFlex: GET_INFO - Support Bundle Collection Utility
Résumé: get_info.sh - PowerFlex 호스트에서 진단 정보를 수집하여 지원 번들로 압축
Instructions
get_info.sh [옵션]
설명
get_info.sh는 PowerFlex(이전의 ScaleIO) 호스트에서 디버그 정보를 수집하고 지원 담당자가 분석할 수 있도록 압축된 번들에 보관하는 진단 유틸리티입니다.
이 유틸리티는 다음과 같은 여러 소스에서 데이터를 수집합니다.
- PowerFlex 구성 요소 로그, 구성 및 추적 파일
- MDM/SCLI 쿼리 출력 및 내부 디버그 덤프
- PowerFlex 구성 요소 내부 진단
- 운영 체제 구성, 로그 및 런타임 상태
- 하드웨어 인벤토리(스토리지 컨트롤러, 네트워크 디바이스, NVMe, NVDIMM 등)
- 코어 덤프(기존 덤프 및 필요에 따라 선택적으로 생성됨)
- 진단 데이터 수집기(diag_coll) 통계
결과 번들은 추가 분석을 위해 PowerFlex 지원으로 전송할 수 있는 단일 압축 아카이브(기본적으로 tar/gz)입니다.
한 번에 하나의 get_info.sh 인스턴스만 호스트에서 실행할 수 있습니다. 출력을 위한 여유 공간이 충분하지 않으면 실행을 거부합니다(공간 검사를 명시적으로 건너뛰지 않는 한).
옵션
일반 옵션
-
-ᅡ, --모두
모든 데이터를 수집합니다. 이는 --mdm-repository, --collect-cores, --max-cores=2, --valgrind-cores 및 --analyse-diag-coll을 지정하는 것과 같습니다.
-
-ᅡ, --분석 진단 콜
진단 데이터 수집기(diag coll) 데이터를 분석합니다.
-
-b[구성 요소], --코어 수집[=구성 요소]
사용자 영역 구성 요소의 공백으로 구분된 목록에 대한 기존 코어 덤프를 수집합니다. 기본값(COMPONENTS가 생략된 경우): 모든 사용자 랜드 구성 요소.
참고: 사이에 공백이 없어야 합니다.-b및 구성 요소. 긴 형식의 경우=예:
-b'mdm sds'--collect-cores='mdm sds' -
-d OUT_DIR, --출력 디렉토리=OUT_DIR
결과 번들을 디렉토리 OUT_DIR 아래에 저장합니다. 기본:
<WORK_DIR>/scaleio-getinfo( --work-dir 참조). -
-에프, --건너뛰기 mdm-로그인
PowerFlex MDM 로그인 자격 증명에 대한 쿼리를 건너뜁니다. 사용자가 이미 수동으로 로그인한 경우에 유용합니다.
-
-h, --도움
도움말 메시지를 표시하고 종료합니다. --tech와 함께 사용하면 기술 지원 담당자 옵션도 표시됩니다.
-
-J, --xz
수집된 번들에 기본 tar/gz 대신 tar/xz 형식을 사용합니다. 시스템의
tar(1)지원하지 않음--use-compress-program또는xz(1)은(는) 찾을 수 없습니다. -
-k NUM,--max-cores=NUM
각 구성 요소에서 최대 NUM개의 코어 파일을 수집합니다. 기본값: 모든 코어 파일. --collect-cores를 의미합니다.
-
-l, --가벼움
라이트 번들을 생성합니다. 번호가 매겨진 최신 세대의 로그 파일만 수집되며 코어를 수집할 때 구성 요소 실행 파일/라이브러리는 포함되지 않습니다. 이 옵션을 사용하면 지원 가능성이 줄어들므로 사용하지 않는 것이 좋습니다.
-
-m 번호, --max-traces=숫자
각 구성 요소에서 최대 NUM개의 PowerFlex 추적 파일을 수집합니다. 기본값: 모든 파일.
-
-N, --스킵 스페이스 체크
데이터를 수집하기 전에 사용 가능한 디스크 공간 확인을 건너뜁니다.
-
-P 경로, --수집 경로=경로
추가 경로 PATH를 수집합니다. 절대 경로만 허용됩니다. 와일드카드를 사용할 수 있습니다. 와일드카드는 따옴표로 묶어야 합니다. 이 옵션은 여러 경로를 수집하기 위해 여러 번 지정할 수 있습니다.
-
-q, --조용한, --조용한
표준 출력에서 메시지를 표시하지 않습니다.
-
-r, --mdm-저장소
MDM 리포지토리 파일을 수집합니다.
-
-에스, --건너뛰기 sdbg
SDBG(진단 디버거) 출력의 수집을 건너뜁니다.
-
-S, --일시 중지 코어 생성
데이터 수집 중 PowerFlex 구성 요소의 코어 생성을 일시 중지합니다. 수집이 완료된 후 원래 구성이 복원됩니다.
-
-w WORK_DIR, --작업 디렉토리=WORK_DIR
임시 파일에 디렉토리 WORK_DIR 사용합니다. 기본:
/tmp. -
-x 파일, --출력 파일=파일
수집된 번들을 FILE이라는 파일로 저장합니다. 해당 파일 이름 접미사(
.tgz,.zip등) 자동으로 추가됩니다. FILE이-(대시), 번들을 표준 출력에 씁니다 ( --quiet 를 의미). 번들이 표준 출력에 기록되면 디스크에 번들 파일이 생성되지 않습니다. 기본:getInfoDump. -
-z, --지퍼
수집된 번들에 기본 tar/gz 대신 zip 형식을 사용합니다. 다음과 같은 경우 무시됩니다.
zip(1)시스템에서 찾을 수 없습니다. -
--mdm-port=포트
SCLI 명령용 포트 PORT를 사용하여 MDM에 연결합니다. 기본값: scli 기본 동작.
-
--덮어쓰기 출력 파일
출력 파일이 이미 있는 경우 덮어씁니다. 출력 파일 또는 디렉토리가 명시적으로 지정되면(-x 또는 -d를 통해) 기본 동작은 덮어쓰기를 거부하는 것입니다. 이 옵션은 이를 재정의합니다.
-
--기술
도움말 메시지 출력에 기술 지원 담당자 옵션을 포함합니다.
MDM 로그인 옵션
다음 옵션이 SCLI로 전달됩니다. --login 명령어와 동일한 방식으로 AUTHC를 사용합니다. 동작 및 기본값은 SCLI에 의해 제어됩니다.
-
-n, --use-비보안 통신
비보안 모드에서 MDM에 연결합니다.
-
-p 비밀번호, --비밀번호=비밀번호
PowerFlex MDM 로그인에 암호를 사용합니다. 기본: SCLI 기본 동작입니다.
-
-u 사용자 이름, --사용자 이름=사용자 이름
PowerFlex MDM 로그인에 USERNAME을 사용합니다. 기본값: scli 기본 동작.
-
--ldap 인증
LDAP 기반 인증을 사용하여 PowerFlex MDM에 로그인합니다.
-
--management-system-ip=주소
PowerFlex 로그인을 위해 ADDRESS에서 SSO/M&O에 연결합니다. 기본값: scli 기본 동작.
-
--p12-password=비밀번호
PASSWORD를 사용하여 PowerFlex 로그인 PKCS#12 파일을 암호화합니다. 기본값: scli 기본 동작.
-
--p12-path=파일
PowerFlex 로그인 PKCS#12 파일을 FILE로 저장합니다. 기본값: scli 기본 동작.
기술 지원 담당자 옵션
다음 옵션은 기술 지원 담당자용이며 --tech가 지정된 경우에만 도움말 메시지에 표시됩니다.
-c[구성 요소], --생성 코어[=구성 요소]
코어 파일 생성( gcore(1)) 사용자 영역 구성 요소의 공백으로 구분된 목록의 실행 중인 프로세스에 대해 설명합니다. 기본값: 모든 사용자 영역 구성 요소. --collect-executables를 의미합니다. 필요 gdb 및 gcore.
-c 및 구성 요소. 긴 형식의 경우 =.
예:
-c'mdm sds'
--generate-cores='mdm sds'
-
-C CORE_FILE, --참조 코어 파일=CORE_FILE
실행 시작 시간 대신 CORE_FILE의 마지막 수정 시간(mtime)을 기준으로 제품 로그 및 코어를 수집합니다. --collect-cores를 의미합니다.
-
-E REF_TIME, --이벤트 시간=REF_TIME
실행 시작 시간 대신 REF_TIME를 기준으로 제품 로그 및 코어를 수집합니다. 에서 이해할 수 있는 모든 형식 허용
date(1). --collect-cores를 의미합니다. - -g[구성 요소], --valgrind-cores[=구성 요소]
지정된 사용자 영역 구성 요소에 대한 Valgrind 코어 덤프를 수집합니다. 기본값: 모든 사용자 영역 구성 요소. --collect-executables를 의미합니다.
참고: 사이에 공백이 없어야 합니다. -b 및 구성 요소. 긴 형식의 경우 =
예:
-g'mdm sds'
--valgrind-cores='mdm sds'
-
-t 민, --분 전에 이벤트=분
참조 시간 최소 분 전까지 생성된 제품 로그 및 코어를 수집합니다. 기본: 15.
-
-T 민, --minutes-after-event=분
참조 시간 후 최대 MIN 분까지 생성된 제품 로그 및 코어를 수집합니다. 기본: 5.
-
-X[구성 요소], --실행 파일 수집[=구성 요소]
지정된 사용자 영역 COMPONENTS에 대한 구성 요소 실행 파일 및 해당 공유 라이브러리를 수집합니다. 기본값: 모든 사용자 영역 구성 요소.
참고: 사이에 공백이 없어야 합니다.
-b및 구성 요소. 긴 형식의 경우=예:
-X'mdm sds' --collect-executables='mdm sds' -
--작업 디렉토리 유지
번들 생성 후 생성된 임시 작업 디렉토리를 유지합니다(일반적으로 자동으로 정리됨).
번들 구조
출력 번들은 압축된 단일 아카이브입니다.
- 번들 최상위 디렉토리는 수집된 시스템의 호스트 이름입니다.
- 일반 호스트 명령 출력은
server/하위 디렉터리.
파일 이름:<command>+<arguments>+ 접미사(.txt기본적으로). 다음으로 대체된 공백_, 영숫자가 아닌 문자는 제거됩니다.
예제:server/ip_-s_addr.txt– 의 출력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>/root 바로 아래에 배치됩니다<.
번들 디렉토리 트리 구조:
<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 명령이 계속 시도됩니다(사용자가 사전에 수동으로 로그인한 시나리오를 지원하기 위해). 3번의 SCLI 오류 후 경고가 표시되고 이후의 모든 SCLI 명령은 건너뜁니다.
다음과 같은 경우 로그인을 건너뜁니다.
- 로컬 호스트에서 운영 MDM 프로세스를 찾을 수 없습니다.
- --skip-mdm-login 옵션이 지정되었습니다.
다음과 같은 경우 로그인이 실패합니다.
- MDM 프로세스 소유자가 승인된 사용자 목록에 없습니다(기본값:
root)로 표시되며 보안 로그인이 활성화됩니다. - SCLI는
--login명령은 오류(예: 잘못된 자격 증명)를 반환합니다.
디스크 공간
임시 파일 및 결과 번들에 대한 디스크 공간 요구 사항은 상당히 다를 수 있습니다.
유틸리티는 임시 공간 사용을 최소화하려고 시도합니다. 수집된 가상 파일 시스템의 명령 출력 및 복제본(/proc 및 /sys) 파일.
PowerFlex 호스트의 디스크 공간 사용량을 최소화하기 위해 --output-file=-을 사용하여 원격 호스트에서 번들을 스트리밍할 수 있습니다. 스트리밍할 때 번들 파일은 표준 출력(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 설치 디렉토리 |
환경
필수 구성 요소
- 이 유틸리티는 루트(또는 구성 요소 파일을 읽고 진단 명령을 실행하며
/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