PowerScale: rpcbind falha durante a atualização se estiver usando um valor de sysctl personalizado
Summary: "rpcbind" falha ao iniciar corretamente durante upgrades para versões específicas do OneFS se um valor personalizado for definido para "kern.ipc.somaxconn".
Symptoms
Depois de fazer upgrade para uma das seguintes versões do OneFS:
- 9.7.1.3
- 9.10.0.0
O acesso do client é interrompido em todos os protocolos e em execução isi auth Os comandos no cluster causam o seguinte erro:
p970-1# isi auth users list Unable to connect to authentication daemon. Please wait until authentication daemon has restarted and retry.
Mensagens em /var/log/messages indicando uma falha ao se conectar ao servidor de chamada de procedimento remoto (RPC):
2024-11-25T14:59:51.084340+00:00 <1.3> p970-1(id1) isi_celog_capture[4169]: drive_d_connect: Failed to connect to RPC server at 127.0.0.1 (errno=Invalid argument, rpc clnt_stat=15); retrying 2 of 3.
Cause
Um problema na lógica que avaliou essa configuração nas duas versões afetadas do OneFS causa esse problema. Ele é abordado em todas as outras versões.
Resolution
Esse problema pode ser evitado se resolvido antes do upgrade para uma versão afetada do OneFS. Se o cluster já estiver afetado, também haverá etapas de recuperação.
Antes do upgrade
Verifique se há um valor personalizado usando o script abaixo:
sys_files="/etc/mcp/templates/sysctl.conf /etc/mcp/override/sysctl.conf /etc/local/sysctl.conf"; while read -r file; do grep "somaxconn" "$file" 2>/dev/null done <<<"$sys_files"
Se houver saída; Anote o valor (512 é comum) e use o seguinte script para remover a entrada:
sys_files="/etc/mcp/templates/sysctl.conf /etc/mcp/override/sysctl.conf /etc/local/sysctl.conf"; while read -r file; do sed -i bak "s/^kern.ipc.somaxconn.*//g" "$file" 2>/dev/null done <<<"$sys_files"
Agora, o upgrade pode ser realizado com segurança. Após o upgrade, reverta a configuração para o valor anotado anteriormente com o comando a seguir. Substituir $val com o valor anotado.
isi_sysctl_cluster kern.ipc.somaxconn=$val
Em seguida, reinicialize os nós manualmente, um de cada vez, usando qualquer processo, se preferir.
Depois do impacto
É necessária uma reinicialização dos nós afetados.
shutdown -r now