Назад | Перейти на главную страницу

Хранилище файлов для реплицированных интерфейсных веб-серверов?

Мы - компания, у которой есть веб-сайт, который посещают ~ 800 тыс. Уникальных посетителей каждый месяц с постоянными темпами роста 35-40%. Мы только что перешли от одного сервера к выделенной базе данных mysql и клиентскому клиентскому серверу nginx +. Мы сталкиваемся со следующим узким местом после того, как на какое-то время все в порядке, и думаем о горизонтальном масштабировании путем добавления интерфейсного серверного решения с балансировкой нагрузки (мы измерили, что конец шрифта является узким местом). Файлы, очевидно, находятся на единственном сервере переднего плана, который у нас есть сейчас.

Каков наилучший вариант для синхронизации файлов сайта между 2 серверами переднего плана? Я немного погуглил, и кто-то порекомендовал "rsync". Единственная проблема, с которой я столкнулся, - это разрыв, который возникает, когда задание cron не запускалось какое-то время. Наш контент часто обновляется, и мы продвигаем его на первой странице. Другим решением, похоже, является NFS и подключение файлов ко второму серверу переднего плана. Есть проблемы с этим решением? Любые рекомендации приветствуются.

Мы запускаем общий веб-хост с реплицированной файловой системой AFS, и она работает для нас достаточно хорошо (для определенного определения «достаточно хорошо»). На что следует обратить внимание:

  • Запуск сервера сетевой файловой системы - нетривиальный объем системного администрирования, особенно если вы хотите сделать это хорошо (например, реплицируйте файловые серверы для обеспечения высокой доступности).

  • Вы теряете возможность выполнять определенные операции с файловой системой (например, детализированную блокировку и отслеживание inotify). Если у вас довольно обычный веб-сайт, это не проблема, это то, чего нужно остерегаться отсутствие inotify, для перезагрузки FastCGI приложений).

  • Если вы используете обработку сеансов на основе файлов, вам необходимо убедиться, что вы либо закрепили сеансы на одном сервере, либо убедитесь, что эти сеансы реплицируются. Это больше похоже на «теперь у меня несколько серверов переднего плана», чем на проблему с сетевой файловой системой.

  • Тщательно настройте параметры кеша. Они могут сделать или сломать ваше приложение.

  • Модель безопасности NFS очень глупая, поэтому вы, вероятно, захотите направить ее через безопасную внутреннюю сеть.

Очевидно, когда вы это делаете, сложность намного возрастает. Удачи.