Inestables OSD

Los OSD inestables son cuando los OSD cambian repetidamente entre inactivos y activos en un corto periodo de tiempo. Comprenda y resuelva los problemas de los OSD inestables.

Los OSD inestables son cuando el mandato ceph -w | grep osds muestra los OSD repetidamente como down y, a continuación, up de nuevo en un breve periodo de tiempo, como en el ejemplo siguiente.
ceph -w | grep osds
05-05-2022 06:27:20.810535 mon.0 [INF] osdmap e609: 9 osds: 8 activos, 9 en
05-05-2022 06:27:24.120611 mon.0 [INF] osdmap e611: 9 osds: 7 activos, 9 en
2022-05-05 06:27:25.975622 mon.0 [INF] HEALTH_WARN; 118 pgs stale; 2/9 en osds están caídos
05-05-2022 06:27:27.489790 mon.0 [INF] osdmap e614: 9 osds: 6 activos, 9 en
05-05-2022 06:27:36.540000 mon.0 [INF] osdmap e616: 9 osds: 7 activos, 9 en
05-05-2022 06:27:39.681913 mon.0 [INF] osdmap e618: 9 osds: 8 activos, 9 en
05-05-2022 06:27:43.269401 mon.0 [INF] osdmap e620: 9 osds: 9 activos, 9 en
05-05-2022 06:27:54.884426 mon.0 [INF] osdmap e622: 9 osds: 8 activos, 9 en
05-05-2022 06:27:57.398706 mon.0 [INF] osdmap e624: 9 osds: 7 activos, 9 en
05-05-2022 06:27:59.669841 mon.0 [INF] osdmap e625: 9 osds: 6 activos, 9 en
05-05-2022 06:28:07.043677 mon.0 [INF] osdmap e628: 9 osds: 7 activos, 9 en
05-05-2022 06:28:10.512331 mon.0 [INF] osdmap e630: 9 osds: 8 activos, 9 en
05-05-2022 06:28:12.670923 mon.0 [INF] osdmap e631: 9 osds: 9 activos, 9 en
Además, el registro Ceph contiene mensajes de error similares al ejemplo siguiente:
2022-05-25 03:44:06.510583 osd.50 127.0.0.1:6801/149046 18992 : cluster [WRN] mapa e600547 marcado erróneamente me down

2022-05-25 19:00:08.906864 7fa2a0033700 -1 osd.254 609110 heartbeat_check: no reply from osd.2 since back 2021-07-25 19:00:07.444113 front 2021-07-25 18:59:48.311935 (cutoff 2021-07-25 18:59:48.906862 )

Qué significa

Las principales causas de los OSD inestables son:
  • Determinadas operaciones de clúster de almacenamiento, como la limpieza o la recuperación, tardan una cantidad de tiempo anómala. Por ejemplo, si ejecuta estas operaciones en objetos con un índice grande o grupos de colocación grandes. Normalmente, una vez finalizadas estas operaciones, se resuelve el problema de los OSD inestables.
  • Problemas con el hardware físico subyacente. En este caso, el mandato ceph health detail también devuelve elslow requestsmensaje de error.
  • Problemas con la red.

Los OSD Ceph no pueden gestionar situaciones en las que falla la red privada para el clúster de almacenamiento, o en las que hay una latencia significativa en la red pública de cara al cliente.

Los OSD de Ceph utilizan la red privada para enviar paquetes de latido entre sí para indicar que son up y in. Si la red de clúster de almacenamiento privado no funciona correctamente, los OSD no pueden enviar y recibir los paquetes de latido. Como consecuencia, se notifican mutuamente como down a los supervisores de Ceph, mientras se marcan como up.

La Tabla 1 lista los parámetros del archivo de configuración de Ceph que pueden influir en este comportamiento.
Tabla 1. Parámetros de configuración de Ceph que pueden influir en el estado de la OSD
Parámetro Descripción Valor predeterminado
osd_heartbeat_grace_time El tiempo que los OSD esperan a que se devuelvan los paquetes de latido antes de notificar un OSD como down a los supervisores de Ceph. 20 segundos
mon_osd_min_down_reporters Cuántos OSD deben notificar otro OSD como inactivo antes de que los supervisores de Ceph marquen el OSD como down 2
La Tabla 1 muestra que, en la configuración predeterminada, los supervisores de Ceph marcan un OSD como down si solo un OSD ha realizado tres informes distintos sobre el primer OSD que es down. En algunos casos, si un único host encuentra problemas de red, todo el clúster puede experimentar OSD inestables. Esto se debe a que los OSD que están en el host notifican otros OSD en el clúster como down.
Nota: el escenario de OSD inestable no incluye la situación en la que se inician los procesos OSD y, a continuación, se detienen inmediatamente.

Resolución de este problema

Importante: Los OSD inestables pueden estar provocados por una configuración incorrecta de MTU en los nodos OSD de Ceph, en el nivel de conmutador de red, o ambos. Para resolver el problema, establezca MTU en un tamaño uniforme en todos los nodos de clúster de almacenamiento, incluidos los conmutadores de red de núcleo y acceso con un tiempo de inactividad planificado. No ajuste osd heartbeat min size porque cambiar este valor puede ocultar problemas dentro de la red y no resuelve la incoherencia real de la red.
  1. Vuelva a comprobar la salida del mandato ceph health detail .
    Nota: Si la salida incluye elslow requestsconsulte Solicitudes lentas o bloqueadas para obtener información sobre cómo solucionar este problema.
    detalle de salud de ceph
    HEALTH_WARN 30 peticiones están bloqueadas > 32 seg; 3 osds tienen peticiones lentas
    30 operaciones bloqueadas > 268435 seg
    1 operaciones bloqueadas > 268435 segundos en osd.11
    1 operaciones bloqueadas > 268435 segundos en osd.18
    28 operaciones bloqueadas > 268435 segundos en osd.39
    3 osds tienen peticiones lentas
  2. Determine qué OSD se marcan como down y en qué nodos residen.
    árbol ceph osd | grep abajo
  3. En los nodos que contienen los OSD inestables, resuelva los problemas de red y soluciónelos. Para obtener más información, consulte Solución de problemas de red.
  4. De forma alternativa, puede forzar temporalmente a los supervisores a que dejen de marcar los OSD como down y up estableciendo los distintivos noup y nodown .
    Importante: El uso de los distintivos noup y nodown no arregla la causa raíz del problema, sino que solo impide que los OSD se incumplan.
    ceph osd set noup
    ceph osd set nodown