Вопрос или проблема
Общеизвестно, что высокая доступность (HA) подразумевает наличие резервных узлов, но для кворума требуется нечетное число узлов, чтобы иметь решающий голос в случае разделения кластера. Это означает, что кластер с кворумом должен иметь как минимум три голосующих узла.
Не все голосующие узлы должны быть способны выдерживать полную нагрузку: третий узел может присутствовать только для целей разрешения споров. Все основные технологии кластеризации серверов поддерживают такую конфигурацию, узел разрешения споров может называться свидетелем (Hyper-V, VMWare vSphere), qdevice (corosync), арбитром (в MariaDB Galera) и так далее. Это даже может быть общая хранилище, которая также действует как третий узел, имея некоторое состояние с использованием SCSI-3 постоянных резервирований. Это вполне допустимо, так как оно независимое.
Но «традиционные» системы хранения, сетевые устройства и так далее часто разворачиваются с только двумя “узлами”. Например, все SAN, которые я видел, имеют два контроллера (то есть HPE MSA, HP EVA, HP 3PAR, Dell Unity). Аналогично, сетевые устройства могут работать в «высоко доступном» режиме с только двумя “узлами”: рассмотрим две единицы Cisco Catalyst 3570-X в стопке, а Cisco Catalyst 6500 поддерживает двух супервизоров. Кластер VMWare vSphere (не vCenter) говорят, что может работать с двумя узлами без свидетеля. Последнее, но не менее важное, корпус HP C7000 имеет слоты для двух встроенных администраторов.
Почему мы можем считать все эти системы высокодоступными? Есть ли у них разные предположения? Не основанные на кворуме? Например, я подозреваю, что стековые коммутаторы будут работать независимо в случае разделения стека, что уже делает их не вполне высокодоступными, поскольку соединяемость узлов определенно пострадает. И все остальное имеет «шасси» с некоторыми активными компонентами, и может быть компонент, который предназначен для работы в качестве решающего голосования для «кластера». Или система, заключенная в шасси, потенциально может быть построена с предположением, что разделение физически невозможно, а потеря партнера рассматривается выжившим узлом как выход партнера из строя, перезагрузка, физическое удаление и так далее, так что это определенно не разделение.
Я прав в этом?
Ответ или решение
Вопрос высокодоступных кластеров с двумя узлами вызывает значительный интерес в области информационных технологий. Чтобы дать полное и детальное объяснение этой концепции, важно рассмотреть основные аспекты, связанные с кворумом, ролями узлов, а также различиями в реализациях высокой доступности.
Понимание концепции высокой доступности
High Availability (HA) означает наличие системы, способной оставаться доступной даже в случае сбоя одного из её компонентов. Чаще всего высокодоступные кластеры организуются с использованием трёх узлов, чтобы обеспечить правильный механизм голосования и исключить ситуации, приводящие к разделению (partition) кластера. Это важно, поскольку в случае недоступности одного узла возникает риск нахождения двух оставшихся узлов в конфликте, что может привести к потерям данных или доступности сервиса.
Кворум и его роль в кластере
Кворум — это минимальное количество голосов, необходимых для принятия решений в распределенной системе. В классических кластерах с кворумом необходимо три узла. Это позволяет избежать ситуации, когда два узла могут конфликтовать в принятии решений, поскольку третий узел служит «судьей» и позволяет обеспечить единогласность.
Двухузловые системы высокой доступности
Тем не менее, существует много решений, предлагающих высокий уровень доступности при использовании только двух узлов. Это касается, например, таких систем, как SAN (Storage Area Network), сетевые устройства и виртуализация.
-
Системы SAN с двумя контроллерами:
Многие производители, такие как HPE и Dell, предлагают решения с двумя контроллерами, которые могут обеспечивать высокую доступность. В таких системах предполагается, что в случае сбоя одного контроллера второй сможет взять на себя все функции, обеспечивая непрерывность сервиса. Это работает, поскольку система спроектирована так, что оба контроллера имеют доступ к общему хранилищу. -
Сетевые коммутаторы:
Например, в конфигурациях с коммутаторами Cisco, можно увидеть, что два устройства могут функционировать как единое целое с ручным переключением в случае сбоя. Однако при возникновении проблемы с соединением между ними система будет функционировать в уменьшенном объеме, что ставит под сомнение истинную высокую доступность в случае разделения. -
Виртуализация с minimal HA:
В случае VMware vSphere функциональность с двумя узлами возможна без добавления третьего узла, однако это обычно сопровождается ограничениями на доступность и восстановление после сбоя. Это часто означает, что коммутаторы и устройства имеют встроенные механизмы мониторинга и управления, позволяющие эффективно реагировать на сбои.
Различия в предположениях
Правильное понимание предположений, на которых строится архитектура высокодоступных систем, имеет ключевое значение. В случае двухузловых решений, таких как упомянутые выше, можно говорить о следующих предположениях:
- Отсутствие физического разделения: Предполагается, что два узла находятся в одной физической среде и что возникновение физического разделения на уровне сети невероятно.
- Независимость узлов: Например, в случае стековых коммутаторов узлы могут функционировать независимо, но потеря одного из них может отразиться на доступности сети.
Заключение
Итак, можно сделать вывод, что несмотря на то, что двухузловые системы могут обеспечивать высокий уровень доступности, их архитектура и предположения значительно отличаются от традиционных кворумных кластеров. Высокая доступность в этих случаях часто основана на других механизмах, таких как резервирование и устойчивость к сбоям, что важно учитывать при выборе решений для бизнес-критичных приложений.