[в процессе написания]
Задача: есть несколько серверов, данные на которых надо синхронизировать.
Тут несколько видов решений:
1) раз в N минут делается скан системы на изменения и синхронизируется.
Плюсы - работает со всеми фс, позволяет делать выборочную синхронизацию, эффективное использование сети, возможность ограничить скорость
Минусы - больше нагрузка на процессор, диски, измененный файл может оказаться на зеркале через весьма долгое время, возможны конфликты с одновременным изменением файла. Эффективно может быть только в системе master-slave. Неприменимо для объектов с небольшим временем жизни.
Примеры - rsync, unison
1b) Почти (1), но на базе систем контроля версий.
1c) csync
На базе rsync, но используется в битриксе, значит, как минимум можно рассмотреть. Насколько я понял из документации, возможна работа мастер-мастер.
2) NAS - монтирование по сети через CIFS, NFS.
Плюсы - просто, быстро
Минусы - требует для хорошей работы сети с маленькими задержками и большими скоростями, так что применимо только при размещении в 1 датацентре, а лучше в 1 стойке, а также нормальные сетевые карты и свичи. Относительно большой оверхед. Большие требования к хранилищу, и чем больше клиентов, тем серьёзнее требования.
3) SAN - монтирование блочного устройства с отдельного хранилища. Требования еще больше, чем для (2). Для совместной работы требуется или кластерная ФС, или на машине надо поднимать такие службы как NFS.
2) блочные устройства
3) DRBD, geom gate
4) распределенные ФС
5) кластерные ФС
6) Синхронизация на базе журналов журналируемых ФС. Примеры мне неизвестны. Реализовано может быть на таких опциях как inotify, dnotify, Fanotify (2.6.37+)
Комментариев нет:
Отправить комментарий