Для работы сайта в пределах CDN-сети используется не один веб-сервер. При этом запрос посетителя может обрабатываться любым из узлов кластера. Такая организация порождает несколько требований:
- Каждый веб-сервер должен содержать одинаковый контент.
Например, файл, загруженный посредством административного интерфейса на один из веб-серверов, должен быть доступен для посетителя и на другом веб-сервере.
- «Прозрачность» пользовательской сессии для любого сервера веб-кластера.
Так, например, при авторизации пользователя на одном из серверов он должен считаться авторизованным и на других серверах. Окончание сессии на сервере должно значить ее завершение сразу на всех серверах. В полном объеме все эти задачи не могут быть решены только на уровне веб-приложения. Далее будут описаны подходы и показаны на примерах конкретные реализации, рассказано об инструментах, имеющихся в модуле веб-кластер, которые помогут решить вопросы кластеризации веб-сервера. Есть два возможных метода обеспечения синхронизации данных на серверах:
- Общее дисковое хранилище данных.
- Применение инструментов для синхронизации данных на локальных хранилищах разных серверов.
Организация единого файлового хранилища данных кластера может быть решена различными способами, среди которых и «расшаривание» папок с файлами продукта, и такие высокопроизводительные решения уровня предприятия.
В том случае, когда веб-кластер создан на двух CDN-узлах, одному из них можно использовать для запуска сервера NFS/CIFS и хранимые на нем файлы с остальных узлов веб-кластера. Для повышения производительности рекомендуется создать выделенный NFS/CIFS-сервер, который необходимо оптимизировать исключительно под файловые операции. Его будут использовать все CDN-узлы веб-кластера. С целью достижения наибольшей надежности и производительности единого файлового хранилища веб-кластера рекомендуется уделить внимание таким технологиям, как Lustre, OCFS, GFS, DRBD, SAN. Одним из вариантов организации нескольких серверов является также применение локальных хранилищ и регулярная синхронизация между ними файлов. Есть множество инструментов, которые позволят решить данную задачу, это и простые утилиты для копирования файлов (scp, ftp), и специализированное программное обеспечение, предназначенное для синхронизации между серверами данных (rsync, unison).
Распределенная файловая система массового параллелизма, используемая обычно для крупномасштабных кластерных вычислений. Название «Lustre» является контаминацией, образованной словами «Linux» и «cluster» [1]. Реализованный под лицензией GNU GPL проект предоставляет высокопроизводительную файловую систему для кластеров с десятками тысяч узлов сети и петабайтными хранилищами информации [2].
Распределенная файловая система, используемая компанией Google [2].
Это блочное устройство, обеспечивающее синхронизацию (RAID1) между локальным блочным устройством и удалённым [2].
Кластерная файловая система, поддерживающая разделяемое использование между несколькими Linux-системами [2].