Мой сайт
Главная | Каталог статей | Регистрация | Вход
Среда
12.12.2018
11:35
Приветствую Вас Гость | RSS
Главная » Статьи » Linux и Unix

Собираем кластер
Кластер - это прежде всего система повышенной готовности (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 можно проследить происходящее - всё очень подробно и понятно.

Ссылки:
  1. Программное обеспечение повышенной готовности промежуточного уровня в Linux, часть 1: Heartbeat и Web-сервер Apache
  2. How To Set Up A Loadbalanced High-Availability Apache Cluster
  3. The High Availability Linux Project


Источник: http://blog.sozinov.eu/2007/06/1-heartbeat.html
Категория: Linux и Unix | Добавил: SAM (11.06.2010)
Просмотров: 1064 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:
Форма входа
Категории раздела
Мои статьи [1]
Linux и Unix [47]
Все про Linux и Unix
Windows [3]
Все про Windows
Администрирование [5]
Все для Системного администратора
Cisco [2]
Мой опыт работы с кисками
Поиск
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0
    Copyright MyCorp © 2018
    Бесплатный конструктор сайтов - uCoz