PowerScale: rpcbind ha esito negativo durante l'aggiornamento se si utilizza un valore sysctl personalizzato
Summary: "rpcbind" non si avvia correttamente durante gli aggiornamenti a versioni specifiche di OneFS se è impostato un valore personalizzato per "kern.ipc.somaxconn".
Symptoms
Dopo l'aggiornamento a una delle seguenti versioni di OneFS:
- 9.7.1.3
- 9.10.0.0
L'accesso client viene interrotto su tutti i protocolli ed è in esecuzione isi auth I comandi nel cluster causano il seguente errore:
p970-1# isi auth users list Unable to connect to authentication daemon. Please wait until authentication daemon has restarted and retry.
Messaggi in /var/log/messages che indica un errore di connessione al server RPC (Remote Procedure Call):
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
Questo problema è causato da un problema nella logica che ha valutato questa impostazione nelle due versioni interessate di OneFS. Viene affrontato in tutte le altre versioni.
Resolution
Questo problema può essere evitato se risolto prima dell'aggiornamento a una versione di OneFS interessata. Se il cluster è già interessato, sono disponibili anche delle fasi di ripristino.
Prima dell'aggiornamento
Verificare la presenza di un valore personalizzato utilizzando lo script riportato di seguito:
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 c'è output; Annotare il valore (512 è comune), quindi utilizzare lo script seguente per rimuovere la voce:
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"
L'aggiornamento può ora essere eseguito in modo sicuro. Dopo l'aggiornamento, ripristinare l'impostazione al valore precedentemente annotato con il seguente comando. Sostituire $val con il valore annotato.
isi_sysctl_cluster kern.ipc.somaxconn=$val
Quindi, riavviare manualmente i nodi uno alla volta utilizzando il processo desiderato.
Dopo l'impatto
È necessario riavviare i nodi interessati.
shutdown -r now