Skip to content

Многосайтовая репликация активный-активный для объектного хранилища

Активная репликация для объектного хранилища

Репликация объектного хранилища

Активная репликация для объектного хранилища является критическим требованием для критически важных производственных сред. RustFS в настоящее время является единственным поставщиком, предоставляющим эту услугу. Выполняемая с детализацией на уровне корзины, она используется в следующих ситуациях:

RustFS поддерживает синхронную и почти синхронную репликацию в зависимости от архитектурных решений и скорости изменения данных. В каждом из вышеупомянутых случаев репликация должна быть максимально строго последовательной (учитывая соображения пропускной способности и скорости изменений).

Репликация данных RustFS, разработанная для крупномасштабной устойчивости

Ключевые особенности включают:

  • ✅ Зашифрованные или незашифрованные объекты и связанные с ними метаданные (записываются атомарно с объектами)
  • ✅ Версии объектов
  • ✅ Теги объектов (если есть)
  • ✅ Информация о удержании блокировки объектов S3 (если есть)

Основные функции

Возможность для исходных и целевых корзин иметь одинаковое имя

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

Встроенная поддержка автоматической репликации блокировки/удержания объектов между исходным и целевым

Обеспечивает поддержание целостности данных и требований соответствия во время репликации.

Почти синхронная репликация

Может обновлять объекты немедленно после любой мутации в корзине. RustFS следует строгой последовательности в пределах центров обработки данных и постепенной последовательности между центрами обработки данных для защиты данных.

Функциональность уведомлений

Функциональность уведомлений для отправки событий сбоя репликации. Приложения могут подписаться на эти события и предупредить операционные команды.

Соображения при внедрении активно-активной репликации RustFS

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

Инфраструктура

RustFS рекомендует использовать одинаковое оборудование на обоих концах конечных точек репликации. Хотя похожее оборудование может работать, введение гетерогенных профилей оборудования приносит сложность и замедляет идентификацию проблем.

Пропускная способность

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

Задержка

После пропускной способности задержка является наиболее важным соображением при проектировании модели активный-активный. Задержка представляет время кругового обхода (RTT) между двумя кластерами RustFS. Цель состоит в том, чтобы уменьшить задержку до минимально возможного числа в рамках бюджетных ограничений, налагаемых пропускной способностью. RustFS рекомендует пороговые значения RTT не превышающие 20 миллисекунд для Ethernet-каналов и сетей, с коэффициентами потери пакетов не превышающими 0,01%.

Архитектура

В настоящее время RustFS рекомендует репликацию только между двумя центрами обработки данных. Репликация между несколькими центрами обработки данных возможна, однако сложность и требуемые компромиссы делают это довольно трудным.

Архитектура крупномасштабного развертывания

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

Архитектура крупномасштабного развертывания

Часто задаваемые вопросы

Что происходит, когда цель репликации выходит из строя?

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

Каковы параметры для неизменяемости?

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

Каковы другие воздействия, если версионирование приостановлено или есть несоответствие?

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

Как обрабатывается, если блокировка объектов не включена на обоих концах?

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

Опубликовано под лицензией Apache 2.0.