Utilización del módulo de bloqueo del gestor Ceph
De forma predeterminada, los crashdumps de daemon se vuelcan en /var/lib/ceph/crash. Puede configurarlo con la opción crash dir. Los directorios de bloqueo se denominan por hora, fecha y un UUID generado aleatoriamente, y contienen un archivo de metadatos meta y un archivo de registro reciente, con un crash_id que es el mismo.
Puede utilizar ceph-crash.service para enviar estos bloqueos automáticamente y persistir en los supervisores de Ceph. ceph-crash.service observa el directorio crashdump y los carga con ceph crash post.
El mensaje de salud RECENT_CRASH es uno de los mensajes de salud más comunes en un clúster Ceph. Este mensaje de salud significa que uno o varios daemons de Ceph se han bloqueado recientemente y el administrador aún no ha archivado o reconocido el bloqueo. Esto puede indicar un error de software, un problema de hardware como un disco anómalo o algún otro problema. La opción mgr/crash/warn_recent_interval controla el periodo de tiempo de lo que significa reciente, que es de dos semanas de forma predeterminada. Puede inhabilitar los avisos ejecutando el mandato siguiente:
Ejemplo
[ceph: root@host01 /]# ceph config set mgr/crash/warn_recent_interval 0
La opción mgr/crash/retain_interval controla el periodo durante el cual desea conservar los informes de bloqueo antes de que se depuren automáticamente. El valor predeterminado para esta opción es un año.
Requisitos previos
Un clúster de IBM Storage Ceph en ejecución.
Procedimiento
Asegúrese de que el módulo de bloqueo esté habilitado:
Ejemplo
[ceph: root@host01 /]# ceph mgr module ls | more { "always_on_modules": [ "balancer", "crash", "devicehealth", "orchestrator_cli", "progress", "rbd_support", "status", "volumes" ], "enabled_modules": [ "dashboard", "pg_autoscaler", "prometheus" ]Guardar un volcado de bloqueo: el archivo de metadatos es un blob JSON almacenado en el directorio de bloqueo como
meta. Puede invocar la opción-i -del mandato ceph, que lee de stdin.Ejemplo
[ceph: root@host01 /]# ceph crash post -i metaListar la indicación de fecha y hora o los ID de bloqueo de UUID para toda la información de bloqueo nueva y archivada:
Ejemplo
[ceph: root@host01 /]# ceph crash lsListe la indicación de fecha y hora o los ID de bloqueo de UUID para toda la nueva información de bloqueo:
Ejemplo
[ceph: root@host01 /]# ceph crash ls-newListe la indicación de fecha y hora o los ID de bloqueo de UUID para toda la nueva información de bloqueo:
Ejemplo
[ceph: root@host01 /]# ceph crash ls-newListar el resumen de la información de bloqueo guardada agrupada por antigüedad:
Ejemplo
[ceph: root@host01 /]# ceph crash stat 8 crashes recorded 8 older than 1 days old: 2022-05-20T08:30:14.533316Z_4ea88673-8db6-4959-a8c6-0eea22d305c2 2022-05-20T08:30:14.590789Z_30a8bb92-2147-4e0f-a58b-a12c2c73d4f5 2022-05-20T08:34:42.278648Z_6a91a778-bce6-4ef3-a3fb-84c4276c8297 2022-05-20T08:34:42.801268Z_e5f25c74-c381-46b1-bee3-63d891f9fc2d 2022-05-20T08:34:42.803141Z_96adfc59-be3a-4a38-9981-e71ad3d55e47 2022-05-20T08:34:42.830416Z_e45ed474-550c-44b3-b9bb-283e3f4cc1fe 2022-05-24T19:58:42.549073Z_b2382865-ea89-4be2-b46f-9a59af7b7a2d 2022-05-24T19:58:44.315282Z_1847afbc-f8a9-45da-94e8-5aef0738954eVer los detalles del bloqueo guardado:
Sintaxis
ceph crash info CRASH_IDEjemplo
[ceph: root@host01 /]# ceph crash info 2022-05-24T19:58:42.549073Z_b2382865-ea89-4be2-b46f-9a59af7b7a2d { "assert_condition": "session_map.sessions.empty()", "assert_file": "/builddir/build/BUILD/ceph-16.1.0-486-g324d7073/src/mon/Monitor.cc", "assert_func": "virtual Monitor::~Monitor()", "assert_line": 287, "assert_msg": "/builddir/build/BUILD/ceph-16.1.0-486-g324d7073/src/mon/Monitor.cc: In function 'virtual Monitor::~Monitor()' thread 7f67a1aeb700 time 2022-05-24T19:58:42.545485+0000\n/builddir/build/BUILD/ceph-16.1.0-486-g324d7073/src/mon/Monitor.cc: 287: FAILED ceph_assert(session_map.sessions.empty())\n", "assert_thread_name": "ceph-mon", "backtrace": [ "/lib64/libpthread.so.0(+0x12b30) [0x7f679678bb30]", "gsignal()", "abort()", "(ceph::__ceph_assert_fail(char const*, char const*, int, char const*)+0x1a9) [0x7f6798c8d37b]", "/usr/lib64/ceph/libceph-common.so.2(+0x276544) [0x7f6798c8d544]", "(Monitor::~Monitor()+0xe30) [0x561152ed3c80]", "(Monitor::~Monitor()+0xd) [0x561152ed3cdd]", "main()", "__libc_start_main()", "_start()" ], "ceph_version": "16.2.8-65.el8cp", "crash_id": "2022-07-06T19:58:42.549073Z_b2382865-ea89-4be2-b46f-9a59af7b7a2d", "entity_name": "mon.ceph-adm4", "os_id": "rhel", "os_name": "Red Hat Enterprise Linux", "os_version": "8.5 (Ootpa)", "os_version_id": "8.5", "process_name": "ceph-mon", "stack_sig": "957c21d558d0cba4cee9e8aaf9227b3b1b09738b8a4d2c9f4dc26d9233b0d511", "timestamp": "2022-07-06T19:58:42.549073Z", "utsname_hostname": "host02", "utsname_machine": "x86_64", "utsname_release": "4.18.0-240.15.1.el8_3.x86_64", "utsname_sysname": "Linux", "utsname_version": "#1 SMP Wed Jul 06 03:12:15 EDT 2022" }Eliminar bloqueos guardados anteriores a KEEP días: aquí, KEEP debe ser un entero.
Sintaxis
ceph crash prune KEEPEjemplo
[ceph: root@host01 /]# ceph crash prune 60Archivar un informe de bloqueo para que ya no se tenga en cuenta para la comprobación de estado de
RECENT_CRASHy no aparezca en la salida decrash ls-new. Aparece encrash ls.Sintaxis
ceph crash archive CRASH_IDEjemplo
[ceph: root@host01 /]# ceph crash archive 2022-05-24T19:58:42.549073Z_b2382865-ea89-4be2-b46f-9a59af7b7a2dArchivar todos los informes de bloqueo:
Ejemplo
[ceph: root@host01 /]# ceph crash archive-allElimine el volcado de bloqueo:
Sintaxis
ceph crash rm CRASH_IDEjemplo
[ceph: root@host01 /]# ceph crash rm 2022-05-24T19:58:42.549073Z_b2382865-ea89-4be2-b46f-9a59af7b7a2d