Страница 1 из 1

Синхронизация папок по сети

Добавлено: 15 май 2006, 15:22
cympak
Есть 2 или более машины в сети, необходимо сделать реалтайм синхронизацию для определенных папок. Т.е. если на одной из машин в папку добавили файл, то такой же должен появиться и на других машинах. Желательно что бы это происходило событийно, а не по таймауту. Пробовал использовать NFS - не получилось, если сервер уходил в даун, то клиенты тоже по сути умирали. Необходимо что бы все машины были равнозначными и могли проверять наличие других машин в сети (список машин в конфиге задается или при запуске через параметры).

Добавлено: 15 май 2006, 15:49
Llama
словите золотую рыбку и поджарть ее на сковородке ;)

Есть два варинта - с центральным надежным хранилищем - NFS, GPFS, GFS
Относительно децентрализованые - coda, lustre, afs и их прозводные - они способны быолее-мене выживать в описаной ситуации...

В общем случае задача не решаема ИМХО: допустим при отсутсвии связи между N хостами на каждом из них в один и тот же файл внесены изменения - как по вашему файловая система должна это разруливать ? А если ихзменения внесены одновременно? ;) Для начала ответьте себе на этот вопрос, а потом уже думайте над архитектурой системы.

Добавлено: 15 май 2006, 16:11
cympak
В моей ситуации получается приблизительно так:
1) Допустим что такой ситуации быть не может (например интересует просто наличие файла или его отсутствие, либо содержимое файла статично).

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

А coda, lustre, afs сейчас проверю на сколько они соответствуют требованиям.

Добавлено: 15 май 2006, 16:41
cympak
Как вариант - а можно ли как-нибудь повесить какое-нибудь событие на то что происходит в папке (создание нового файла, удаление вайла, изменение файла)? А синхронизацию уже производить по событию какой-нибудь стандартной тулзиной типа unison.
В общем получаем что: необходим механизм который смог бы отслеживать изменения в папке.

Добавлено: 15 май 2006, 17:29
Llama
cympak, можно. см в сторону inotify и dnotify в гугле.

Добавлено: 16 май 2006, 16:21
cympak
Спасибо, вроде проблема решилась - dnotify ( ядро 2.4 :( ) + unison работают замечательно как минимум на локальных папках.