Сервер A раньше был сервером NFS. Сервер B монтировал экспорт этого. Все было отлично. Затем умер А. Просто выключился. Ушел. Исчез.
Однако эта папка все еще смонтирована на B. Я, очевидно, не могу cd
в это или что-нибудь. тем не мение umount /mnt/myfolder
просто зависает и не монтируется. Есть ли способ размонтировать его без перезапуска B?
И клиент, и сервер - это машины Linux.
Предполагая Linux:
umount -f -l /mnt/myfolder
Как бы исправить проблему:
-f
Принудительное отключение (в случае недоступности системы NFS). (Требуется ядро 2.1.116 или новее.)
-l
Ленивое отключение. Отсоедините файловую систему от иерархии файловой системы сейчас и очистите все ссылки на файловую систему, как только она больше не будет занята. (Требуется ядро 2.4.11 или новее.)
-f
также существует в Solaris и AIX.
Разрабатываем подсказку предоставлено Дэвидом Пэшли,
если "umount -l" не решит вашу проблему, вы можете настроить поддельный сервер с тем же адресом, что и тот, который ушел - но на самом деле вам не нужно настраивать новый сервер или что-то в этом роде. Самый простой выход из ситуации с блокировкой / зависанием размонтирования - это настроить локальный псевдоним IP-интерфейса, следующим образом:
ifconfig eth0:nfstmp 11.22.33.44 netmask 255.255.255.255
umount -l /mnt/deadnfsmount # -l or -f or whichever that gets the job done
ifconfig eth0:nfstmp down
(очевидно, 11.22.33.44 - это (бывший) IP-адрес (теперь мертвого) сервера NFS)
Было бы разумно добавить intr
вариант для любого /etc/fstab
записи, которые могут закончиться зависанием или сбоем. Если вы не используете soft
или intr
параметры, то, когда сервер, на котором размещены файлы NFS, выходит из строя, сервер, на котором смонтированы файлы (клиент), может зависнуть при загрузке.
В соответствии с man 5 nfs
:
мягкий жесткий
Определяет поведение при восстановлении клиента NFS после истечения времени ожидания запроса NFS. Если ни одна из опций не указана (или если указана жесткая опция), запросы NFS повторяются бесконечно. Если указан программный параметр, то клиент NFS не выполняет запрос NFS после того, как были отправлены повторные передачи, в результате чего клиент NFS возвращает ошибку вызывающему приложению.
... а затем говорится intr
предпочтительнее soft
, но имеет аналогичный эффект предотвращения зависания.
umount -f /mnt/myfolder
должен решить это. См. Справочную страницу umount.
В стороне, используя автомонтировать будет обрабатывать размонтирование общих ресурсов NFS, когда они становятся недоступными, что позволяет избежать застревания в такой ситуации в будущем.
Мне никогда не удавалось получить umount -f
работать. Полезный трюк - настроить другой сервер, монтирующий тот же экспорт, и дать ему тот же IP-адрес, что и у старого сервера. Ваш NFS-клиент должен думать, что все в норме, и процессы разблокируются. Затем вы можете отключить точку монтирования в обычном режиме и удалить IP-адрес с временного сервера NFS.
Для Solaris перезапуск клиента NFS разрешит «жесткую спираль смерти». Команда для Solaris 10: «svcadm restart network / nfs / client». В последнее время не пробовал это на Linux (потому что все они монтируются с флагом «intr», поэтому у них редко возникает эта проблема), но она, вероятно, также исправит эта проблема.
Я только что заметил, что принудительное размонтирование в ядре 3.2.0 зависает при монтировании NFSv4. Размонтирование NFSv3 работает нормально.
$ mount [...] -o nfsvers=3
просто продолжение, специфичное для OS X, поскольку команды монтирования в основном не зависят от * nix: флаг -l (ленивый) не существует в OS X, однако флаг -f (force) существует, и оказалось, что его достаточно . Кроме того, созданные системой точки монтирования находятся в / Volumes (/ Volumes / myserversexport)
Я встречал ту же проблему. Поскольку сервер NFS был удален, я не могу размонтировать nfs с клиента. Я попробовал следующий трюк, чтобы посмотреть, поможет ли он. Поскольку исходного сервера NFS больше нет, я создаю новый сервер с тем же IP и экспортом. Затем я пробую umount -f / mnt / nfs_part. Наконец-то я смог размонтировать nfs.