PowerScale. Сбой rpcbind во время обновления, если используется пользовательское значение sysctl
Summary: При обновлении до определенных версий OneFS rpcbind не запускается должным образом, если для «kern.ipc.somaxconn» установлено пользовательское значение.
Symptoms
После модернизации до одной из следующих версий OneFS:
- 9.7.1.3
- 9.10.0.0
Клиентский доступ прерывается для всех протоколов, и выполнение isi auth Команды в кластере приводят к появлению следующей ошибки:
p970-1# isi auth users list Unable to connect to authentication daemon. Please wait until authentication daemon has restarted and retry.
Сообщения в /var/log/messages указывающий на сбой подключения к серверу удаленного вызова процедур (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
Проблема в логике, которая оценивала этот параметр в двух затронутых версиях OneFS, вызывает эту проблему. Она решается во всех остальных версиях.
Resolution
Этой проблемы можно избежать, если устранить ее до модернизации до затронутой версии OneFS. Если кластер уже затронут, также будут выполнены шаги по восстановлению.
Перед обновлением
Проверьте наличие пользовательского значения с помощью приведенного ниже сценария:
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"
Если вывод есть; Запишите значение (обычно 512), а затем используйте следующий сценарий, чтобы удалить запись:
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"
Теперь можно безопасно выполнить обновление. После модернизации восстановите ранее записанное значение параметра с помощью следующей команды. Заменять $val с указанным значением.
isi_sysctl_cluster kern.ipc.somaxconn=$val
Затем перезагрузите узлы вручную по одному, используя любой процесс, если требуется.
После удара
Требуется перезагрузка затронутых узлов.
shutdown -r now