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, но, вероятно, это не то, что вы хотели увидеть.