LINUX.ORG.RU

CentOS 6.5 cluster + EMC VNX5400 Block + mpath + GFS2 + PG

 , , , ,


0

2

Здравствуйте, коллеги!

Собственно такая идея:

Цепляем на гипервизор LUN от SAN стораджа, собираем к нему пути через multipath, получаем девайсину /dev/mapper/mpathb. (Active/Passive) Поднимаем две виртуалки, вписываем нашу сторадж-девайсину в /etc/libvirt/qemu/%guests%.xml

  <disk type='block' device='disk'> 
         <driver name='qemu' type='raw' cache='none'/> 
         <source dev='/dev/mapper/mpathb'/> 
         <target dev='sdс' bus='scsi'/> 
  </disk> 

, делаем virsh define, ребутаем ноды и проверяем, что все прицепилось. ставим на ноды cman, ricci, rgmanager, fence, gfs2-utils. На HV, соответственно, ставим Luci.

Далее на обеих нодах пишем:

mkfs.gfs2 -p lock_dlm -t testcluster:GFS -j 2 /dev/XXX 

Лезем на Luci https://node3:8084

Создаем кластер, Qdisk, failover домен, монтируем gfs2 диск на обеих нодах (например, в /pgsql), добавляем ресурс GFS2 на кластер, создаем сервисную группу и добавляем ресурс GFS2. Выдыхаем.

Далее на обеих нодах ставим postgres, на одном инициализируем БД в /pgsql, на втором показываем где лежит БД, создаем failover IP, под которым будет жить postgres.

Это все описано коряво, но, надеюсь, идею удалось донести. Итак, уважаемые, прошу вашего мнения - будет ли это жить, годится ли такое решение в продакшн или может быть у кого-нибудь есть более продуктивные «боевые» наработки и советы, которыми не жалко поделиться?

У меня только один вопрос: зачем имея san городить ещё и кластерную фс? Тем более «failover ip» намекает, что ты делаешь HA, а не мульти-мастер.

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

зачем имея san городить ещё и кластерную фс

а как? пока есть необходимость чтобы постгрес работал в failover, но в дальнейшем надеемся запустить его и в load-balance - как в таком случае монтировать один LUN на нескольких нодах c правами rw и соблюдать при этом консистентность БД?

если есть хорошая литература по кластеризации - поделитесь пожалуйста.

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

но в дальнейшем надеемся запустить его и в load-balance

Об этом надо было написать сразу. Так вроде всё сходится.

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

но в дальнейшем надеемся запустить его и в load-balance - как в таком случае монтировать один LUN на нескольких нодах c правами rw и соблюдать при этом консистентность БД?

Никак.

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

Как вариант, прицепить lun на hv через lvm, создать lv и пробросить его нодам, на которых, в свою очередь, развернуть gfs. Тоже не прокатит, и, если нет, то почему? Я тогда не понимаю нафига нужен gfs...

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

GFS не имеет отношения к тому, что на шареном разделе ты при запуске двух постгресов не получишь HA, а получишь ерунду и очень вероятную потерю данных. Если запустишь, конечно.

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

Интересно, а как же DLM?... Он тут тоже не при чем?
Слушай, а можешь дать какую-нибудь хорошую ссылку где почитать как правильно запустить два постргреса в load-balance?

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

DLM работает на урофне ФС, а не на уровне постгреса.
Почитай вики постгреса на тему HA, там есть всё что можно про это сказать.

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

То, что DLM на уровне фс я знаю. Я хотел уточнить, что раз GFS2 использует DLM, разве это не даст возможность использовать одну БД несколькими нодами с постгресом? Т.е. я думал, что они (ноды) будут попеременно обращаться к БД, а для того, что бы у них не случилось одновременного обращения в раздел с БД, за этим как раз и будет следить конга и рулить через DLM?

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

использовать одну БД несколькими нодами с постгресом

А PostgreSQL это вообще умеет?

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

И? По ссылке обычный двухнодовый HA-кластер, active-passive. Про Postgres-XC упоминают, что он просто есть и «Under heavy development».

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