Назад | Перейти на главную страницу

Синхронизация файлов Мастер-Мастер-Мастер

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

Итак, мой сервер состоит из трех кластеров, каждый из которых содержит четыре сервера. Три сервера являются главными серверами, а один - резервным. Существуют также «фронтальные» серверы, которые не хранят никаких пользовательских данных, но предоставляют остальной контент сайта. Да и сервер базы данных. Все они работают на CentOS 7

Мне нужен способ синхронизации всех трех главных серверов (оставив резервный сервер в покое).

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

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

Если я правильно помню, некоторое программное обеспечение для синхронизации работает на одном центральном сервере, который не хранит никаких данных. Я могу добавить еще один сервер в каждый кластер, который будет «центральным сервером», который мне понадобится.

Другая идея, которая у меня была, заключалась в том, чтобы сохранять изменения пользователей в базе данных, а затем использовать их для передачи на другие серверы, но я чувствую, что это слишком часто приводило к конфликтам.

Проблема с решениями для синхронизации - это интервал между обновлениями.
Ты можешь использовать DRBD для реализации RAID через TCP / IP и подключения ваших главных серверов к этому ресурсу. Другими решениями могут быть файловые системы общих дисков (например, ATA_over_Ethernet) или распределенные файловые системы (например, Ceph).

Ваш вопрос, возможно, немного скуден по деталям - например, какие файлы вы хотите синхронизировать и как часто их нужно синхронизировать?

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