Многосайтовая репликация активный-активный для объектного хранилища
Активная репликация для объектного хранилища
Активная репликация для объектного хранилища является критическим требованием для критически важных производственных сред. RustFS в настоящее время является единственным поставщиком, предоставляющим эту услугу. Выполняемая с детализацией на уровне корзины, она используется в следующих ситуациях:
RustFS поддерживает синхронную и почти синхронную репликацию в зависимости от архитектурных решений и скорости изменения данных. В каждом из вышеупомянутых случаев репликация должна быть максимально строго последовательной (учитывая соображения пропускной способности и скорости изменений).
Репликация данных RustFS, разработанная для крупномасштабной устойчивости
Ключевые особенности включают:
- ✅ Зашифрованные или незашифрованные объекты и связанные с ними метаданные (записываются атомарно с объектами)
- ✅ Версии объектов
- ✅ Теги объектов (если есть)
- ✅ Информация о удержании блокировки объектов S3 (если есть)
Основные функции
Возможность для исходных и целевых корзин иметь одинаковое имя
Это требуется для приложений, которые должны прозрачно переключаться на удаленные сайты без какого-либо прерывания.
Встроенная поддержка автоматической репликации блокировки/удержания объектов между исходным и целевым
Обеспечивает поддержание целостности данных и требований соответствия во время репликации.
Почти синхронная репликация
Может обновлять объекты немедленно после любой мутации в корзине. RustFS следует строгой последовательности в пределах центров обработки данных и постепенной последовательности между центрами обработки данных для защиты данных.
Функциональность уведомлений
Функциональность уведомлений для отправки событий сбоя репликации. Приложения могут подписаться на эти события и предупредить операционные команды.
Соображения при внедрении активно-активной репликации RustFS
На самом базовом уровне любой дизайн должен учитывать инфраструктуру, пропускную способность, задержку, устойчивость и масштаб. Рассмотрим их по порядку:
Инфраструктура
RustFS рекомендует использовать одинаковое оборудование на обоих концах конечных точек репликации. Хотя похожее оборудование может работать, введение гетерогенных профилей оборудования приносит сложность и замедляет идентификацию проблем.
Пропускная способность
Пропускная способность является критическим фактором в поддержании последовательной синхронизации двух сайтов. Оптимальное требование пропускной способности между сайтами определяется скоростью поступающих данных. В частности, если пропускной способности недостаточно для обработки пиков, изменения будут ставиться в очередь на удаленный сайт и в конечном итоге синхронизироваться.
Задержка
После пропускной способности задержка является наиболее важным соображением при проектировании модели активный-активный. Задержка представляет время кругового обхода (RTT) между двумя кластерами RustFS. Цель состоит в том, чтобы уменьшить задержку до минимально возможного числа в рамках бюджетных ограничений, налагаемых пропускной способностью. RustFS рекомендует пороговые значения RTT не превышающие 20 миллисекунд для Ethernet-каналов и сетей, с коэффициентами потери пакетов не превышающими 0,01%.
Архитектура
В настоящее время RustFS рекомендует репликацию только между двумя центрами обработки данных. Репликация между несколькими центрами обработки данных возможна, однако сложность и требуемые компромиссы делают это довольно трудным.
Архитектура крупномасштабного развертывания
RustFS поддерживает очень большие развертывания в каждом центре обработки данных, включая исходный и целевой, при этом вышеупомянутые соображения определяют масштаб.
Часто задаваемые вопросы
Что происходит, когда цель репликации выходит из строя?
Если цель выходит из строя, исходник будет кешировать изменения и начнет синхронизацию после восстановления цели репликации. Может быть некоторая задержка в достижении полной синхронизации в зависимости от продолжительности, количества изменений, пропускной способности и задержки.
Каковы параметры для неизменяемости?
Неизменяемость поддерживается. Ключевые концепции можно найти в этой статье. В режиме активно-активной репликации неизменяемость может быть гарантирована только когда объекты версионированы. Версионирование не может быть отключено в источнике. Если версионирование приостановлено в цели, RustFS начнет сбойную репликацию.
Каковы другие воздействия, если версионирование приостановлено или есть несоответствие?
В этих случаях репликация может завершиться неудачей. Например, если вы попытаетесь отключить версионирование в исходной корзине, будет возвращена ошибка. Вы должны сначала удалить конфигурацию репликации, прежде чем сможете отключить версионирование в исходной корзине. Кроме того, если версионирование отключено в целевой корзине, репликация завершится неудачей.
Как обрабатывается, если блокировка объектов не включена на обоих концах?
Блокировка объектов должна быть включена как в источнике, так и в цели. Есть граничный случай, когда после настройки репликации корзины целевая корзина может быть удалена и пересоздана, но без включенной блокировки объектов, и репликация может завершиться неудачей. Если настройки блокировки объектов не настроены на обоих концах, могут возникнуть несогласованные ситуации. В этом случае RustFS будет молча терпеть неудачу.