Катастрофостійка хмара: як це працює

Привіт, Хабре!

Після новорічних свят ми перезапустили катастрофічну хмару на базі двох майданчиків. Сьогодні розповімо, як це влаштовано, і покажемо, що відбувається з клієнтськими віртуальними машинами у разі відмови окремих елементів кластера та падіння цілого майданчика (спойлер – з ними все добре).

Катастрофостійка хмара: як це працює
СГД катастрофостійкої хмари на майданчику OST.

Що всередині

Під капотом у кластера сервери Cisco UCS з гіпервізором VMware ESXi, дві СХД INFINIDAT InfiniBox F2240, мережеве обладнання Cisco Nexus, а також SAN-світи Brocade. Кластер рознесений на два майданчики – OST та NORD, тобто у кожному дата-центрі ідентичний набір обладнання. Власне, це і робить його катастрофічним.

В рамках одного майданчика основні елементи також продубльовані (хости, SAN-світчі, сітківка).
Два майданчики з'єднані виділеними оптоволоконними трасами, які теж зарезервовані.

Кілька слів про СГД. Перший варіант катастрофостійкої хмари ми будували на NetApp. Тут вибрали INFINIDAT, і ось чому:

  • Опція Active-Active реплікації. Вона дозволяє віртуальній машині залишатися у працездатному стані навіть при повній відмові однієї із СГД. Про реплікацію розповім детальніше далі.
  • Три дискові контролери для підвищення відмовостійкості системи. Зазвичай їх два.
  • Готове рішення. До нас приїхала вже зібрана стійка, яку потрібно підключити до мережі і налаштувати.
  • Уважна техпідтримка. Інженери INFINIDAT постійно аналізують логи та події СГД, встановлюють нові версії у прошивці, допомагають із налаштуванням.

Ось трохи фоточок з unpacking'а:

Катастрофостійка хмара: як це працює

Катастрофостійка хмара: як це працює

Як працює

Хмара вже стійка до відмови всередині себе. Воно захищає клієнта від одиничних апаратних та програмних відмов. Катастрофостійке допоможе захиститися від масових збоїв в межах одного майданчика: наприклад, відмова СГД (або кластера SDS, що трапляється нерідко 🙂 ), масові помилки в мережі зберігання та інше. Ну і найголовніше: така хмара рятує, коли стає недоступним цілий майданчик через пожежу, блекаут, рейдерське захоплення, висадку інопланетян.

У всіх цих випадках клієнтські віртуальні машини продовжують працювати, і ось чому.

Схема кластера влаштована так, що будь-який ESXi-хост із клієнтськими віртуальними машинами може звертатися до будь-якої з двох СГД. Якщо СГД на майданчику OST вийде з ладу, віртуальні машини продовжать працювати: хости, на яких вони працюють, звертатимуться за даними до СГД на NORD.

Катастрофостійка хмара: як це працює
Ось так виглядає схема підключення у кластері.

Це можливо завдяки тому, що між SAN-фабриками двох майданчиків налаштований Inter-Switch Link: SAN-світч Fabric A OST з'єднаний з SAN-світлом Fabric A NORD, аналогічно і для SAN-світчої Fabric B.

Ну і щоб усі ці поєднання SAN-фабрик мали сенс, між двома СХД налаштована Active-Active реплікація: інформація практично одночасно записується на локальну і віддалену СХД, RPO=0. Виходить, що на одній СГД зберігається оригінал даних, на іншій – їхня репліка. Дані реплікуються лише на рівні томів СХД, а на них зберігаються дані ВМ (її диски, конфігураційний файл, swap-файл тощо.).

ESXi-хост бачить основний том та його репліку як один дисковий пристрій (Storage Device). Від ESXi-хоста до кожного дискового пристрою йдуть 24 шляхи:

12 шляхів пов'язують його з локальною СХД (оптимальні шляхи), інші 12 – з віддаленої (не оптимальні шляхи). У штатній ситуації ESXi звертається до даних на локальній СГД, використовуючи "оптимальні" шляхи. При виході з ладу цієї СГД ESXi втрачає оптимальні шляхи та перемикається на “неоптимальні”. Ось як це виглядає на схемі.

Катастрофостійка хмара: як це працює
Схема катастрофостійкого кластера.

Усі клієнтські мережі заведені на обидва майданчики через загальну мережеву фабрику. На кожному майданчику працює Provider Edge (PE), на якому термінуються мережі клієнта. PE об'єднані у загальний кластер. При відмові PE на одному майданчику весь трафік перенаправляється на другий майданчик. Завдяки цьому віртуальні машини з майданчика без PE, залишаються доступними по мережі для клієнта.

Давайте тепер подивимося, що відбуватиметься з віртуальними машинами клієнта за різних відмов. Почнемо з найлайтовіших варіантів і закінчимо найсерйознішим – відмовою всього майданчика. У прикладах основним майданчиком буде OST, а резервною з репліками даних – NORD.

Що відбувається з віртуальною машиною клієнта, якщо…

Відмовляє Replication Link. Реплікація між СГД двох майданчиків припиняється.
ESXi працюватимуть лише з локальними дисковими пристроями (оптимальними шляхами).
Віртуальні машини продовжують працювати.

Катастрофостійка хмара: як це працює

Відбувається розрив ISL (Inter-Switch Link). Випадок малоймовірний. Хіба що якийсь скажений екскаватор перекопає одразу кілька оптичних трас, які проходять незалежними маршрутами та заведені на майданчики через різні вводи. Але все таки. У цьому випадку ESXi-хости втрачають половину шляхів і можуть звертатися лише до своїх локальних СГД. Репліки збираються, але хости не зможуть до них звертатися.

Віртуальні машини працюють штатно.

Катастрофостійка хмара: як це працює

Відмовляє SAN-світч на одному з майданчиків. ESXi-хости втрачають частину шляхів до СГД. У цьому випадку хости на майданчику, де відмовив свитч, працюватимуть лише через один свій HBA.

Віртуальні машини у своїй продовжують працювати штатно.

Катастрофостійка хмара: як це працює

Відмовляють усі SAN-світи на одному з майданчиків. Припустимо, така біда сталася на майданчику OST. В цьому випадку ESXi-хости на цьому майданчику втратять усі шляхи до своїх дискових пристроїв. У справу вступає стандартний механізм VMware vSphere HA: він перезапустить усі віртуальні машини майданчика OST у NORD`і максимум через 140 секунд.

Віртуальні машини, які працюють на хостах майданчика NORD, працюють штатно.

Катастрофостійка хмара: як це працює

Відмовляє ESXi-хост на одному майданчику. Тут знову відпрацьовує механізм vSphere HA: віртуальні машини зі збійного хоста перезапускаються на інших хостах - на тому ж або віддаленому майданчику. Час перезапуску віртуальної машини – до 1 хвилини.

Якщо відмовляють всі ESXi-хости майданчики OST, тут вже без варіантів: ВМ перезапускаються на інший. Час перезапуску той самий.

Катастрофостійка хмара: як це працює

Відмовляє СГД на одному майданчику. Припустимо, відмовила СГД на майданчику OST. Тоді ESXi-хости майданчики OST перемикаються на роботу з репліками СГД у NORD'e. Після повернення збійної СГД до ладу відбудеться примусова реплікація, ESXi-хости OST знову почнуть звертатися до локальної СГД.

Віртуальні машини весь цей час працюють штатно.

Катастрофостійка хмара: як це працює

Відмовляє один із майданчиків. У цьому випадку всі віртуальні машини перезапускатимуться на резервному майданчику через механізм vSphere HA. Час перезапуску ВМ – 140 секунд. При цьому всі мережеві налаштування віртуальної машини збережуться, і вона залишається доступною для клієнта через мережу.

Щоб перезапуск машин на резервному майданчику пройшов без проблем, кожен майданчик заповнений лише наполовину. Друга половина – резерв на випадок переїзду всіх віртуальних машин із другого, потерпілого майданчика.

Катастрофостійка хмара: як це працює

Ось від таких відмов захищає катастрофічну хмару на базі двох дата-центрів.

Задоволення це недешеве, тому що, на додачу до основних ресурсів, потрібний резерв на другому майданчику. Тому розміщують у такій хмарі бізнес-критичні сервіси, тривалий простий яких зазнає великих фінансових та репутаційних збитків, або якщо до інформаційної системи пред'являються вимоги щодо катастрофостійкості від регуляторів або внутрішніх регламентів компанії.

Джерела:

  1. www.infinidat.com/sites/default/files/resource-pdfs/DS-INFBOX-190331-US_0.pdf
  2. support.infinidat.com/hc/en-us/articles/207057109-InfiniBox-best-practices-guides

Джерело: habr.com

Додати коментар або відгук