Как кластеризовать папку загрузки с ASP.Net?

У нас есть ситуация, когда пользователям разрешено загружать контент, а затем отдельно вносить некоторые изменения, а затем отправлять форму на основе этих изменений.

Это прекрасно работает в среде с одним сервером, не обеспечивающей отработки отказа, однако нам бы хотелось какое-то решение для обмена файлами между серверами, которое поддерживает восстановление после отказа.

Кто-нибудь сталкивался с этим в прошлом? И какие решения вы смогли разработать? Очевидно, что сохранение в базе данных является одним из вариантов, но мы бы предпочли этого избежать.

4 ОТВЕТА
РЕШЕНИЕ

На прежней работе у нас был кластер веб-серверов с балансировщиком нагрузки F5 перед ними. У нас была очень похожая проблема в том, что наши приложения позволяли пользователям загружать контент, который может включать фотографии и тому подобное. Это были устаревшие приложения, и мы не хотели редактировать их для использования базы данных, а решение SAN было слишком дорогим для нашей ситуации.

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

Два из рассмотренных нами продуктов были ViceVersa и PeerSync . Я думаю, что мы в конечном итоге использовали PeerSync.


1
22.08.2008 15:20:19

В нашем сценарии у нас есть отдельный файловый сервер, на который записывают оба сервера приложений, так что вы либо сервер имеете доступ к одним и тем же наборам файлов.

1
22.08.2008 15:03:07

Лучшим решением для этого обычно является предоставление общей области в некоторой форме SAN, которая будет доступна со всех серверов и будет содержать аварийное переключение.

Это также имеет то преимущество, что вам не нужно обеспечивать постоянную балансировку нагрузки, загрузка может выполняться одним сервером, а редактирование - другим.

0
22.08.2008 15:04:40

Совместное использование SAN с отказоустойчивостью - отличное решение с высокой (высокой) стоимостью. Существуют ли подобные решения с отказоустойчивостью по разумной цене? Возможно, что-то вроде DRBD для Windows?

Проблема с простой общей файловой системой заключается в отсутствии избыточности (что, если файловый сервер выйдет из строя)?

0
22.08.2008 15:16:24