Я ищу распределенную файловую систему, которую я мог бы использовать для хранения большого количества небольших файлов (обычно <1 МБ). Я хочу получить:
Под повторной синхронизацией я имею в виду то, что я нормально отношусь к тому, что оба сервера выполняют операции чтения / записи, даже если они разделяют мозг. Я также в порядке, если локальный процесс получает блокировку, если другой хост недоступен. От повторной синхронизации я ожидаю только согласованного представления на уровне файла через некоторое время - то есть - если файл x
изменяется на обоих узлах во время разделения мозга, мне все равно, какой из них будет доступен после повторного присоединения, если это полный файл, а не один блок, исходящий из node1
и еще один блок от node2
.
Есть ли такое решение? Я вижу, что у gluster есть проблемы с блокировками файлов (даже в 3.1). Я также заметил, что OCFS2 запаникует, если оба узла разделят мозг. Какая еще файловая система позволит мне делать то, что я хочу?
Рекомендую отлично Ящерица и GfarmFS хотя я не уверен, насколько хорошо они поддерживают блокировки.
Обновление 2019: MooseFS отличный выбор. Я больше не могу рекомендовать LizardFS, потому что он плохо поддерживается ...
Gluster это еще одна файловая система кластера, но я не уверен, как это работает, если один узел выходит из строя
[MogileFS] [2] - это распределенная файловая система с открытым исходным кодом, которая может обрабатывать множество небольших файлов и, как предполагается, не имеет единой точки отказа. Однако я думаю, что здесь отсутствует поддержка блокировки. Не уверены, можно ли реализовать блокировку на уровне приложения, а не в файловой системе?
Поскольку я здесь новый пользователь, я не могу разместить вторую гиперссылку в ответе, но MogileFS появится в Google
/ edit: Я вижу, у вас всего два сервера. Может, DRBD сделает то, что вы хотите?