The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Нужен совет по drbd pri-pri, !*! Verf, 19-Мрт-12, 16:03  [смотреть все]
Добрый день!

Задача:
Организовать отказоустойчивый с балансировкой нагрузки сервер для ПО разработчиков.

Реализовано:
2 сервера, каждый с 2-мя eth гигабитными интерфейсами. Один интерфейс eth1 - в сеть с клиентами, второй eth2 - используется для кросс-кабельного соединения между обоими серверами.

на каждом сервере создаются раздел под drbd, сам drbd настраивается в режиме pri-pri, на клиентах оба сервера прописываются в настройках клиентского ПО с равным приоритетом и поэтому загружены приблизительно равномерно. Поверх раздела drbd настроена ocfs2 файловая система. Для синхронизации drbd и ocfs используется внутренняя сеть через кросс кабель на вторых интерфейсах серверов.

Вроде всё работает замечательно, но вот непонятно как отрабатывать ситуацию, если например в одном из серверов выгорит интерфейс eth1. Т.е. прервётся синхронизация drbd и ocfs, наступит split-brain. По идее каждый сервер будет продолжать отдельно обслуживать клиентов и тем самым увеличивать разницу между расщеплёнными половинками drbd. И потом станет невозможным выбрать с кого синхронизировать данные при устранении split-brain.

Что посоветуете? Или придётся переходить на pri-sec и отказаться от балансировки нагрузки ?

  • Нужен совет по drbd pri-pri, !*! Zl0, 19:47 , 19-Мрт-12 (1)
    • Нужен совет по drbd pri-pri, !*! Verf, 20:27 , 19-Мрт-12 (2)
      >[оверквотинг удален]
      >> в одном из серверов выгорит интерфейс eth1. Т.е. прервётся синхронизация drbd
      >> и ocfs, наступит split-brain. По идее каждый сервер будет продолжать отдельно
      >> обслуживать клиентов и тем самым увеличивать разницу между расщеплёнными половинками drbd.
      >> И потом станет невозможным выбрать с кого синхронизировать данные при устранении
      >> split-brain.
      >> Что посоветуете? Или придётся переходить на pri-sec и отказаться от балансировки нагрузки
      >> ?
      > Если нет связи, то гаси одну голову, самое простое условие при расщеплении
      > мозгов, во всех документах написано, если выгорит тот что смотрит в
      > клиентскую сеть, то и писаться ничего не будет.

      так тут-то и затыка!
      :) а как определить на какой нет связи?

      если на каждой ноде сделать скрипт с попингуем, то при выгорании eth2 на первой ноде пропадёт связь между нодами и получается что каждая зафиксировала "падение" соседа. И что - обоим теперь выключатся?

      Чисто в теории если на server1 выгорает eth2, то на нём же надо сразу же класть и eth1 - тогда нода останется в изоляции и будет заведомо брошенной. Только может получится ситуация, что так решат обе ноды и сами заизолируются :) и где тут отказоустойчивость тогда? :)




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру