LINUX.ORG.RU
ФорумAdmin

NFS, лаптопы, исчезающие серверы и umount -f

 , ,


0

3

$subj. Хочу использовать NFS-over-VPN для доступа к своей файлопомойке в домашней сети. Поскольку у меня ноут, ситуация «сеть пропала, сервер не отвечает» является штатной.

Как настроить клиент так, чтобы он не уходил в кому при пропадании сервера и позволял корректно отмонтировать ФС?

Сейчас строка опций выглядит так: soft,vers=4.2,proto=tcp,timeo=10,retrans=1. Даже с таким неприлично низким таймаутом отмонтирование ФС (umount -f -l) продолжается примерно минуту и всё равно в итоге фейлится.

Что делать? Как сказать системе «не жди сервер, он не вернётся, просто отмонтируй ФС сейчас»? Или NFS на такое принципиально не рассчитана и на сервере остаётся какой-то стейт, который обязательно нужно деаллоцировать? (Если так, то что юзать вместо него?)

★★★★★

Последнее исправление: intelfx (всего исправлений: 3)

У меня при дохлом сервере ручное отмонтирование происходит успешно и быстро(c -l - вообще практически мгновенно). Монтирую через autofs, но вручную смонтированные шары тоже нормально отмонтируются.

Опции монтирования: rw,nfsvers=4,soft,retry=0,retrans=1,tcp,sloppy,_netdev

Я думаю проблема в том, что у тебя не задана опция retry:

retry=n The number of minutes that the mount(8) command retries an NFS mount operation in the foreground or background before giving up. If this option is not specified, the default value for foreground mounts is 2 minutes, and the default value for background mounts is 10000 minutes (80 minutes shy of one week). If a value of zero is specified, the mount(8) command exits immediately after the first failure.

Не уверен правда, относится ли вышесказанное не только к mount но и umount, но мне указание этой опции помогло сэкономить много нервов.

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от Pinkbyte

Монтирую через autofs

Тоже.

Я думаю проблема в том, что у тебя не задана опция retry

Как выяснилось, задана, только в выводе mount не отображается.

/etc/autofs/auto.net:

[...]
opts="-fstype=nfs,soft,intr,nodev,nosuid,retry=0,timeo=10,retrans=1,rsize=131072,wsize=131072,users"
[...]

Всё равно всё плохо.

intelfx ★★★★★
() автор топика
Последнее исправление: intelfx (всего исправлений: 2)
Ответ на: комментарий от intelfx

Перепроверил еще раз. С моим набором опций

pinkbyte@phantom ~ $ ifconfig eth0 down
pinkbyte@phantom ~ $ mount | grep files
mini-router:/files on /misc/files type nfs (rw,nfsvers=4,soft,retry=0,retrans=1,tcp,sloppy,addr=192.168.1.10,clientaddr=192.168.1.11,_netdev)
pinkbyte@phantom ~ $ ping mini-router
ping: unknown host mini-router
pinkbyte@phantom ~ $ time umount /misc/files

real    0m0.022s
user    0m0.005s
sys     0m0.002s

Какой дистрибутив, версии nfs-utils и ядра?

И да, у меня NFS 4, не 4.1 или 4.2, как видишь. Не знаю, имеет ли это значение в данном случае

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

У меня /etc/mtab на домашней машине - это НЕ симлинк на /proc/mounts. А в /proc/mounts у соответствующей строчки как раз нет retry :-)

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

В Gentoo с OpenRC - да. Как насчёт systemd - не в курсе. Но всем советуют переходить, потому что неустаревшего софта пишущего в mtab напрямую уже не осталось

Pinkbyte ★★★★★
()

Using the intr option is preferred to using the soft option because it is significantly less likely to result in data corruption.

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

В общем, я не знаю. Все опции выставлены, но при убийстве сервера umount подвисает хз насколько и в итоге говорит вот это:

umount: /mnt/network/server-7-325.local/home/operator: can't write superblock

И не отмонтирует.

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

У меня задействованы и intr, и soft.

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

Кажется, я понял.

Если к адресу сервера именно что no route (т. е. сеть пропала) — то отмонтирование быстрое. А если сеть та же, просто в ней нет сервера, то всё плохо.

Но второй случай тоже важен, потому что половина публичных сетей — 192.168.1.0/24. Как и моя собственная.

intelfx ★★★★★
() автор топика
8 августа 2015 г.

Problem persists. Вот только что мне опять пришлось сначала быстро вырубить сеть, а уже потом на ходу отмонтировать NFS-шару. Хрен там: сначала ждём минуту, а потом can't write superblock. И так пять раз.

Pinkbyte? Кто-нибудь? Кто может сказать, почему нельзя просто инвалидировать к хренам все открытые файловые дескрипторы и отмонтировать диск, даже когда я явно этого хочу, вписывая -f -l в параметры umount'а и soft в параметры монтирования?

intelfx ★★★★★
() автор топика
Последнее исправление: intelfx (всего исправлений: 3)

umount -f -l

Может быть оффтопик, но как эти флаги сочетаются? -l должен уничтожать VFS(?) сразу но оставлять все открытые дескрипторы валидными (?). А -f уничтожает тупо всё и сразу.

Как насчёт порядка: может ли -l зативать -f?

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

У NFS другое назначение!

Вполне возможно. Последним предложением в ОП я так и спрашиваю: если NFS принципиально на такое не рассчитана, то что юзать вместо неё?

От альтернативы требуется не слишком большой оверхед по пропускной способности канала и наличие вменяемого FUSE-модуля.

intelfx ★★★★★
() автор топика
Последнее исправление: intelfx (всего исправлений: 2)
Ответ на: комментарий от KennyMinigun

Да. Поведение не соответствует документации.

intelfx ★★★★★
() автор топика
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от yars068

А как у него с производительностью? (Со стороны клиента это davfs2 или gvfs-модуль, как понимаю, а со стороны сервера что?)

intelfx ★★★★★
() автор топика
Последнее исправление: intelfx (всего исправлений: 1)

Как сказать системе «не жди сервер, он не вернётся, просто отмонтируй ФС сейчас»?

Я год назад пытался такую штуку настроить, и понял что через стандартный маунт это не сделать.

ya-betmen ★★★★★
()
Ответ на: комментарий от intelfx

Да хоть nginx, но я такое не поднимал. Частенько приходится поднимать SMB для обмена файлами в локальной сети с оффтопиками, WebDAV юзаю для обмена через интернет.

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

Шутка же. Мимо Лёни мимо не смог пройти.

Смотря какие у тебя объёмы. Надо иметь локальный кеш, чтобы при отключении сети продолжить работу локально и при появлении сети произвести слияние (синхронизацию) а-ля dropbox или что-то из распределенных ФС

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

Это оверкилл. Мне не требуется доступ к данным в оффлайне, мне нужно ровно одно: чтобы система не падала в кому при исчезании сервера.

Короче, буду тыкать WebDAV.

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