Мне нужно реализовать какую-то настройку высокой доступности, при которой 2 сервера должны всегда быть синхронизированы, независимо от того, на каком из них вы пишете. Часть БД может быть покрыта настройкой репликации мастер-мастер. Однако, когда дело доходит до файлов и контента, я не смог найти что-то подходящее для этих нужд. Мне нужно иметь возможность реплицировать / var / www, например, с одного компьютера на другой и иметь возможность писать на любом из них и всегда иметь один и тот же контент, доступный независимо от того, куда идет HTTP-запрос.
Поэтому я не уверен, является ли двусторонняя репликация чем-то, что обычно не выполняется, и мне нужно пересмотреть это, или я недостаточно исследовал это, но я в растерянности. Кажется, я не нахожу других решений.
Есть ли что-нибудь еще, что может обрабатывать автоматическую прозрачную 2-стороннюю репликацию файлов?
Как насчет DRBD с двойным основным режимом а файловая система кластера типа OCFS2 или GFS?
Может работать на удивление хорошо, особенно если ваше дерево каталогов не содержит большого количества (скажем, миллионов или более) часто изменяющихся небольших файлов.
Ceph должен работать, в этом суть распределенной файловой системы.
Обратите внимание, что чем больше у вас есть несколько хостов, записывающих в один и тот же каталог, тем хуже будет производительность (потому что они должны быть очень осторожны с синхронизацией), обратное живет с некоторой степенью задержки распространения.
Я могу ошибаться и, конечно, протестировать, я бы подумал, что Gluster или Ceph будут работать, обратите внимание, что вы должны предполагать, что вам понадобятся ваши резервные копии в какой-то момент с Ceph (пока нет fsck для btrfs).
Проведите несколько тестов, посмотрите, как это сработает для вас. Убедитесь, что вы проверяете такие вещи, как md5 sums, и вытаскиваете восстановление типа шнура питания.
Мне удалось добиться этого с помощью gluster, используя такую установку: http://www.howtoforge.com/high-availability-storage-cluster-with-glusterfs-on-ubuntu
Ключ состоит в том, чтобы НЕ монтировать тома удаленно, а локально, и позволить gluster реплицировать папку за томами на обеих машинах, таким образом, любая машина может выйти из строя в любой момент.
Если вам нужна полностью автоматизированная репликация на уровне файловой системы, то вам нужна либо общая файловая система (например, GFS), либо какой-либо способ доступа к ней с обеих машин (DRBD, SAN, SCSI с несколькими хостами, iSCSI). Но помимо аппаратных решений IME, это не очень надежное решение.
Раньше я использовал rsync для крупных обновлений и систему уведомлений / опросов для промежуточных обновлений для аналогичной настройки, но для этого требовалось много умений в коде приложения. Я также использовал AFS (хотя и не для такого рода настройки) и нашел его надежным и масштабируемым; Вы можете взглянуть на это.