Может ли Apache прочитать GlusterFS Brick напрямую, но записать в GlusterFS Mount?

В настоящее время у меня есть 2 веб-сервера (CentOS 5.5), и я использую GlusterFS как клиент / сервер на обоих, используя автоматическую репликацию файлов.

Для обоих веб-серверов:

Точка монтирования GlusterFS:

 /mnt/glusterfs/site1

Локальный кирпич GlusterFS

 /export/sdb1/glusterfs/site1

Я использую монтирование связывания, чтобы указать на монтирование GlusterFS в Apache:

/var/www/site -> /mnt/glusterfs/site1

Динамические страницы (где кэширование самой страницы не вариант), для которых требуется много маленьких файлов для чтения перед отображением страницы, производительность с GlusterFS по меньшей мере в 5 раз ниже, чем при использовании локальной файловой системы. т.е. локальный кирпич GlusterFS.

Обратите внимание, что я использую option read-subvolume вариант, чтобы файлы читались из локального блока GlusterFS, но я понимаю, что метаданные проверяются на другом блоке по сети, что, как я полагаю, замедляет работу.

К сожалению, я не могу просто заставить Apache использовать локальный кирпич GlusterFS, поскольку сам Apache делает некоторые записи.

поскольку /mnt/glusterfs/site1 а также /export/sdb1/glusterfs/site1 фактически одна и та же файловая система, есть ли способ для Apache читать напрямую с локального блока, но записывать в монтирование GlusterFS?

Это значительно повысит производительность.

Я знаю о NFS, OCFS, GFS2, Lustre и DRBD, но если это возможно сделать выше, это было бы самым простым решением.

Возможно директива Apache, модуль Apache (даже пользовательский модуль) или даже на системном уровне?

Буду признателен за любые предложения / комментарии / направления.

1 ответ

Если вы пишете напрямую, он не будет реплицироваться через glusterfs. Если вы читаете напрямую, вы рискуете, что ваш ремонт не будет работать правильно, если ваш диск выйдет из строя. Когда вы читаете файл, он проверяет метаданные, и, если файл не существует локально, реплицирует его, а не реплицирует файловую систему при подключении диска к сети.

Если эти файлы создаются регулярно, можете ли вы записать их в нераспределенное монтирование и использовать их для файлов?

Вы можете делать то, что вы хотите, но, вероятно, это будет очень странным образом. Один из сценариев будет, если вы измените файл на одном узле, другой узел не будет знать, что метаданные изменились, и будет читать старый файл. Вы можете зайти в список рассылки GlusterFS, они очень полезны.

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