Сервис Amazon OpenSearch недавно введенный Несколько зон доступности с режимом ожидания, вариант развертывания, предназначенный для предоставления предприятиям повышенной доступности и стабильной производительности для критически важных рабочих нагрузок. Благодаря этой функции управляемые кластеры могут достичь доступности 99.99 %, оставаясь при этом устойчивыми к сбоям зональной инфраструктуры.
В этой статье мы исследуем, как поиск и индексирование работают с Multi-AZ с резервным режимом, и углубимся в основные механизмы, которые способствуют его надежности, простоте и отказоустойчивости.
проверка данных
В режиме Multi-AZ с режимом ожидания экземпляры домена службы OpenSearch развертываются в трех зонах доступности, причем две зоны обозначены как активные, а одна — как резервная. Эта конфигурация обеспечивает стабильную производительность даже в случае зональных сбоев, поддерживая одинаковую емкость во всех зонах. Важно отметить, что эта резервная зона следует за статически устойчивая конструкция, устраняя необходимость выделения ресурсов или перемещения данных во время сбоев.
Во время обычных операций активная зона обрабатывает трафик координатора для запросов на чтение и запись, а также трафик сегментных запросов. С другой стороны, резервная зона получает только трафик репликации. Служба OpenSearch использует протокол синхронной репликации для запросов на запись. Это позволяет службе оперативно переводить резервную зону в активное состояние в случае сбоя (среднее время переключения <= 1 минута), что называется зональная отработка отказа. Ранее активная зона затем переводится в режим ожидания, и начинаются операции восстановления для восстановления ее работоспособного состояния.
Поиск маршрутизации трафика и аварийное переключение для обеспечения высокой доступности.
В домене службы OpenSearch координатор — это любой узел, который обрабатывает запросы HTTP(S), особенно запросы индексации и поиска. В многозонном домене с резервным доменом узлы данных в активной зоне действуют как координаторы поисковых запросов.
На этапе запроса поискового запроса координатор определяет сегменты, которые будут запрошены, и отправляет запрос на узел данных, на котором размещена копия сегмента. Запрос выполняется локально для каждого сегмента, и соответствующие документы возвращаются на узел-координатор. Узел-координатор, который отвечает за отправку запроса узлам, содержащим шард-копии, запускает процесс в два этапа. Во-первых, он создает итератор, который определяет порядок, в котором узлы должны запрашивать сегментную копию, чтобы трафик равномерно распределялся по сегментным копиям. Впоследствии запрос отправляется на соответствующие узлы.
Чтобы создать упорядоченный список узлов, к которым будет запрошена копия сегмента, узел-координатор использует различные алгоритмы. Эти алгоритмы включают в себя циклический выбор, адаптивный выбор реплик, маршрутизацию сегментов на основе предпочтений и взвешенный циклический алгоритм.
Для нескольких зон доступности с резервным режимом для выбора сегментной копии используется взвешенный циклический алгоритм. При таком подходе активным зонам присваивается вес 1, а резервной зоне — вес 0. Это гарантирует, что трафик чтения не будет отправляться на узлы данных в резервной зоне доступности.
Веса хранятся в метаданных состояния кластера в виде объекта JSON:
Как показано на следующем снимке экрана, us-east-1b
Регион имеет статус зоны как StandBy
, указывая, что узлы данных в этой зоне доступности находятся в состоянии ожидания и не получают запросы на поиск или индексирование от балансировщика нагрузки.
Для поддержания стабильной работы резервная зона доступности меняется каждые 30 минут, обеспечивая покрытие всех частей сети во всех зонах доступности. Этот упреждающий подход проверяет доступность путей чтения, что еще больше повышает устойчивость системы во время потенциальных сбоев. Следующая диаграмма иллюстрирует эту архитектуру.
На предыдущей диаграмме для зоны C взвешенный циклический вес установлен равным нулю. Это гарантирует, что узлы данных в резервной зоне не получат никакого индексационного или поискового трафика. Когда координатор запрашивает узлы данных для копий сегментов, он использует взвешенный вес циклического перебора, чтобы определить порядок, в котором узлы следует запрашивать. Поскольку вес для резервной зоны доступности равен нулю, запросы координатора не отправляются.
В кластере OpenSearch Service активную и резервную зоны можно проверить в любое время с помощью показателей ротации зон доступности, как показано на следующем снимке экрана.
Во время зональных сбоев резервная зона доступности плавно переключается в режим открытия при сбое для поисковых запросов. Это означает, что трафик запросов сегментов направляется во все зоны доступности, даже в те, которые находятся в режиме ожидания, когда работоспособная копия сегмента недоступна в активной зоне доступности. Такой отказоустойчивый подход защищает поисковые запросы от сбоев во время сбоев, обеспечивая непрерывное обслуживание. Следующая диаграмма иллюстрирует эту архитектуру.
На предыдущей диаграмме в устойчивом состоянии трафик запросов сегментов отправляется на узел данных в активных зонах доступности (зона-A и зона-B). Из-за сбоев узлов в зоне-A резервная зона доступности (зона-C) не открывается для приема трафика сегментных запросов, поэтому поисковые запросы не оказывают никакого влияния. В конце концов Зона-А обнаруживается как неработоспособная, и при сбое чтения переключается резервная зона на Зону-А.
Как аварийное переключение обеспечивает высокую доступность при нарушении записи
Модель репликации службы OpenSearch соответствует модели первичного резервного копирования, характеризующейся синхронным характером, в которой необходимо подтверждение от всех копий сегментов, прежде чем запрос на запись может быть подтвержден пользователю. Одним из заметных недостатков этой модели репликации является ее подверженность замедлению в случае каких-либо нарушений пути записи. Эти системы полагаются на активный узел-лидер для выявления сбоев или задержек, а затем передают эту информацию всем узлам. Продолжительность, необходимая для обнаружения этих проблем (среднее время обнаружения) и последующего их устранения (среднее время устранения), во многом определяет, как долго система будет работать в поврежденном состоянии. Кроме того, любое сетевое событие, влияющее на межзональную связь, может существенно затруднить запросы на запись из-за синхронного характера репликации.
Служба OpenSearch использует внутренний протокол связи между узлами для репликации трафика записи и координации обновлений метаданных через избранного лидера. Следовательно, перевод зоны, испытывающей стресс, в режим ожидания не позволит эффективно решить проблему ухудшения записи.
Зональное переключение записи: отключение трафика межзонной репликации
Для нескольких зон доступности с резервным режимом для снижения потенциальных проблем с производительностью, возникающих во время непредвиденных событий, таких как зональные сбои и сетевые события, эффективным подходом является зональное переключение при записи. Этот подход предполагает корректное удаление узлов в затронутой зоне из кластера, эффективно отсекая входящий и исходящий трафик между зонами. Разделив трафик межзонной репликации, можно сдержать влияние зональных сбоев в пределах затронутой зоны. Это обеспечивает более предсказуемое взаимодействие с клиентами и гарантирует, что система продолжит работать надежно.
Грациозное переключение записи при отказе
Управление аварийным переключением записи в службе OpenSearch осуществляется избранным ведущим узлом с помощью четко определенного механизма. Этот механизм включает в себя протокол консенсуса для публикации состояния кластера, гарантируя единогласное согласие всех узлов о назначении одной зоны (в любое время) для вывода из эксплуатации. Важно отметить, что метаданные, относящиеся к затронутой зоне, реплицируются на все узлы, чтобы обеспечить их сохранение даже во время полного перезапуска в случае сбоя.
Кроме того, ведущий узел обеспечивает плавный и плавный переход, первоначально переводя узлы в затронутых зонах в режим ожидания на 5 минут перед началом ограждения ввода-вывода. Такой преднамеренный подход предотвращает направление любого нового трафика координатора или трафика запросов сегментов на узлы в затронутой зоне. Это, в свою очередь, позволяет этим узлам корректно выполнять свои текущие задачи и постепенно обрабатывать любые текущие запросы, прежде чем они будут выведены из эксплуатации. Следующая диаграмма иллюстрирует эту архитектуру.
В процессе реализации аварийного переключения записи для ведущего узла служба OpenSearch выполняет следующие ключевые шаги:
- Отречение лидера – Если ведущий узел окажется в зоне, запланированной для переключения при сбое записи, система гарантирует, что ведущий узел добровольно откажется от своей ведущей роли. Это отречение осуществляется контролируемым образом, и весь процесс передается другому правомочному узлу, который затем берет на себя ответственность за необходимые действия.
- Предотвратить переизбрание будущего руководителя – Чтобы предотвратить переизбрание лидера из зоны, отмеченной для переключения при отказе записи, когда соответствующий узел-лидер инициирует действие переключения при отказе при записи, он принимает меры, гарантирующие, что любые выведенные из эксплуатации ведущие узлы не будут участвовать в каких-либо дальнейших выборах. Это достигается за счет исключения узла-лидера, подлежащего выводу из эксплуатации, из конфигурации голосования, что эффективно предотвращает его голосование на любом критическом этапе работы кластера.
Метаданные, относящиеся к зоне переключения записи, хранятся в состоянии кластера, и эта информация публикуется на всех узлах распределенного кластера OpenSearch Service следующим образом:
На следующем снимке экрана показано, что во время замедления работы сети в зоне отработка отказа при записи помогает восстановить доступность.
Зональное восстановление после отказа записи
Процесс повторного ввода в эксплуатацию зоны играет решающую роль на этапе восстановления после отказа зональной записи. После того как затронутая зона будет восстановлена и признана стабильной, ранее выведенные из эксплуатации узлы вновь присоединятся к кластеру. Этот повторный ввод в эксплуатацию обычно происходит в течение 2 минут после повторного ввода зоны в эксплуатацию.
Это позволяет им синхронизироваться со своими одноранговыми узлами и инициировать процесс восстановления сегментов реплик, эффективно восстанавливая кластер до желаемого состояния.
Заключение
Внедрение OpenSearch Service Multi-AZ with Standby предоставляет предприятиям мощное решение для достижения высокой доступности и стабильной производительности для критически важных рабочих нагрузок. Благодаря этому варианту развертывания компании могут повысить устойчивость своей инфраструктуры, упростить настройку и управление кластером, а также внедрить лучшие практики. Благодаря таким функциям, как взвешенный циклический выбор осколков, механизмы превентивного переключения при отказе и резервные зоны доступности с возможностью открытия при сбое, OpenSearch Service Multi-AZ with Standby обеспечивает надежный и эффективный поиск для требовательных корпоративных сред.
Дополнительную информацию о Multi-AZ с режимом ожидания см. Сервис Amazon OpenSearch «под капотом»: несколько зон доступности с режимом ожидания.
Об авторе
Аншу Агарвал — старший инженер-программист, работающий над AWS OpenSearch в Amazon Web Services. Она увлечена решением проблем, связанных с построением масштабируемых и высоконадежных систем.
Ришаб Нахата — инженер-программист, работающий над OpenSearch в Amazon Web Services. Он увлечен решением проблем в распределенных системах. Он является активным участником OpenSearch.
Бухтавар Хан — главный инженер, работающий над Amazon OpenSearch Service. Его интересуют распределенные и автономные системы. Он активно участвует в OpenSearch.
Ранджит Рамачандра является техническим менеджером, работающим над Amazon OpenSearch Service в Amazon Web Services.
- SEO-контент и PR-распределение. Получите усиление сегодня.
- PlatoData.Network Вертикальный генеративный ИИ. Расширьте возможности себя. Доступ здесь.
- ПлатонАйСтрим. Интеллект Web3. Расширение знаний. Доступ здесь.
- ПлатонЭСГ. Углерод, чистые технологии, Энергия, Окружающая среда, Солнечная, Управление отходами. Доступ здесь.
- ПлатонЗдоровье. Биотехнологии и клинические исследования. Доступ здесь.
- Источник: https://aws.amazon.com/blogs/big-data/achieve-high-availability-in-amazon-opensearch-multi-az-with-standby-enabled-domains-a-deep-dive-into-failovers/
- :имеет
- :является
- :нет
- :куда
- 1
- 10
- 100
- 12
- 30
- 501
- a
- О нас
- Достигать
- достигнутый
- признанный
- через
- Действие (Act):
- Действие
- действия
- активный
- адаптивный
- Дополнительно
- адрес
- пострадавших
- После
- ДОГОВОР
- алгоритм
- алгоритмы
- Все
- позволять
- Amazon
- Amazon Web Services
- среди
- an
- и
- Другой
- любой
- подхода
- архитектура
- МЫ
- AS
- назначенный
- At
- автономный
- автономные системы
- свободных мест
- осведомленность
- AWS
- Восстановление
- стабилизатор
- BE
- , так как:
- было
- до
- не являетесь
- ЛУЧШЕЕ
- лучшие практики
- между
- изоферменты печени
- вещания
- Строительство
- бизнес
- by
- CAN
- Пропускная способность
- проводятся
- вызванный
- отличающийся
- заряд
- проверил
- Кластер
- Связь
- Связь
- полный
- Конфигурация
- Консенсус
- вследствие этого
- считается
- последовательный
- Консоли
- содержащегося
- продолжается
- (CIJ)
- способствовать
- участник
- контроль
- координирующий
- Координатор
- координаторов
- копии
- покрытый
- Создайте
- создает
- критической
- решающее значение
- Клиенты
- резки
- данным
- решать
- глубоко
- глубокое погружение
- Определяет
- задержки
- копаться
- требующий
- развертывание
- развертывает
- назначенный
- предназначенный
- желанный
- обнаруживать
- обнаруженный
- определяет
- направленный
- Нарушение
- распределенный
- распределенные системы
- погружение
- do
- Документация
- домен
- доменов
- Dont
- вниз
- два
- продолжительность
- в течение
- каждый
- Эффективный
- фактически
- эффективный
- избран
- Выборы
- право
- уничтожение
- включен
- позволяет
- обеспечивать соблюдение
- инженер
- Проект и
- повышать
- расширение
- повышение
- обеспечивать
- обеспечивает
- обеспечение
- Предприятие
- Весь
- средах
- особенно
- Эфир (ETH)
- Даже
- События
- События
- со временем
- Каждая
- без учета
- опыт
- испытывающих
- Больше
- не удается
- Ошибка
- сбои
- Особенность
- Особенности
- фехтование
- First
- после
- следующим образом
- Что касается
- КАДР
- от
- полный
- далее
- GIF
- грациозный
- постепенно
- гарантия
- рука
- обрабатывать
- Ручки
- происходит
- he
- здоровый
- помогает
- High
- очень
- капот
- хостинг
- Как
- HTTP
- HTTPS
- определения
- if
- иллюстрирует
- Влияние
- влияние
- нарушение
- Осуществляющий
- важно
- in
- включают
- с указанием
- информация
- Инфраструктура
- первоначально
- Посвященные
- инициирование
- случаев
- заинтересованный
- в нашей внутренней среде,
- в
- выпустили
- Введение
- включает в себя
- вопрос
- вопросы
- IT
- ЕГО
- JPG
- JSON
- Основные
- известный
- в значительной степени
- лидер
- Наша команда
- такое как
- Список
- загрузка
- в местном масштабе
- расположенный
- Длинное
- поддерживать
- сохранение
- управляемого
- управление
- менеджер
- способ
- с пометкой
- соответствует
- значить
- означает
- меры
- механизм
- механизмы
- Метаданные
- Метрика
- минут
- минут
- смягчать
- режим
- модель
- БОЛЕЕ
- движение
- природа
- необходимо
- Необходимость
- сеть
- сетей
- Новые
- нет
- узел
- узлы
- примечательный
- объект
- of
- от
- on
- ONE
- постоянный
- только
- открытый
- работать
- операция
- Операционный отдел
- Опция
- or
- оркестровка
- заказ
- Другое
- внешний
- перебой в работе
- Отключения
- за
- участвовать
- части
- страстный
- путь
- пути
- вглядываться
- производительность
- настойчивость
- фаза
- размещение
- Платон
- Платон Интеллектуальные данные
- ПлатонДанные
- играет
- После
- потенциал
- мощный
- практиками
- предшествующий
- предсказуемый
- предотвращать
- предупреждение
- предотвращает
- предварительно
- первичный
- Основной
- Проактивная
- проблемам
- процесс
- продвижении
- протокол
- обеспечивать
- приводит
- Публикация
- опубликованный
- Полагая
- Запросы
- Читать
- Получать
- получает
- недавно
- Recover
- Я выздоровела
- выздоровление
- относиться
- область
- регулярный
- Связанный
- соответствующие
- надежность
- складская
- полагаться
- осталось
- удаление
- ремонт
- ответ
- реплицируются
- копирование
- запросить
- Запросы
- обязательный
- упругость
- упругий
- решение
- ответственный
- восстановление
- восстановлено
- восстановление
- Роли
- маршрутизация
- Run
- работает
- s
- защитные меры
- то же
- масштабируемые
- считаться
- легко
- Поиск
- выбор
- отправка
- посылает
- старший
- послать
- обслуживание
- Услуги
- набор
- она
- показанный
- существенно
- простота
- упростить
- одинарной
- Помедленнее
- замедления
- сгладить
- So
- Software
- Инженер-программист
- Решение
- Решение
- стабильный
- Область
- Статус:
- устойчивый
- Шаги
- хранить
- стресс
- впоследствии
- успешный
- восприимчивость
- система
- системы
- взять
- приняты
- принимает
- задачи
- который
- Ассоциация
- их
- Их
- тогда
- Там.
- Эти
- этой
- те
- три
- Через
- время
- раз
- в
- терпимость
- трафик
- переход
- ОЧЕРЕДЬ
- два
- типично
- под
- лежащий в основе
- непредвиденный
- Updates
- используемый
- Информация о пользователе
- использования
- через
- использует
- различный
- добровольно
- голосование
- we
- Web
- веб-сервисы
- вес
- ЧТО Ж
- вполне определенный
- были
- когда
- который
- в то время как
- будете
- в
- работает
- работает
- записывать
- зефирнет
- нуль
- зоны