У нас есть общий ресурс 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, но видел похожее поведение)
Спасибо
soft
при каких обстоятельствах. Это позволяет сбрасывать данные при ошибке . Вместо этого я бы предложилhard,intr
.hard
которой мы имеем дело, столь же плоха для нас (системы умирают и остаются мертвыми до перезагрузки).intr
не поддерживается в NFS4 в соответствии с man.intr
, поддерживается NFS4, но не ядрами> 2.6.25)cd
, но вместо этого делатьls /mnt/mountpoint
? Возможно, что послеls
сбоя ваша оболочка пытается выполнить операции файловой системы, зависящие от PWD. (Еще хуже, если вы были достаточно глупы, чтобы вставить.
свой$PATH
)Ответы:
intr
должен позволять вам снова получить контроль, когда вы нажмете^C
, но обычно не сразу.Как вы говорите, ожидания являются проблемой здесь. Проблемы с сетью могут быть временными, но сбой операции является постоянным. Поэтому большинство операций по умолчанию просто блокируются, пока операция не завершится.
Это стандартный ответ, но, глядя на текущую справочную страницу, я вижу это:
Так что это не проблема NFS3 / NFS4, а решение о том, как это
intr
работает. Таким образом, вы должны быть в состоянииKILL
в процессе, но это может не дать вам много пользы.Мне не удалось найти обсуждение того, почему опция была удалена. Можете ли вы убить-убить свой процесс?
источник
intr
, поддерживается nfs 2/3, но не 4.Некоторые из моих ответов - это мнение, основанное на опыте. Там, где у меня есть факты, я постараюсь (не забывать) ссылаться на них.
soft
при каких обстоятельствах. Это позволяет сбрасывать данные при ошибке . Вместо этого я бы предложилhard,intr
.intr
это не подходит для NFS 4, но кажется, что это изменение ядра, а не NFS.autofs
) хорошо работает для моих сценариев использования с NFS версий 2 и 3 и помогает защитить мои клиентские системы от сбоев сервера, монтируя файловые системы NFS только тогда, когда они необходимы.Я предлагаю вам рассмотреть вопрос о переходе с NFS 4 на NFS 3 и посмотреть, поможет ли это в вашем конкретном случае использования. Не думайте об этом как о понижении рейтинга.
источник
intr
не поддерживал последние версии ядра.intr
это поддерживается в NFS4 (он перечислен в обоих 2/3 только варианты и 4 только варианты в человеке, который является немного запутанным), но только не поддерживается в последнее время ядра версий.hard
, весь сайт отключается. Если мы используемsoft
, мы можем получить несколько неработающих изображений (хотя наша система кэширования почти полностью устраняет это). Рискsoft
повреждения файла на самом деле не так уж и важен. Я бы предпочел иметь один поврежденный файл изображения, чем сайт вниз!soft
приемлемое решение. Ответ изменен с «никогда» на «почти никогда». Благодарность!