Убедитесь, что сервер всегда может загрузиться и жесткий диск смонтирован, прежде чем предоставить доступ к Samba

Убедитесь, что сервер всегда может загрузиться и жесткий диск смонтирован, прежде чем предоставить доступ к Samba

У меня есть два жестких диска по 2 ТБ (не загрузочные/системные) с одним разделом на каждом, который я разделяю с Samba. Точки монтирования находятся в /mnt/drive01и /mnt/drive02.

Это также путь двух общих ресурсов samba, названных backup1 и backup2. Как только эти общие ресурсы запускаются, они начинают заполняться (большим количеством) данных с других машин в сети (некоторые машины пишут в backup1, другие в backup2, но ни одна не пишет в оба).

Все работает как и планировалось, никаких проблем с Samba. Этот сервер (на удаленном месте) настроен на автоматическую перезагрузку в случае отключения питания и т. д. Кроме того, у меня есть два диска в RAID1 как системные/загрузочные диски, чтобы быть уверенным, что сервер может (почти!) всегда хотя бы загружаться.

Проблема возникает в случае, если система загружается нормально, но по какой-то причине не может смонтировать один (или оба) из 2 ТБ жестких дисков: Samba начинает общий доступ, /mnt/drive01а /mnt/drive02диск(и) большой емкости не смонтированы, поэтому все данные фактически оказываются на системном диске, заполняя его и делая систему непригодной для использования или недоступной для удаленного доступа через SSH.

Поэтому я не думаю, что это хорошая идея — вводить разделы двух дисков по 2 ТБ в /etc/fstab, так как я заметил некоторые проблемы с загрузкой, если один из дисков с данными, например, отключен. Опять же, это важно, так как сервер находится в удаленном месте и не может рассчитывать на вмешательство оператора для исправления сообщений на экране, таких как «диск не готов, продолжайте ждать, нажмите S, чтобы пропустить монтирование, M для ручного...»

Итак, у меня есть небольшой скрипт, который пытается смонтировать диски с данными через минуту после загрузки, и это исправляет часть fstab. Теперь перейдем к Samba.

Мне бы хотелось, чтобы Samba запускалась через некоторое время (без проблем), а также "динамически" включала или отключала два общих ресурса. Так, например, если 2-й диск данных выйдет из строя, мой скрипт сможет смонтировать только 1-й диск данных, а Samba будет рекламировать только общий ресурс backup1 (с записью данных на 2-ТБ диск); другой общий ресурс (backup2, сопоставленный с /mnt/drive02) не будет рекламироваться/отключаться, но по крайней мере у меня есть один работающий общий ресурс (и некоторые из моих машин могут загружать в него данные).

Конечно, проще всего запустить Samba только в том случае, если смонтированы оба диска с данными, но это решение типа «все или ничего».

Есть идеи?

решение1

Есть два варианта. Если у вас нет других общих ресурсов с Samba, вы можете просто запустить Samba, когда оба смонтированы, и остановить, когда оба размонтированы, используя upstart или systemd. С systemd вам нужноRequires=строфаи с выскочкойstart on mounted /dev/something. Другой способ — удалить samba из скриптов запуска и запустить с помощью вашего скрипта. Эти варианты зависят от того, что вы уже сделали.

Связанный контент