Высокая доступность, она же High Availability или HA. Это система или компонент, который непрерывно работоспособен достаточно длительный промежуток времени.
Основные принципы HA - устранение единой точки отказа и обнаружение сбоев когда они случаются.
Для начала необходимо рассмотреть некоторую терминологию, а потом переходить к практике.
Как обычно достигается HA? - Применяя кластеризацию.
Кластеризация - это объединение множества хостов для совместной работы над одной задачей.
Кластеров существует несколько видов:
- высоко доступные кластеры - выполняют задачу по обеспечению работы сервисов насколько это возможно
- кластеры балансировки нагрузки - все узлы содержат одинаковое ПО и выполняют одну задачу в одно время и запросы от клиентов просто распределяются между всеми узлами кластера
- вычислительные кластеры - в таких кластерах задачи разбиваются на мелкие части, которые в свою очередь вычисляются на различных узлах кластера
- кластерное хранилище - все узлы предоставляют единую распределенную файловую систему, которая будет использоваться клиентами для чтения и записи данных одновременно
HA кластер можно представить в виде нескольких слоев/уровней.
На нижнем уровне обеспечивается членство в кластере (membership layer). На этом уровне происходит работа по отслеживанию доступности узлов кластера.
Так же можно выделить отдельный уровень управления ресурсами кластера (resource management layer). Здесь происходит обеспечение доступности ресурсов.
- накатывание патчей
- планируемые выключения
- непланируемые выключения во время сбоев (сервера, ПО, сети, хранилища)
Кворум же работает по принципу голосов, каждый сервер в кластере имеет один голос.
Поэтому большинство узлов в кластере по-прежнему будет иметь доступ к ресурсам (на запись), таким как распределенное хранилище (и продолжать предоставлять сервис пользователям).
Fencing - окончательно решает проблему split-brain.
Для этого используется так называемый STONITH (Shoot The Other Node In The Head) для ликвидации изолированных нод в кластере.
Например, можно интегрировать ИБП (например APC) в кластер и отправлять команды APC отключать питание на сервере который выпал из кластера.
Виды fencing включают в себя disk based (заблокировать или покрашить диск на сервере) или virt based - сообщить гипервизору что хост должен быть включен и IPMI, и другие.
Завершив с рассмотрением базовой теории и общих концепций можно переходить к конкретным программным решениям.
Комментариев нет:
Отправить комментарий