У меня есть виртуальные машины, которые запускают nginx и php fpm на разных машинах, сейчас я использую очень глупый метод синхронизации каталогов вручную, поскольку кластер не такой большой. Однако у меня есть еще один сервер, который я хотел бы использовать в качестве общего устройства хранения.
Пока я понял, что могу предоставить хранилище через iscsi с файловой системой ocfs2. Что меня беспокоит, так это то, что первоначальная настройка требует заранее указать каждый узел, а затем для добавления узла мне потребуется выключить o2cb для применения изменений.
Цель состоит в том, чтобы предоставить общее хранилище для узлов nginx и php-fpm через iscsi (поэтому мне не нужно выполнять репликацию), однако количество узлов может расти в зависимости от нагрузки кластера.
Идея №1: Может быть, я каким-то образом смогу предоставить хранилище для моей виртуальной машины через хост, чтобы только хост имел дело с ocfs2 напрямую? таким образом узел известен.
Вы можете просто настроить свой третий сервер как сервер NFS, что будет иметь больше смысла, чем использование OCFS2 в этом случае использования. OCFS2 лучше использовать либо поверх быстрого хранилища SAN, либо хранилища, реплицированного в реальном времени, например DRBD.
OCFS2 - это кластерная файловая система, в которой предполагается, что все блочные устройства, используемые для реплик, идентичны. Он разработан для совершенно другого варианта использования, чем что-то вроде nginx, где блокировка и упорядочение данных чрезвычайно взаимосвязаны между участвующими узлами.
Это требует значительных накладных расходов, но может быть очень полезным для запуска нескольких рабочих процессов, которые вносят изменения в один и тот же набор данных. Это шаблон, который мы стараемся избегать при хранении, хотя иногда он оказывается полезным. Сейчас не то время.
Эта реализация выиграет от центрального общего ресурса NFS или SMB, а не от кластеризованной FS, поддерживаемой iSCSI. Таким образом, каждый воркер Nginx будет иметь доступ к одним и тем же каталогам. Было бы лучше, если бы они не пытались одновременно записывать в один и тот же файл, но если вам это нужно, вы можете убедиться, что используете NFS> v4.1 или SMB> v3.x. Оба обрабатывают блокировку лучше, чем предыдущие версии.