Демонтуйте кріплення nfs там, де сервер nfs зник


32

Сервер А раніше був сервером NFS. Сервер B здійснював експорт цього. Все було добре. Тоді А помер. Просто вимкнено. Пропав. Зник.

Однак ця папка все ще встановлена ​​на B. Я, очевидно, не можу cdв неї ввійти чи нічого. Однак umount /mnt/myfolderпросто зависає і не змириться. Чи все-таки потрібно вимкнути його без перезавантаження B?

І клієнт, і сервер - це машини Linux.


Відповіді:


45

Припустимо, що Linux:

umount -f -l /mnt/myfolder

Вирішуємо проблему:

-f Примусово відключіть (у разі недосяжності системи NFS). (Потрібно ядро ​​2.1.116 або пізнішої версії.)

-l Ледачий відключення. Відключіть файлову систему від ієрархії файлової системи зараз та очистіть усі посилання на файлову систему, як тільки вона більше не зайнята. (Потрібно ядро ​​2.4.11 або новішої версії.)

-f існує також на Solaris та AIX.


1
У мене був той самий випуск, гуглили і прийшли сюди. Так - ледачий прапор мені справді допоміг тут ... - якщо він сам не робив цього ...
wawawawa

так, повинен мати варіант "-l" "-f" SAME TIME.
liuyang1

2
Крім того, я інколи мав кращий успіх, вказавши віддалену адресу, а не місцевий шлях для umount, наприклад. umount -f -l nfsserver:/export/thefolder.
Олівер

18

Розвиваючи натяк, який дав Девід Пашлі ,

якщо "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)


Це працювало для мене, за винятком того, що мені довелося запустити локальний сервер nfs.
Гак

6

Можливо, буде доцільно додати цю intrопцію до будь-яких /etc/fstabзаписів, які можуть закінчитися вивільненням або збоєм. Якщо ви не використовуєте параметри softабо intrпараметри, тоді, коли сервер, на якому розміщуються файли NFS, не працює, сервер, на якому встановлені файли (клієнт), може зависати під час завантаження.

Відповідно до man 5 nfs:

soft / hard
Визначає поведінку відновлення клієнта NFS після вичерпання запиту NFS. Якщо не вказаний жоден варіант (або якщо вказано жорсткий варіант), запити NFS повторно повторюються. Якщо вказана опція "Soft", то клієнт NFS не відповідає запиту NFS після відправлення повторних повторних передач, внаслідок чого клієнт NFS повертає помилку до програми, що викликає.

... і далі йдеться про те intr, що кращим є над soft, але це має аналогічну дію запобігання повішення.


3
Зауважте, що в нових версіях nfs intr застарілий або не має жодної операції - у цьому випадку слід використовувати soft.
Павло

3

umount -f /mnt/myfolderповинні вирішити це. Ознайомтеся з інформаційною сторінкою.


2
Це не зовсім так з NFS та мертвим сервером. Вам також потрібен ледачий прапор (або хитрість із додаванням IfAlias). lsof та fuser все зависають і umount -f каже "пристрій зайнятий".
wawawawa

1

Так само, як і в сторону, використання automount впорається з демонтажем акцій NFS, коли вони стануть непридатними, що дозволяє уникнути застрягання в цій ситуації в майбутньому.


2
Не обов'язково. Автомобільні кріплення також можуть зависати в цьому стані, якщо ви намагаєтесь отримати доступ до каталогу будь-яким способом, процес буде завис.
Каміль Кісієль

Так, автозавод викликає стільки проблем, скільки вирішує.
pjc50

1

Мені ніколи не вдалося дістатися umount -fдо роботи. Корисна хитрість - налаштувати інший сервер, що монтує той самий експорт, надати йому ту саму IP-адресу, що і старий сервер. Ваш клієнт NFS повинен думати, що все повернулося як нормально, і процеси розблокуються. Потім можна нормально відключити точку монтажу та видалити IP-адресу з тимчасового сервера NFS.


2
-l (лінивий) - ключовий, як згадувалося вище
Метт Сіммонс

1

Для Solaris перезапуск клієнта NFS вирішить "жорстку спіраль смерті". Команда для Solaris 10 - це "перезапуск svcadm мережі / nfs / client" останнім часом не пробував цього на вікні Linux (тому що всі монтуються з прапором "intr", тому вони рідко мають цю проблему), але це, ймовірно, також виправить проблема.


0

Я щойно помітив, що примусовий відключення на ядрі 3.2.0 зависає з кріпленнями NFSv4. NFSv3 відключає роботу.

$ mount [...] -o nfsvers=3

0

лише спостереження, характерне для ОС X, оскільки команди монтажу здебільшого * nix агностичні: прапор -l (ледачий) не існує в OS X, однак прапор -f (force) є і виявився достатнім . Також точки монтажу, що генеруються системою, знаходяться в / Volumes (/ Volumes / myserversexport)


0

Я зустрічався з цією ж проблемою. Оскільки сервер NFS був видалений, я не можу вирахувати nfs від клієнта. Я спробував наступний трюк, подивіться, чи може це бути корисно. Оскільки оригінального сервера NFS вже немає, я створюю новий сервер з таким же IP-адресою та експортом. Тоді я спробую umount -f / mnt / nfs_part. Нарешті я міг нарахувати nfs зараз.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.