Linux + Postgres. Или просто Кластер

Есть и такой ОС.

Модератор: weec

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
BI_J
сержант
Сообщения: 154
Зарегистрирован: 2008-09-19 12:21:10

Linux + Postgres. Или просто Кластер

Непрочитанное сообщение BI_J » 2008-11-21 11:48:23

Приветствую Вас уважаемые жители форума

Стоит следующая задача:
Организовать отказоустойчивый сервер БД.
Усть 2 сервера, ОС Linux СentOS. БД Postgresql. Я так понимаю что нужно настроить кластер между этими СО.
То есть, если один сервер (нод) выходит из строя, то вся нагрузка ложиться на оставшийся рабочий сервер (нод).

О "кластере" пока знаю очень мало. Не понимаю как процесс может мигрировать с одного сервера на другой, как и где данные будут храниться если один сервер вообще потухнет. И по какому IP клиенты буду обращаться к серверу, я так понимаю должен быть IP на эти два сервера, что бы клиент вообще не замечал поломки.

Может уже есть отработанные решения?
А вообще буду благодарен за любую помощь или грамотную инфо.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: Linux + Postgres. Или просто Кластер

Непрочитанное сообщение hizel » 2008-11-21 13:49:03

я знаю только slony
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

BI_J
сержант
Сообщения: 154
Зарегистрирован: 2008-09-19 12:21:10

Re: Linux + Postgres. Или просто Кластер

Непрочитанное сообщение BI_J » 2008-11-21 14:02:35

Насколько я знаю slony это решение репликации для Postgresql
А не кластер для Linux.

Или я ошибаюсь ??

Я вот еще что подумал.
Может есть способ обьединения двух физических серверов в один логический (как к примеру Raid-1 обьединяет винты) .
Что бы потом можно было обращаться к нему как одному, ставить софт и т.д.
И при выходе из стоя одного, другой на стреме, как не в чём не бывало.

Andy
ст. лейтенант
Сообщения: 1117
Зарегистрирован: 2007-03-04 7:48:58
Откуда: Mytischi

Re: Linux + Postgres. Или просто Кластер

Непрочитанное сообщение Andy » 2008-11-24 13:05:43

Тебе наверное drbd нужен
Jul 16 19:37:15 freebsd sshd[4152]: Invalid user idiot from 210.75.200.104

Аватара пользователя
koffu
сержант
Сообщения: 154
Зарегистрирован: 2008-03-23 0:51:18
Откуда: Киев
Контактная информация:

Re: Linux + Postgres. Или просто Кластер

Непрочитанное сообщение koffu » 2008-11-25 22:46:39

Варианта 3:
1й: Организовать встренными средствами периодические репликации баз между серверами (не знаю какой использовать софт, подсказать не могу);

2й: HeartBeat + DRBD - В случае падения основной ноды, её роль через несколько сек подхватит вторая (IP alias перейдет на другой комп, запустится сервис БД, DRBD перейдет в Primary Mode, отправится отчет на мыло и что еще сконфигурируешь);

3й: Виртуализация XEN + Heartbeat + DRBD - две и более ноды, все как и во втором, только БД будет выполняться в виртуальной среде и при переходе (живой миграции) на другую ноду(в случае какой-то команды или запланированного обслуживания, а не выхода из строя hw или его зависания) не произойдет разрыва конектов, никто даже не заметит перехода. Для облегчения задачи можно заюзать Ganeti, она сама будет следить за работой кластера и его гостей;

Я организовывал обе схемы на Debian и Ubuntu, работает успешно и сейчас. Для CentOS все будет точно-так-же.

BI_J
сержант
Сообщения: 154
Зарегистрирован: 2008-09-19 12:21:10

Re: Linux + Postgres. Или просто Кластер

Непрочитанное сообщение BI_J » 2008-11-25 23:56:22

koffu спасибо огромное за информацию
На сколько я знаю встроенных средств репликации в Postgresql нет, для этого есть решение Sloni

Про DRBD уже немного почитал. Там все на англ. много времени уйдет :(

А вот такое HeartBeat, Ganeti и XEN ???

Серверов будет только два (две ноды)

Может есть у вас документация на русском ??
Подскажите с чего начать ??

Аватара пользователя
koffu
сержант
Сообщения: 154
Зарегистрирован: 2008-03-23 0:51:18
Откуда: Киев
Контактная информация:

Re: Linux + Postgres. Или просто Кластер

Непрочитанное сообщение koffu » 2008-11-26 0:21:03

Heartbeat - продукт проекта Linux-HA, позволяющий реализовать механизм безотказной работы отдельных частей кластера
XEN - система виртуализации (подобно Vmware,VirtualBox) по функционалу на одном уровне с Vmware ESX, недостаток (для меня не существенный) админить с консоли, хотя мне больше нравится, чем пимпочки ставить и тыкать кнопку Next. Из всех протестированных XEN самый удобный и быстрый в работе по сравнению с аналогами Linux-Vserver, OpenVZ, Vmware(платный).
Очень хороший ресурс, много статей на русском под Debian Linux
http://xgu.ru
офсайт Linux-HA
пару статеек на эту тему :
http://sozinov.blogspot.com/2007/06/1-heartbeat.html
http://www.opennet.ru/docs/RUS/ha_cluster/
там довольно подробно расписано все и в гугле много информации.

BI_J
сержант
Сообщения: 154
Зарегистрирован: 2008-09-19 12:21:10

Re: Linux + Postgres. Или просто Кластер

Непрочитанное сообщение BI_J » 2008-11-26 0:48:18

koffu Еще раз спасибо :good:
буду пробовать

Аватара пользователя
koffu
сержант
Сообщения: 154
Зарегистрирован: 2008-03-23 0:51:18
Откуда: Киев
Контактная информация:

Re: Linux + Postgres. Или просто Кластер

Непрочитанное сообщение koffu » 2008-11-26 1:01:04

Если где-то возникнут тупиковые ситуации могу поделиться рабочими конфигами для сервисов. На авторство и пьедестал не претендую, у меня это работает так как мне нужно! :smile: В большинстве вопросов гуглъ, man, /usr/share/doc в помощь!

BI_J
сержант
Сообщения: 154
Зарегистрирован: 2008-09-19 12:21:10

Re: Linux + Postgres. Или просто Кластер

Непрочитанное сообщение BI_J » 2008-11-30 16:48:38

День добрый уважаемый koffu
У меня снова вопросы :oops:
Не совсем понимаю зачем компилировать ядро Linux, тем более что доке сказано что нужно его сконфигурировать так же как исходной ядро системы, в чем же смысл компиляции ??

Если можно, объясните еще в чем выгода виртуализации postgresql на XEN
VMware я пользуюсь только для тестов, а вот в чем практическая ценность на боевых серверах не совсем понимаю.

Если можете поделиться своими конфигами, буду очень признателен.

Спасибо

Аватара пользователя
koffu
сержант
Сообщения: 154
Зарегистрирован: 2008-03-23 0:51:18
Откуда: Киев
Контактная информация:

Re: Linux + Postgres. Или просто Кластер

Непрочитанное сообщение koffu » 2008-12-02 1:26:38

*

Код: Выделить всё

Не совсем понимаю зачем компилировать ядро Linux, тем более что доке сказано что нужно его сконфигурировать так же как исходной ядро системы, в чем же смысл компиляции ?? 
Пересобирать ядро на большинстве дистрибутивов не нужно. Поддержка XEN например, на сегодняшний день имеется практически во всех дистрибутивах, нужно только установить готовое ядро с его поддержкой. Если убунту или дебиан, то это пакет linux-image-2.6.18-6-686-xen (debain etch), если CentOS( для 4.7) - kernel-xenU-2.6.9-78.EL.i686.rpm
Не совсем я понял для чего компилировать и под что настраивать как исходное? Какой дистрибутив будет использоваться? (так будет проще для понимания).

Если можно, объясните еще в чем выгода виртуализации postgresql на XEN
Я об этом описывал в самом начале, основные вкусности - живая миграция(без разрыва соединений, переезд и независимость от железа физ серверов), управление ресурсами(лимиты памяти, CPU, io), возможность создания снэпшотов в важные моменты, возможность управлять серверами с "физ" консоли(по ssh удаленно можно установить новый сервер, настроить его, пока невозможно зайти на него по-сети), в основном для этого. Основное отличие от конкурентов - это скорость, особенно если речь идет об гостевых доменах Windows, и возможность полностью автоматизировать работу по поддержке ресурсов, т.е. миграцию и т.п.

BI_J
сержант
Сообщения: 154
Зарегистрирован: 2008-09-19 12:21:10

Re: Linux + Postgres. Или просто Кластер

Непрочитанное сообщение BI_J » 2008-12-02 2:34:40

Доброго времени суток koffu

С системой вроде как определились, CentOS-5.1 (RedHat совместимый)
Вроде как и с железом определились:
1. Два одинаковых сервера сервера (Xeon 2.5)
2. Внешний дисковый масив
База Postgresql должна лежать на внешнем хранилище, следовательно вопрос синхронизации должен отпасть.

Получается так, я ставлю на обе машины CentOS-5.1, настраивая на них XEN, потом на XEN инсталлирую гостевой домен linux CentOS-5.1 и уже на гостевой linux CentOS-5.1 настраиваю Postgresql.
Это физической железяке нужно кормить две системы, реальную и виртуальную. Правильно я размышляю ???
Вот тут сказано:
http://xgu.ru/wiki/Xen/hardware
что XEN поддерживает аппаратную виртуализацию. Я так понимаю это XEN ставиться прямо на железо и сам является родительской ОС. Может и мои сервера такое умеют......

Аватара пользователя
koffu
сержант
Сообщения: 154
Зарегистрирован: 2008-03-23 0:51:18
Откуда: Киев
Контактная информация:

Re: Linux + Postgres. Или просто Кластер

Непрочитанное сообщение koffu » 2008-12-02 11:28:12

В списке флагов должна быть поддержка vmx, хотя Linux dom0-> Linux domU будет работать и без VMX (у меня, ради эксперимента, XEN работал на стареньком P4 1.8, ни о каком VMX там не может быть и речи!!! Реально он нужен для запуска Windows/FreeBSD и других НЕ МОДИФИЦИРОВАННЫХ систем внутри XEN.). С ходом настройки все правильно. Если синхронизации нет, то можно сторэдж подключить по NFS.

%# cat /proc/cpuinfo | grep flags
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush
dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc pni monitor ds_cpl
vmx smx est tm2 ssse3 cx16 xtpr lahf_lm

Для облегчения администрирования XEN вручную можно поднять терминальный сервер с xfce4 или каким-нибудь icewm и поставить xenman. У него графическая консолька примерно напоминает VmWare. Для создания новых виртуальных машин, я юзаю "xen-tools" - Tools to manage debian XEN virtual servers. Раз в конфиге пишешь настройки, потом в коммандной строке можно их переопределить. А для автоматического управления кластером можно использовать ganeti.

BI_J
сержант
Сообщения: 154
Зарегистрирован: 2008-09-19 12:21:10

Re: Linux + Postgres. Или просто Кластер

Непрочитанное сообщение BI_J » 2008-12-02 15:05:10

Все хорошо, но что делать не понятно :( :st:
Пробовал ставить CentOS 5.1, в пакетах есть раздел "Виртуализация", "Кластеры" и "Кластерное храгилище"
так вот, в разделе "Кластерное храгилище" , среди прочего есть следующее: kmod-gfs-xen, kmod-gnbd-xen
значит ли это что xen уже установлен и поддерживается ядром?? (установил все что связано с кластером) :oops:

Аватара пользователя
koffu
сержант
Сообщения: 154
Зарегистрирован: 2008-03-23 0:51:18
Откуда: Киев
Контактная информация:

Re: Linux + Postgres. Или просто Кластер

Непрочитанное сообщение koffu » 2008-12-02 15:27:14

Я на CentOS не делал, точно и пошагово могу рассказать как делать в ubuntu, debian, там вообще все просто несколько коммманд и все готово.
Посмотри тут для CentOS и тут для Ubuntu,Debian, думаю поможет статья.

BI_J
сержант
Сообщения: 154
Зарегистрирован: 2008-09-19 12:21:10

Re: Linux + Postgres. Или просто Кластер

Непрочитанное сообщение BI_J » 2008-12-02 20:44:03

ну теперь кое что получается :Yahoo!:
xen поставилсяи даже запускается, вот только система ставиться не хочет :(

есть парочку вопроссов:
1. как вы настраиваете "реальную" ОС?? Минимальный набор ?? или она тоже обрабатывает пользователей (DNS или еще может что) ?? или лучше минимальный набор поставить на гостевую ОС?? Как грамотнее экономить ресурс железа??
2. при создании виртуальной машины, куда лучше сохранять, на файловую систему или в *.img файл ???

Аватара пользователя
koffu
сержант
Сообщения: 154
Зарегистрирован: 2008-03-23 0:51:18
Откуда: Киев
Контактная информация:

Re: Linux + Postgres. Или просто Кластер

Непрочитанное сообщение koffu » 2008-12-03 13:25:30

Ноды лучше всего настраивать с минимальным кол-вом софта, он там попросту не нужен, максимум у меня введена в домен и авторизует по ssh через pam_winbind, а раз уже samba стоит, то и расшары для iso и всякой байды. Если есть нужда в DNS, Proxy сервере, можно его настроить тоже гостевым в XEN. Файловые системы лучше всего складывать в LVM, её легко можно будет переносить, делать снэпшоты, resize. А вот ресурсы лучше всего будет сразу прописать и ограничить, т.к. при высокой нагрузке это вылезет боком.

BI_J
сержант
Сообщения: 154
Зарегистрирован: 2008-09-19 12:21:10

Re: Linux + Postgres. Или просто Кластер

Непрочитанное сообщение BI_J » 2008-12-03 15:24:43

А можно конкретные примеры:
как это реализовано у вас?
1.
Файловые системы лучше всего складывать в LVM ??
2.
А вот ресурсы лучше всего будет сразу прописать и ограничить

BI_J
сержант
Сообщения: 154
Зарегистрирован: 2008-09-19 12:21:10

Re: Linux + Postgres. Или просто Кластер

Непрочитанное сообщение BI_J » 2008-12-05 12:30:40

Попробовал поставить XenServer, вроде как получилось, ось установилась.
Но что-то не нравиться мне это решение, слишком сложное :(

Аватара пользователя
koffu
сержант
Сообщения: 154
Зарегистрирован: 2008-03-23 0:51:18
Откуда: Киев
Контактная информация:

Re: Linux + Postgres. Или просто Кластер

Непрочитанное сообщение koffu » 2008-12-05 12:54:04

с LVM все просто, если использовать xen-tools, там в конфиге указываешь использовать LVM и его название, а потом просто заменить пути, напр /home/xen/test_server/root_image.img на /dev/mapper/xen-testserver-root. На xgu.ru есть как установить: вес - xm weight, лимит CPU - xm sched-credit, лимиты на ввод-вывод. А вообще самое лучшее решение не "черный ящик" от "супер аццкого производителя", а то, что сам собрал своими руками.

paix
лейтенант
Сообщения: 863
Зарегистрирован: 2007-09-24 12:41:05
Откуда: dn.ua
Контактная информация:

Re: Linux + Postgres. Или просто Кластер

Непрочитанное сообщение paix » 2008-12-06 11:07:45

BI_J я бы рекомендовал для начала просто сделать HA кластер, без xen. Чтобы разобраться что к чему.

drbd + heartbeat то что нужно, но в твоем случае с учетом общего дискового массива, drbd не нужен.

Поэтому просто настрой базовую систему на обоих нодах, дальше поставь туда херберт.
(кстати неплохо бы обновить centos, уже давно 5.2 версия есть)

Итого у тебя будет в один момент времени активна только одна нода (и будет иметь виртуальный айпи), в случае выхода ее из строя, херберт на резервной машине перетянет этот виртуальный айпишник себе и запустит там постгрес. Поскольку хранилище одно, файлы синхронизированы.

Как настроиш это, можно и xen попробовать ;) Только если не знаеш зачем он тебе нужен, и нужен ли вообще - не настраивай.

Чем проще - тем лучше.
With best wishes, Sergej Kandyla

BI_J
сержант
Сообщения: 154
Зарегистрирован: 2008-09-19 12:21:10

Re: Linux + Postgres. Или просто Кластер

Непрочитанное сообщение BI_J » 2008-12-08 19:01:44

paix Спасибо большое
Я как раз сам пришёл к этому решению
Версию линукса уже обновил.
Настроил версию heartbeat-2.1.4. Правда на сайте есть уже 3.х но пока не пробовал, времени не хватает :(

Почти все, но мне не понятны еще некоторые моменты. Могли бы Вы подсказать ?

Мне не пока еще не понятно как как работает устройство STONITHв системе их установилось много, а какое нужно именно мне не ясно.

Код: Выделить всё

 /usr/sbin/stonith -L
apcmaster
apcmastersnmp
apcsmart
baytech
cyclades
drac3
external/hmchttp
external/ibmrsa
external/ibmrsa-telnet
external/ipmi
external/rackpdu
external/riloe
external/ssh
external/vmware
external/xen0
external/xen0-ha
ibmhmc
meatware
null
nw_rpc100s
rcd_serial
rps10
ssh
suicide
wti_nps
И еще один нюанс. heartbeat следит за тем, есть ли "нода" с сети (пинг по указанным интерфейсам), я пробовал делать "ресет" машине, сеть выдергивал, работает.....
но когда падает конкретный процесс :

Код: Выделить всё

/etc/init.d/postgresql stop
ничего не происходит, и это мне не очень нравиться :(
Может там еще что то можно сделать ??

Аватара пользователя
koffu
сержант
Сообщения: 154
Зарегистрирован: 2008-03-23 0:51:18
Откуда: Киев
Контактная информация:

Re: Linux + Postgres. Или просто Кластер

Непрочитанное сообщение koffu » 2008-12-09 11:18:15

Для того, чтобы следить за процессами попробуй daemontools или ему подобный. Можно, как вариант, поставить Nagios, настроить плагин, чтобы делал запрос в базу, измерял время ответа, доступность и если что-то падает пытался через event_handler перезапустить сервис, но это... по воробью из пушки, разве только если nagios уже где-то работает. Хотя тоже есть плюсы - будет вся статистика падений, перезапусков и миграции и прочих параметров + уведомление по SMS/e-mail, что бывает очень нужно для отчетности перед начальством в случае непредвиденных обстоятельств. :smile:

paix
лейтенант
Сообщения: 863
Зарегистрирован: 2007-09-24 12:41:05
Откуда: dn.ua
Контактная информация:

Re: Linux + Postgres. Или просто Кластер

Непрочитанное сообщение paix » 2008-12-09 14:09:50

Имхо следут отличать мух от котлет

резервная нода тебе нужна на случай если не работает основная
Если постгрес упадет (например, закончилось место, то тебе мало чем поможет резервная нода)
А также представь что ты просто рестартил постгрес а в это время херберт подумал что он сдох и попытался перетянуть управления на себя?

Вообщем

поставь монит, настройка простая есть в статьях на этом сайте.

Код: Выделить всё

monit.i386 : Process monitor and restart utility
Нагиос это отдельная тема (к рестарту процессов имхо не относящаяся) но весьма полезная в будущем )

На счет стониша не знаю. Не припомню чтобы вообще чтото в этом духе настраивал когда делал связку heartbeat + drbd
With best wishes, Sergej Kandyla

BI_J
сержант
Сообщения: 154
Зарегистрирован: 2008-09-19 12:21:10

Re: Linux + Postgres. Или просто Кластер

Непрочитанное сообщение BI_J » 2008-12-13 15:00:42

День добрый paix
Столкнулся с проблемой на боевых серверах (на виртуальных вроде как работало)
/etc/ha.d/haresources

Код: Выделить всё

rvnascue01.aes-ua.com   10.248.200.44 \
Filesystem::/dev/sdb3::/data/::ext3 \
postgres-8.3
При /etc/init.d/heartbeat start первые две шары подымаются, а вот postgres в упор не видит
При /etc/init.d/heartbeat stop он его резко начинает видеть, и пытается остановить. Но поскольку он не запущен, в логах циклическая ругать и сервак перегружается (как после ресет)

И еще при reboot первичного сервака он не может завершить процесс heartbeat так висит на этом :(

Что с этим делать ?