Heartbeat linux что это

Обновлено: 06.07.2024

При создании кластера для обработки звонков на базе CGP возникла необходимость настройки бесперебойного хранилища, монтируемого с нескольких сервров.

В качестве дистрибутиа для серверов был взят Ubuntu Server 10.10. Дисковое пространство было разбито на два логических диска (sda1 для установки системы, и sda2 собственно для разделяемого диска).

Heartbeat и pacemaker нужны для кластеризации серверов. Хранилище сделано на основе drbd, в качестве файловой системы использовалась xfs. Раздача файловой системы серверам сделана по nfs.

1. Настройка системы

Для нод были выбраны имена u1 и u2. Для удобста эти имена сразу были прописаны в /etc/hosts:

u0 — это адрес по которому хранилище доступно для монтирования файловой системы с остальных серверов.

2. Настройка drbd

Файл с конфигурацией хранилища распологается в /etc/drbd.d/r0.res:

На обоих нодах файл одинаковый, так что можно создать на одной, а затем скопировать на вторую.

Такая жестокоя настройка для лечения split brain была выбрана, так как хранилище используется в основном для хранения конфигурации системы. То есть потеря последних изменения не так критична, как потеря звонков во время простоя по причине slit blain.

После создания файла конфигурации надо создать сами диски на обоих серверах кластера:

После этого можно стартовать drbd. Важно запустить drbd демон на обоих серверах с разницой меньше минуты (таймаут для связи с другими членами кластера):

После этго в /proc/drbd будет состояние хранилища, в примерно таком виде:

То есть две ноды в режиме secondary, при этом диск неконсистетный. Чтобы выйти из этого положения надо насильно объявить одну из нод кластера главной, чтобы это сделать надо выполнить команду:

После этого drbd начнёт обновлять состояние secondary диска:

После того, как синхронизация закончится можно создавать файловую систему, на сервере, где drbd в состоянии primary:

Для следующих шагов нам будет мешать стандартный механизм запуска демонов. Поэтому надо выполнить на обоих серверах команду:

3. Настройка heartbeat

Конфигурация создаётся в файле /etc/heartbeat/ha.cf. На обоих нодах он одинаковый, так что можно создать на одной, а затем скопировать на вторую.

Второй файл служит для аутентификации /etc/heartbeat/authkeys:

Лучше не дожидаться предупреждения от heartbeat на неправильные атрибуты файла и поменять их заранее:

После этого можно стартовать heartbeat:

Через некоторое время команда crm_mod должно показать, что две ноды подключились к друг-другу:

Далее надо выполнить команду crm configure edit и ввести настройку для кластера:

Настройки exportfs говорят о том, что директория, где будет смонтирована общая файловая система /shared, монтировать этот ресурс по nfs можно будет всем серверам из сети 10.0.0.0.

Через некоторое время монитор кластера должен показать состояние ресурсов:

Высокодоступное промежуточное ПО для Linux: Часть 1. Heartbeat и веб-сервер Apache.

Поддержание максимальной продолжительности работы системы все более важно для успеха вычислений по требованию. К сожалению, многие готовые решения высокой доступности (HA) дороги и требуют опыта. Пять статей в этой серии предоставят дешевую альтернативу использованию общедоступного программного обеспечения для получения услуг высокой доступности.

Подробные шаги в этой серии покажут, как построить высокодоступный веб-сервер Apache, администратор очередей WebSphere MQ, кластер LoadLeveler, кластер WebSphere Application Server и DB2® Universal Database на Linux ™. Системные администраторы могут потратить наименьшее количество времени на изучение того, как использовать и поддерживать эту систему. Методы, описанные в этой серии, также применимы ко многим сервисам в Linux.

Чтобы наиболее эффективно использовать эту серию, вы должны иметь базовые знания о WebSphere MQ, WebSphere Application Server, IBM LoadLeveler, DB2 Universal Database и кластерах высокой доступности.

Краткое введение

Использование любого программного продукта в критически важной для бизнеса или критически важной среде требует рассмотрения.доступностьЭто мера способности системы выполнять задачи, которые она должна выполнить (даже в случае аварии, сбоя оборудования и экологической аварии). По мере того, как все больше критически важных бизнес-приложений перемещаются в Интернет, предоставление услуг высокой доступности становится все более важным.

В этой статье рассматриваются некоторые проблемы реализации, с которыми вы можете столкнуться при реализации решения HA. Мы рассмотрим концепцию HA, доступное программное обеспечение HA, используемое аппаратное обеспечение, а также сведения об установке и настройке heartbeat (программное обеспечение HA с открытым исходным кодом для Linux) и рассмотрим, как сделать веб-сервер высокодоступным с помощью heartbeat.

Требования к оборудованию

Сценарии тестирования, описанные в этой серии, требуют следующего оборудования:

  • 4 Linux-системы с сетевыми адаптерами Ethernet.
  • Общий внешний диск SCSI (двойной жесткий диск).
  • Кабель последовательного прямого модема IBM (последовательный нуль-модемный кабель).

В моей установке я использовал машину IBM eServer ™ xSeries® 335 с 1 ГБ памяти. Что касается общих дисков, я использую одну из этих машин в качестве сервера NFS. Программное обеспечение, необходимое для завершения установки, показано ниже, хотя для этой статьи вам нужно только установить Red Hat Enterprise Linux и heartbeat:

  • Red Hat Enterprise Linux 3.0(2.4.21-15.EL)
  • heartbeat 1.2.2
  • IBM Java 2 SDK 1.4.2
  • WebSphere MQ для Linux 5.3.0.2 с установленным Fix Pack 7
  • LoadLeveler for Linux 3.2
  • WebSphere Base Edition 5.1.1 для Linux с установленным Cumulative Fix 1
  • WebSphere ND 5.1 для Linux с установленным Fixpack 1
  • DB2 Universal Database Enterprise Server Edition 8.1 Linux

Таблица 1. Что находится в примере пакета кода

  • mqseries: скрипт для запуска и остановки администратора очередей WebSphere MQ и других процессов в качестве службы Linux
  • hascript: скрипт для создания администратора очередей HA
  • send (sh / bat): скрипт для добавления данных в очередь
  • receive (sh / bat): скрипт для просмотра / получения данных из очереди
  • wasdmgr: скрипт для запуска и остановки WebSphere ND Deployment Manager как службы Linux
  • wasnode: скрипт для запуска и остановки WebSphere Node Agent как службы Linux
  • wasserver: скрипт для запуска и остановки WebSphere Application Server как службы Linux
  • sample_ver_ (1/2/3): содержит примеры корпоративных приложений для тестирования различных версий WebSphere HA

Концепция высокой доступности

Высокая доступностьЭто стратегия управления системой, позволяющая быстро восстанавливать основные службы в случае сбоя системы, компонента или приложения. Цель состоит в том, чтобы минимизировать прерывание обслуживания, а не отказоустойчивость. Наиболее распространенным решением сбоев при выполнении системы, используемым для разрешения критических бизнес-операций, является использование другой системы для ожидания и принятия на себя нагрузки отказавшей системы, что позволяет продолжить бизнес-операции.

Термин «кластер» имеет разные значения в разных вычислительных областях. Если не указано иное,кластер Все относятся ксердцебиение, Это совокупность узлов и ресурсов (таких как диски и сети), которые сотрудничают для обеспечения служб высокой доступности, работающих в кластере. В случае сбоя одного из этих компьютеров ресурсы, необходимые для поддержки бизнес-операций, переносятся на другой доступный компьютер в кластере.

Две основные конфигурации кластера:

  • Резервная (резервная) конфигурация:Самая базовая конфигурация кластера, в этой конфигурации один узел выполняет задачу, а другой узел используется только в качестве резервной копии. Резервный узел не выполняет задачу и считаетсяБесплатно (в режиме ожидания)Эта конфигурация иногда называетсяХолодный режим ожидания, Такая конфигурация требует высокой степени аппаратного резервирования.Эта серия статей посвящена конфигурации холодного резервного копирования.
  • Конфигурация захвата:Более продвинутая конфигурация. В этой конфигурации все узлы выполняют одни и те же задачи. При сбое определенного узла ключевые задачи могут быть приняты. вОдностороннее поглощение В конфигурации резервный узел выполняет некоторые дополнительные, некритические и неподвижные задачи. вВзаимное поглощение В конфигурации все узлы выполняют задачи высокой доступности (сменные). Эта серия статей не представляет конфигурацию поглощения.

При настройке кластера высокой доступности вы должны запланировать некоторые ключевые элементы:

  • Жесткие диски, используемые для хранения данных, должны быть подключены к серверам, образующим кластер, через частную структуру межсоединений (последовательный кабель) или локальную сеть.
  • Должен быть способ автоматического обнаружения неисправных ресурсов. Эта задача называетсяМонитор сердцебиения Программные компоненты.
  • В случае сбоя владелец ресурса должен иметь возможность автоматического преобразования в одного или нескольких рабочих элементов кластера.

Доступное программное обеспечение HA

Многие доступные в настоящее время программы имеют функции контроля сердцебиения и захвата ресурсов. Вот список программного обеспечения, которое можно использовать для создания кластеров высокой доступности для различных операционных систем (см.справочный материалСсылка):

  • heartbeat(Linux)
  • High Availability Cluster Multiprocessing - HACMP(AIX)
  • IBM Tivoli System Automation for Multiplatforms(AIX、Linux)
  • Legato AAM 5.1 (AIX, HP-UX, Solaris, Linux и Windows)
  • SteelEye LifeKeeper(Linux、Windows)
  • Кластерный сервер Veritas (AIX, HP-UX, Solaris, Linux и Windows)

В этой серии рассказывается о программном обеспечении HA с открытым исходным кодом. Тем не менее, вы можете применить концепции, изученные здесь, к любой из вышеуказанных программных систем.

Проект Linux с высокой доступностью и пульс

Цель проекта с открытым исходным кодом под названием High-Availability Linux - предоставить кластерное решение, которое повышает надежность, доступность и удобство обслуживания Linux (RAS) благодаря усилиям сообщества по разработке. Проект Linux-HA широко используется и является важной частью многих интересных решений высокой доступности.

heartbeat - это один из пакетов программного обеспечения, общедоступных на веб-сайте проекта Linux-HA. Он обеспечивает все основные функции, необходимые для системы высокой доступности, такие как запуск и остановка ресурсов, мониторинг доступности системы в кластере и передача владельца общего IP-адреса между узлами в кластере. Он контролирует работоспособность конкретной службы (или нескольких служб) через последовательную линию, интерфейс Ethernet или оба. Текущая версия поддерживает двухузловую конфигурацию, используя специальные «контрольные сигналы» для проверки статуса и доступности службы. Heartbeat обеспечивает основу для более сложных ситуаций, чем те, которые описаны в этой статье, таких как активная / активная конфигурация, где два узла работают параллельно и отвечают за распределение нагрузки.

Для получения дополнительной информации о том, где применять heartbeat и проект, посетите веб-сайт проекта Linux-HA (см.справочный материалСсылки).

Конфигурация кластера

Конфигурация кластера, использованная в тестах в этих статьях, показана на рисунке 1. Эта настройка включает в себя пару кластерных серверов (ha1 и ha2), оба из которых могут обращаться к дисковому корпусу, содержащему несколько физических дисков, сервер находится в режиме холодного резервного копирования. Данные приложения должны находиться на общем устройстве, к которому могут обращаться оба узла. Устройство может быть общим диском или сетевой файловой системой. Чтобы предотвратить уничтожение данных, само устройство должно быть зеркальным или иметь защиту данных. Эта конфигурация часто называетсяОбщий дисковый кластерОднако в действительности это архитектура, которая ничего не разделяет, потому что любой диск может быть доступен только одному узлу за раз.

Рисунок 1. Конфигурация Heartbeat кластера в производственной среде

В тестовой настройке механизм общего диска, который я использовал, был NFS, как показано на рисунке 2, однако я рекомендую использовать параметры, показанные на рисунке 1, особенно в производственной среде. Кабель прямого соединения между последовательными портами двух систем используется для передачи пульса между двумя узлами.

Рисунок 2. Конфигурация Heartbeat-кластера с использованием NFS в качестве общей файловой системы

Таблица 2 показывает конфигурацию двух узлов, которые я использовал. В этом примере имя хоста и IP-адрес можно получить через DNS или файл / etc / hosts на обоих узлах.

Таблица 2. Конфигурация тестового кластера

Установите последовательное соединение

Через последовательные порты двух узлов используйте кабель прямого подключения для их подключения. Теперь проверьте последовательное соединение следующим образом:

Введите следующее на ha1 (получатель):

Введите следующее на ha2 (отправитель):

Вы должны увидеть эти тексты на приемном узле (ha1). Если это удастся, поменяйте их местами и попробуйте снова.

Установить NFS как общую файловую систему

Как упоминалось ранее, в настройках теста я использовал NFS для обмена данными между узлами.

Чтобы настроить и запустить NFS, вам нужно сделать следующее:

  1. Создайте каталог / ha на узле nfsha.
  2. Отредактируйте файл / etc / exports. Файл содержит список записей, каждая запись указывает, является ли том общим и каким он является общим. В листинге 1 показана соответствующая часть файла экспорта в моей настройке.

Листинг 1. Экспорт файла
Листинг 2. Файл fstab

Позже мы настроим heartbeat для монтирования файловой системы.

Листинг 3. Развертывание примера кода

Загрузите и установите heartbeat

посправочный материалЗагрузите сердцебиение по ссылке, а затем введите команду в листинге 4, чтобы установить его на две машины ha1 и ha2 (в указанном порядке).

Листинг 4. Команда для установки heartbeat

Настроить сердцебиение

Чтобы использовать heartbeat, необходимо настроить три файла: authkeys, ha.cf и haresources. Я приведу конкретную конфигурацию, которую я использовал в реализации: если вам нужна дополнительная информация, обратитесь к веб-сайту heartbeat и прочитайте их документацию (см.справочный материал)。

1. Настройте /etc/ha.d/authkeys

Этот файл определяет ключ аутентификации, используемый для кластера, ключ на обоих узлах должен быть одинаковым. На выбор предлагается три режима аутентификации: crc, md5 или sha1. Если ваше сердцебиение работает в защищенной сети, такой как перекрестный кабель в примере, вы должны использовать crc. С точки зрения ресурсов этот метод является наименее дорогим. Если ваша сеть небезопасна, но вы не особенно подозрительны, или вас не беспокоит минимизация использования ресурсов ЦП, вам следует использовать md5. Наконец, если вы хотите получить лучшую сертификацию независимо от использования ресурсов процессора, используйте sha1, потому что его наиболее трудно взломать.

Формат файла следующий:

В тестовой настройке я выбрал режим crc. В листинге 5 показан файл /etc/ha.d/authkeys. Убедитесь, что лицензия безопасна, например, 600.

Листинг 5. Файл authkeys

2. Настройте /etc/ha.d/ha.cf

Этот файл будет находиться в каталоге /etc/ha.d, созданном после установки. Он сообщает сердцебиение, какие медиа-пути использовать и как их настроить. Файл также определяет узлы в кластере и интерфейс, который используется heartbeat для подтверждения того, что система работает. В листинге 6 показана соответствующая часть файла /etc/ha.d/ha.cf в моей настройке.

Листинг 6. Файл ha.cf

3. Настройте /etc/ha.d/haresources

Листинг 7. Файл haresources

Файл должен быть одинаковым на обоих узлах.

Эта строка указывает, что при запуске должны быть выполнены следующие операции:

  • Пусть ha1 обслуживает IP 9.22.7.46.
  • Смонтируйте общую файловую систему NFS / га.
  • Запустите веб-сервер Apache.

В следующей статье я добавлю больше ресурсов в этот файл. При выключении сердцебиение сделает следующее:

  • Остановите сервер Apache.
  • Размонтируйте общую файловую систему.
  • Отпустите IP.

На этом шаге я внесу некоторые изменения в настройки веб-сервера Apache, чтобы он мог обслуживать файлы в общей системе и файлы в локальной файловой системе машин ha1 и ha2. Файл index.html (включенный в пример кода) получит сервис с общего диска, а файл hostname.html получит сервис из локальной файловой системы на машинах ha1 и ha2. Чтобы реализовать HA для веб-сервера Apache, выполните следующие действия:

  1. Войдите в систему как root.
  2. Создайте следующий каталог на общем диске (/ ha):

chmod 775 /ha/www

chmod 775 /ha/www/html

cp /ha/hahbcode/www/index.html /var/www/html

Имя кластера в файле должно быть изменено.

cp /ha/hahbcode/www/hostname.html /var/www/html

Измените имя кластера и имя узла в этом файле.

Теперь вы готовы протестировать реализацию HA.

Чтобы проверить высокую доступность веб-сервера:

    Используйте следующую команду, чтобы запустить службу пульса на главном узле, а затем запустить службу на резервном узле:

Если команда не выполнена, перейдите в / var / log / messages, чтобы определить причину и устранить ее. После успешного запуска heartbeat вы должны увидеть новый сетевой интерфейс, IP-адрес которого вы настроили в файле ha.cf. После запуска heartbeat проверьте файл журнала на главном узле (по умолчанию / var / log / ha-log), чтобы убедиться, что он находится в процессе захвата IP-адреса, и запустите веб-сервер Apache. Использовать ps Команда, чтобы убедиться, что фоновый процесс веб-сервера выполняется на главном узле. Heartbeat не запустит процесс веб-службы на резервном узле. Процесс веб-службы запускается на резервном узле только в случае сбоя основного узла.

Обратите внимание, что выше я использовал адрес кластера, а не адрес главного узла.

Для первого URL браузер отобразит следующий текст:

Для второго URL браузер отобразит следующий текст:

Вы должны увидеть, что через минуту все процессы веб-сервера на втором узле будут запущены. Если это не так, перейдите в / var / log / messages, чтобы определить проблему и устранить ее.

Для первого URL браузер отобразит следующий текст:

Для второго URL браузер отобразит следующий текст:

Обратите внимание, что узлом, который в данный момент обслуживает страницу, является ha2.

Таким образом, размещая веб-страницу на общем диске, когда отказывает машина основного узла, машина второго узла может предоставлять свои услуги клиенту. Отказоустойчивость прозрачна для клиентов, обращающихся к веб-страницам. Этот метод также подходит для предоставления сценариев CGI.

вывод

Поддержка максимального времени безотказной работы системы становится все более важной для успеха вычислений по требованию (on demand computing). К сожалению, много готовых решений для повышенной готовности (HA) являются дорогостоящими и требуют хорошей квалификации. Эта серия из пяти статей предлагает недорогую альтернативу организации HA-служб с использованием доступного программного обеспечения.

Пошаговые инструкции в этой серии показывают, как создать в Linux™ поддерживающие повышенную готовность Web-сервер Apache, менеджер очереди WebSphere® MQ, кластер LoadLeveler, кластер WebSphere Application Server и DB2® Universal Database. Системный администратор может научиться использовать и поддерживать эту систему за минимальное время. Описанные в данной серии приемы применимы также к любому количеству служб в Linux.

Для наилучшего усвоения материала вы должны иметь базовые знания WebSphere MQ, WebSphere Application Server, IBM LoadLeveler, DB2 Universal Database и кластеров повышенной готовности.

Использование любого программного продукта в среде, предназначенной для решения ответственных задач, требует учета готовности , меры способности системы выполнять свое предназначение даже при авариях, поломках оборудования и других происшествиях. Поскольку все больше и больше коммерческих приложений начинают эксплуатироваться в интернете, обеспечение повышенной готовности служб становится очень важным.

Эта статья концентрируется на проблемах, с которыми вы можете столкнуться при реализации HA-решений. Мы рассмотрим концепции HA, доступное программное обеспечение, аппаратное обеспечение для использования и детали установки и настройки heartbeat (программного обеспечения HA с открытым исходным кодом для Linux), а также увидим, как обеспечить повышенную готовность Web-сервера при помощи heartbeat.

Описанные в данной серии тестовые сценарии требуют следующего аппаратного обеспечения:

  • Четырех систем, поддерживающих Linux, с сетевыми адаптерами Ethernet
  • Один общий внешний жесткий диск SCSI (twin tail disk - сдвоенный диск)
  • Один нуль-модемный последовательный кабель IBM

В моей конфигурации я использовал машины IBM eServer™ xSeries™ 335 с 1 GB RAM. Для общего диска я использовал одну из этих машин как NFS-сервер. Требования к программному обеспечению для полной установки следующие (хотя для этой статьи вам нужен только Red Hat Enterprise Linux и heartbeat):

  • Red Hat Enterprise Linux 3.0 (2.4.21-15.EL)
  • heartbeat 1.2.2
  • IBM Java 2 SDK 1.4.2
  • WebSphere MQ for Linux 5.3.0.2 with Fix Pack 7
  • LoadLeveler for Linux 3.2
  • WebSphere Base Edition 5.1.1 for Linux with Cumulative Fix 1
  • WebSphere ND 5.1 for Linux with Fixpack 1
  • DB2 Universal Database Enterprise Server Edition 8.1 Linux

Вы можете выполнить тестовые сценарии путем загрузки пакетов, перечисленных ниже в разделе "Загрузка". В таблице 1 описаны каталоги в hahbcode.tar.gz.

  • mqseries: Сценарий для запуска и останова менеджера очереди WebSphere MQ и других процессов в качестве служб Linux
  • hascript: Сценарии для создания менеджера HA-очереди
  • send (sh/bat): Сценарий для помещения данных в очередь
  • receive (sh/bat): Сценарий для просмотра/получения данных из очереди
  • wasdmgr: Сценарий для запуска и останова WebSphere ND Deployment Manager в качестве службы Linux
  • wasnode: Сценарий для запуска и останова WebSphere Node Agent в качестве службы Linux
  • wasserver: Сценарий для запуска и останова WebSphere Application Server в качестве службы Linux
  • sample_ver_(1/2/3): Каталоги, содержащие различные версии примера корпоративного приложения для тестирования WebSphere HA

Повышенная готовность является стратегией управления системой, при которой осуществляется быстрое восстановление основных служб в случае аварий системы, компонента или приложения. Целью является минимальное время прерывания службы, т.е. сохранение работоспособности при отказе. Наиболее общим решением при аварии системы, выполняющей критически важные задачи, является наличие еще одной системы, ожидающей принятия на себя рабочей нагрузки и продолжения выполнения этих задач.

Понятие "кластер" имеет несколько значений в компьютерной индустрии. В этой статье, если не указано другое, кластер описывает heartbeat-кластер , представляющий собой набор узлов и ресурсов (например дисков и сетей), которые взаимодействуют между собой ради обеспечения поддержки переноса бизнес-операций на другую доступную в кластере машину.

Двумя основными конфигурациями кластера являются:

  • Резервная (standby) конфигурация : Самая стандартная конфигурация кластера, при которой один узел работает одновременно с другим узлом в качестве резервного. Резервный узел не выполняет работу и называется простаивающим ; такая конфигурация иногда называется холодным резервом (cold standby) . Она требует высокой степени аппаратной избыточности. В этой серии статей внимание уделяется конфигурации "холодный резерв" .
  • Поглощающая (takeover) конфигурация : Более передовая конфигурация, в которой все узлы выполняют работу определенного вида, а критически важная работа может быть передана в случае аварии узла. В односторонней поглощающей конфигурации резервный узел выполняет некоторую дополнительную, некритичную, неперемещаемую работу. В обоюдной поглощающей конфигурации все узлы выполняют (перемещаемую) работу повышенной готовности. В этой серии статей такая конфигурация не рассматривается.

Вы должны запланировать несколько ключевых моментов при установке HA-кластера:

  • Используемые для хранения данных диски должны быть связаны индивидуальным соединением (последовательный кабель) или подсоединены к сети (LAN) серверов, образующих кластер.
  • Должен существовать метод для автоматического обнаружения аварийного ресурса. Это делается при помощи программного компонента, называемого квитирующим монитором (heartbeat monitor) .
  • Должна существовать автоматическая передача прав владения ресурсом одному или нескольким членам кластера, сохранившим работоспособность во время аварии.

В настоящее время существует много доступного программного обеспечения, выполняющего функции квитирующего мониторинга и передачи ресурсов. Вот список доступных программ для построения кластеров повышенной готовности на различных операционных системах:

  • heartbeat (Linux)
  • High Availability Cluster Multiprocessing - HACMP (AIX)
  • IBM Tivoli System Automation for Multiplatforms (AIX, Linux)
  • Legato AAM 5.1 (AIX, HP-UX, Solaris, Linux, Windows)
  • SteelEye LifeKeeper (Linux, Windows)
  • Veritas Cluster Server (AIX, HP-UX, Solaris, Linux, Windows)

В этой серии статей описывается программа heartbeat с открытыми исходными кодами. Однако изученные здесь концепции вы можете применить к любой упомянутой программной системе.

Целью проекта с открытыми исходными кодами под названием High-Availability Linux является обеспечение продвигаемого совместными усилиями сообщества разработчиков кластерного решения для Linux, способствующего надежности, доступности и обслуживаемости (RAS). Проект Linux-HA широко используется и является важным компонентом многих интересных решений повышенной готовности.

Heartbeat - это один из общедоступных пакетов на Web-сайте проекта Linux-HA. Он обеспечивает основные функции, требующиеся для любой HA-системы, например, запуск и останов ресурсов, мониторинг доступности системы в кластере и передача прав владения общим IP-адресом между узлами кластера. Он следит за состоянием конкретной службы (или служб) по последовательному кабелю, интерфейсу Ethernet, либо по обоим. Текущая версия поддерживает двухузловую конфигурацию, в которой для проверки состояния и доступности службы используется специальный квитирующий монитор heartbeat. Heartbeat предоставляет фундамент для более сложных сценариев, нежели описанные в данной серии статей, например конфигурации активный/активный, в которой оба узла работают параллельно и распределяют нагрузку.

Для получения дополнительной информации по heartbeat и проектах, в которых он используется, посетите Web-сайт проекта Linux-HA.

Тестовая конфигурация кластера для этих статей показана на рисунке 1. Система состоит из двух объединенных в кластер серверов (ha1 и ha2), оба из которых имеют доступ к дисковой системе, содержащей несколько физических дисков; серверы работают в режиме холодного резерва. Данные приложения должны размещаться на общем устройстве, к которому могут получить доступ оба узла. Это может быть общий диск или сетевая файловая система. Устройство само должно быть продублировано или иметь механизмы защиты данных для предотвращения их повреждения. Такая конфигурация часто называется кластером с общим диском , хотя на самом деле имеет архитектуру с отсутствием общих ресурсов, поскольку в ней нет дисков, к которым обращается более одного узла одновременно.

Для тестовой системы я использовал NFS в качестве механизма общего диска, как показано на рисунке 2, хотя я рекомендую применять вариант, изображенный на рисунке 1, особенно в производственной среде. Для передачи сигналов квитирования между двумя узлами используется "нуль-модемный" кабель, подсоединенный к последовательным портам двух систем.

В таблице 2 приведена конфигурация используемая мной для обоих узлов. В вашем случае имена хостов и IP-адреса должны быть получены либо из DNS, либо из файлов /etc/hosts для обоих узлов.

Для соединения двух узлов через последовательные порты используйте "нуль-модемный" кабель. Теперь проверьте соединение следующим образом:

На ha1 (приемник) введите:

На ha2 (передатчик) введите:

Вы должны увидеть текст на узле-приемнике (ha1). Если все работает правильно - поменяйте роли узлов и повторите тест.

Для разделения данных между узлами в тестовой конфигурации я использовал NFS.

Для установки и запуска NFS:

  1. Создайте каталог /ha на узле nfsha.
  2. Отредактируйте файл /etc/exports. Этот файл содержит набор строк; каждая строка указывает разделяемый том и метод его разделения. В листинге 1 показана соответствующий фрагмент файла exports моей системы.

Листинг 2. Файл fstab

Далее мы сконфигурируем heartbeat для монтирования этой файловой системы.

Загрузите heartbeat, используя ссылку, приведенную в разделе "Ресурсы", затем установите его на обоих машинах ha1 и ha2, вводя команды, приведенные в листинге 4 (в указанном порядке).

Для работы heartbeat вы должны настроить три файла: authkeys, ha.cf и haresources. Я покажу вам конкретную конфигурацию, которую использовал для этой реализации; если вам нужна дополнительная информация, обратитесь, пожалуйста, на Web-сайт heartbeat и прочитайте документацию.

В этом файле определяются ваши аутентификационные ключи для кластера; ключи должны быть одинаковыми для обоих узлов. Вы можете выбрать одну из трех схем аутентификации: crc, md5 или sha1. Если ваш heartbeat выполняется в защищенной сети, такой как в нашем примере, вы, вероятно, захотите применить crc. Это самый дешевый метод с точки зрения потребления ресурсов. Если сеть незащищенная, а вы не параноик и беспокоитесь о минимизации ресурсов процессора, - используйте md5. Наконец, если вы желаете иметь наилучшую аутентификацию независимо от ресурсов процессора, используйте sha1, поскольку его взломать наиболее трудно.

Формат файла следующий:

Для тестового примера я выбрал схему crc. Листинг 5 показывает файл /etc/ha.d/authkeys. Убедитесь, что права доступа к этому файлу являются безопасными, например 600.

Этот файл будет размещен в каталоге /etc/ha.d, созданном после установки. Он указывает для heartbeat, какие пути (path) использовать и как их сконфигурировать. В этом файле определяются также узлы в кластере и интерфейсы, используемые для проверки состояния системы. В листинге 6 приведена соответствующая часть моего файла /etc/ha.d/ha.cf.

Этот файл должен быть одинаковым на обоих узлах.

Эта строка предписывает, что при старте:

  • ha1 должен обслуживать IP 9.22.7.46
  • Смонтировать общую файловую систему NFS /ha
  • Запустить Web-сервер Apache

Я добавлю больше ресурсов в этот файл в следующих статьях. При останове heartbeat должен:

  • Остановить сервер Apache
  • Размонтировать общую файловую систему
  • Освободить IP

На этом этапе я сделаю несколько изменений в конфигурации Web-сервера Apache, так чтобы он обслуживал файлы с общей системы и с файловых систем, локальных для двух машин ha1 и ha2. Файл index.html (включенный в примеры) будет располагаться на общем диске, а файл hostname.html будет расположен на локальной файловой системе каждой из машин ha1 и ha2. Для реализации HA в Web-сервере Apache:

  1. Зарегистрируйтесь как root.
  2. Создайте следующие каталоги на общем диске (/ha):

chmod 775 /ha/www
chmod 775 /ha/www/html

mv /var/www/html /var/www/htmllocal

ln -s /ha/www/html /var/www/html

cp /ha/hahbcode/www/index.html /var/www/html

cp /ha/hahbcode/www/hostname.html /var/www/html

ln -s /var/www/htmllocal/hostname.html /ha/www/html/hostname.html

Теперь вы готовы протестировать реализацию HA.

Для тестирования повышенной готовности Web-сервера:

    Запустите службу heartbeat на основном, а затем на резервном узлах при помощи команд:

Обратите внимание, что я использую в этих URL адрес кластера, а не адрес основного узла.
Браузер должен отобразить следующий текст для первого URL:

Браузер должен отобразить следующий текст для второго URL:

Браузер должен отобразить следующий текст для первого URL:

Браузер должен отобразить следующий текст для второго URL:

Таким образом, при размещении Web-страниц на общем диске резервная машина может отображать их клиенту в случае аварии на основной машине. Восстановление после сбоя происходит незаметно для пользователя, который обратился к Web-страницам. Эта технический прием может быть также применен для обслуживания CGI-сценариев.

Heartbeat Linux для достижения высокой доступности серверов

Введение в Heartbeat
Проект HeartbeatLinux- Неотъемлемая часть проекта HA, который реализует высокодоступную кластерную систему. Служба пульса и взаимодействие кластера - два ключевых компонента кластера высокой доступности.В проекте Heartbeat модуль пульса реализует эти две функции.


Схема структуры сердцебиения

Базовый уровень: (уровень передачи пульса) работает на каждом узле и отправляет его на каждый резервный узел посредством многоадресной рассылки. Этот протокол работает на 694 порту udp. Чтобы
CRM: (диспетчер кластерных ресурсов) зависит от уровня контрольных сигналов и может загружать информацию на каждый узел. Чтобы
LRM: (Local Resource Manager) планируется CRM, реализует решения CRM и находит RA для выполнения. Чтобы
RA: (Агент ресурсов) может принимать планирование CRM, которое используется для реализации планирования и настройки ресурсов на определенном узле, обычно это сценарий. Сценарий должен принимать

Как работает CRM
Среди множества CRM одна CRM будет выбрана в качестве администратора, который отвечает за планирование использования резервного сервера в качестве основного.

Программное обеспечение, обычно используемое на всех уровнях Heartbeat

Предотвратить разделение мозга

Уровень узла: отключите власть нескольких кластеров в форме меньшинства, подчиняющегося большинству. Чтобы
Уровень ресурса: заблокируйте доступ нескольких кластеров к общедоступным ресурсам.

Режим работы кластера

Способ передачи ресурса

Тип ресурса

примитивный, собственный: основной ресурс, который может работать только на одном узле
group: ресурс группы
Клонирование: ресурсы клонирования, которые можно запускать на нескольких узлах. Необходимо определить два параметра (общее количество клонов, максимальное количество клонов на узел).
Главный / подчиненный: ресурсы главный-подчиненный

Методы обработки ресурсов, которых нет в кластере

стоп: остановить службу
Игнорировать: игнорировать, является ли он членом кластера, и продолжать выполнение. Чтобы
Заморозить: заморозить, новые запросы не принимаются. Чтобы
suicide:kill sever

Heartbeat V1 обеспечивает высокую доступность веб-ресурсов

контрольная работарезультат


Отключите сердцебиение главного узла

Используйте Heartbeat V2 для настройки высокой доступности в Интернете

Поскольку конфигурация Heartbeat V3 управляется так же, как corosync + кардиостимулятор, Heartbeat V3 здесь не настраивается, а конфигурация corosync + кардиостимулятор будет использоваться в следующем выпуске.

Читайте также: