October 28th, 2011

daemon
  • b_a_t

Посоветуйте кластерную ФС

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

На текущий момент это реализовано с через NFS сервер, к которому подключены все узлы и которые при первом обращении к файлу выкачивают его с NFS share, кешируют на локальном диске и после этого уже раздают через NginX. Схема, в принципе, рабочая, но думается, должны быть более простые и эффективные способы решать подобные задачи. Rsync не предлагать! :)

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

P.S> Платформа, скорее всего - Debian.

P.P.S> Сейчас NFS сервер реализован на 2 машинах с хранилищем данных, реплицируемым через DRBD и VIP, все поверху обвязано HeartBeat. Хотелось бы более простое и надежное решение :)
  • Current Mood
    amused amused
2016
  • dmarck

FreeBSD: tzupdate last call

Как мы помним, чуть более чем через сутки на территории РФ летнее время превратится в тыкву перестанет быть таковым, а зимнего не наступит.

Для упрощения задачи тем, кто пользует FreeBSD начиная с версии 5 и живёт в часовом поясе Europe/Moscow (бывший UTC+3/4, нынешний UTC+4), предлагается воспользоваться следующей командой, пригодной для cut'n'paste от имени пользователя, которому разрешено делать sudo

( cd /tmp && fetch http://bsd.woozle.net/tzdata-moscow.tar && \
 sudo tar xvpf tzdata-moscow.tar -C / && date && rm tzdata-moscow.tar )

файл содержит /etc/localtime и /usr/share/zoneinfo/Europe/Moscow

Для пользователей в других часовых поясах вот современное содержимое /usr/share/zoneinfo: http://bsd.woozle.net/tzdata-201110.tgz (152k) (после распаковки необходимо либо нужный файл скопировать в /etc/localtime, либо запустить tzsetup, который сделает ровно то же ;-P)

Upd: (thanks to b_a_t): разумеется, не гарантируется, что все сторонние пакеты будут использовать системные таблицы таймзон; известно, что по крайней мере для Java это не так. Кроме того, следует представлять, что многие демоны устанавливают правила работы со временем в момент старта, а не используют localtime(3) всякий раз -- таковых потребуется перезапустить или сказать им "рестартовать". Если есть возможность перезагрузить сервер -- не исключено, это будет самым простым решением.

Upd2: Что делать с PHP: http://alextutubalin.livejournal.com/264346.html
A-A-A

mpd5 и резервный канал.

Сейчас интернет в виде PPPoE с помощью mpd5 (FreeBSD).
Хочется резервный канал в виде 3G-модема. Конечно, с ним будет работать тот же mpd5.
А можно научить mpd5 приоритету подключений? Что бы переключался на второе подключение только после, скажем, 5 неудачных попыток достучаться до первого, но попыток не оставлял, и как только получится — отключался от второго подключения сам?
Особенно непонятно как сделать условие про 5 попыток...
Так-то можно connect/disconnect команды для второго подключения прописать в down/up скрипты для первого... Но это вызовет подъём резерва сразу же, а хочется избежать случайных переключений.