Синхронизация файлов между серверами в кластере

Хостинг приложений с высокой нагрузкой и постоянно растущим трафиком требует дополнительной мощи и настроек для обработки большого потока запросов. Решением в данном случае может послужить добавление серверов в окружение для поддержки полноценного функционирования приложения. В результате вы сталкиваетесь с другой трудностью — более сложная установка по сравнению с использованием одного сервера. Основной проблемой является то, что такие приложения как WordPress, Drupal, Joomla, Liferay, Redmine и т.п. по умолчанию сохраняют все загружаемые файлы только на одном сервере и не синхронизируют их между серверами в кластере. Другими словами, только сервер, который обрабатывал запрос на загрузку файла, будет содержать новый контент. Поэтому в сегодняшняшней статье мы опишем возможное решение проблемы синхронизации файлов, которое предоставляет платформа Jelastic. На данный момент это всего лишь временное решение, которое помогает автоматизировать синхронизацию контента на нескольких серверах приложений. В будущем (после обработки отзывов) мы собираемся интегрировать этот функционал в ядро системы Jelastic. Данное решение — это сочетание букмарклета и скрипта на стороне сервера. В основном серверный скрипт выполняется с помощью такой утилиты как lsyncd и крона.Lsyncd это легковесное решение для синхронизации серверов приложений. В сочетании с inotify lsyncd инициирует синхронизацию файлов только в случае обнаружения фактических изменений в системе. Как результат вы не тратите много ресурсов на выполнение синхронизации и уменьшаете нагрузку на CPU. С помощью букмарклета lsyncd автоматически устанавливается на каждый сервер приложения в окружении. Перед установкой уточняется список папок для синхронизации. В результате, любые изменения в указанных папках на одном сервере будут автоматически синхронизированы с остальными серверами. синхронизация файловЧитать дальше →

© Habrahabr.ru