Поделиться через


Высокий уровень доступности в Azure DocumentDB

Высокий уровень доступности в регионе позволяет избежать простоя базы данных, сохраняя резервные реплики каждого сегмента в кластере. Если сегмент не отвечает по какой-либо причине, Azure DocumentDB переключает входящие подключения из неудачного сегмента в резервный. В случае отказа перенесённые сегменты всегда имеют актуальные данные благодаря синхронной репликации.

Все первичные шарды в кластере размещаются в одну зону доступности (AZ) для улучшения задержки между шардами. Резервные шарды развёртываются в другой зоне доступности.

Даже без активированного режима высокой доступности каждый сегмент имеет собственное внутренне резервируемое хранилище (LRS) с тремя синхронными репликами, поддерживаемыми службой хранения Azure. Все три реплики находятся в регионе Azure кластера. Если происходит сбой одной из реплик, служба хранилища Azure обнаруживает сбой и прозрачно восстанавливает потерянную реплику. См. метрики на этой странице для обеспечения устойчивости хранилища LRS.

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

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

Если в кластере включен высокий уровень доступности в регионе, каждый сегмент кластера охватывается соглашением об уровне обслуживания (SLA) на 99.99% доступности.

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

Что происходит во время переключения на запасной ресурс

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

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

После завершения переключения шардов кластер полностью функционирует. Последний шаг, чтобы вернуться к изначальной конфигурации с высокой доступностью, — повторно создать резервный шард. Это повторное создание резервного шарда выполняется без простоя или влияния на производительность основного шарда.