Собираем кластер
Кластер - это прежде всего система повышенной готовности (high availability - HA), построеная с учетом того, что она продолжает работать безотказно, даже если какая-то ее часть выходит из строя. Heartbeat - продукт проекта Linux-HA, позволяющий реализовать механизм безотказной работы отдельных частей кластера. Первый, кому необходим этот механизм в кластере - это распределитель нагрузки (load balancer, или director). Допустим, у нас есть два сервера (loadb1, loadb2), которые выделены для того, чтобы стать распределителями нагрузки в будущем кластере. Но прежде чем устанавливать на них программное обеспечение для управление кластером, необходимо настроить и оттестировать механим безотказной работы - когда какой-либо из серверов (loadb1 или loadb2) выходит из строя, второй, благодаря heartbeat, заменяет его. В данном случае условием того, что сервер вышел из строя будет считаться, что он не отвечает на broadcast запросы, т.е. проблемы в сетевом интерфейсе. Сервера loadb1 и loadb2 будут эмулировать ip-адрес кластера - 195.46.64.21, т.е. он будет "поднят" на сетевом интерфейсе как дополнительный (alias).
 Настройка heartbeat в Debian 4.0 (Etch) 1. Установить пакет heartbeat-2 и все зависимости, которые он за собой тянет.
apt-get install heartbeat-2 В конце установки сервис heartbeat не сможет запуститься, потому как не созданы основные конфигурационные файлы - ha.cf, authkeys, haresources. ha.cf - основной конфигурационный файл, содержащий массу различных параметров того, как будет осуществляться heartbeat-механизм. За основу можно взять файл, идущий в пакете (расположен в /usr/share/doc/heartbeat-2). Перед использованием достаточно установить 3 параметра (директивы):
bcast eth0 node loadb1 node loadb2
Указав таким образом использовать heartbeat-механизм через eth0 интерфейсы на основе broadcast-запросов. Имена loadb1, loadb2 должны быть hostname-именами серверов, команда uname -a должна возвращать такие же значения. authkeys - файл для взаимной аутентификации серверов loadb1 и loadb2. Можно использовать sha, md5, но чтобы не расходовать ресурсы достаточно использовать crc. После создания файл, необходимо установить права доступа к нему только для root
# cat > authkeys auth 1 1 crc [Ctrl+C] # chmod 600 authkeys
haresources - файл, описывающий ресурсы, контролируемые серверами loadb1 и loadb2. Ресурсы представляют собой обычные стоп/старт скрипты, похожие чем-то на сценарии из/etc/init.d. В директории /etc/ha.d/resource.d можно посмотреть доступные (уже готовые к использованию) сценарии. В данном примере будет использован ресурс IPaddr для активации дополнительного ip-адреса на интерфейсе eth0.
loadb1 IPaddr::195.46.64.21/24/eth0 Данные конфигурационные файлы должны быть помещены на обоих серверах в директорию /etc/ha.d и должны быть идентичны. После того, как все подготовлено, запустить heartbeat-сервис на обоих серверах:
# /etc/init.d/heartbeat start Starting High-Availability services: 2007/06/28_10:14:21 INFO: IPaddr Resource is stopped Done.
Спустя пару секунд на сервере loadb1 будет поднят дополнительный ip-адрес - 195.46.64.21.
loadb1# ifconfig eth0 Link encap:Ethernet HWaddr 00:60:08:04:09:0D inet addr:195.46.64.15 Bcast:195.46.64.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1119456 errors:0 dropped:0 overruns:0 frame:0 TX packets:96462 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:79824340 (76.1 MiB) TX bytes:18991729 (18.1 MiB) Interrupt:10 Base address:0xe000
eth0:0 Link encap:Ethernet HWaddr 00:60:08:04:09:0D inet addr:195.46.64.21 Bcast:195.46.64.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Interrupt:10 Base address:0xe000 Если что-то случается с loadb1 (можно сэмулировать аварию, отправив его на перезагрузку), loadb2 поднимает данный ip-адрес на своем eth0 интерфейсе и принимает на себя основную роль.
loadb2# ifconfig eth0 Link encap:Ethernet HWaddr 00:10:5A:BF:2B:8C inet addr:195.46.64.16 Bcast:195.46.64.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1256304 errors:0 dropped:0 overruns:0 frame:0 TX packets:93726 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:99944699 (95.3 MiB) TX bytes:19336953 (18.4 MiB) Interrupt:9 Base address:0xec00
eth0:0 Link encap:Ethernet HWaddr 00:10:5A:BF:2B:8C inet addr:195.46.64.21 Bcast:195.46.64.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Interrupt:9 Base address:0xec00 В /var/log/messages можно проследить происходящее - всё очень подробно и понятно.
Ссылки:
- Программное обеспечение повышенной готовности промежуточного уровня в Linux, часть 1: Heartbeat и Web-сервер Apache
- How To Set Up A Loadbalanced High-Availability Apache Cluster
- The High Availability Linux Project
Источник: http://blog.sozinov.eu/2007/06/1-heartbeat.html |
| Категория: Linux и Unix | Добавил: SAM (11.06.2010)
|
| Просмотров: 1780
| Рейтинг: 0.0/0 |
|
|
| Форма входа |
|
 |
| Категории раздела |
|
 |
| Поиск |
|
 |
| Статистика |
Онлайн всего: 1 Гостей: 1 Пользователей: 0 |
 |
|