NFS поверх GFS2 - это работает?

В настоящее время мы используем производную NoSQL под названием Splunk для получения наших данных. Программное обеспечение поддерживает так называемое "объединение поисковых запросов", в котором механизм диспетчеризации заданий размещается на нескольких серверах, которые совместно используют общую точку хранения. Изначально мы намеревались использовать кластерную файловую систему, такую ​​как GFS2, из-за низкой задержки, стабильности и простоты установки. Мы установили GFS2, и он работает без проблем.

Однако при попытке запустить программное обеспечение оно пытается создать файлы блокировки и множество других вещей, которые их служба поддержки не может объяснить. Окончательная обратная связь от них заключалась в том, что они поддерживают только NFS.

Наша команда сетевого администрирования сильно осуждает NFS (отсутствие стабильности, проблемы с блокировкой файлов и т. Д.).

Итак, я думал о возможности настройки NFS на каждом сервере в кластере, чтобы он действовал как слой клина между файловой системой GFS2 и программным обеспечением. В основном настройте каждый сервер для экспорта точки монтирования файловой системы GFS2 через NFS, а затем скажите каждому серверу подключиться к этому общему ресурсу NFS. Таким образом, мы не вводим единой точки отказа, если выделенный сервер NFS выходит из строя, но поставщик получает свою "требуемую" долю NFS.

Я просто мозговой штурм, так что, пожалуйста, разорвать это на части:)

1 ответ

Решение

Как работает блокировка GFS2, вы можете столкнуться с серьезными проблемами производительности, указав каждый узел на свой NFS-сервер:

Если другой узел запрашивает глок, который не может быть предоставлен немедленно, то DLM отправляет сообщение узлу или узлам, которые в настоящее время содержат глок, блокирующим новый запрос, чтобы попросить их снять свои блокировки. Удаление блеска может быть (по стандартам большинства операций с файловой системой) длительным процессом. Чтобы удалить общий глок, требуется только аннулирование кэша, что относительно быстро и пропорционально объему кэшируемых данных.

Для удаления исключительного глока требуется очистка журнала и запись всех измененных данных на диск с последующей аннулированием в соответствии с общим глоком.

[...]

Благодаря способу реализации кэширования GFS2 наилучшая производительность достигается при выполнении одного из следующих действий:

  • Inode используется только для чтения во всех узлах.
  • Индод записывается или изменяется только из одного узла.

Кроме того, документы поддержки, как в Red Hat, указывают на то, что блокировки POSIX на общих ресурсах NFS будут вызывать проблемы, поэтому только конфигурации активной / пассивной кластеризации, где NFS экспортируется из одного активного узла в любой момент времени и отсутствует доступ к файлам в файловой системе GFS2, выполнено, за исключением того, что поддерживается через службу NFS. Очевидно, что это должно позаботиться о любых непредвиденных блокировочных взаимодействиях между NFS и GFS2, но, вероятно, это не то, что вы хотели увидеть.

Другие вопросы по тегам