LINUX.ORG.RU
решено ФорумAdmin

(От)монтирование NFS


0

2

Ситуация:

Домашняя сеть: всё на (k)ubuntu 10.10 - server, desktop, netbook.

DHCP сервер отдаёт опцию dhcp-option=155,«/mnt/share»

Которую принимают клиенты и обрабатывают в /etc/dhcp3/dhclient-exit-hooks.d/ - монтируют эту шару. То есть если нетбук в домашней сети получил эту опцию то он монтирует шару, если он где-то шляется то нет :)

Теперь если нетбук заснул и проснулся дома то всё ОК, а вот если он проснулся не дома, то на нем наблюдается жеский тупняк при попытке открыть директорию /mnt/
umount /mnt/share говорит device busy и т.д.

В качестве решения был закинут скрипт /usr/lib/pm-utils/sleep.d/41nfs_umount который при засыпании делает umount -a -t nfs Но осталось ощущение костыльности :) может есть более корректный способ заставить систему отмонтировать шары nfs при засыпании?

По идее более универсальным способом будет обрабатывать в /etc/network/if-pre-down.d/ но возникает вопрос как проверить связность с сервером кроме как ping | grep? Потому что в теории нетбук может быть подключен в сеть имеющую узел с таким же айпишником, но это будет не мой домашней сервер. И это при условии что нетбук может соединяться с сервером по трем разным интерфейсам ( eth0, wlan0 и даже tap0 по VPN через wifi из кафе) по первым двум зачастую одновременно.


Перед засыпанием размонтируем и откл. сеть --> после просыпания поднимаем сеть --> новый запрос к DHCP и всё . следовательно есть или нет НФС определится ответом DHCP сервера.

sdio ★★★★★
()
Ответ на: комментарий от sdio

> Перед засыпанием размонтируем

Любопытно, как вы размонтируете раздел, на котором есть хотя-бы один открытый файл? :-)

Nastishka ★★★★★
()
Ответ на: комментарий от Nastishka

umount -f

По желанию, если сильно приспичит - lsof, fuser -k

Pinkbyte ★★★★★
()
Ответ на: комментарий от Nastishka

fuser -k --- как минимум

А вообще дело ТС, как он будет размонтировать НФС, ведь проснувшись в другой сети программы желающие НФС, намертво подвиснут, если нфс смонтирован с опцией hard или отвалятся по таймауту, что фактически равносильно их убийству перед отмонтированием.

sdio ★★★★★
()
Ответ на: комментарий от sdio

>Перед засыпанием размонтируем и откл. сеть --> после просыпания поднимаем сеть --> новый запрос к DHCP и всё . следовательно есть или нет НФС определится ответом DHCP сервера.

Сейчас так и работает.

abyss
() автор топика
Ответ на: комментарий от sdio

>А вообще дело ТС, как он будет размонтировать НФС, ведь проснувшись в другой сети программы желающие НФС, намертво подвиснут, если нфс смонтирован с опцией hard или отвалятся по таймауту, что фактически равносильно их убийству перед отмонтированием.

Если уснуть с примонтированной шарой, а проснуться без сети то всё что обращается к /mnt/share зависает в том числе fuser -m /mnt/share

abyss
() автор топика
Ответ на: комментарий от sin_a

Нет, закрыть файлы руками и заснуть.

А с какими параметрами посоветуете монтирвать с минимальными последствиями для данных и комфорта работы?

на нетбуке -o soft,retrans=3 ?

а на десктопе можно и hard

abyss
() автор топика
Ответ на: комментарий от abyss

> Нет, закрыть файлы руками и заснуть.

Ну это ещё не забыть надо. Автоматика-же должна работать :)

Вообще, я использую autofs, но при засыпании когда-то куда-то вписывал отмонтирование с геноцидом. Наверно до сих пор там лежит.

sin_a ★★★★★
()
Ответ на: комментарий от sdio

>Перед засыпанием размонтируем и откл. сеть --> после просыпания поднимаем сеть --> новый запрос к DHCP и всё . следовательно есть или нет НФС определится ответом DHCP сервера.

Очень изящное решение проблемы.

Moses
()
Ответ на: комментарий от sin_a

>Вообще, я использую autofs, но при засыпании когда-то куда-то вписывал отмонтирование с геноцидом.

На нетбуке сделал так-же с автоотмонтированием через 60 секунд если не используется.

Плюс при засыпании геноцид :) umount -aft nfs

Теперь если проснулся без домашней сети, при попытке открыть - просто ругается на отсутствующую директорию.

Обработку DHCP оставил, чтоб знать что монтировать. (чтоб в случае смены ip или пути, достаточно внести изменения на сервере)

Всем спасибо.

abyss
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.