У меня есть клиент 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 .

Любой указатель / подсказка приветствуется.

0