SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 31.05.2009 12:08:02

Infernus
Участник
Зарегистрирован: 31.05.2009
Сообщений: 3

MySQL Cluster. Как настроить БНС и создать VIP-адрес всего кластера

Добрый день. Нужна помощь по организации кластера. В принципе он у меня собран и данные дублируеются с одного компа на другой, но возник вопрос как организовать балансировщик нагрузки (точнее 2, чтобы один не стал узким местом). Я читал в интернете, что уже есть готовые программные решения для этого типа Windows NLB (Network Load Balancer), но как его настроить? Возможно кто-то уже сталкивался с подобными проблемами и может подсказать как это сделать или хотя бы указать верное напрпавление.
Версия кластера MySQL Cluster NDB 7.0
192.168.1.2    - первый узел MySQL сервер (также установлен management узел, но я его перенесу на другой комп, пока только 2 машины )))
192.168.1.3    - второй узел MySQL сервер


Также как я понял, что нужно создать виртуальный IP адрес для всего кластера, к которому собственно и будет подключаться Web-приложение. Как его установить? И что значит IP-адрес всего кластера?
Буду невероятно благодарен за помощь.

Неактивен

 

#2 31.05.2009 17:53:42

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: MySQL Cluster. Как настроить БНС и создать VIP-адрес всего кластера

Если Вас не пугает словосочетание «Windows NLB», значит, Вы запустили кластер на Windows.
Это правда? Мне казалось, кластер под Windows не запускался по каким-то внутренним причинам.

Что касается непосредственно балансировки. Каждая более-менее современная операционная
система позволяет балансировать нагрузку между бэкендами. В конечном итоге все так или иначе
сводится к NAT запросов на один из хостов. Можете попробовать попользоваться этими средствами,
или даже взять какую-нибудь программу (например, haproxy, которая может еще и отслеживать
состояние живости каждого из бэкендов). Однако проблему выпадания балансировщика это не
решит.

Мне известно два способа решить проблему с выпаданием балансировщика — попроще и посложнее.
Способ попроще заключается в DNS-балансировке. Т.е. Вы берете одно имя (например,
mycluster.domain.ru) и прописываете к нему два А-адреса (192.168.1.2 и 192.168.1.3). Практически
все операционные системы будут при этом обращаться по очереди к каждому из IP таким образом
балансируя нагрузку между серверами (и обеспечивая некоторую толерантность к отключению).
В эту группу не входит Windows Vista, которая всегда будет ломиться на «ближайший» адрес (а учитывая
то, что серверы в одной сети — всегда на первый).

Способ посложнее заключается во внедрении протокола OSPF и размазывании одного адреса
на нескольких балансировщиках. При этом выпадение одного из балансеров всего лишь снимает
с него анонс, а второй при этом продолжает функционировать. Второй способ более толерантен к
выкрутасам типа балансировки Vista, но сложнее в реализации с серверной стороны.

P.S. Кластер на 2 серверах не стабилен, нужно добавить третий как минимум.

Неактивен

 

#3 31.05.2009 20:58:53

Infernus
Участник
Зарегистрирован: 31.05.2009
Сообщений: 3

Re: MySQL Cluster. Как настроить БНС и создать VIP-адрес всего кластера

Кластер я собрал на Windows XP. Просто в интернете наткнулся на статью, в которой парень под Linux построил кластер в такой конфигурации приблизительно:
192.168.1.2 - первый узел
192.168.1.3 - второй узел
192.168.1.4 - управляющий узел + балансировщик 1
192.168.1.5 - балансировщик 2

192.168.1.6 - некий виртуальный IP всего кластера, к которому подключается всё приложение. И два балансировщика работают как active/passive, т.е. работает один, если свалится, то другой. Вот я пытаюсь приспособить некую аналогию под Windows XP.  Поэтому мне и интересно как сделать виртуальный IP всему кластеру. Что это за адрес и кому он назначается. Я просто только начинающий интернетчик и многие термины мне пока не ясны. К примеру финт с DNS я не понял. Точнее откуда взять это имя...

Неактивен

 

#4 01.06.2009 04:48:08

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: MySQL Cluster. Как настроить БНС и создать VIP-адрес всего кластера

Имя — придумать smile

Кстати, я подумал, что в такой ситуации можно и без OSPF обойтись. Например, так: поднять два балансера,
но назначить дополнительный IP (.6 в Вашем примере) только одному из них. А на втором организовать
тупой ping этого балансера. Как только ping не проходит — поднимать дополнительный IP на втором балансере.

+- будет работать. Из реальных сложностей — нужно уметь опускать этот доп.IP как только первый балансер
включится в строй (пинговать его отдельно или слушать ARP?).

А кластер на WinXP — это классно. Рад, что баги побороли smile

P.S. Ах, да, не представляю себе, как это сделать на Windows. Можно попробовать покопаться в WScriptHost,
но я не уверен, что оно может поднять/опустить дополнительный IP. Ну и штатный балансировщик Windows
на клиентские операционки не ставится, вроде, т.е. Вам нужно будет что-то типа Windows Server (опять таки,
говорю по памяти Windows2000, с тех пор могло что-то кардинально поменяться, хотя, сомневаюсь).

Неактивен

 

#5 02.06.2009 00:16:41

Infernus
Участник
Зарегистрирован: 31.05.2009
Сообщений: 3

Re: MySQL Cluster. Как настроить БНС и создать VIP-адрес всего кластера

скачал себе NLB от Микрософта...(там патчик есть, чтобы ставить на ХР). Не добавляет узел в кластер, пишет, что на том узле (который я хочу присоединить) нет NLB. Как его дальше конфигурировать я не знаю ))) Видимо придется переползти на Windows Server 2003.

Неактивен

 

#6 03.06.2009 15:49:04

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: MySQL Cluster. Как настроить БНС и создать VIP-адрес всего кластера

Пиратствовать не надо, снесите все, поставьте Linux smile

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson