OSDs com oscilação

Oscilando OSDs é quando OSDs mudam repetidamente entre para baixo e para cima dentro de um curto período de tempo. Compreenda e solucione problemas de oscilação de OSDs

Os OSDs Flapping são quando o comando ceph -w | grep osds mostra OSDs repetidamente como down e, em seguida, up novamente dentro de um curto período de tempo, como no exemplo a seguir.
ceph -w | grep osds
05/05/2022 06:27:20.810535 mon.0 [INF] osdmap e609: 9 osds: 8 ativos, 9 em
05/05/2022 06:27:24.120611 mon.0 [INF] osdmap e611: 9 osds: 7 ativos, 9 em
05/05/2022 06:27:25.975622 mon.0 [INF] HEALTH_WARN; 118 páginas obsoletas; 2/9 em osds estão inoperantes
05/05/2022 06:27:27.489790 mon.0 [INF] osdmap e614: 9 osds: 6 ativos, 9 em
05/05/2022 06:27:36.540000 mon.0 [INF] osdmap e616: 9 osds: 7 ativos, 9 em
05/05/2022 06:27:39.681913 mon.0 [INF] osdmap e618: 9 osds: 8 ativos, 9 em
05/05/2022 06:27:43.269401 mon.0 [INF] osdmap e620: 9 osds: 9 ativos, 9 em
05/05/2022 06:27:54.884426 mon.0 [INF] osdmap e622: 9 osds: 8 ativos, 9 em
05/05/2022 06:27:57.398706 mon.0 [INF] osdmap e624: 9 osds: 7 ativos, 9 em
05/05/2022 06:27:59.669841 mon.0 [INF] osdmap e625: 9 osds: 6 ativos, 9 em
05/05/2022 06:28:07.043677 mon.0 [INF] osdmap e628: 9 osds: 7 ativos, 9 em
05/05/2022 06:28:10.512331 mon.0 [INF] osdmap e630: 9 osds: 8 ativos, 9 em
05/05/2022 06:28:12.670923 mon.0 [INF] osdmap e631: 9 osds: 9 ativos, 9 em
Além disso, o log do Ceph contém mensagens de erro semelhantes ao seguinte exemplo:
2022-05-25 03:44:06.510583 osd.50 127.0.0.1:6801/149046 18992 : o mapa do cluster [WRN] e600547 me marcou erroneamente

2022-05-25 19:00:08.906864 7fa2a0033700 -1 osd.254 609110 heartbeat_check: nenhuma resposta de osd.2 desde 2021-07-25 19:00:07.444113 front 2021-07-25 18:59:48.311935 (cutoff 2021-07-25 18:59:48.906862 )

O que isso significa

As principais causas de oscilação de OSDs são:
  • Determinadas operações do cluster de armazenamento, como limpeza ou recuperação, demoram um período de tempo anormal. Por exemplo, se você executar essas operações em objetos com um índice grande ou grandes grupos de posicionamento. Normalmente, depois que essas operações terminam, o problema dos OSDs oscilantes é resolvido.
  • Problemas com o hardware físico subjacente.. Nesse caso, o comando ceph health detail também retorna oslow requestsMensagem de erro.
  • Problemas com a rede.

Os OSDs do Ceph não podem gerenciar situações em que a rede privada para o cluster de armazenamento falha ou a latência significativa está na rede voltada para o cliente público

Os OSDs do Ceph usam a rede privada para enviar pacotes de pulsação entre si para indicar que eles são up e in. Se a rede do cluster de armazenamento privado não funcionar corretamente, os OSDs não poderão enviar e receber os pacotes de pulsação (pulsação) Como consequência, eles relatam um ao outro como sendo down para os Monitores do Ceph, enquanto marcam a si mesmos como up.

Tabela 1 lista parâmetros no arquivo de configuração do Ceph que podem influenciar esse comportamento.
Tabela 1. Parâmetros de configuração do Ceph que podem influenciar o status do OSD
Parâmetro Descrição Valor Padrão
osd_heartbeat_grace_time Quanto tempo os OSDs aguardam o retorno dos pacotes de pulsação antes de relatar um OSD como down aos Monitores do Ceph. 20 segundos
mon_osd_min_down_reporters Quantos OSDs devem relatar outro OSD como inativo antes que os Monitores do Ceph marquem o OSD como down . 2
Tabela 1 mostra que na configuração padrão, os Monitores do Ceph marcam um OSD como down se apenas um OSD fez três relatórios distintos sobre o primeiro OSD sendo down. Em alguns casos, se um único host encontrar problemas de rede, o cluster inteiro poderá experimentar OSDs oscilantes. Isso ocorre porque os OSDs que estão no host relatam outros OSDs no cluster como down
Nota: O cenário OSDs com oscilação não inclui a situação quando os processos OSD são iniciados e, em seguida, interrompidos imediatamente.

Resolução de problemas

Importante: OSDs de oscilação podem ser causados por configuração incorreta de MTU em nós do Ceph OSD, no nível do comutador de rede ou ambos. Para resolver o problema, configure a MTU para um tamanho uniforme em todos os nós do cluster de armazenamento, incluindo nos comutadores de rede principal e de acesso com tempo de inatividade planejado. Não ajuste osd heartbeat min size porque a mudança dessa configuração pode ocultar problemas dentro da rede e isso não resolve a inconsistência de rede real
  1. Verifique a saída do comando ceph health detail novamente
    Nota: se a saída incluir oslow requestsconsulte Solicitações lentas ou solicitações bloqueadas para obter informações sobre como solucionar esse problema.
    detalhes de saúde do ceph
    HEALTH_WARN 30 solicitações estão bloqueadas > 32 segundos; 3 osds têm solicitações lentas
    30 operações estão bloqueadas > 268435 segundos
    1 operações estão bloqueadas > 268435 seg. em osd.11
    1 operações estão bloqueadas > 268435 seg. em osd.18
    28 operações estão bloqueadas > 268435 segundos em osd.39
    3 osds têm solicitações lentas
  2. Determine quais OSDs são marcados como down e em quais nós eles residem
    árvore ceph osd | grep down
  3. Nos nós que contêm OSDs oscilantes, resolva e corrija quaisquer problemas de rede. Para obter mais informações, consulte Solução de problemas de rede.
  4. Como alternativa, é possível forçar temporariamente os Monitores a parar de marcar os OSDs como down e up configurando os sinalizadores noup e nodown .
    Importante: O uso dos sinalizadores noup e nodown não corrige a causa raiz do problema, mas apenas impede OSDs de oscilarem.
    ceph osd set noup
    ceph osd set nodown