У меня есть клиент linux, монтирующий NFS-ресурс сервера linux с помощью autofs
. Это работает нормально, пока сервер не выйдет из строя. autofs
заботится об отказах реагировать на ls
и любые другие команды.
По-видимому, это известная проблема (чтение суперпользователя и других источников), поэтому я наконец-то придумал настройку, которая работает довольно хорошо:
timeo=2,soft,bg,retrans=1,retry=0
По-видимому, это не оптимально, поскольку все еще вызывает проблемы.
Меня удивляет тот факт, что время ожидания клиента увеличивается со временем. Я иду этот самый простой скрипт для тестирования:
while true ; do
date ; time -f "Seconds %e" ls -l /mnt/diag_ccsrv65/crapfile >/dev/null
sleep 10
done
Я ожидаю, что autofs
отключает путь /mnt/diag_ccsrv65
и делает его недоступным для клиентов. С другой стороны, soft
будет отправлять тайм-ауты клиентам. Что происходит, это:
Mon Apr 16 16:52:10 CEST 2018
Seconds 0.03
Mon Apr 16 16:52:20 CEST 2018
Seconds 0.03
Mon Apr 16 16:52:30 CEST 2018
Seconds 0.03
Здесь я бы убил сервер.
Mon Apr 16 16:52:40 CEST 2018
ls: cannot access /mnt/diag_ccsrv65/crapfile: Input/output error
Seconds 4.02
Mon Apr 16 16:52:54 CEST 2018
ls: cannot access /mnt/diag_ccsrv65/crapfile: Input/output error
Seconds 6.02
Mon Apr 16 16:53:10 CEST 2018
ls: cannot access /mnt/diag_ccsrv65/crapfile: Input/output error
Seconds 6.00
Я мог бы жить с 6 секундами, но он увеличивается довольно быстро:
Mon Apr 16 16:53:26 CEST 2018
ls: cannot access /mnt/diag_ccsrv65/crapfile: Input/output error
Seconds 12.00
Mon Apr 16 16:53:48 CEST 2018
ls: cannot access /mnt/diag_ccsrv65/crapfile: Input/output error
Seconds 72.57
Mon Apr 16 16:55:10 CEST 2018
ls: cannot access /mnt/diag_ccsrv65/crapfile: Input/output error
Seconds 284.04
Я не нашел никакой информации об этом поведении тайм-аута. Это точно не autofs
, потому что то же самое происходит с обычным mount
.
Любой указатель / подсказка приветствуется.