anonymous@RULINUX.NET~# Last login: 2024-11-05 10:51:20
Регистрация Вход Новости | Разметка | Пользователи | Галерея | Форум | Статьи | Неподтвержденное | Трекер | Правила форума | F.A.Q. | Ссылки | Поиск
[#] [Добавить метку] [Редактировать]
Скрыть

Шара с отложенным монтированием - как?

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

Цель - физическое отключение от сети неиспользуемых внешних винтов когда они не нужны, может быть даже NAS'а. Предполагается что скрипты перед монтированием и после размонтирования будут включать/выключать питание соотв. дисков и после включения диска дожидаться появления устройства.

anonymous(*) (2013-03-26 16:24:03)

[Ответить на это сообщение]
[#] [Добавить метку] [Редактировать] Ответ на: Шара с отложенным монтированием - как? от anonymous 2013-03-26 16:24:03
avatar
Скрыть

Re:Шара с отложенным монтированием - как?

Может быть подойдёт autofs?

SystemV(*)(2013-03-26 16:40:02)

Emacs-w3m/1.4.513 w3m/0.5.3
[#] [Добавить метку] [Редактировать] Ответ на: Re:Шара с отложенным монтированием - как? от SystemV 2013-03-26 16:40:02
avatar
Скрыть

Re:Шара с отложенным монтированием - как?

Она словно специально для этого сделана... Только вот не вижу как туда скриптом припаяться..

anonymous(*)(2013-03-26 17:54:59)

[#] [Добавить метку] [Редактировать] Ответ на: Re:Шара с отложенным монтированием - как? от anonymous 2013-03-26 17:54:59
avatar
Скрыть

Re:Шара с отложенным монтированием - как?

>Она словно специально для этого сделана... Только вот не вижу как туда скриптом припаяться..
Вот тут решение для монтирования, про отмонтирование сходу не нашел. Вот тут пишут не очень радостную вещь - "The short answer is no" - но это было аж в 2008-м.

Леннарт, кстати, частично сделал эту штуку у себя в systemd, там можно в mount-файл вписать зависимость от сервис-файла. Вот только отмонтирование по таймауту пока что в TODO, и не реализовано.

SystemV(*)(2013-03-27 16:54:39)

Emacs-w3m/1.4.513 w3m/0.5.3
[#] [Добавить метку] [Редактировать] Ответ на: Re:Шара с отложенным монтированием - как? от SystemV 2013-03-27 16:54:39
avatar
Скрыть

Re:Шара с отложенным монтированием - как?

Ах, да, отмонтирование наверное можно реализовать, соорудив несложный скрипт с inotify/fanotify, или что там у нас есть. Записывать дату доступа, хоть в файл, ну и по таймауту вырубать. Тогда и expiration в autofs не нужен.

SystemV(*)(2013-03-27 17:10:09)

Emacs-w3m/1.4.513 w3m/0.5.3
[#] [Добавить метку] [Редактировать] Ответ на: Re:Шара с отложенным монтированием - как? от SystemV 2013-03-27 17:10:09
avatar
Скрыть

Re:Шара с отложенным монтированием - как?

> отмонтирование наверное можно реализовать

может так:

$ crontab -l
0-59 * * * * umount <mountpoint>

Занятые точки не отмонтирует, а свободные - всегда-пожалуйста.

anonymous(*)(2013-03-27 17:36:29)

[#] [Добавить метку] [Редактировать] Ответ на: Re:Шара с отложенным монтированием - как? от anonymous 2013-03-27 17:36:29
avatar
Скрыть

Re:Шара с отложенным монтированием - как?

>Занятые точки не отмонтирует, а свободные - всегда-пожалуйста.
Можно и так, но это немного не такое поведение. Точка может оказаться свободной, так как скрипт попал в интервал между двумя чтениями. Например, открыл ты просмотрщик фоток, и неторопливо листаешь их, раз в минуту, рассматривая детали. Или музыкальный плеер, который кэширует весь файл в памяти, может трогать диск только раз в пару минут при переходе на другой трек.

И будет оно у тебя постоянно дёргать диски туда-сюда. Не знаю, насколько дискам понравятся такие постоянные включения/выключения (ведь вроде это предполагается).

SystemV(*)(2013-03-27 17:52:02)

Emacs-w3m/1.4.513 w3m/0.5.3
[#] [Добавить метку] [Редактировать] Ответ на: Re:Шара с отложенным монтированием - как? от SystemV 2013-03-27 16:54:39
avatar
Скрыть

Re:Шара с отложенным монтированием - как?

> Вот тут решение для монтирования

Хм, вот это любопытно. Из их automount-ских док я не понял что мап-файл будет читаться каждый раз перед монтированием.

anonymous(*)(2013-03-27 17:53:53)

[#] [Добавить метку] [Редактировать] Ответ на: Re:Шара с отложенным монтированием - как? от anonymous 2013-03-27 17:36:29
avatar
Скрыть

Re:Шара с отложенным монтированием - как?

может так: 

$ crontab -l
 0-59 * * * * umount <mountpoint>

Занятые точки не отмонтирует, а свободные - всегда-пожалуйста.


Тож вариант, только автомаунт сам отмонтирует без проблем, задача выключить устройство физически. Т.е. по крону проверять наличие несмонтированных файловых систем, не находящихся в состоянии активации (скрипт включил их для монтирования, но автомаунт ещё не смонтировал) и выключать незанятые накопители.

anonymous(*)(2013-03-27 17:59:41)

[#] [Добавить метку] [Редактировать] Ответ на: Re:Шара с отложенным монтированием - как? от SystemV 2013-03-27 17:52:02
avatar
Скрыть

Re:Шара с отложенным монтированием - как?

> Или музыкальный плеер, который кэширует весь файл в памяти, может трогать диск только раз в пару минут при переходе на другой трек.
Я так понимаю, что если каталог хотя бы открыт (или сделан текущим для к/л процесса ) - то оно уже не должно отмонтироваться?

anonymous(*)(2013-03-27 18:03:43)

[#] [Добавить метку] [Редактировать] Ответ на: Re:Шара с отложенным монтированием - как? от anonymous 2013-03-27 18:03:43
avatar
Скрыть

Re:Шара с отложенным монтированием - как?

>Я так понимаю, что если каталог хотя бы открыт (или сделан текущим для к/л процесса ) - то оно уже не должно отмонтироваться?
Наверное да. Но кто знает, как этот абстрактный плеер работает - может он просто ходит по своему плейлисту, открывает, кэширует себе в память, закрывает. И в процессе проигрывания вообще ничего открытым не держится.

Можно, в принципе, соорудить костыль - отмонтировать силами autofs, без сторонних средств, а вот выключение дисков делать отдельным скриптом. Например, хранить в файле список точек и их состояние (вкл/выкл), и раз в минуту по крону проверять, какие точки не примонтированы и какие не выключены. Соответственно, отмонтированные и включенные выключать.

SystemV(*)(2013-03-27 18:10:40)
Отредактировано SystemV по причине "не указана"
Emacs-w3m/1.4.513 w3m/0.5.3
[#] [Добавить метку] [Редактировать] Ответ на: Re:Шара с отложенным монтированием - как? от anonymous 2013-03-27 18:03:43
avatar
Скрыть

Re:Шара с отложенным монтированием - как?

Только если программа не открывает файлы по абсолютному пути (open(/full/path/to/file, O_RW)). Иначе будет как описал Системыч - прога засосала файл себе и шара свободна.

anonymous(*)(2013-03-27 18:14:11)

[#] [Добавить метку] [Редактировать] Ответ на: Re:Шара с отложенным монтированием - как? от SystemV 2013-03-27 18:10:40
avatar
Скрыть

Re:Шара с отложенным монтированием - как?

>Можно, в принципе, соорудить костыль - отмонтировать силами autofs, без сторонних средств, а вот выключение дисков делать отдельным скриптом. Например, хранить в файле список точек и их состояние (вкл/выкл), и раз в минуту по крону проверять, какие точки не примонтированы и какие не выключены. Соответственно, отмонтированные и включенные выключать.
Хотя нет, плохое решение. Если по каким-то ужасным причинам диск успеет примонтироваться и отмонтироваться между запусками этого скрипта, то скрипт будет продолжать видеть его как отмонтированный и выключенный, а он таки включён. Ситуация маловероятная, но всякое бывает.

Наверное вариант с inotify будет правильнее концептуально.

UPD: туплю, можно же в стартовом скрипте для autofs этот статус принудительно сбрасывать.

SystemV(*)(2013-03-27 18:20:27)
Отредактировано SystemV по причине добавил кое-что
Emacs-w3m/1.4.513 w3m/0.5.3
[#] [Добавить метку] [Редактировать] Ответ на: Re:Шара с отложенным монтированием - как? от SystemV 2013-03-27 18:20:27
avatar
Скрыть

Re:Шара с отложенным монтированием - как?

Минуточку.
Список файловых систем, которые можно подключить, у нас известен заранее (иначе автомаунту потребовалась бы некоторая доля телепатии). При этом каждая точка монтирования == отдельная файловая система или сетевая шара. Ну и какому накопителю принадлежит тот или иной раздел мы тоже знаем заранее.

Если накопитель включен - его разделы будут видны в /dev

Каждая точка монтирования/ФС может находиться в одном из 4х состояний:
1. Накопитель выключен (нет устройства в /dev)
2. Накопитель включен, ФС в процессе монтирования (см комментарий внизу)
3. ФС примонтирована (парсим /etc/mtab чтобы узнать)
4. ФС отмонтирована (парсим /etc/mtab и проверяем не п.2. ли это)

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

Для определения состояния (2) скрипт, генерящий маппинг для автомаунта, должен делать touch какого-нибудь файлика, скажем с именем эквивалентным GUID монтируемого раздела или имени шары и по возрасту этого файла можно определять состояние: если файлик старше некоего таймаута и система не смонтирована - значит статус системы=2, при том таймаут может быть достаточно большим, вплоть до таймаута размонтирования автомаунта для этого маунта.

Единственное в чём нужно быть при этом уверенным - это что скрипт знает о какой файловой системе идёт речь. В принципе точка монтирования передаётся в скрипт параметром, так что это тоже несложно сделать.

Надо будет попробовать на выходных смоделировать такую фигню.

P.S.
При шатдауне и старте системы надо не забыть гасить накопители, а так же при отсутствии питания на USB в случае вырубания компа, но последнее уже в железке.

P.P.S.
Нигде не нашёл могут ли два мап-скрипта выполняться одновременно, наверное надо как-то сериализовать запуск этих скриптов, через лок-файлы например..

anonymous(*)(2013-03-27 22:37:06)

[#] [Добавить метку] [Редактировать] Ответ на: Re:Шара с отложенным монтированием - как? от anonymous 2013-03-27 22:37:06
avatar
Скрыть

Re:Шара с отложенным монтированием - как?

Сделай проще: отмонтируй все неиспользуемые ФС umount-ом в кроне, но при этом веди статистику - если ФС не замонтирована в течение N минут подряд => вырубаем питание. Тогда все эти пограничные состояния не будут сказываться на ресурсе диска: не будет ситуации постоянного включения-выключения диска если кто-то что-то закешировал и полез через минуту за очередной порцией данных.

PS: а как ты будешь врубать питание нужных дисков?

anonymous(*)(2013-03-27 23:45:14)

[#] [Добавить метку] [Редактировать] Ответ на: Re:Шара с отложенным монтированием - как? от anonymous 2013-03-27 23:45:14
avatar
Скрыть

Re:Шара с отложенным монтированием - как?

Монтирование и размонтирование по таймауту делает специальный демон же. Проверенный годами эксплуатации и с кучей пофикшеных багов демон. Винты - дело тонкое, так что хочется свести своё участие к минимуму, к написанию как можно более простых и верифицируемых скриптов.

> PS: а как ты будешь врубать питание нужных дисков?

Тупо релюхами, наверное. Все через один USB-хаб поскольку вряд ли больше одного диска за раз будет данные качать. Хотя, конечно, хотелось бы NAS, который умел бы гигабитку и впадать в WOL. С релюхами-то всё равно остаются неиллюзорные шансы запороть данные. Но NAS - дороговато для фильмов-фоточек всяких.

anonymous(*)(2013-03-28 00:09:09)

Этот тред читают 6 пользователей:
Анонимных: 6
Зарегистрированных: 0




(c) 2010-2020 LOR-NG Developers Group
Powered by TimeMachine

Valid HTML 4.01 Transitional Правильный CSS!