У меня есть 2 веб-сервера с балансировщиком нагрузки перед ними.
Оба они смонтировали общий ресурс nfs, так что они могут совместно использовать некоторые общие файлы, такие как изображения, загруженные из cms, и некоторые файлы, созданные во время выполнения.
Is nfs robust? Are there any specific weaknesses I should now about?
Я знаю, что он не поддерживает блокировку файлов, но для меня это не имеет значения. Я использую memcache для имитации блокировки файлов для файлов, сгенерированных во время выполнения.
Спасибо
У NFS есть свои недостатки. Если сетевое соединение прерывается, поведение NFS зависит от того, какую операционную систему вы используете (вы не указали). Я видел, как некоторые дистрибутивы Linux просто молча удаляли общий ресурс и возвращались к использованию точки монтирования, как если бы она находилась на локальном диске. Это может вызвать проблемы, если вы вдруг обнаружите, что корневой раздел заполнен, потому что запланированная задача скопировала данные на локальный диск, а не на удаленную точку монтирования. Я также видел, как некоторые дистрибутивы пытались связаться с удаленным сервером и просто никогда не получали ответа и продолжали ждать сетевой связи неопределенно долго. Так что, помимо прочего, обнаружение отключенного общего ресурса и автоматическое повторное подключение могут быть проблематичными.
Я уже опубликовал вопрос связанные с производительностью NFS.
Вы можете посмотреть. Надеюсь, это поможет.
Обычно вы хотите уменьшить количество операций, выполняемых по сети для NFS. Проверьте параметры монтирования и проанализируйте, можно ли увеличить время кэширования файлов. Это особенно важно для веб-серверов. Мы запускаем довольно интенсивную среду NFS, в которой веб-серверы обычно выполняют очень мало операций чтения / записи, но много метаданных (проверяют временную метку файла, разрешения, размер и т. Д.). Вы можете настроить, как долго эта информация будет храниться в кеше, и это повысит производительность.
Обратной стороной является то, что единственной точкой отказа является сервер NFS. Если вы не можете сделать кластер активным-активным или активно-пассивным, убедитесь, что ваши резервные копии делаются регулярно и могут быть быстро восстановлены. Другой подход состоит в том, чтобы убедиться, что на самом сервере NFS нет единичных точек отказа (например, RAID-0 в этой ситуации недопустим). Соответственно оцените свои риски.
Что касается того, работает ли это или это обычная установка: она работает и обычна, так что вы вообще не запускаете ничего сумасшедшего.
Было бы лучше поставить на бэкенде другой веб-сервер, а не NFS. Обслуживайте общие компоненты через HTTP и используйте обратный прокси на своих интерфейсных веб-серверах.