Как лучше синхронизировать файлы сайта?

Добрый день. Имеется сайт с большим количеством посетителей. Сайт активно работает с БД и с дисковой системой, пишет туда файлы от пользователей. Настало время когда одного сервера стало не хватать. Я поставил проксирующий nginx, который распределяет нагрузку между двумя серверами. НО как мне синхронизировать файлы? Задержка в пару минут допустима, но было бы идеально в режиме реального времени.

Подскажите, пожалуйста, в какую сторону копать? rsync? rsync ssh? nfs? какие еще способы можно применять в данной ситуации?
  • Вопрос задан
  • 429 просмотров
Решения вопроса 1
@lega
Настало время когда одного сервера стало не хватать.

Чего конкретно не хватать?

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

Так же можно не синхронизировать, а раскидывать файлы по серверам, четные на 1-й сервер, нечетные на 2-й, но лучше префикс сервера в ид (имени) файла сделать.

Таким образом будет экономия диска и более эффективное использование трафика.

Есть и плюсы в простом дублировании (ваш вариант):
1) Второй сервер - как бекап, если один из серверов умрет, хотя для бекапов есть инструменты лучше.
2) Если один сервер умрет, то сервис может* продолжить работать, но медленней, а с "шардингом" (вариант выше) часть контента будет не доступна.
С другой стороны, что вы будете делать когда будет не хватать диска на сервере?

Ещё вариант - перебросить файлы на S3

> было бы идеально в режиме реального времени.
В том месте где сохраняете файлы можете дописать, что-б сохранять файл так же и на примонтированный сервер либо через ssh.
Если нет возможности дописать, то можно сделать внешний скрипт который будет "слушать" изменения ФС и реагировать (копировать на др. сервер).

В таких инструментах как GridFS можно легко настроить репликацию - будет реалтайм. Но его напрямую не заюзать (нужно код писать), поэтому можете поискать конкурентов.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы