У меня есть задача написать диплом(!!!) - разработать проект в ы с о к о н а д ё ж н о г о (террит-но распределённого) кластера для бесперебойной работы базы данных (SQL запросы) Какая именно база пока не ясно. Сервера на расст. 180 м. друг от друга., рабочих станций до 60-ти.
Желательная связь только канал-канал (1000 Мбит либо оптика, либо Ethernet), т.е. желательно без общих дисков, но можно и с ними.
(тоже желательно без Fibre Chanell и SCSI, но тоже можно и эти технологии), только с локальными дисками. Кластер должен работать параллельно, в случае сбоя пользователи перекидываются на другой работающий сервер. Главное - надёжность-формула 24х7.
Не знаю на какой платформе делать проект, ни софт.
Никогда не разрабатывал кластера.
К тому же почитал, что возм. нет дешёвых кластерных решений только на связи канал-канал без общих дисковых массивов.
Буду признателен за советы и ссылки.
>У меня есть задача написать диплом(!!!) - разработать проект в ы с
>о к о н а д ё ж н о г
>о (террит-но распределённого) кластера для бесперебойной работы базы данных (SQL запросы)
[skip]
>Буду признателен за советы и ссылки.
Связка drbd+heartbeat, например.
www.drbd.org, www.linux-ha.org
кластеризовать то надо БАЗУ.так что ответ: Oracal и MS Sql
на подходе кластер от mySql
>кластеризовать то надо БАЗУ.
связке drbd+heartbeat все равно, что поверх нее крутится.>так что ответ: Oracal
Это другой возможный вариант. на мой взгляд, он сложнее в реализации. тем более при использовании на production-сервере надо будет заплатить некоторую сумму разработчику Оракла.> и MS Sql
а вот это вообще не вариант, ибо, насколько я помню, в кластере от MS используется общий диск, что противоречит поставленой задаче. ну и для меня, например, немаловажен тот факт, что это платное решение
>Связка drbd+heartbeat, например.
>www.drbd.org, www.linux-ha.org
Добрый день, передо мной встала точно такая же задача, бесперебойная работа БД, скорее всего MySQL, два физических сервера...
Помогите разобраться плиз, я еще новичек в таких вопросах :)
ОС будет Linux Debian, что еще необходимо доставить на неё кроме drbd и heartbeat ? Насколько я понял, drbd обеспечит репликацию данных, heartbeat переключение между двумя серверами, в случае падения одного...нужно или еще что то наподобие Linux Virtual Server ?
>>Связка drbd+heartbeat, например.
>>www.drbd.org, www.linux-ha.orgда drbd + ha работают не плохо.
Linux Virtual Server - сам я не делал, но, кажется он дает распределение нагрузки за счет переброски соединения. (было бы интересно посмотреть на готовое решение)
Насчёт drbd. А вы уверены, что экспорт справится, а точнее коректно отработает, если все ноды вдруг начнут писать? Но Debian не плохое решение. И хотелось бы узнать что в этом плане лучше/удобнее/проще debian или freebsd?
Я под debian поднял нормально HA-availability, а вот ипсользуя проекты такого же назначения под freebsd обломался ещё на ранней стадии:Мне нужно организовать High-Availability кластер из 2 (192,168,9,24 и 192,168,9,25)машин с 1 виртуальным ip адресом (192,168,9,253)
Установил FreeBSD. Использую Wackamole и, соответственно, Spread.
На всех нодах поставил spread (согласно инструкции и мануалам). Создал пользователя и группу spread.
Вот конфигурация:Spread_Segment 192.168.9.255:4848 {
proj-bsd-1 192.168.9.24
proj-bsd-2 192.168.9.25
}
EventPriority = INFO
EventLogFile = /var/log/spreadlog_%h.out
SocketPortReuse = AUTO
Поставил wackamole, тоже согласно инструкции. Конфигурация следующая:
Spread = 4848@127.0.0.1
SpreadRetryInterval = 5s
Control = /var/run/wack.it
Prefer None
VirtualInterfaces {
lnc0:192.168.9.253/32
}Arp-Cache = 90s
Notify {lnc0:192.168.9.1/32 #router
arp-cache
}
balance {
AcquisitionsPerRound = all
interval = 4s
}
mature = 5s
Запускать решил своим, общим скриптом.Вот скрипт (HA-ext.sh)
#!/bin/sh
# This product use software developed by Johns Hopkins University
# for use in the Backhand project. Form more information about
# Wackamole and Backhand see http://www.backhand.org and http://www.cnds.jhu.edu.
# This product also uses the Spread toolkit, developed by Spread Concepts
# LLC for. For more information about Spreaad see http://www.spread.org"
#wait a bit while system full startingecho "running spread tool..." >> /var/log/mylog
/usr/local/bin/spread -c /usr/local/etc/spread.conf 2>&1 >> /var/log/mylog &#нужно дать подумать, прежде чем коннектится к службе
sleep 3s# иногда эта зараза не стартует вообще.
# пишет, что конфигурация считана успешно, всё в порядке
# но процесс тут же умирает
if ps -A | grep spread | grep -v grep; thenecho "running wackamole tool..." >> /var/log/mylog;
/usr/local/sbin/wackamole -c /usr/local/etc/wackamole.conf 2>&1 >> /var/log/mylog;
else
echo "spread proccess not found";
fiЗапускаю скрипт кроном:
@reboot /path/to/script/HA-ext.shА ситуация следующая:
С автозапуска службы стартуют, ошибки о том, что wackamole не смог подключиться нету (да и как так можно, когда служба не ведет нормально логи, только инфа о успешном старте). Но виртуальный интерфейс 192,168,9,253 не поднялся (как бы это и есть основная задача: один комп поддерживает виртуальный ай-пи, пока другой, скажем, перегружается)Пробовал отключать автозапуск и стартовать ручками.
Через скрпит - не пашет: процессы есть, ошибок нет, но и Virtual IP (VIP) тоже отсутствует.
Если запускаю службы по порядку из консоли (csh) руками, то иногда (50%) они срабатывают (появляется VIP). Но со скрпита ни как.
Мне нужно 100% появления ай-пи. 100%и руками добиться сложно.Кто, что может сказать по этому поводу?
drbd - работает как Master-Slave причем пишется только на мастера, поетому нет проблем со всеми нодами есть только один нод.
я с фрии не знаком, но вы конечно пробовали ХА на фрии поставить?
>>>Связка drbd+heartbeat, например.
>>>www.drbd.org, www.linux-ha.org
>
>да drbd + ha работают не плохо.
>Linux Virtual Server - сам я не делал, но, кажется он дает
>распределение нагрузки за счет переброски соединения. (было бы интересно посмотреть на
>готовое решение)Ставил я drbd - писать и читать можно только с одной ноды. Т.е. о распределенной файловой системе речь не идет... У кого получилось настроить переключение в случае падения 1й из нод - просьба рассказать как. drbd работает но многого не умеет, будем изучать что умеет Linux HA
у связки ha+drbd общий смысл (imho) такой:
1. оба нода работают. ha - поднимает виртуальный интерфэйс, к которому и кидаются клиенты. drbd - постоянно реплицирует данные с мастера на слэйв.
2. отвалился мастер - HA (на слэйве) переводит свой /dev/drbd* в из slave в master и поднимает все тот же виртуальный интерфэйс (если primary node по харду сильнее второго мона установить auto fail back. не соит включать первый нод после сбоя при выключеном втором (иначе зачам весь геморой с кластером), в последней версии drbd есть multiprimary - работают действительно параллельно, но с репликацией были проблемы, т.к. копать сюда необходимости не было, подробнее не скажу).
>[оверквотинг удален]
>1. оба нода работают. ha - поднимает виртуальный интерфэйс, к которому и
>кидаются клиенты. drbd - постоянно реплицирует данные с мастера на слэйв.
>
>2. отвалился мастер - HA (на слэйве) переводит свой /dev/drbd* в
>из slave в master и поднимает все тот же виртуальный интерфэйс
>(если primary node по харду сильнее второго мона установить auto fail
>back. не соит включать первый нод после сбоя при выключеном втором
>(иначе зачам весь геморой с кластером), в последней версии drbd есть
>multiprimary - работают действительно параллельно, но с репликацией были проблемы, т.к.
>копать сюда необходимости не было, подробнее не скажу).Я вчера плакал от смеха...
кароче все я поставил drbd + GFS...
замечательно .. дошел до точки монтирования gfs и тут всплыла такая штука что лом ядро с 2.6.20 GFS 1 не поддерживает... только GFS2 ....
кароче я плачу... прийдеться все заново компилить ... причем ручками....
Можно уточнить одну вешь ?
Я так понял связка ha+drdb работает как отказостойчивый кластер в котором второй комп кластера большую чать времени простаивает и его ресурсы не используются.
Можно ли сделать такой кластер, в котором помимо отказоустойчивости реализовалось бы распределение нагрузки(использование общей памяти и процессоров), чтобы второй сервер выполнял не только роль бэкапа, но и принимал активное участие в обработке процессов ?
Или вариант, в котором на одной машине кластера выполняется, например апач, а на второй в это время работает мускул, но на обоих машинах установлены оба этих сервиса, так то при падении машины с мусклом(или при отказе самого мускла) другая машина поднимала этот сервис. При этом могут ли машины кластера делить между собой ресурсы ?
Спасибо !