What is heartbeat linux

Содержание
  1. High Availability с помощью Heartbeat и плавающих IP
  2. Требования
  3. 1: Создание серверов
  4. 2: Создание плавающего IP-адреса
  5. 3: Настройка DNS (опционально)
  6. Установка Heartbeat
  7. 4: Настройка Heartbeat
  8. Сбор информации о ноде
  9. Создание файла ha.cf
  10. Создание файла authkeys
  11. Создание файла haresources
  12. 5: Создание сервиса для переназначения IP-адреса
  13. Создание сценария assign-ip
  14. Создание сервиса floatip
  15. 6: Запуск Heartbeat
  16. Тестирование высокой доступности
  17. Заключение
  18. Русские Блоги
  19. Высокодоступное промежуточное ПО для Linux: Часть 1. Heartbeat и веб-сервер Apache.
  20. Краткое введение
  21. Требования к оборудованию
  22. Таблица 1. Что находится в примере пакета кода
  23. Концепция высокой доступности
  24. Доступное программное обеспечение HA
  25. Проект Linux с высокой доступностью и пульс
  26. Конфигурация кластера
  27. Таблица 2. Конфигурация тестового кластера
  28. Установите последовательное соединение
  29. Установить NFS как общую файловую систему
  30. Загрузите и установите heartbeat
  31. Настроить сердцебиение
  32. 1. Настройте /etc/ha.d/authkeys
  33. 2. Настройте /etc/ha.d/ha.cf
  34. 3. Настройте /etc/ha.d/haresources
  35. Настройте HA для сервера Apache HTTP
  36. Высокодоступное промежуточное ПО для Linux: Часть 1. Heartbeat и веб-сервер Apache.
  37. Тест HA сервера Apaceh HTTP
  38. вывод
  39. Интеллектуальная рекомендация
  40. Пошаговая загрузка файла Spring MVC-09 (на основе файла загрузки клиента Servlet3.0 + Html5)
  41. Создайте многоканальное окно в приложениях Win32
  42. Путь к рефакторингу IOS-APP (3) Введение в модульное тестирование
  43. Tree——No.617 Merge Two Binary Trees

High Availability с помощью Heartbeat и плавающих IP

Heartbeat – это программа с открытым исходным кодом, которая предоставляет возможности кластерной инфраструктуры и обмен сообщениями для клиентских серверов. Эти функции являются критическими в инфраструктуре сервера высокой доступности (High Availability). В этом мануале вы узнаете, как создать инфраструктуру высокой доступности на двух нодах с помощью Heartbeat и плавающих IP-адресов.

В настройке высокой доступности (High Availability) Heartbeat обычно используется совместно с менеджером ресурсов кластера (CRM) типа Pacemaker.

Примечание: Этот мануал предназначен для демонстрационных целей и охватывает только некоторые аспекты создания надежной настройки HA. Здесь вы найдете подробные сведения отом, как настроить пассивные и активные ноды на уровне шлюза и связать их с плавающим IP-адресом.

Требования

  • Плавающий IP-адрес.
  • Метаданные.
  • Скрипты cloud-config.
  • API.

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

1: Создание серверов

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

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

2: Создание плавающего IP-адреса

Откройте панель управления и создайте плавающий IP-адрес.

Присвойте его серверу 1.

Когда адрес будет присвоен, убедитесь, что можете получить доступ к серверу по этому адресу в браузере:

Вы должны увидеть индексную страницу сервера 1.

3: Настройка DNS (опционально)

Если вы хотите получить доступ к инфраструктуре высокой доступности по домену, создайте запись А, указывающую на плавающий IP-адрес.

Читайте также: Как настроить имя хоста

В руководстве используется условный домен example.com. Если у вас сейчас нет домена, используйте плавающий IP-адрес.

Установка Heartbeat

Далее нужно установить Heartbeat на обоих серверах. Самый простой способ установить Heartbeat – использовать apt-get:

sudo apt-get update
sudo apt-get install heartbeat

Приложение Heartbeat установлено, но нуждается в настройке.

4: Настройка Heartbeat

Чтобы получить нужный кластер, необходимо создать и настроить следующие файлы Heartbeat на обоих серверах в каталогах /etc/ha.d.

  • ha.cf – глобальная конфигурация кластера Heartbeat, которая включает все ноды.
  • authkeys – содержит ключ безопасности, который позволяет нодам пройти аутентификацию в кластере.
  • haresources – определяет сервисы, которыми управляет кластер, и ноду, которая должна быть владельцем этих сервисов. Обратите внимание, этот файл не используется в настройке, в которой есть CRM, (например, Pacemaker).

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

Сбор информации о ноде

Прежде чем настроить файл ha.cf, нужно узнать имя каждой ноды. Heartbeat требует, чтобы имя ноды совпадало с ее выводом uname –n.

Следующую команду нужно запустить на обоих серверах.

Обратите внимание на вывод команды. Ноды должны иметь имена primary и secondary.

Также нужно найти сетевой интерфейс и IP-адрес, который использует каждая нода для связи с остальной частью кластера. Вы можете использовать любой сетевой интерфейс, если каждая нода может взаимодействовать с остальными нодами в кластере. В руководстве используется публичный интерфейс серверов, eth0.

Чтобы узнать IP-адрес интерфейса eth0, запустите следующую команду на обоих серверах:

ip addr show eth0
ip addr show eth0 output:
2: eth0:
mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 04:01:76:a5:45:01 brd ff:ff:ff:ff:ff:ff
inet 198.51.100.5 /24 brd 198.51.100.255 scope global eth0
valid_lft forever preferred_lft forever
inet 10.17.0.28/16 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::601:76ff:fea5:4501/64 scope link
valid_lft forever preferred_lft forever

Примечание: Также узнать IP-адрес можно с помощью панели управления.

Обратите внимание на IP-адрес сетевого интерфейса (в примере он выделен красным). Не забудьте получить IP-адреса обоих серверов.

Создание файла ha.cf

На обоих серверах откройте /etc/ha.d/ha.cf в редакторе:

sudo nano /etc/ha.d/ha.cf

Этот файл будет пустым. Сюда нужно добавить сетевые интерфейсы и имена каждой ноды в кластере.

Скопируйте и вставьте эту конфигурацию в файл, а затем замените имена и IP-адреса нод соответствующими значениями. В этом примере сервер 1 имеет IP-адрес 198.51.100.5, а сервер 2 – 198.51.100.6:

node primary
ucast eth0 198.51.100.5
node secondary
ucast eth0 198.51.100.6

Сохраните и закройте файл.

Создание файла authkeys

Ключ авторизации позволяет нодам присоединиться к кластеру. Для этого можно просто создать случайный ключ. На сервере 1 запустите эти команды, чтобы создать ключ авторизации в переменной среды AUTH_KEY:

if [ -z «$» ]; then
export AUTH_KEY=»$(command dd if=’/dev/urandom’ bs=512 count=1 2>’/dev/null’ \
| command openssl sha1 \
| command cut —delimiter=’ ‘ —fields=2)»
fi

Затем добавьте ключ в /etc/ha.d/authkeys:

sudo bash -c » <
echo auth1
echo 1 sha1 $AUTH_KEY
> > /etc/ha.d/authkeys»

Проверьте содержимое файла authkeys:

sudo cat /etc/ha.d/authkeys

Файл будет выглядеть так (ключ будет отличаться):

auth1
1 sha1 d1e6557e2fcb30ff8d4d3ae65b50345fa46a2faa

Право чтения файла должно быть только у пользователя root.

sudo chmod 600 /etc/ha.d/authkeys

Скопируйте файл /etc/ha.d/authkeys с сервера 1 на сервер 2. Это можно сделать вручную или с помощью scp.

На сервере 2 нужно обновить права на файл:

sudo chmod 600 /etc/ha.d/authkeys

На этом этапе оба сервера должны иметь идентичные файлы /etc/ha.d/authkeys.

Создание файла haresources

Файл haresources указывает предпочтительные хосты в паре сервисами, которыми управляет кластер. Предпочтительным хостом является нода, которая должна запускать тот или иной сервис, если она доступна. Если предпочтительный хост недоступен в кластере, сервис передается другому хосту. Другими словами, вторичный сервер возьмет работу на себя, если первичный сервер перестанет работать.

На обоих серверах откройте файл haresources в текстовом редакторе:

sudo nano /etc/ha.d/haresources

Добавьте в файл эту строку, указав имя первичной ноды:

Сохраните и закройте файл.

Этот параметр настроит сервер 1 как предпочтительный хост для сервиса floatip, который в настоящее время не определен. Теперь нужно настроить сервис floatip.

5: Создание сервиса для переназначения IP-адреса

Кластер Heartbeat поддерживает сервис floatip, который ноды могут использовать для присвоения плавающего IP-адреса, но сервис все равно нужно создать. Однако прежде чем настроить сервис, нужно создать сценарий, который через API присвоит плавающий IP-адрес ноде, которая его запускает. Затем нужно создать сервис floatip, который будет запускать сценарий переназначения плавающего IP.

Создание сценария assign-ip

В данном примере можно использовать базовый сценарий Python, который присваивает плавающий IP-адрес заданному ID сервера через API.

Читайте также:  Где находятся все звуки windows

Загрузите assign-ip на оба сервера:

sudo curl -L -o /usr/local/bin/assign-ip http://do.co/assign-ip

Сделайте его исполняемым на обоих серверах:

sudo chmod +x /usr/local/bin/assign-ip

Поскольку сценарий отправляет запрос API, ему нужна библиотека Python Requests.

sudo apt-get install python-requests

Читайте также: Работа с веб-данными с помощью Requests и Beautiful Soup в Python 3

Сценарию assign-ip необходимы следующие данные:

  • Плавающий IP: первый аргумент в сценарии – плавающий IP. Который нужно присвоить.
  • ID сервера: второй аргумент в сценарии – ID сервера, которому нужно присвоить плавающий IP.
  • Токен API: передается как переменная среды TOKEN.

Прежде чем запустить сценарий, можете просмотреть его содержимое.

Теперь можно создать сервис floatip.

Создание сервиса floatip

Чтобы создать сервис floatip, нужно создать сценарий инициализации, который вызывает скрипт assign-ip и отвечает на команды start и stop. Этот скрипт инициализации будет отвечать за поиск ID сервера через сервис метаданных. Кроме того, для этого потребуется переназначить плавающий IP-адрес и токен API (токен личного доступа).

На обоих серверах откройте /etc/init.d/floatip в редакторе:

sudo nano /etc/init.d/floatip

Затем скопируйте и вставьте этот сценарий инициализации, заменив условные данные своим токеном API и плавающим IP, который необходимо переназначить:

#!/bin/bash
param=$1
export TOKEN=’your_API_token’
IP=’your_floating_IP_address’
ID=$(curl -s http://169.254.169.254/metadata/v1/id)
if [ «start» == «$param» ] ; then
python /usr/local/bin/assign-ip $IP $ID
exit 0
elif [ «stop» == «$param» ] ; then
exit 0;
elif [ «status» == «$param» ] ; then
exit 0;
else
echo «no such command $param»
exit 1;
fi

Сохраните и закройте файл.

Сделайте сценарий исполняемым:

sudo chmod u+x /etc/init.d/floatip

Когда сервис floatip запустится, он просто вызовет сценарий assign-ip и присвоит указанный плавающий IP серверу, который выполнил этот сценарий. Сервер 2 выполнит сценарий в случае, если сервер 1 не работает. После восстановления сервер 1 будет запускать этот сценарий для восстановления своего плавающего IP.

6: Запуск Heartbeat

Теперь приложение Heartbeat настроено, все соответствующие сценарии готовы. Можно запустить кластер Heartbeat.

На обоих серверах введите эту команду для запуска кластера Heartbeat:

sudo systemctl start heartbeat

Настройка инфраструктуры высокой доступности завершена.

Тестирование высокой доступности

После настройки важно проверить работу инфраструктуры высокой доступности.

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

Floating IP is pointing to primary server
Server: primary , IP Address: 198.51.100.5
Это значит, что адрес присвоен серверу 1.

Теперь откройте локальный терминал и используйте curl, чтобы получить доступ к плавающему IP с помощью цикла. Используйте эту команду, но обязательно замените URL-адрес своим доменом или плавающим IP-адресом:

while true; do curl http://example.com; sleep 1; done

На данный момент команда тоже выведет имя и IP-адрес сервера 1. Если сервер 1 откажет (для этого можно, например, остановить сервис Heartbeat), плавающий IP будет переназначен серверу 2, и вы сможете убедиться в этом.

Перезапустите сервер 1. Для этого можно использовать панель управления или команду:

Через несколько секунд основной сервер станет недоступен. Обратите внимание на вывод цикла curl, который работает в терминале. Вы должны заметить вывод, который выглядит так:

Server: primary , IP Address: 198.51.100.5
.
curl: (7) Failed to connect to example.com port 80: Connection refused
Server: secondary , IP Address: 198.51.100.6
Server: secondary , IP Address: 198.51.100.6
.

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

Вы можете получить сообщение Connection refused. Оно возникает, если вы пытаетесь получить доступ к плавающим IP-адресам в период между сбоем основного сервера и завершением процесса переназначения плавающего IP-адреса.

Теперь можно включить сервер 1 через панель управления. Поскольку Heartbeat воспринимает сервер 1 как предпочтительный хост для запуска сценария переназначения плавающего IP, IP автоматически будет возвращен на сервер 1, как только он восстановит работу.

Заключение

Теперь у вас есть базовая настройка инфраструктуры высокой доступности.

В этом примере в качестве базового балансировщика нагрузки используется Nginx, но если вы хотите улучшить настройку Heartbeat с помощью балансировщика обратного прокси-сервера, вы можете перенастроить Nginx или установить HAProxy.

Источник

Русские Блоги

Высокодоступное промежуточное ПО для 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 описывает каталоги в hahbcode.tar.gz.

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

Содержание содержание
heartbeat Пример файла конфигурации для пульса
www HTML-файл для тестирования HA для веб-сервера Apache
mq Сценарий и код для WebSphere MQ HA:
  • mqseries: скрипт для запуска и остановки администратора очередей WebSphere MQ и других процессов в качестве службы Linux
  • hascript: скрипт для создания администратора очередей HA
  • send (sh / bat): скрипт для добавления данных в очередь
  • receive (sh / bat): скрипт для просмотра / получения данных из очереди
loadl Скрипт для запуска и остановки использования LoadLeveler в качестве службы Linux
was Сценарии и файлы для HA WebSphere Application Server:
  • wasdmgr: скрипт для запуска и остановки WebSphere ND Deployment Manager как службы Linux
  • wasnode: скрипт для запуска и остановки WebSphere Node Agent как службы Linux
  • wasserver: скрипт для запуска и остановки WebSphere Application Server как службы Linux
  • sample_ver_ (1/2/3): содержит примеры корпоративных приложений для тестирования различных версий WebSphere HA
db2 Скрипт для проверки доступности базы данных, создания таблицы, вставки строк в таблицу и выбора строк из таблицы.
Читайте также:  Windows 10 ltsc как активировать 2020

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

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

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

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

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

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

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

Доступное программное обеспечение 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. Конфигурация тестового кластера

роль Hostname IP-адрес
Поделиться (кластер) ha.haw2.ibm.com 9.22.7.46
Узел 1 (основной) ha1.haw2.ibm.com 9.22.7.48
Node2 (резервная копия) ha2.haw2.ibm.com 9.22.7.49
Узел 3 (неизвестно) ha3.haw2.ibm.com 9.23.7.50
NFS сервер hanfs.haw2.ibm.com 9.2.14.175

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

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

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

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

echo «Serial Connection test» > /dev/ttyS0

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

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

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

  • Узел nfsha.haw2.ibm.com используется в качестве сервера NFS.
  • Файловая система / га является общей.

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

  1. Создайте каталог / ha на узле nfsha.
  2. Отредактируйте файл / etc / exports. Файл содержит список записей, каждая запись указывает, является ли том общим и каким он является общим. В листинге 1 показана соответствующая часть файла экспорта в моей настройке.
Листинг 1. Экспорт файла
  • Запустите службу NFS. Если NFS уже запущена, вы должны запустить /usr/sbin/exportfs -ra Команда заставить nfsd снова прочитать файл / etc / exports.
  • На двух узлах высокой доступности (ha1 и ha2) добавьте файловую систему / ha в файл / etc / fstab, как в локальной файловой системе. В листинге 2 показана соответствующая часть файла fstab в моей настройке:
    Листинг 2. Файл fstab

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

    Разархивируйте пример кода hahdcode.tar.gz в файловой системе, используя команду, показанную в листинге 3. (Сначала пройдите следующееСкачать внизЗагрузите несколько примеров кода. )

    Листинг 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

    Этот файл описывает ресурсы, которыми управляет пульс. Эти ресурсы, по сути, являются просто сценариями запуска / остановки, очень похожими на те, которые используются для запуска и остановки ресурсов в /etc/rc.d/init.d. Обратите внимание, что heartbeat будет искать скрипты в /etc/rc.d/init.d и /etc/ha.d/resource.d. Файл сценария httpd поставляется с heartbeat. В листинге 7 показан мой файл /etc/ha.d/haresources:

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

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

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

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

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

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

    Это предполагает uname -n Команда отобразит ha1.haw2.ibm.com, ваша конфигурация может отображать только ha1, если это так, используйте ha1.

    Настройте HA для сервера Apache HTTP

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

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

    /ha/www
    /ha/www/html
    Используйте следующую команду на узле ha1, чтобы установить соответствующие разрешения для общего каталога:

    chmod 775 /ha/www

    chmod 775 /ha/www/html

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

    На компьютере главного узла и компьютере резервного узла переименуйте каталог html веб-сервера Apache:

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

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

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

    Скопируйте файл index.html в каталог / ha / www / html на узле ha1:

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

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

    Скопируйте файл hostname.html в каталог / ha / www / htmllocal на обеих машинах:

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

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

    Создайте символическую ссылку на файл hostname.html на обеих машинах:

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

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

    Тест HA сервера Apaceh HTTP

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

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

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

    Укажите в браузере следующий URL-адрес, чтобы убедиться, что две веб-страницы обслуживаются правильно (если используются разные имена хостов, URL-адрес должен отличаться):

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

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

    Hello. I am being served from a High Availability Cluster ha.haw2.ibm.com

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

    Hello. I am being served from a node ha1.haw2.ibm.com in a High Availability Cluster ha.haw2.ibm.com

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

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

    Укажите в браузере следующий URL-адрес, чтобы убедиться, что две веб-страницы правильно отображаются на ha2:

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

    Hello. I am being served from a High Availability Cluster ha.haw2.ibm.com

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

    Hello. I am being served from a node ha2.haw2.ibm.com in a High Availability Cluster ha.haw2.ibm.com

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

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

    вывод

    Я надеюсь, что вы попытаетесь использовать эту технологию для создания веб-сервера с высокой доступностью, с дешевым оборудованием и готовым программным обеспечением. В следующей статье этой серии вы узнаете, как использовать WebSphere MQ для создания высокодоступного сервера очереди сообщений.

    Интеллектуальная рекомендация

    Пошаговая загрузка файла Spring MVC-09 (на основе файла загрузки клиента Servlet3.0 + Html5)

    пример тестовое задание Исходный код Несмотря на загрузку файлов в Servlet3.0 +, мы можем очень легко программировать на стороне сервера, но пользовательский интерфейс не очень дружелюбен. Одна HTML-ф.

    Создайте многоканальное окно в приложениях Win32

    Создайте многоканальное окно в приложениях Win32, создайте несколько оконных объектов одного и того же класса Windows, а окна объектов разных классов окон. .

    Путь к рефакторингу IOS-APP (3) Введение в модульное тестирование

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

    Tree——No.617 Merge Two Binary Trees

    Problem: Given two binary trees and imagine that when you put one of them to cover the other, some nodes of the two trees are overlapped while the others are not. You need to merge them into a new bin.

    Источник

    Читайте также:  Launchers для windows phone
    Оцените статью