Файловый сервер для замены кластерной файловой системы
Для различных целей обслуживания, стабильности и резервного копирования мне нужно заменить разделяемую файловую систему ocfs2 из 10 узлов (10 хостов Linux) на что-то, что не зависит от общего диска. Клиентские приложения - это PHP только в среде Linux.
Прямо сейчас каждый клиент PHP запрашивает уникальный идентификатор из базы данных и создает файл с таким идентификатором / именем на общем диске. База данных хранит все метаданные файла. Доступ к существующим файлам осуществляется аналогичным образом.
Я хочу заменить решение с общим диском вызовами putfile(id, '/tmp/path') и getfile(id, / / tmp / path ') к файловому серверу по сети. На стороне клиента я мог бы работать с файлами в tmpfs. Сервер должен обрабатывать сжатие и т. Д. Это также освободило бы меня от клиентской зависимости PHP, и я мог бы использовать файловый сервер напрямую из некоторых других приложений, а также из приложений Windows Delphi.
Теоретически, решение на основе FTP может даже работать, хотя, вероятно, оно будет работать не очень хорошо. Или я ошибаюсь, не доверяя старому протоколу FTP?
В настоящее время у меня более 30 миллионов идентификаторов файлов, большинство из которых имеют размер несколько КБ с заметными исключениями до 300 МБ, всего 320 ГБ. PHP-клиент также выполняет сжатие и группировку с помощью gzip и tar, все это очень неуклюже.
Я надеялся найти что-то быстрое и простое, например memcachedb, но для файлов. Ближе всего я нашел hdfs от hadoop, но я не думаю, что это правильное решение.
Любые рекомендации? Что-то очевидное, что мне не хватает?