Сердцебиение (вычисления)
В информатике сердцебиение генерируемый — это периодический сигнал, аппаратным или программным обеспечением для обозначения нормальной работы или синхронизации других частей компьютерной системы . [1] [2] Механизм Heartbeat — это один из распространенных методов в критически важных системах для обеспечения высокой доступности и отказоустойчивости сетевых служб путем обнаружения сбоев сети или систем узлов , или демонов принадлежащих сетевому кластеру , управляемому главным сервером , с целью автоматическая адаптация и ребалансировка системы за счет использования оставшихся резервных узлов кластера для принятия на себя нагрузки вышедших из строя узлов для предоставления постоянных услуг. [3] [1] Обычно импульсы передаются между машинами через регулярные промежутки времени порядка секунд; сообщение о сердцебиении . [4] Если конечная точка не получает контрольные сигналы в течение некоторого времени (обычно в течение нескольких интервалов), предполагается, что машина, которая должна была отправить контрольные сигналы, вышла из строя. [5] Сообщения Heartbeat обычно отправляются без остановок на периодической или повторяющейся основе с момента запуска отправителя до его завершения. Когда пункт назначения обнаруживает отсутствие периодических сообщений в течение ожидаемого периода прибытия, пункт назначения может определить, что отправитель вышел из строя, отключился или вообще больше недоступен.
Протокол сердцебиения
[ редактировать ]Протокол Heartbeat обычно используется для согласования и мониторинга доступности ресурса, такого как плавающий IP-адрес , и эта процедура включает отправку сетевых пакетов всем узлам кластера для проверки его доступности . [3] Обычно, когда на машине запускается контрольный сигнал, он выполняет процесс выбора с другими компьютерами в сети контрольного сигнала, чтобы определить, какой компьютер, если таковой имеется, владеет ресурсом. В тактовых сетях, состоящих из более чем двух компьютеров, важно учитывать разделение, при котором две половины сети могут функционировать, но не иметь возможности взаимодействовать друг с другом. В такой ситуации важно, чтобы ресурс принадлежал только одной машине, а не одной машине в каждом разделе.
Поскольку пульс предназначен для указания на работоспособность машины, важно, чтобы протокол пульса и транспорт, на котором он работает, были максимально надежными. Вызов аварийного переключения из-за ложной тревоги может, в зависимости от ресурса, быть крайне нежелательным. Также важно быстро реагировать на фактический сбой, что еще раз подтверждает надежность периодических сообщений. По этой причине часто желательно иметь контрольный сигнал, обрабатывающий более чем один транспорт; например, сегмент Ethernet , использующий UDP / IP , и последовательный канал.
«Членство узла в кластере» является свойством доступности сети : если мастер может взаимодействовать с узлом , он считается членом кластера и в противном случае «мертвым». [6] Программа Heartbeat в целом состоит из различных подсистем : [7]
- Подсистема Heartbeat (HS): Подсистема, которая отслеживает присутствие узла в кластере с помощью серии сообщений поддержки активности или «слушающих сообщений».
- Менеджер кластера (CM): подсистема внутри кластера (обычно главный сервер), которая отслеживает «члены кластера» и записывает, какие ресурсы на каких узлах находятся.
- Переход кластера (CT): когда узел присоединяется к кластеру или покидает его, эта подсистема отвечает за отслеживание таких событий с целью запуска событий для повторной балансировки и реконфигурации ведущего устройства для распределения нагрузки.
Сообщения Heartbeat отправляются периодически с помощью таких методов, как широковещательная или многоадресная рассылка в более крупных кластерах. [6] Поскольку CM выполняют транзакции по всему кластеру, наиболее распространенной схемой является отправка контрольных сообщений всем узлам и « ожидание » ответов неблокирующим способом. [8] Поскольку сообщения Heartbeat или Keepalive представляют собой подавляющее большинство сообщений управления кластером, не связанных с приложениями (которые также передаются всем членам кластера), основные критические системы также включают в себя не- IP -протоколы, такие как последовательные порты, для доставки сигналов Heartbeat. [9]
Проектирование и реализация
[ редактировать ]Каждый CM на главном сервере поддерживает конечный автомат с тремя состояниями для каждого узла, которым он управляет: Down, Init и Alive. [10] Всякий раз, когда присоединяется новый узел, CM меняет состояние узла с Down на Init и передает «сообщение о загрузке», которое узел получает и выполняет набор процедур запуска. Затем он отвечает подтверждающим сообщением, затем CM включает узел в качестве члена кластера и переводит состояние узла из Init в Alive. Каждый узел в состоянии «Активен» будет получать периодическое широковещательное сообщение «пульс» от подсистемы HS и ожидает обратного сообщения подтверждения в пределах диапазона таймаута . Если CM не получил ответного подтверждающего сообщения, узел считается недоступным , и для этого узла CM осуществляет переход состояния из «Активен» в «Неактивен». [11] Процедуры или сценарии, которые необходимо запустить, а также действия, которые необходимо предпринять между каждым переходом состояния, являются деталями реализации системы.
Сеть Heartbeat
[ редактировать ]Сеть Heartbeat — это частная сеть , которая используется только узлами кластера и недоступна извне кластера. Он используется узлами кластера для мониторинга состояния каждого узла и передачи друг другу сообщений, необходимых для поддержания работы кластера. Метод Heartbeat использует FIFO- характер сигналов, передаваемых по сети. Убедившись в том, что все сообщения получены, система обеспечивает правильное упорядочение событий. [12]
В этом протоколе связи каждый узел отправляет обратно сообщение в заданном интервале, скажем, delta , фактически подтверждая, что он активен и имеет пульс. Эти сообщения рассматриваются как контрольные сообщения, которые помогают определить, что в сети нет отложенных сообщений. Узел-получатель, называемый «синхронизацией», поддерживает упорядоченный список полученных сообщений. Как только от каждого узла получено сообщение с отметкой времени, более поздней, чем заданное отмеченное время, система определяет, что все сообщения были получены, поскольку свойство FIFO гарантирует, что сообщения упорядочены. [13]
В общем, сложно выбрать дельту, оптимальную для всех приложений. Если дельта слишком мала, это требует слишком больших накладных расходов, а если она велика, это приводит к снижению производительности, поскольку все ожидает следующего сигнала пульса. [14]
См. также
[ редактировать ]- Сторожевой таймер — электронный таймер, используемый для обнаружения и устранения неисправностей компьютера.
- сердечного кровотечения Уязвимость
Примечания
[ редактировать ]- ^ Перейти обратно: а б Хоу и Хуан 2003 , с. 1.
- ^ «Определение сердцебиения » . Энциклопедия pcmag.com . Проверено 7 октября 2020 г.
- ^ Перейти обратно: а б Робертсон 2000 , с. 1.
- ^ США 4710926 , Дональд В. Браун, Джеймс В. Лет, Джеймс Э. Вандендорп, «Восстановление неисправностей в распределенной системе обработки», опубликовано 1 декабря 1987 г.
- ^ Кавазо Агилера, Маркос; Чен, Вэй; Туег, Сэм (1997). «Heartbeat: детектор сбоев без тайм-аутов для стабильной надежной связи» (PDF) . Распределенные алгоритмы . Берлин, Гейдельберг: Springer Berlin Heidelberg. стр. 126–140. дои : 10.1007/bfb0030680 . hdl : 1813/7286 . ISBN 978-3-540-63575-8 . ISSN 0302-9743 .
- ^ Перейти обратно: а б Робертсон 2000 , с. 2.
- ^ Робертсон 2000 , с. 1-2.
- ^ Робертсон 2000 , с. 2-3.
- ^ Робертсон 2000 , с. 5.
- ^ Ли, Ю и Ву 2009 , стр. 2.
- ^ Ли, Ю и Ву 2009 , стр. 2-3.
- ^ Nikoletseas 2011 , с. 304.
- ^ Nikoletseas 2011 , с. 304-305.
- ^ Nikoletseas 2011 , с. 306.
Ссылки
[ редактировать ]- Николецеас, Сотирис; Ролим, Хосе Д.П., ред. (2011). «Теоретические аспекты распределенных вычислений в сенсорных сетях». Монографии по теоретической информатике. Серия EATCS . Берлин, Гейдельберг: Springer Berlin Heidelberg. Бибкод : 2011tadc.book.....N . дои : 10.1007/978-3-642-14849-1 . ISBN 978-3-642-14848-4 . ISSN 1431-2654 .
- Хоу, Цзунхао; Хуан, Юнсян (29 марта 2003 г.). Проектирование и реализация Heartbeat в среде с несколькими компьютерами . 17-я Международная конференция по передовым информационным сетям и приложениям, 2003 г. AINA 2003. Китай: IEEE Xplore . дои : 10.1109/AINA.2003.1192949 . ISBN 0-7695-1906-7 .
- Робертсон, Алан (2000). Проект системы Heartbeat Linux-HA (PDF) . Ежегодная техническая конференция USENIX . Лаборатории SUSE .
- Ли, Фей-Фей; Ю, Сян-Чжань; Ву, Банда (11 июля 2009 г.). Проектирование и реализация распределенной системы высокой доступности на основе многоуровневого протокола Heartbeat . 2009 г. Международная конференция IITA по управлению, автоматизации и системной инженерии (пример 2009 г.). Китай: IEEE . дои : 10.1109/CASE.2009.115 . ISBN 978-0-7695-3728-3 .