LINUX.ORG.RU

Про судный день, /home и два hdd

 , ,


0

1

Добрый вечер всем специалистам по mount,

Есть удалённая железяка и два диска. hdd #1 система. hdd #2 с /home и «кучей данных».

Если #2 откажет, то система загрузится помучившись (nofail), однако /home с «кучей данных» недоступен. Я об этом не знаю, т.к. физически оно далеко. Можно-ли в качестве варианта так:

На hdd #1 создать /home, в него положить что-то небольшое и очень нужное, что в случае беды обязательно должно запуститься при старте и делать работу, а заодно посылать мне сигналы о помощи.

В fstab монтирую /home с #2 nofail. Если он жив, то всё хорошо, а если он мёртв (отсутствует), то он не примонтировался и системе будет виден тот /home, который был припрятан на первом диске на случай беды.

Так работает или ерунда придумана? Как правильно делают умные?

Системы всякого мониторинга предлагать умеренно. Речь идёт об отсутствии (дефекте) диска именно на стадии загрузки.

Добавка: если в fstab добавить nofail,x-systemd.device-timeout=5s, то повлияет-ли это хоть как-то (не хотелось-бы) на штатный бут, или это только для ситуации фейла?



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

Так работает или ерунда придумана?

Почему бы не сработать. Запускай из rc.local какого-нибудь. Там же и проверку на наличие вообще можно сделать, и реакцию какую-нибудь.

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

Запускай из rc.local какого-нибудь

Не понял, зачем rc.local Или это про «запускать сигнализатор дефекта оттуда»?

Я думал на том /home, который припрятан под настоящим /home сделать небольшую рабочую копию, а она бы уже и работала и сигналила, если главный /home отвалился (не смог примонтироваться).

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

С чего что-то должно работать с /home само по себе? Кто его запустит?

ИМХО, прятать что-то в /home не очень удобно, в работающей системе, когда поверх смонтирована другая ФС, чтобы просто что-то поменять в «спрятаных» файлах, будут нужны дополнительные телодвижения.

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

А если оставить дефолтом запасной дом и в загрузку пихнуть скрипт, который проверит наличие нужного диска (на случай если он отвалился совсем) и попробует примонтировать нужный раздел домиком?
Так вроде чуть логичней и можно впихнуть нужные действия прям в скрипт

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

На диске #1 есть /home с «набором выживателя», чтобы сервер жил и выполнял необходимый минимум, даже еси второй диск отсутствует (повреждён). Нужное пишется туда один раз на случай аварии. Менять не надо.

/home c диска #2 монтируется штатно в fstab nofail,x-systemd.device-timeout=5s

Вот я и интересуюсь, в таком случае подхватится нормально после перезагрузки /home с диска #1, если отвалился (отключен) диск #2?

Я попробую обязательно, но теория от понимающих процесс не помешает.

@rukez

и в загрузку пихнуть скрипт

Конечно это тоже вариант и так и сделаю, но хотелось чудесного без скрипто-костыликов

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

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

Хочется понять почему вариант с fstab и «home под home» плох, если вообще он плох?

Чем вообще грозит, если грозит, монтировать что-то поверх существующих файлов?

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

но хотелось чудесного без скрипто-костыликов

Прост в данном случае скрипт как-раз не костылик, а делает именно то что тебе надо:

  • проверяет наличие диска
  • проверяет возможность монтирования (наличие раздела, исправность фс)
  • заменяет дефолтный (резервный) дом на нужный (полный)
  • может дать тебе развёрнутую диагностику по причине пичальки
  • может проверить доступность/читаемость/хеш нужных тебе данных в полном доме и в случае печали вернуть на место резервный дом
  • ну и может ессно выполнить всю работу по информировании тебя о печали

Если будешь делать все же Фстабом убедись что тайм-аут не срыгнет на fscheck, который рано или поздно настанет

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

В нормальном сервере /home не нужен, в нём нет системных файлов, из него ничего не запускается. /home/$USER может понадобится для логина на сервер, если root заблокирован.

/home с диска #1 будет работать, но, ИМХО, там не место для скрипта, проверяющего, что диск #2 не подмонтировался и отправляющего об этом оповещение. Главное, копируя файлы в /home на диске #1 не забывать назначать правильного владельца/группу.

Не совсем понятен предмет обсуждения. Необходимые файлы в /home на диске #1 и скрипт проверки/оповещения это разные вопросы.

P.S. Не вижу какой дистрибутив.

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

Debian 10

/home с диска #1 будет работать, но, ИМХО, там не место для скрипта, проверяющего, что диск #2 не подмонтировался и отправляющего об этом оповещение

Ну мысль была в том, что если /home с первого не скрылся монтажом второго (он же просто существует как директория на руте первого), то и скрипты проверок не нужны, т.к. сам факт появления первого это однозначный сигнал, что штатный #2 куда-то делся.

@rukez

Если будешь делать все же Фстабом убедись что тайм-аут не срыгнет на fscheck

Благодарю, обдумаю

Brillenschlange
() автор топика

Че-т мудришь.

Смотри. Если /home нужен, то он нужен каким-то сервиса, так? Пропиши /home к ним в зависимости. Не смонтируется — сервис не старта нет (и не натворит бед, что важно) — ты заметишь проблему по лежанию сервиса.

t184256 ★★★★★
()

А почему не организовать home просто на диске #1? Кинуть туда необходимое из старого дома, а #2 монтировать куда нить в другое место, если это всего лишь «куча данных»?

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

В данном случае был интерес разузнать именно про монтирование одного поверх другого и чтобы руки вообще не тянулись к первому «спасательному» home. Например на случай, если всё кардинально потрётся/испортится на втором. А тогда выдернул второй и важное гарантированно и просто поднялось из пепла с первого.

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

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

Так то, если данные статические, может и прокатить с монтированием одной директории поверх другой. Хотя, пробовал zfs, на ней диск не хотел монтироваться в директорию в которой уже лежали файлы.

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

Чем вообще грозит, если грозит, монтировать что-то поверх существующих файлов?

Ничем не грозит. Можете так сделать.

Единственное, если что-то (например, сервис) будет требовать именно смонтированного /home, то ему никак не объяснишь, что следует использовать то, что там лежит сейчас. Однако я не припомню таких сервисов в поставке по умолчанию, а со своими вы сами разберётесь.

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

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

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

Во-первых. Хоме в системе должен быть свой и не нужно над ним издеваться.

Во-вторых. Если это «куча данных», то и монтировать, например, только медийные каталоги, в которых находятся эти данные.

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

В-четвертых. Конкретно в хоме «медийные каталоги» сделаны символическими ссылками. В любой момент их можно перенаправить в любое место. Правда в твоем случае это не спасет от ситуации, если источник окажется недоступен. С помошью оверлейной ФС монтирую поверх каталога /usr/local.

делал так зачем-нибудь

Не так, но… Делал, что при логине, в зависимости от выбранного DE, монтировались с помощью оверлейФС каталоги, содержащие данное DE.

andytux ★★★★★
()

Поставь любую систему мониторинга, она же после загрузки будет работать и орать, что диск не доступен. Не вижу смысла в предложенных костылях.

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

то и скрипты проверок не нужны, т.к. сам факт появления первого это однозначный сигнал, что штатный #2 куда-то делся.

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

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

Людям дали божественный systemd

О, да...

AS ★★★★★
()

#2 в fstab

/dev/sdb1 /home ext4 defaults,nofail,x-systemd.device-timeout=15s 0 0

/home с #2 подтягивается и работает при подключенном #2

/home с #1 подтягивается и работает при выдернутом #2

Всем большое спасибо за мнения, пока пробовал узнал много нового, чего и всем желаю!

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