Служба Amazon OpenSearch Нещодавно введено Multi-AZ із режимом очікування, варіант розгортання, призначений для надання підприємствам підвищеної доступності та постійної продуктивності для критичних робочих навантажень. Завдяки цій функції керовані кластери можуть досягти 99.99% доступності, залишаючись стійкими до збоїв зональної інфраструктури.
У цій публікації ми досліджуємо, як працює пошук та індексація з Multi-AZ із режимом очікування, і заглиблюємося в базові механізми, які сприяють його надійності, простоті та відмовостійкості.
фон
Multi-AZ із режимом очікування розгортає екземпляри домену OpenSearch Service у трьох зонах доступності, причому дві зони позначено як активні, а одна — як резервна. Ця конфігурація забезпечує стабільну продуктивність навіть у разі зональних збоїв, зберігаючи однакову пропускну здатність у всіх зонах. Важливо, що ця зона очікування слідує за a статично стійка конструкція, усуваючи потребу у забезпеченні ємності або переміщенні даних під час збоїв.
Під час звичайних операцій активна зона обробляє трафік координатора для запитів на читання та запис, а також трафік запитів сегментів. Зона очікування, з іншого боку, отримує лише трафік реплікації. Служба OpenSearch використовує протокол синхронної реплікації для запитів на запис. Це дає змогу службі негайно переводити зону очікування в активний стан у разі збою (середній час перемикання після відмови <= 1 хвилина), відомого як зональне перемикання після відмови. Попередньо активна зона потім переходить у режим очікування, і починаються операції відновлення для відновлення її працездатного стану.
Маршрутизація трафіку пошуку та відновлення після відмови, щоб гарантувати високу доступність
У домені OpenSearch Service, a координатора це будь-який вузол, який обробляє запити HTTP(S), особливо запити індексування та пошуку. У домені Multi-AZ із резервним доменом вузли даних в активній зоні діють як координатори пошукових запитів.
Під час фази запиту пошукового запиту координатор визначає шарди, які потрібно запитати, і надсилає запит до вузла даних, на якому розміщена копія сегмента. Запит виконується локально на кожному сегменті, а відповідні документи повертаються до вузла-координатора. Вузол-координатор, який відповідає за надсилання запиту до вузлів, що містять шард-копії, виконує процес у два етапи. По-перше, він створює ітератор, який визначає порядок, у якому вузли мають запитувати шард-копію, щоб трафік рівномірно розподілявся між шард-копіями. Згодом запит надсилається до відповідних вузлів.
Для того, щоб створити впорядкований список вузлів, до яких потрібно запитати шард-копію, вузол-координатор використовує різні алгоритми. Ці алгоритми включають циклічний вибір, вибір адаптивної репліки, маршрутизацію сегментів на основі переваг і зважена кругова система.
Для Multi-AZ із режимом очікування для вибору сегментної копії використовується зважений циклічний алгоритм. У цьому підході активним зонам призначається вага 1, а резервній зоні призначається вага 0. Це гарантує, що трафік читання не надсилається до вузлів даних у резервній зоні доступності.
Вагові коефіцієнти зберігаються в метаданих стану кластера як об’єкт JSON:
Як показано на наступному знімку екрана, us-east-1b
Область має статус зони як StandBy
, що вказує на те, що вузли даних у цій зоні доступності перебувають у стані очікування та не отримують запити на пошук чи індексування від балансувальника навантаження.
Щоб підтримувати стабільну роботу, зона доступності в режимі очікування змінюється кожні 30 хвилин, забезпечуючи охоплення всіх частин мережі в зонах доступності. Цей проактивний підхід перевіряє доступність шляхів читання, ще більше підвищуючи стійкість системи під час можливих збоїв. Наступна діаграма ілюструє цю архітектуру.
На попередній діаграмі Зона-C має зважену циклічну вагу, встановлену на нуль. Це гарантує, що вузли даних у зоні очікування не отримають індексування чи пошуковий трафік. Коли координатор запитує вузли даних для отримання шардових копій, він використовує зважену циклічну вагу, щоб визначити порядок, у якому вузли запитувати. Оскільки для резервної зони доступності вага дорівнює нулю, запити координатора не надсилаються.
У кластері OpenSearch Service активну та резервну зони можна перевірити в будь-який час за допомогою показників ротації зони доступності, як показано на наступному знімку екрана.
Під час зональних збоїв резервна зона доступності плавно перемикається в режим безвідмовного відкриття для пошукових запитів. Це означає, що трафік запиту шарду направляється до всіх зон доступності, навіть тих, що знаходяться в режимі очікування, коли справна копія сегмента недоступна в активній зоні доступності. Цей відкритий підхід захищає пошукові запити від збоїв під час збоїв, забезпечуючи безперервне обслуговування. Наступна діаграма ілюструє цю архітектуру.
На попередній діаграмі під час стабільного стану трафік запиту фрагмента надсилається до вузла даних у активних зонах доступності (зона A та зона B). Через збої вузлів у зоні-A резервна зона доступності (зона-C) не відкривається для прийому трафіку запитів сегментів, тому це не впливає на пошукові запити. Згодом зону A виявляють несправною, і перемикання після збою читання перемикає режим очікування на зону A.
Як відновлення після відмови забезпечує високу доступність під час запису
Модель реплікації OpenSearch Service наслідує первинну модель резервного копіювання, яка характеризується синхронною природою, де необхідне підтвердження з усіх сегментних копій, перш ніж запит на запис може бути підтверджено для користувача. Одним із помітних недоліків цієї моделі реплікації є її сприйнятливість до сповільнень у разі будь-якого порушення шляху запису. Ці системи покладаються на активний головний вузол для виявлення збоїв або затримок, а потім транслюють цю інформацію всім вузлам. Тривалість, необхідна для виявлення цих проблем (середній час виявлення) і подальшого їх усунення (середній час відновлення) значною мірою визначає, як довго система працюватиме в несправному стані. Крім того, будь-яка мережева подія, яка впливає на зв’язок між зонами, може значно перешкоджати запитам на запис через синхронну природу реплікації.
Служба OpenSearch використовує внутрішній міжвузловий протокол зв’язку для реплікації трафіку запису та координації оновлень метаданих через обраного керівника. Отже, переведення зони, яка зазнає стресу, у режим очікування, не допоможе ефективно вирішити проблему погіршення запису.
Зональний запис після відмови: відключення трафіку реплікації між зонами
Для Multi-AZ із режимом очікування ефективним підходом для пом’якшення потенційних проблем із продуктивністю, спричинених під час непередбачуваних подій, таких як зональні збої та мережеві події, є перемикання після відмови зонального запису. Цей підхід передбачає акуратне видалення вузлів у зоні впливу з кластера, ефективно відсікаючи вхідний і вихідний трафік між зонами. Розриваючи трафік реплікації між зонами, вплив зональних збоїв можна стримувати в межах ураженої зони. Це забезпечує більш передбачуваний досвід для клієнтів і гарантує, що система продовжує працювати надійно.
Витончене перемикання після відмови запису
Оркестровка відмов записування в OpenSearch Service здійснюється обраним головним вузлом за допомогою чітко визначеного механізму. Цей механізм передбачає консенсусний протокол для публікації стану кластера, що забезпечує одностайну згоду між усіма вузлами щодо призначення однієї зони (у будь-який час) для виведення з експлуатації. Важливо, що метадані, пов’язані з ураженою зоною, реплікуються на всіх вузлах, щоб забезпечити їх постійність навіть під час повного перезапуску в разі збою.
Крім того, провідний вузол забезпечує плавний і витончений перехід, спочатку переводячи вузли в зоні впливу в режим очікування на 5 хвилин перед тим, як ініціювати огорожу вводу-виводу. Цей навмисний підхід запобігає спрямуванню будь-якого нового трафіку координатора або трафіку запитів сегментів до вузлів у зоні впливу. Це, у свою чергу, дозволяє цим вузлам витончено виконувати свої поточні завдання та поступово обробляти будь-які запити на польоті, перш ніж їх вивести з експлуатації. Наступна діаграма ілюструє цю архітектуру.
У процесі впровадження відмов запису для головного вузла служба OpenSearch виконує такі ключові кроки:
- Зречення лідера – Якщо провідний вузол знаходиться в зоні, запланованій для перемикання після відмови, система гарантує, що провідний вузол добровільно відступить від своєї ролі лідера. Ця відмова здійснюється контрольованим способом, і весь процес передається іншому відповідному вузлу, який потім бере на себе відповідальність за необхідні дії.
- Запобігання переобранню лідера, який буде звільнений – Щоб запобігти повторному вибору лідера із зони, позначеної для перемикання після відмови, коли придатний провідний вузол ініціює дію перемикання після збою запису, він вживає заходів для забезпечення того, щоб будь-які провідні вузли, які будуть виведені з експлуатації, не брали участі в будь-яких подальших виборах. Це досягається шляхом виключення провідного вузла, який буде виведено з експлуатації, із конфігурації голосування, фактично запобігаючи його голосуванню під час будь-якої критичної фази роботи кластера.
Метадані, пов’язані із зоною відновлення після відмови запису, зберігаються в стані кластера, і ця інформація публікується на всіх вузлах розподіленого кластера OpenSearch Service наступним чином:
На наступному знімку екрана показано, що під час уповільнення мережі в зоні перемикання після відмови запису допомагає відновити доступність.
Зональне відновлення після відмови запису
Процес зонального повторного введення в експлуатацію відіграє вирішальну роль на етапі відновлення після перемикання після відмови зонального запису. Після того, як зона впливу буде відновлена та вважатиметься стабільною, вузли, які раніше були виведені з експлуатації, знову приєднаються до кластера. Це повторне введення в експлуатацію зазвичай відбувається протягом 2 хвилин після повторного введення зони в експлуатацію.
Це дає їм змогу синхронізуватися з одноранговими вузлами та ініціює процес відновлення шардів-копій, фактично відновлюючи кластер до бажаного стану.
Висновок
Представлення OpenSearch Service Multi-AZ із режимом очікування надає компаніям потужне рішення для досягнення високої доступності та постійної продуктивності для критичних робочих навантажень. За допомогою цього варіанту розгортання підприємства можуть підвищити стійкість своєї інфраструктури, спростити конфігурацію та керування кластером, а також застосовувати найкращі практики. Завдяки таким функціям, як зважений циклічний вибір шардових копій, проактивні механізми відновлення після збоїв і резервні зони доступності, OpenSearch Service Multi-AZ із режимом очікування забезпечує надійний і ефективний пошук у вимогливих корпоративних середовищах.
Додаткову інформацію про Multi-AZ із режимом очікування див Служба Amazon OpenSearch під капотом: кілька AZ із режимом очікування.
Про автора
Аншу Агарвал є старшим інженером-програмістом, який працює над AWS OpenSearch в Amazon Web Services. Вона захоплена вирішенням проблем, пов’язаних зі створенням масштабованих і високонадійних систем.
Рішаб Нахата є інженером-програмістом, який працює над OpenSearch в Amazon Web Services. Його захоплює вирішення проблем у розподілених системах. Він є активним учасником OpenSearch.
Бухтавар-хан є головним інженером, який працює над Amazon OpenSearch Service. Його цікавлять розподілені та автономні системи. Він є активним учасником OpenSearch.
Ранджит Рамачандра є інженерним менеджером, який працює над службою Amazon OpenSearch в Amazon Web Services.
- Розповсюдження контенту та PR на основі SEO. Отримайте посилення сьогодні.
- PlatoData.Network Vertical Generative Ai. Додайте собі сили. Доступ тут.
- PlatoAiStream. Web3 Intelligence. Розширення знань. Доступ тут.
- ПлатонЕСГ. вуглець, CleanTech, Енергія, Навколишнє середовище, Сонячна, Поводження з відходами. Доступ тут.
- PlatoHealth. Розвідка про біотехнології та клінічні випробування. Доступ тут.
- джерело: 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
- МЕНЮ
- Achieve
- досягнутий
- визнаний
- через
- Діяти
- дію
- дії
- активний
- адаптивний
- Додатково
- адреса
- постраждалих
- після
- Угода
- алгоритм
- алгоритми
- ВСІ
- дозволяти
- Amazon
- Amazon Web Services
- серед
- an
- та
- Інший
- будь-який
- підхід
- архітектура
- ЕСТЬ
- AS
- призначений
- At
- автономний
- автономні системи
- наявність
- обізнаність
- AWS
- резервна копія
- свінг
- BE
- оскільки
- було
- перед тим
- буття
- КРАЩЕ
- передового досвіду
- між
- обидва
- віщати
- Створюємо
- підприємства
- by
- CAN
- потужність
- carried
- викликаний
- характеризується
- заряд
- перевірено
- кластер
- Комунікація
- зв'язку
- повний
- конфігурація
- Консенсус
- Отже
- вважається
- послідовний
- Консоль
- містяться
- триває
- безперервний
- сприяти
- вкладник
- контроль
- координуючи
- Координатор
- координатори
- copies
- покритий
- створювати
- створює
- критичний
- вирішальне значення
- Клієнти
- різання
- дані
- вирішувати
- глибокий
- глибоке занурення
- Визначає
- затримки
- заглиблюватися
- вимогливий
- розгортання
- розгортає
- призначені
- призначений
- бажаний
- виявляти
- виявлено
- визначає
- спрямований
- Зрив
- розподілений
- розподілені системи
- занурення
- do
- документація
- домен
- домени
- Не знаю
- вниз
- два
- тривалість
- під час
- кожен
- Ефективний
- фактично
- ефективний
- обраний
- Вибори
- має право
- усуваючи
- включений
- дозволяє
- примусове виконання
- інженер
- Машинобудування
- підвищувати
- підвищена
- підвищення
- забезпечувати
- гарантує
- забезпечення
- підприємство
- Весь
- середовищах
- особливо
- Ефір (ETH)
- Навіть
- Event
- Події
- врешті-решт
- Кожен
- виключення
- досвід
- зазнають
- дослідити
- зазнає невдачі
- Провал
- збої
- особливість
- риси
- фехтування
- Перший
- після
- слідує
- для
- FRAME
- від
- Повний
- далі
- GIF
- Витончений
- поступово
- гарантувати
- рука
- обробляти
- Ручки
- відбувається
- he
- здоровий
- допомагає
- Високий
- дуже
- капот
- хостинг
- Як
- HTTP
- HTTPS
- ідентифікувати
- if
- ілюструє
- Impact
- вплив
- порушення
- реалізації
- важливо
- in
- включати
- вказуючи
- інформація
- Інфраструктура
- спочатку
- Посвячені
- ініціювання
- випадки
- зацікавлений
- внутрішній
- в
- введені
- Вступ
- включає в себе
- питання
- питання
- IT
- ЙОГО
- JPG
- json
- ключ
- відомий
- в значній мірі
- лідер
- Керівництво
- як
- список
- загрузка
- локально
- розташований
- Довго
- підтримувати
- збереження
- вдалося
- управління
- менеджер
- манера
- позначено
- відповідає
- значити
- засоби
- заходи
- механізм
- механізми
- метадані
- Метрика
- хвилин
- протокол
- Пом'якшити
- режим
- модель
- більше
- руху
- природа
- необхідно
- Необхідність
- мережу
- мережа
- Нові
- немає
- вузол
- вузли
- Помітний
- об'єкт
- of
- від
- on
- ONE
- постійний
- тільки
- відкрити
- працювати
- операція
- операції
- варіант
- or
- оркестровка
- порядок
- Інше
- з
- відключення
- Недоліки
- над
- брати участь
- частини
- пристрасний
- шлях
- стежки
- однолітка
- продуктивність
- наполегливість
- фаза
- розміщення
- plato
- Інформація про дані Платона
- PlatoData
- відіграє
- пошта
- потенціал
- потужний
- практики
- попередній
- Передбачуваний
- запобігати
- попередження
- запобігає
- раніше
- первинний
- Головний
- Проактивний
- проблеми
- процес
- сприяти
- протокол
- забезпечувати
- забезпечує
- Публікація
- опублікований
- Поклавши
- запити
- Читати
- отримати
- отримує
- нещодавно
- Відновлювати
- відновлюється
- відновлення
- послатися
- регіон
- регулярний
- пов'язаний
- доречний
- надійність
- надійний
- покладатися
- решті
- видалення
- ремонт
- відповідь
- тиражувати
- копіювання
- запросити
- запитів
- вимагається
- пружність
- пружний
- рішення
- відповідальний
- відновлення
- відновлено
- відновлення
- Роль
- Маршрутизація
- прогін
- пробіжки
- s
- гарантії
- то ж
- масштабовані
- плановий
- плавно
- Пошук
- вибір
- відправка
- посилає
- старший
- посланий
- обслуговування
- Послуги
- комплект
- вона
- показаний
- істотно
- простота
- спростити
- один
- Уповільнення темпів
- уповільнення
- згладити
- So
- Софтвер
- Інженер-програміст
- рішення
- Розв’язування
- стабільний
- стан
- Статус
- стійкий
- заходи
- зберігати
- стрес
- Згодом
- успішний
- сприйнятливість
- система
- Systems
- Приймати
- прийняті
- приймає
- завдання
- Що
- Команда
- їх
- Їх
- потім
- Там.
- Ці
- це
- ті
- три
- через
- час
- times
- до
- терпимість
- трафік
- перехід
- ПЕРЕГЛЯД
- два
- типово
- при
- що лежить в основі
- непередбачений
- Updates
- використовуваний
- користувач
- використовує
- використання
- використовує
- різний
- добровільно
- Голосування
- we
- Web
- веб-сервіси
- вага
- ДОБРЕ
- добре визначений
- були
- коли
- який
- в той час як
- волі
- з
- в
- робочий
- працює
- запис
- зефірнет
- нуль
- зони