Я использую новую LizardFS, и она потрясающая! Я новичок в LizardFS / MooseFS в целом, но это кажется довольно простым.
Мне было интересно две вещи:
Во-первых, есть ли способ настроить отдельные пулы хранения? Например, у меня может быть пять серверов с двумя жесткими дисками на каждом. Один жесткий диск на каждом сервере принадлежит одному пулу хранения, а другой жесткий диск - другому. Пулы хранения будут отдельными в том смысле, что они будут монтироваться отдельно, и они будут поддерживать блоки отдельно.
Причина, по которой я хочу это сделать, связана с моим вторым вопросом:
Я хочу иметь пул быстрой и медленной памяти. Мои серверы имеют 10 Гбайт с SSD, поэтому все с LFS работает очень быстро. Но некоторые элементы (особенно по типу файла) не должны быть быстрыми, например аудио- и видеофайлы, а жесткие диски, очевидно, дешевле.
В конечном итоге я хочу, чтобы LFS распознавала условия (например, тип файла или другие определяемые пользователем условия), чтобы при записи файла в файловую систему он сохранялся либо в быстром хранилище, либо в медленном хранилище, но он отображается для конечного пользователя как единый том хранения. Я почти уверен, что это невозможно с LFS из коробки. Однако, если возможно иметь несколько томов хранилища, я могу создать систему, чтобы подделать остальную часть, используя символические ссылки.
Начиная с версии 2.5.4, LizardFS поддерживает новую функцию, называемую «настраиваемые цели». Это в основном позволяет вам определять группы серверов, например, группу hdd для медленных узлов и группу ssd для быстрых. Затем вы можете попросить LizardFS распределять данные только по определенным группам, а не по всему кластеру. Пользовательские цели имеют ту же степень детализации, что и стандартные цели: таким образом, их можно назначать для каждого каталога.
Подробнее о Объявление о выпуске LizardFS 2.5.4.
В MooseFS 3.0 есть функция под названием Storage Classes. Это кажется более удобным в использовании, чем пользовательские цели в LizardFS, потому что вы можете определить класс хранилища «на лету», без необходимости редактировать какие-либо файлы конфигурации с определениями. Вам нужно только «пометить» серверы фрагментов перед определением каких-либо классов хранения (и это должно быть сделано в файлах конфигурации серверов фрагментов), но обычно вы устанавливаете метки для сервера фрагментов один раз.
(из Руководство по классам хранения MooseFS 3.0):
С тех пор как цель MooseFS 3.0 была расширена до класса хранилища. Классы хранилища позволяют указать, на каких серверах фрагментов должны храниться копии файлов. Классы хранения определяются с помощью выражений меток.
Нет, к сожалению, это невозможно без запуска нескольких серверов LizardFS на одном компьютере. Вы можете сделать это, загрузив отдельные файлы конфигурации с разными портами, если хотите. Тем не менее, вам все равно придется вручную разделять разные типы контента.
Возможно, вы захотите изучить функцию распознавания стойки LizardFS, которую можно использовать для «закрепления» быстрого хранилища на наборе серверов.
С другой стороны, я отправил пулл-реквест для высокой доступности LFS :) Попробуйте, если хотите.
Если кэширование SSD необходимо, попробуйте Ceph. Это позволяет вам настроить быстрые пулы кеша, чтобы они сидели перед более медленно вращающейся ржавчиной.