LINUX.ORG.RU
ФорумAdmin

Отказоустойчивый файловый сервис

 , , ,


2

0

Здравствуйте, уважаемые. Возникла задача, нужно сделать две реплицыруемые ноды для файлового вебсервиса. Из чего состоит нода: 3 сервера + 1 сетевой накопитель . Как это работает сейчас: в каждой ноде есть по серверу, к которому по iscsi подключён nas, ноды реплицируются между собой с помощью GlusterFS (mirror) , и MySQL M-M. База маленькая (до 100мб), и находится на локальных дисках, файлы находятся на накопителе. Но так как под ноду выделено 3 сервера, нужно чтобы в случае падения сервера(независимо от причины), соседний переключал на себя его ip, и забирал на себя роль вебсервера. На каждую ноду есть только один белый ип. В чём состоит вопрос:

1) Что лучше в таком случае сделать с базой данных ? Запасные сервера подключить как slave?

2)Как сделать автоматическое перехватывание функций гластера соседним сервером, если это возможно, или какие ещё есть решения?

P.S. Все сервера крутятся под CentOS 6.6, имеют 2 х Xeon e5405, 16GB ram.

Если у тебя там ВЕЗДЕ master-master, как насчет высунуть их все в интернет с DNS round-robin?

Если mysql уже в режиме master-master(надеюсь чем-нибудь типа Galera, а не как некоторые умники делают сервера слейвами друг-другу), то не вижу проблемы подцепить третий(четвертый, стопицотый) сервер

Pinkbyte ★★★★★ ()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от Pinkbyte

MySQL - не главная проблема, главная проблема репликация файлового хранилища с переключением между серверами. Тоесть: в одной ноде главный сервер отпал, запасной переключил nas на себя, и работает дальше, дальше реплицируясь со второй нодой. В этом моя главная проблема.

А по поводу Galera - хорошо что подсказали, о ней не слышал, у меня оно и правда работает слейвами друг к другу. Почитаю о Galera - возможно переделаю, или подниму что то вроде PERCONA XTRADB .

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

или подниму что то вроде PERCONA XTRADB .

Так там галера всё равно нужна будет. Если у тебя М-М репликации везде (glusterfs это позволяет), то тебе пофиг. RR минус только в том, что если нода сдохла, то в каком-то проценте случаев у тебя внешний запрос будет не выполняться. Или нужен балансер и файловер внешний, который будет смотреть что с серверами и перенаправлять, или же нужно DNS записи менять в зависимости от. Тогда нужен будет внешний монитор.

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

Значии поставлю, галеру. Но проблема всё равно в другом:как заставить гластер переключиться на другую ноду, и продолжить репликацию?

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

Для гластера и галер нужно как минимум 3 ноды, чтобы не получился split-brain. Во вторых, это мастер-мастер. Там куда ни пиши - всё ок. Т.е., например, гластер на трёх компах, на каждой гластер соединяется на локалхостовый сервис. Локалхост, типа, всегда доступен, а файлы там автоматом реплицируются на другие ноды.

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

Нод у меня к сожалению только две. И ещё: если все три сервера в одной ноде будут подключены к одному накопителю, будет ли гластер на них работать корректно?

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

Я не до конца понял что тебе нужно и как там у тебя. А есть проблема держать на разных накопителях? А нод 3 надо сделать, конечно. Почитай про split-brain. Хотя, если терпит какой-то даунтайм, то можно.

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

Нод у меня к сожалению только две. И ещё: если все три сервера

Воу-воу-воу, полегче. Ты с терминологией путаешься. Судя по всему нод у тебя - 6, но они принадлежат разным нод-группам, по 3 ноды на группу. Не сбивай людей с толку.

Нода = физический/реже виртуальный сервер. А то что описываешь ты - это группа нод(или пул). Ноды часто группируют, например, по месторасположению(стойка, датацентр и т.д.).

Так вот я хз как там с GlusterFS с распределением нод по пулам, но тут у тебя напрашивается CephFS, в которой это есть :-)

Да, в том числе и переключение клиента с дохлого «монитора» на активный(в терминологии Ceph - демон-«монитор» общается с клиентом, а стораджи и хранилища метаданных от непосредственно клиента по умолчанию скрыты, их расположения отдаёт клиенту именно «монитор»)

В серьезном продакшене я правда CephFS не гонял - пока тестируем. Про сплит-брейн выше уже правильно заметили, желательно нечетное количество нод(или если позволяется - правильно проставленный «вес» ноды), чтобы при разрубании мозгов, так сказать не превратился кластер в тыкву.

Правильнее говорят - «чтобы был кворум». Если связь между нодами разрубится аккурат пополам(три на три), то каждая часть будет мнить себя царем горы и потом когда связь восстановится может случиться нормальный себе такой факап. А с кворумом 2 из 3, 3 из 5, 4 из 7 и т.д. - там где меньше нод - те посчитают себя ненужными и отвалятся, приняв после реконнекта «волю» большинства, так сказать.

P.S. Что-то меня на метафоры потянуло к концу дня

Pinkbyte ★★★★★ ()
Последнее исправление: Pinkbyte (всего исправлений: 3)
Ответ на: комментарий от Pinkbyte

P.S. Что-то меня на метафоры потянуло к концу дня

Зато представить можно живо и в красках. :) Чем без метафор втыкать в сухой текст.

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

Спасибо, про CephFS слышал (после случая с cloudmouse), но не разбирался. Сейчас хоть посмотрб что оно такое.

Сервис небольшой даунтайм терпит (до 3 часов по ночам, до полача днём), так что перевести вполне реально. Можно даже попробовать без даунтайма.

И спасибо что всё так хорошо расписали:)

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