У нас есть общий ресурс NFS 4, разделяющий том между несколькими серверами (NFS-сервер и все клиенты Debian 8). Недавно у нас были некоторые проблемы, когда перебои в сети приводили к зависанию клиентских систем.
Наши параметры NFS были минимальными, просто rw
(и так по умолчанию hard
, fg
и т. Д.).
Сейчас я экспериментирую с этими параметрами, но не получаю ожидаемого поведения:
rw,soft,bg,retrans=6,timeo=150
(Я увеличил ретранс, чтобы компенсировать некоторый мягкий риск)
Процедура, которой я следую, чтобы проверить это:
- Загрузочная машина
cd
в/mnt/mountpoint
- Проверьте соединение NFS в порядке
cd /
- убить сеть
ifdown eth0
cd
в/mnt/mountpoint
ls
В этот момент командная строка зависает, и я не могу ее прервать. Через некоторое время сообщение «nfs: server [servername] не отвечает, время ожидания истекло», которое, кажется, повторяется раз в минуту (неопределенно).
Что бы я хотел / ожидал, чтобы произошла ошибка операции и вернуть контроль.
Может кто-нибудь сказать мне, где я не так с этими настройками?
(PS: я также пытался монтировать с помощью autofs, но видел похожее поведение)
Спасибо
hard
которой мы имеем дело, столь же плоха для нас (системы умирают и остаются мертвыми до перезагрузки). intr
не поддерживается в NFS4 в соответствии с man.
intr
, поддерживается NFS4, но не ядрами> 2.6.25)
cd
, но вместо этого делать ls /mnt/mountpoint
? Возможно, что после ls
сбоя ваша оболочка пытается выполнить операции файловой системы, зависящие от PWD. (Еще хуже, если вы были достаточно глупы, чтобы вставить .
свой $PATH
)
soft
при каких обстоятельствах. Это позволяет сбрасывать данные при ошибке . Вместо этого я бы предложилhard,intr
.