Задача репликации файлов Windows Server: замена Robocopy для высокодоступных и в конечном итоге согласованных данныхJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Задача репликации файлов Windows Server: замена Robocopy для высокодоступных и в конечном итоге согласованных данных

Сообщение Anonymous »

Мы запускаем критическое веб-приложение на Windows Server с настройкой активного/пассивного переключения при отказе. Целостность данных и высокая доступность являются непреложными требованиями.
Текущая архитектура
  • Основные данные: Наше веб-приложение использует большой набор статических файлов, иногда превышающий 10 миллионов файлов и постоянно увеличивающийся.
  • Метод репликации: Вторичный (пассивный) сервер использует запланированный Задача Robocopy для извлечения файлов с основного (активного) сервера каждые $\приблизительно 2$ минуты.
  • Логика аварийного переключения: В сценарии аварийного переключения вторичный сервер должен выполнить один последний цикл репликации, прежде чем взять на себя обслуживание, чтобы обеспечить максимальную согласованность данных.
Критическая проблема
Текущая зависимость от Robocopy — наша единственная точка отказа в обеспечении согласованности данных. Мы сталкиваемся с случайными, непредсказуемыми сбоями (например, конфликтом ресурсов среды, временными проблемами разрешений при доступе к конкретному файлу), из-за которых Robocopy прекращает успешную репликацию на длительные периоды времени.
Поскольку высокая доступность имеет первостепенное значение, мы не можем задержать или заблокировать запуск вторичного сервера в случае сбоя окончательной репликации. Это означает, что вторичный сервер может запускаться с неполным, противоречивым и устаревшим набором данных, что приводит к критическим ошибкам приложений.
По сути: нам необходимо устранить риск того, что механизм репликации выйдет из строя автоматически или заблокирует аварийное переключение из-за проблем с утилитами на уровне ОС, подобных тем, которые наблюдаются в Robocopy.
Рассмотрены существующие решения (и почему они были использованы). Отклонено)
  • Общая/общая файловая система (например, SMB Share, DFS): Отклонено, поскольку это создает новую единую точку отказа (уровень хранения) и создает аналогичные сетевые проблемы доступности между серверами и ресурсом хранения.
  • Инструменты на основе Rsync (не для Windows) родной): Отклонено, поскольку они усложняют интеграцию среды Windows (сопоставление пользователей, контексты безопасности служб и т. д.) и по-прежнему полагаются на утилиты файловой системы, подверженные тем же рискам, связанным с окружающей средой и разрешениями.
Вопрос/ожидаемое решение
Мы ищем фундаментально другой, современный и независимый от среды подход для достижения окончательной согласованности миллионов файлов между этими двумя файлами. Серверы Windows.
  • Можно ли этого добиться с помощью выделенного безопасного API на основе HTTP для синхронизации (например, Primary предоставляет конечную точку манифеста/дельта и конечную точку получения)?
  • Какая расширенная масштабируемая альтернатива (например, на основе объектного хранилища, распределение, управляемое событиями) полностью отделит процесс репликации от локальной файловой системы Windows и логики разрешений, обеспечивая высокую вероятность доступности данных на вторичном сервере при аварийном переключении?
  • Мы используем базу данных MSSQL для нашего приложения с помощью mssql. Можем ли мы чего-нибудь добиться?
Мы ищем проверенные на производстве архитектурные шаблоны или конкретные технологии, которые могут обрабатывать большие объемы (более 10 миллионов файлов) и обеспечивать устойчивость к временным ошибкам сети/ОС.

Подробнее здесь: https://stackoverflow.com/questions/798 ... ly-availab
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»