LINUX.ORG.RU

Обеспечение надежности


0

0

Есть два физических компьютера,
на них выполняется приложение (веб-сервис).
Нужно обеспечить работоспособность веб-сервиса в случае
выхода из строя любого компьютера.

Что я хочу сделать:
- установить на каждый компьютер по DNS,
(настроить их так, чтобы преобразовывали
имя в адрес своего компьютера)
- клиентские компьютеры настроить на оба DNS,
тогда запросы будут идти на работающий в данный момент компьютер
- приложение работает с базой данных на своем компьютере,
поэтому, если работает компьютер, то работает и приложение

В нормальном режиме, должны работать два комплекта ПО
по одному на компьютере, брать на себя половину нагрузки
(путем настройки предпочтительного для клиента DNS в DHCP)
и как-то реплицировать между собой изменения.

В случае выхода из строя компьютера, приложение на другом
компьютере должно продолжать обслуживать своих клиентов
и брать на себя обслуживание осиротевших клиентов

В случае ввода в строй ранее отказавшего компьютера
работа должна автоматически восстанавливаться.

Внимание вопрос:
- какая опенсорсная БД и как обеспечивает такой режим работы.

Ответ на: комментарий от ArsenShnurkov

Если Java, то многие app-сервера умеют кластеризацию. Даже Tomcat что-то умеет.

У mysql есть кластеризация, postgresql вроде полноценной нет, но есть куча велосипедов, насколько я знаю.

А твой подход не масштабируется.

ef37 ★★
()
Ответ на: комментарий от ef37

> У mysql есть кластеризация

С этого места по-подробнее, потому что то, что я помню
говорит о том, что там должно быть партициониривание данных,
или все в памяти надо держать, а мне ни то ни другое не подходит

> А твой подход не масштабируется.

А у меня специальная задача и это решение устраивает.
А в другом случае буду делать по-другому.

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

http://dev.mysql.com/tech-resources/articles/mysql-cluster-for-two-servers.html

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

И почему нельзя было просто сдублировать связь между компьютерами, например путем удвоения числа сетевых карт (одна карта внешняя, одна heartbeat) ?

Может где другая статья по настройке есть?

ArsenShnurkov
() автор топика
Ответ на: комментарий от ArsenShnurkov

Мне в mysql хватало master-slave репликации.

По поводу кластера искать в гугле на темы mysql cluster ndb. Только в две машины не уложишься наверное, там вроде еще управляющая нода нужна. Ну и ограничений тоже хватает.

ef37 ★★
()
Ответ на: комментарий от ef37

насчет управляющей ноды (вот тут описано хорошо - http://webew.ru/articles/252.webew) я понял уже в предыдущем ответе, предложил два решения.

Первой - усеченный третий компьютер, второе - использование более чем одного канала связи.

Во втором случае каждый компьютер из пары может определить что произошло - вышла из строя одна из связей между компьютерами или другой компьютер целиком.

ArsenShnurkov
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.