- High Availability с помощью Heartbeat и плавающих IP
- Требования
- 1: Создание серверов
- 2: Создание плавающего IP-адреса
- 3: Настройка DNS (опционально)
- Установка Heartbeat
- 4: Настройка Heartbeat
- Сбор информации о ноде
- Создание файла ha.cf
- Создание файла authkeys
- Создание файла haresources
- 5: Создание сервиса для переназначения IP-адреса
- Создание сценария assign-ip
- Создание сервиса floatip
- 6: Запуск Heartbeat
- Тестирование высокой доступности
- Заключение
- Русские Блоги
- Высокодоступное промежуточное ПО для Linux: Часть 1. Heartbeat и веб-сервер Apache.
- Краткое введение
- Требования к оборудованию
- Таблица 1. Что находится в примере пакета кода
- Концепция высокой доступности
- Доступное программное обеспечение HA
- Проект Linux с высокой доступностью и пульс
- Конфигурация кластера
- Таблица 2. Конфигурация тестового кластера
- Установите последовательное соединение
- Установить NFS как общую файловую систему
- Загрузите и установите heartbeat
- Настроить сердцебиение
- 1. Настройте /etc/ha.d/authkeys
- 2. Настройте /etc/ha.d/ha.cf
- 3. Настройте /etc/ha.d/haresources
- Настройте HA для сервера Apache HTTP
- Высокодоступное промежуточное ПО для Linux: Часть 1. Heartbeat и веб-сервер Apache.
- Тест HA сервера Apaceh HTTP
- вывод
- Интеллектуальная рекомендация
- Пошаговая загрузка файла Spring MVC-09 (на основе файла загрузки клиента Servlet3.0 + Html5)
- Создайте многоканальное окно в приложениях Win32
- Путь к рефакторингу IOS-APP (3) Введение в модульное тестирование
- 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 «$
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.
Загрузите 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:
|
loadl | Скрипт для запуска и остановки использования LoadLeveler в качестве службы Linux |
was | Сценарии и файлы для HA WebSphere Application Server:
|
db2 | Скрипт для проверки доступности базы данных, создания таблицы, вставки строк в таблицу и выбора строк из таблицы. |
Концепция высокой доступности
Высокая доступностьЭто стратегия управления системой, позволяющая быстро восстанавливать основные службы в случае сбоя системы, компонента или приложения. Цель состоит в том, чтобы минимизировать прерывание обслуживания, а не отказоустойчивость. Наиболее распространенным решением сбоев при выполнении системы, используемым для разрешения критических бизнес-операций, является использование другой системы для ожидания и принятия на себя нагрузки отказавшей системы, что позволяет продолжить бизнес-операции.
Термин «кластер» имеет разные значения в разных вычислительных областях. Если не указано иное,кластер Все относятся ксердцебиение, Это совокупность узлов и ресурсов (таких как диски и сети), которые сотрудничают для обеспечения служб высокой доступности, работающих в кластере. В случае сбоя одного из этих компьютеров ресурсы, необходимые для поддержки бизнес-операций, переносятся на другой доступный компьютер в кластере.
Две основные конфигурации кластера:
- Резервная (резервная) конфигурация:Самая базовая конфигурация кластера, в этой конфигурации один узел выполняет задачу, а другой узел используется только в качестве резервной копии. Резервный узел не выполняет задачу и считаетсяБесплатно (в режиме ожидания)Эта конфигурация иногда называетсяХолодный режим ожидания, Такая конфигурация требует высокой степени аппаратного резервирования.Эта серия статей посвящена конфигурации холодного резервного копирования.
- Конфигурация захвата:Более продвинутая конфигурация. В этой конфигурации все узлы выполняют одни и те же задачи. При сбое определенного узла ключевые задачи могут быть приняты. вОдностороннее поглощение В конфигурации резервный узел выполняет некоторые дополнительные, некритические и неподвижные задачи. вВзаимное поглощение В конфигурации все узлы выполняют задачи высокой доступности (сменные). Эта серия статей не представляет конфигурацию поглощения.
При настройке кластера высокой доступности вы должны запланировать некоторые ключевые элементы:
- Жесткие диски, используемые для хранения данных, должны быть подключены к серверам, образующим кластер, через частную структуру межсоединений (последовательный кабель) или локальную сеть.
- Должен быть способ автоматического обнаружения неисправных ресурсов. Эта задача называетсяМонитор сердцебиения Программные компоненты.
- В случае сбоя владелец ресурса должен иметь возможность автоматического преобразования в одного или нескольких рабочих элементов кластера.
Доступное программное обеспечение 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, вам нужно сделать следующее:
- Создайте каталог / ha на узле nfsha.
- Отредактируйте файл / etc / exports. Файл содержит список записей, каждая запись указывает, является ли том общим и каким он является общим. В листинге 1 показана соответствующая часть файла экспорта в моей настройке.
Листинг 1. Экспорт файла
Листинг 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, выполните следующие действия:
- Войдите в систему как root.
- Создайте следующий каталог на общем диске (/ 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.
Таким образом, размещая веб-страницу на общем диске, когда отказывает машина основного узла, машина второго узла может предоставлять свои услуги клиенту. Отказоустойчивость прозрачна для клиентов, обращающихся к веб-страницам. Этот метод также подходит для предоставления сценариев 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.
Источник