У меня есть случай, когда у меня есть одна машина с множеством подключений NFS. Время от времени один из серверов NFS теряет свои устройства из-за проблем с оборудованием, для устранения которых требуется перезагрузка.
Затем пользователи приходят через что-то вроде ftp, выполняют команду ls для каталога, и он зависает. Затем они обычно разочаровываются и пытаются снова. Это приводит к зависанию клиентского компьютера из-за использования всех сеансов ftp.
Есть ли способ заставить NFS просто сбросить монтирование, чтобы при выполнении команды ls они просто получали пустой каталог? Или у меня есть способ определить, когда узел NFS не отвечает должным образом, и отбросить его? ... Или можно как-нибудь со стороны сервера сделать это, когда диски пропали?
Сначала вам нужно изменить ваши монтирования nfs на прерываемые параметры (intr для большинства разновидностей). Это позволит вам выводить приложения Ctl-C, которые обычно зависают в ожидании возврата от ядра, чего никогда не произойдет.
Это поможет, если вы используете autofs, soft mount и короткое значение timeo на клиенте.
Приведенные выше ответы превосходны с точки зрения клиента, но вы также должны подумать о стороне сервера.
В нашей среде мы используем сервер nfs для обмена веб-контентом между несколькими машинами. Машины также используют pacemaker / openais, чтобы выяснить, у кого должен быть запущен процесс сервера NFS, смонтирован том Fibre Channel и IP-адрес для сервера nfs.
Когда нам нужно перезагрузить одну машину, кардиостимулятор обнаруживает это и перемещает активный сервер NFS на другой узел, чтобы службы не прерывались.