PowerFlex: GET_INFO - Utilidad de recopilación de paquetes de soporte
Résumé: get_info.sh: Recopile información de diagnóstico desde un host de PowerFlex y empáquela en un paquete de soporte.
Instructions
get_info.sh [OPCIONES]
DESCRIPCIÓN
get_info.sh es una utilidad de diagnóstico que recopila información de depuración de un host de PowerFlex (anteriormente ScaleIO) y la archiva en un paquete comprimido para que el personal de soporte la analice.
La utilidad recopila datos de varias fuentes, entre las que se incluyen:
- Archivos de seguimiento, configuración y registros de componentes de PowerFlex
- Salidas de consultas de MDM/SCLI y volcado de depuración interno
- Diagnósticos internos de componentes de PowerFlex
- Configuración del sistema operativo, registros y estado de tiempo de ejecución
- Inventario de hardware (controladoras de almacenamiento, dispositivos de red, NVMe, NVDIMM, etc.)
- Volcados de núcleo (existentes y generados opcionalmente según demanda)
- Recopilador de datos de diagnóstico (
diag_coll) estadísticas
El paquete resultante es un único archivo comprimido (tar/gz de manera predeterminada) que se puede transferir al soporte de PowerFlex para un análisis más detallado.
Solo una instancia de get_info.sh Puede ejecutarse en un host en un momento determinado. Si no hay suficiente espacio libre para su salida, se niega a ejecutarse (a menos que la comprobación de espacio se omita explícitamente).
OPCIONES
Opciones generales
-
-a, --allRecolecte todos los datos. Esto equivale a especificar
--mdm-repository,--collect-cores,--max-cores=2,--valgrind-coresy--analyse-diag-coll. -
-A, --analyse-diag-collAnalizar recopilador de datos de diagnóstico (
diag coll) datos -
-b[COMPONENTS], --collect-cores[=COMPONENTS]Recopile los volcados de núcleo existentes para la lista separada por espacios de las áreas de usuario.
COMPONENTS. Predeterminado (cuandoCOMPONENTSse omite): Todos los componentes del terreno del usuario
-b y COMPONENTES. Para la forma larga, sepárela con =
Ejemplo
-b'mdm sds'
--collect-cores='mdm sds'
-
-d OUT_DIR, --output-dir=OUT_DIRAlmacene el paquete resultante en el directorio
OUT_DIR. Default: <WORK_DIR>/scaleio-getinfo(véase--work-dir). -
-f, --skip-mdm-loginOmita la consulta de las credenciales de inicio de sesión MDM de PowerFlex. Es útil cuando el usuario ya inició sesión manualmente.
-
-h, --helpMuestre el mensaje de ayuda y salga. Cuando se combina con
--tech, también muestra las opciones del técnico. -
-J, --xzUso
tar/xzFormato para el paquete recopilado en lugar del formato predeterminadotar/gz.Se ignora si el atributotar(1)No es compatible--use-compress-programoxz(1)no se encuentra. -
-k NUM, --max-cores=NUMRecopile hasta
NUMarchivos principales de cada componente. Predeterminado: Todos los archivos principales, implica--collect-cores -
-l, --lightGenere un paquete de luces. Solo se recolecta la generación más reciente de archivos de registro numerados y los archivos ejecutables o bibliotecas de componentes no se incluyen cuando se recolectan núcleos. El uso de esta opción reduce la capacidad de soporte y no se recomienda su uso.
-
-m NUM, --max-traces=NUMRecopile hasta
NUMArchivos de seguimiento de PowerFlex de cada componente. Predeterminado: Todos los archivos -
-N, --skip-space-checkOmita la verificación del espacio libre en disco antes de la recolección de datos.
-
-P PATH, --collect-path=PATHRecolecte la ruta adicional
PATH.Solo se aceptan rutas absolutas. Acepta comodines; Los comodines deben estar entre comillas. Esta opción se puede especificar varias veces para recolectar varias rutas. -
-q, --quiet, --silentSuprimir mensajes en la salida estándar.
-
-r, --mdm-repositoryRecopile archivos de repositorio de MDM.
-
-s, --skip-sdbgOmite la recopilación de la salida de SDBG (depurador de diagnóstico).
-
-S, --pause-core-generationPonga en pausa la generación de núcleos de los componentes de PowerFlex durante la recolección de datos. La configuración original se restaura después de que se completa la recopilación.
-
-w WORK_DIR, --work-dir=WORK_DIRUsar directorio
WORK_DIRpara archivos temporales. Predeterminado:/tmp. -
-x FILE, --output-file=FILEAlmacene el paquete recopilado como el archivo denominado
FILE. El sufijo del nombre de archivo correspondiente (.tgz,.zipy así sucesivamente) se agrega automáticamente. Si la solicitud enFILEes-(guión), escriba el paquete en la salida estándar (implica--quiet). Cuando se escribe un paquete en la salida estándar, no se crea ningún archivo de paquete en el disco. Predeterminado:getInfoDump. -
-z, --zipUso
zipFormato para el paquete recopilado en lugar del formato predeterminadotar/gz. Se ignora sizip(1)no se encuentra en el sistema. -
--mdm-port=PORTConéctese al MDM mediante el puerto
PORTpara comandos de SCLI. Predeterminado:scli default behavior. -
--overwrite-output-fileSobrescriba el archivo de salida si ya existe. Cuando se especifica explícitamente un archivo o directorio de salida (mediante
-xo-d), el comportamiento predeterminado es negarse a sobrescribir; Esta opción reemplaza eso. -
--techIncluya las opciones del técnico en el mensaje de ayuda.
Opciones de inicio de sesión de MDM
Las siguientes opciones se transfieren a la SCLI --login comando. Su comportamiento y valores predeterminados se rigen por la SCLI.
-
-n, --use-nonsecure-communicationConéctese al MDM en modo no seguro.
-
-p PASSWORD, --password=PASSWORDUso
PASSWORDpara iniciar sesión en MDM de PowerFlex. Predeterminado: Comportamiento predeterminado de la SCLI -
-u USERNAME, --username=USERNAMEUso
USERNAMEpara iniciar sesión en MDM de PowerFlex. Predeterminado: Comportamiento predeterminado de la SCLI -
--ldap-authenticationInicie sesión en la MDM de PowerFlex mediante la autenticación basada en LDAP.
-
--management-system-ip=ADDRESSConéctese a
SSO/M&OatADDRESSpara iniciar sesión en PowerFlex. Predeterminado: Comportamiento predeterminado de la SCLI -
--p12-password=PASSWORDCifrar el inicio de sesión de PowerFlex
PKCS#12archivo usandoPASSWORD. Predeterminado: Comportamiento predeterminado de la SCLI -
--p12-path=FILEAlmacenar el inicio de sesión de PowerFlex
PKCS#12Archivo comoFILE. Predeterminado: Comportamiento predeterminado de la SCLI
Opciones del técnico
Las siguientes opciones están destinadas a los técnicos de soporte y se muestran en el mensaje de ayuda solo cuando --tech se especifica.
-c[COMPONENTS], --generate-cores[=COMPONENTS]
Genere archivos principales (mediante gcore(1)) para la ejecución de los procesos de la lista separada por espacios del espacio de usuario COMPONENTS. Predeterminado: todos los componentes de la zona de usuario implican --collect-executablesy requiere gdb y gcore.
-c y COMPONENTS. Para la forma larga, sepárela con =.
Ejemplos:
-c'mdm sds'
--generate-cores='mdm sds'
-
-C CORE_FILE, --reference-core-file=CORE_FILERecopile registros y núcleos de productos en relación con la hora de la última modificación (
mtime) deCORE_FILE, en lugar de la hora de inicio de la ejecución. Implica--collect-cores -
-E REF_TIME, --event-time=REF_TIMERecopile registros y núcleos de productos en relación con
REF_TIME, en lugar de la hora de inicio de la ejecución. Acepta cualquier formato que entiendadate(1). Implica--collect-cores. -g[COMPONENTS], --valgrind-cores[=COMPONENTS]
Recolectar valgrind Volcados principales para el espacio de usuario especificado COMPONENTS. Valor predeterminado: todos los componentes del área de usuario. Implica --collect-executables.
-b y COMPONENTS. Para la forma larga, sepárela con =
Ejemplos:
-g'mdm sds'
--valgrind-cores='mdm sds'
-
-t MIN, --minutes-before-event=MINRecopile los registros y núcleos de productos generados hasta un
MINminutos antes de la hora de referencia. Predeterminado: 15 -
-T MIN, --minutes-after-event=MINRecopile los registros y núcleos de productos generados hasta un
MINminutos después de la hora de referencia. Predeterminado: 5 -
-X[COMPONENTS], --collect-executables[=COMPONENTS]Recopile los ejecutables de los componentes y sus bibliotecas compartidas para el espacio de usuario especificado
COMPONENTS. Predeterminado: Todos los componentes del terreno del usuario
-b y COMPONENTS. Para la forma larga, sepárela con =
Ejemplos:
-X'mdm sds'
--collect-executables='mdm sds'
-
--keep-work-dirConserve el directorio de trabajo temporal generado después de la creación del paquete (se limpia automáticamente).
ESTRUCTURA DEL PAQUETE
El paquete de salida es un único archivo comprimido.
- El directorio de nivel superior del paquete es el nombre de host del sistema recolectado.
- Las salidas de comandos generales del host van a un
server/subdirectorio.
El nombre de archivo es<command>+<arguments>+ sufijo (.txtpor defecto). Espacios reemplazados por_, caracteres no alfanuméricos despojados
Ejemplo:server/ip_-s_addr.txt – output of ip -s addr - Las salidas de comandos del producto van al subdirectorio del componente.
mdm/parascli,sdc/paradrv_cfgy así sucesivamente.
Nombre del comando (scli,drv_cfgy así sucesivamente) se elimina. El primer argumento significativo se convierte en el nombre de archivo. Los archivos se asignan como el sufijo correspondiente,.txtde manera predeterminada.
Ejemplos:
-
mdm/query_cluster.txt- Salida descli --query_clustermdm/tgt_dump.txt- Salida descli --debug_action --tgt_dumpsdc/query_mdms.txt- Salida dedrv_cfg --query_mdmssds/sdbg.txt- Salida de SDBGdumpallscreenspara SDS
- Archivos de componentes del producto (a diferencia de las salidas de comandos),
<component>/cfg,<component>/logsy así sucesivamente
Copiado del directorio del componente con el prefijo eliminado.
Ejemplos:
-
mdm/cfg/conf.txt- Copia de/opt/emc/scaleio/mdm/cfg/conf.txtsds/logs/trc.0- Copia de/opt/emc/scaleio/sds/logs/trc.0
- Los archivos del sistema de archivos del host se colocan en su ruta del sistema de archivos en relación con la raíz del paquete.
Ejemplos:
-
etc/os-release- Copia de/etc/os-releasevar/log/messages- Copia de/var/log/messagesproc/cpuinfo- Copia de/proc/cpuinfo
- Los archivos del recopilador de diagnósticos (diag_coll) se copian con el
/optprefijo pelado, conservando la estructura interna.
Ejemplo:diag_coll/logs/sar.0- Copia de/opt/diag_coll/logs/sar.0 - Los archivos ocultos (con prefijo de punto) se "ocultan" mediante la eliminación del punto inicial.
- Registro de ejecución de utilidades,
get_info_run.log, colocado directamente bajo el nombre> de <host/raíz
Estructura de árbol del directorio del paquete:
<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)
FILTRADO DE ARCHIVOS PRINCIPALES Y REGISTRO DEL PRODUCTO
Las opciones descritas en esta sección controlan cómo los archivos de registro de productos (también llamados archivos de seguimiento, por ejemplo) trc.0, trc.1, exp.0) y los archivos de volcado de memoria se seleccionan para su inclusión en el paquete recopilado. Para ello, definen un tiempo de referencia, una ventana de tiempo en torno a él y límites de conteo.
Cuando no se especifican opciones de filtrado, se recopilan todos los archivos de registro de productos y (si la recopilación de núcleos está habilitada) todos los archivos de volcado de memoria. Las opciones de filtrado reducen progresivamente esta selección, como se describe a continuación.
Tiempo de referencia
Se puede establecer una hora de referencia utilizando cualquiera de las siguientes opciones: -E/--event-time o -C/--reference-core-file.
Si ninguno de los dos --event-time ni tampoco --reference-core-file no se realiza ningún filtrado de ventana de tiempo: la hora de referencia se configura de forma predeterminada en la hora actual y se utiliza solo para el orden basado en la proximidad cuando un límite de recuento (-m o -k) está en vigor (consulte Límites de conteo a continuación).
Si ambos -E y -C , el último elemento de la línea de comandos surte efecto.
Ventana de tiempo
Cuando se establece una hora de referencia (mediante --event-time o --reference-core-file), se establece una ventana de tiempo a su alrededor. El alcance de la ventana de tiempo se puede configurar mediante: -t/--minutes-before-event y/o -T/--minutes-after-event, que se configuran de manera predeterminada en 15 y 5 minutos, respectivamente. Solo los archivos cuyo contenido se superpone con esta ventana son elegibles para la recopilación.
Por ejemplo: -E "2020-03-20 14:30" -t 10 -T 3 Recopila archivos que abarcan el período comprendido entre las 14:20:00 y las 14:33:00.
--minutes-before-event y --minutes-after-event se ignoran cuando ninguno de los dos --event-time ni tampoco --reference-core-file se especifica.
Límites de conteo
Se puede establecer un límite de conteo de archivos mediante lo siguiente: -m/--max-traces y -k/--max-cores, para los archivos de registro y los archivos principales, respectivamente. El límite se mide por componente.
Cuando hay más archivos NUM dentro de la ventana de tiempo (o están disponibles, si no hay ninguna ventana activa), se recopilan los archivos NUM más cercanos al tiempo de referencia.
Cuando se utiliza un límite de conteo sin --event-time o --reference-core-file, todos los archivos son candidatos (sin ventana de tiempo) y se seleccionan los archivos NUM más recientes.
Lógica de filtrado
El filtrado de archivos se aplica primero a la ventana de tiempo y, a continuación, al límite de conteo:
- Establecer candidatos. Se enumeran todos los archivos de registro de productos o los archivos de volcado de memoria de un componente.
- Derivar el contenido, punto. El contenido de los archivos de registro de productos representa un período. Se considera que el período de contenido comienza en el momento de la última modificación de su predecesor (
mtime), o la época UNIX, cuando no existe ningún predecesor; Termina en el propio archivomtime. Los archivos de volcado de memoria representan un punto en el tiempo, en elmtime. - Aplicar ventana de tiempo (si
-Eo-Cespecificado). Los archivos cuyo contenido queda completamente fuera de la ventana se descartan de la selección. Para los archivos de registro de productos, si no hay ningún archivo dentro de la ventana, se conserva el archivo más cercano a la ventana, de modo que el paquete nunca esté vacío para un componente. Para los archivos de volcado principal, no se aplica tal reserva. - Aplicar límite de conteo (si
-my/o-kespecificado). Entre los archivos restantes, como máximoNUMestán seleccionados, prefiriendo los más cercanos al tiempo de referencia. Los archivos anteriores y posteriores a la hora de referencia compiten por igual por la selección.
AUTENTICACIÓN
La utilidad intenta iniciar sesión en el MDM local si se detecta un proceso del MDM principal que escucha en el puerto esperado (predeterminado: 6611)
Las opciones de inicio de sesión de MDM se transfieren a la SCLI --login y son procesados por él.
Si el inicio de sesión falla, la utilidad finaliza con un error.
Cuando se omite el inicio de sesión, aún se intentan ejecutar comandos de SCLI (para admitir situaciones en las que el usuario inició sesión manualmente de antemano). Después de tres fallas de SCLI, se muestra una advertencia y se omiten todos los comandos adicionales de la SCLI.
El inicio de sesión se omite cuando:
- No se encontró ningún proceso de MDM principal en el host local.
- La variable
--skip-mdm-loginse especifica la opción.
El inicio de sesión falla cuando:
- El propietario del proceso de MDM no está en la lista de usuarios autorizados (valor predeterminado:
root) y el inicio de sesión seguro está habilitado. - La SCLI
--logindevuelve un error (por ejemplo, credenciales incorrectas).
ESPACIO DE DISCO
Los requisitos de espacio en disco para los archivos temporales y el paquete resultante pueden variar considerablemente.
La utilidad intenta minimizar el uso temporal del espacio; Se limita a salidas de comandos y copias de sistemas de archivos virtuales recopilados (/proc y /sys) archivos.
El paquete se puede transmitir desde un host remoto con --output-file=- para minimizar el uso del espacio de disco en el host de PowerFlex. El archivo de paquete se escribe directamente en la salida estándar (stdout) cuando se transmite; No se crea en el disco.
La utilidad calcula el espacio en disco necesario tanto para el directorio de trabajo temporal como para el paquete de salida antes de recopilar datos.
Si el espacio necesario estimado supera el espacio disponible en los sistemas de archivos pertinentes, la utilidad finaliza con un error. Esta comprobación se puede omitir con --skip-space-check.
El directorio de trabajo y el directorio de salida pueden residir en sistemas de archivos diferentes; Cada uno se comprueba de forma independiente.
Los requisitos de espacio estimados se escriben en el archivo de registro de la utilidad, get_info_run.log.
ESTADO DE SALIDA
| 0 | Finalización correcta |
| 1 | Error (argumentos no válidos, espacio insuficiente, falla de inicio de sesión, otra instancia ya en ejecución, falla en la generación del paquete, señal detectada, etc.) |
ARCHIVOS
<WORK_DIR>/get_info_run.log |
Registro de ejecución (también en el paquete) |
<WORK_DIR>/scaleio-getinfo-tmp/ |
Directorio de trabajo temporal (limpiado cuando se realiza correctamente) |
/tmp/scaleio-getinfo/getInfoDump.tgz |
Ubicación predeterminada del paquete de salida |
<WORK_DIR>/scaleio-getinfo-extra/
/tmp/scaleio-getinfo-extra/ |
Directorios de datos de diagnóstico adicionales opcionales |
/tmp/scaleio-getinfo-backup/ |
Respaldos temporales de archivos de configuración modificados (creados automáticamente) |
/opt/emc/scaleio/ |
Directorio de instalación de PowerFlex |
ENTORNO
Requisitos previos
- La utilidad se debe ejecutar como
root(o un usuario con privilegios suficientes para leer archivos de componentes, ejecutar comandos de diagnóstico y acceder a/proc,/sysy así sucesivamente). - Utilidades estándar:
tar,gzip,stat,find,awk,sed,getopt(1)(mejorado),nice. - Opcional:
zip(para--zip),xz(para--xz),gdb/gcore(para--generate-cores).
Simultaneidad
Solo una instancia de get_info.sh puede ejecutarse a la vez. La utilidad comprueba si existe una instancia en ejecución mediante pidof(1) y termina si se encuentra una instancia.
Manejo de señales
Las trampas de utilidad INT, EXITy TERM señales durante la recopilación de datos. Al recibir una señal, hace lo siguiente:
- Restaura los archivos de configuración respaldados (por ejemplo, los ajustes de generación del núcleo).
- Limpia directorios temporales
- Sale con el estado 1
El registro de ejecución se conserva y su ruta se imprime en error estándar.
Ejemplos
Recopile un paquete de soporte estándar:
get_info.sh
Transmita un paquete a través de una conexión SSH, sin crear un archivo de paquete en el host de PowerFlex remoto:
ssh <host> 'get_info.sh --output-file=-' > getInfoDump-<host>.tgz
Use un directorio de trabajo diferente para evitar llenarlo /tmp:
get_info.sh --work-dir=/var/tmp
Incluya rutas personalizadas en el paquete:
get_info.sh --collect-path=/opt/custom/app/logs --collect-path='/var/log/app*'
Recopile el volcado de memoria más reciente solo para los componentes de SDS y MDM:
get_info.sh --collect-cores='mdm sds' --max-cores=1
Recopile datos centrados en torno a la hora de modificación de un archivo principal, con una ventana de tiempo personalizada:
get_info.sh --reference-core-file=/opt/emc/scaleio/sds/bin/core.1000 \
--minutes-before-event=10 \
--minutes-after-event=2