Помогите, пожалуйста, найти решение для двухсторонней синхронизации в реальном времени на Centos 5.5 64Bit
Мне нужно программное обеспечение для двусторонней синхронизации в режиме реального времени для Centos 5.5 / 64Bit.
Вот небольшое объяснение:
Это должно быть в состоянии выполнить:
Двухсторонняя синхронизация.
Это должно быть в реальном времени. В режиме реального времени это может быть почти в реальном времени, то есть, например, задержка в 1 секунду вполне подойдет.
И папки находятся на одном сервере.
В настоящее время я использую GlusterFS на двух веб-серверах. Тем не менее, он имеет очень низкую производительность чтения небольших файлов, и это замедляет мой сайт. Больше ничего нельзя сделать, чтобы улучшить это, я уже протестировал множество конфигураций. В качестве решения я собирался смонтировать диск RAM (tmpfs), который отражает веб-файлы GlusterFS, но заставить веб-сервер использовать диск RAM.
Проблема в том, что мне нужно двухстороннее зеркалирование или репликация в реальном времени между glusterfs и приводом RAM. Мне нужно это как Apache пишет файлы как колодцы.
Как я уже сказал, в режиме реального времени двусторонняя синхронизация между двумя папками. Которые на самом деле 2 разных точек крепления. Расположение монтирования в ОЗУ (tmpfs) и точка монтирования GlusterFS.
Я уже знаю о:
- Rsync - что является одним из способов
- Унисон - который не в реальном времени
Пожалуйста, предложите мне любое решение, бесплатное или платное.
заранее спасибо
3 ответа
Несмотря на то, что afs выглядит очевидным решением, я ранее подробно рассматривал это для очень настраиваемого веб-приложения - и самым быстрым / наиболее эффективным / надежным решением было реализовать репликацию внутри приложения - с помощью rsync при возврате узлов назад онлайн. У меня был более долгосрочный план по реализации повторной синхронизации по требованию с использованием inotify в качестве триггера (но я так и не нашел время).
В качестве решения я собирался смонтировать диск RAM (tmpfs), который отражает веб-файлы GlusterFS, но заставить веб-сервер использовать диск RAM
Да, если GlusterFS не поддерживает синхронизацию аннулирования кэша, то это может быть немного быстрее (за счет отсутствия обновления в режиме реального времени), хотя, если у вас не очень высокий оборот данных, вы, вероятно, найдете более быстрое использование оптимизированная файловая система на обычном устройстве, а не на ОЗУ.
Вероятно, вы столкнетесь с подобными проблемами в любых файловых системах с общими дисками (но это в основном догадки с моей стороны).
Лучшим решением было бы использовать базу данных (кластер?) Для хранения любых данных - кластеризация гораздо более управляема (и проще в реализации). Смотрите также MySQL репликации и Кассандра.
/ me интересует, можете ли вы использовать оверлейные файловые системы (unionfs) - поместите локальную копию сверху, а удаленную систему - снизу, а затем периодически запускайте rsync сверху вниз - хотя я подозреваю, что удаление файлов может оказаться затруднительным.
НТН
C.
Вы можете сделать это, используя только Gluster:
Когда вы просите Gluster реплицировать файлы, используя gluster volume VolumeName replica 2
и получить доступ к локальному glusterfsd на каждом сайте, используя mount -t glusterfs localhost:VolumeName /mountpoint
вы получаете мгновенную репликацию и время доступа, сравнимое с другими локальными файловыми системами (нет сетевых обращений при чтении файлов).
Это верно, по крайней мере, в случае с кластерными версиями 3.4.7 и 3.6.9, которые я тестировал.
(В то время, когда задавался этот вопрос, возможно, были более старые, более медленные версии.)
drbd + ocfs или GFS2:
Использование GFS2 с DRBD
Использование OCFS2 с DRBD
Хотя мне больше повезло с GFS2, любой из них работает и, вероятно, делает именно то, что вам нужно. Вы можете запустить двойной первичный с любым решением.