LINUX.ORG.RU
ФорумAdmin

Создание отказоустойчивой системы на cluster'e

 , , ,


0

1

Всем добрый вечер!

Столкнулся со следующей проблемой: дали задачу построить кластерную отказоустойчивую систему, на базе кластера. Есть 2 компа:

  • node1 (192.168.0.101)
  • node2 (192.168.0.102)

Нужно как-то сделать виртуальный ip-адресс, например 192.168.0.100, на который будет настроено приложение. В мастер-компом будет node1, вспомогательным - node2. В случае когда node1 будет не доступен, то автоматически должна выполнится маршрутизация на node2.

Уважаемые форумчане и огромные специалисты, прошу помощи в этом деле, т.к. не совсем понимаю откуда может взяться этот виртуальный ip=192.168.0.100. Все рекомендуют использовать corosync и Pacemaker, но как это сделать не понимаю

Дали виртуалку посмотреть как пример, но куда смотреть тоже не понятно. Помогите кто может и чем может..огромное всем спасибо

Начни с чтения про Heartbeat.

dhameoelin ★★★★★
()

ip = ресурс, поднимается на одной из нод кластера.

NiTr0 ★★★★★
()

Если приложение может работать на двух нодах сразу и не поломает общую базу, то для общего ip достаточно будет vrrp, без кластеров

Иначе придётся читать документацию к pacemaker

router ★★★★★
()

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

Можешь посмотреть для начала http://habrahabr.ru/post/107837/, хоть статья и старая, но хоть какое-то представление даёт

zolden ★★★★★
()

Heartbeat достаточно.

corosync и Pacemaker
Нужно как-то сделать виртуальный ip-адресс, например 192.168.0.100

для такой простой задачи эти монстры не нужны.

ссыль для общего развития - http://odba.ru/showthread.php?t=418

если для приложения нужно синхронизировать данные между нодами, то смотри еще drbd - это типа такого рейд1 тока по сети.

axelroot
()

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

pacemaker это набор всяких скриптов и программ для управления кластером, для человека доступна команда crm, которая является интерактивной оболочкой, команда введенную в ней получат сразу все узлы кластера. На языке crm как правило представлены примеры конфигураций в интернете. Иногда еще в голом xml

Если кратко то pacemaker и corosync работают только в паре.

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

Читай гайд сдесь про то как повесить один IP на два узла http://linuxlasse.net/linux/howtos/Pacemaker_and_Corosync_HA_-_2_Node_setup

Yur4eg ★★
()

Всем огромное спасибо! Буду копаться следуя вашим рекомендациям.

userman
() автор топика

я использую связку keepalived + haproxy. тебе в принципе хватит keepalived.

вот небольшой конфиг keepalived

vrrp_instance service-main {
    interface eth0
    state BACKUP
    virtual_router_id 61
    priority 200
    notify /usr/local/bin/notify-main-service
    virtual_ipaddress {
        192.168.1.10/24 dev eth0
    }

    vrrp_unicast_bind 192.168.1.12

    vrrp_unicast_peer 192.168.1.13
    vrrp_unicast_peer 192.168.1.14
    vrrp_unicast_peer 192.168.1.15
    vrrp_unicast_peer 192.168.1.16
}
Nurmukh ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.