В настоящее время у меня есть 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 (даже специальный модуль) или даже на системном уровне?
Буду признателен за любые предложения / комментарии / указания.
Если вы напишете напрямую, это не будет реплицировано через glusterfs. Если вы будете читать напрямую, вы рискуете, что ваш ремонт не будет работать правильно, если ваш диск выйдет из строя. Когда вы читаете файл, он проверяет метаданные и, если файл не существует локально, реплицирует его, а не реплицирует файловую систему, когда диск переводится в оперативный режим.
Если эти файлы создаются регулярно, можете ли вы записать их на нераспределенное монтирование и использовать для файлов?
Вы можете делать то, что хотите, но это, вероятно, сломается очень странным образом. Один сценарий: если вы измените файл на одном узле, другой узел не узнает об изменении метаданных и прочитает старый файл. Вы можете зайти в список рассылки GlusterFS, он очень полезен.