Удалённая работа - настроить кластер PostgreSQL

Vslav

Новичок
Требуется специалист на по настройке кластера на PostgreSql на наших серверах.
Нужна система PGCluster в такой конфигурации:
мультимастер репликация на две ноды кластера,
балансировщик
репликатор
мониторинг pgwatch или аналогичный

Все компоненты устанавливаются на отдельных серверах.
Связь между серверами постоянная, сервера в одной стойке.
Операционная система Linux CentOs 6.0 - 6.2, PostgreSql версий 9.0 - 9.2
Проект разовый, работа удалённая по официально оформляемому договору подряда.
Оплата после тестирования работоспособности в размере 10 000 руб.
При быстром и качественном выполнении работы возможно дальнейшее сотрудничество
по поддержке, разработке структуры БД и по разработке системы резервного копирования.
Тел. 8 901 5223547 Вячеслав.
 

MiksIr

miksir@home:~$
9.2 еще в бете, а pgcluster не вышел за рамки 8-го постгреса. Есть форк cybercluster для 9.1, но поскольку это слабо популярный проект, предвижу адскую еею с запуского этого всего, а скорее всего вы просто не найдете того, кто с ним сталкивался и согласится на указанную сумму. Обратитесь в cybertek - они сделают. Если вы все это делаете не для HL, а для HA - в 9.1 появился встроенный синхронный standby.
 

Vslav

Новичок
9.2 еще в бете, а pgcluster не вышел за рамки 8-го постгреса. ...
MiksIr, спасибо за разъяснения.
Давайте рассмотрим два варианта:
PGCluster-1.3 ( который на PostgreSQL 8.0)
или
FailOver Cluster на PostgreSQL 9.х на основе Streaming Replication
Какое решение предпочтительнее для нового проекта?
Вы готовы взяться за настройку?
 

Dovg

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

Мы с ними работаем уже несколько лет, отзывы только положительные.
 

MiksIr

miksir@home:~$
Есть еще http://postgresmen.ru/
Я не возьмусь - по времени не смогу, да и не наработано это у меня до "с закрытыми глазами"
С pgcluster я бы связываться не стал. Скорее все же синхронный stand-by. Я не знаю, будет ли работать синхронный hot stand-by, не вникал, но по документации проблем не вижу. Если оно заработает - получите синхронный мастер-слейв. В совокупности с pgpool который сам умеет разбрасывать запросы запси/чтения на мастер/слейв получится вполне прозрачная для софта система, будет HL, хотя подводные камни могут встретится и тут. Хотя какой HL (high load) для двух серверов мне не понятно, два сервера решают задачу HA (high availability), если же балансировать нагрузку на два сервера и загрузить их хорошо и один ляжет - ляжет и второй под нагрузкой.
 

Vslav

Новичок
Я не возьмусь - по времени не смогу, да и не наработано это у меня до "с закрытыми глазами".
Да, знаю, неблагодарное это дело - кластеры делать! Я делал репликацию на MySQL - вдоволь с ней пришлось повозиться.
Поэтому и хочется найти того, кто это делал в продакшн, а не для красивой статейки в Интернете.

Скорее все же синхронный stand-by. Я не знаю, будет ли работать синхронный hot stand-by.
Конечно не бывает ничего до конца синхронного, причем непонятно что произойдёт с синхронизацией в момент падения мастера.
И не ясно как pgpool определяет живучесть мастера.
 

Dovg

Продвинутый новичок
В совокупности с pgpool который сам умеет разбрасывать запросы запси/чтения на мастер/слейв
Извините, что лезу с оффтопиком.

А разве до разбора запроса можно достоверно определить, будет он или не будет модифицировать данные?
select my_function();, например может и 42 вернуть, а может и половину базы изменить.
 

Vslav

Новичок
А разве до разбора запроса можно достоверно определить, будет он или не будет модифицировать данные?
Можно только после стадии PARSE. Pgpool может делать даже разбивку тяжелого запроса на несколько более легких запросов, которые будут выполнены разными узлами
 

MiksIr

miksir@home:~$
Извините, что лезу с оффтопиком.

А разве до разбора запроса можно достоверно определить, будет он или не будет модифицировать данные?
select my_function();, например может и 42 вернуть, а может и половину базы изменить.
Да, можно запросы, которые 100% не меняющие состояние отсылать на слейв, а остальные - на мастер. Например, начало транзакции - это потенциально изменяющая операция (мы же не знаем что будет внутри), а значит ее нужно на мастер.
 

MiksIr

miksir@home:~$
Конечно не бывает ничего до конца синхронного, причем непонятно что произойдёт с синхронизацией в момент падения мастера.
И не ясно как pgpool определяет живучесть мастера.
pgpool в данном случае балансировщик - ответили ему - работает, не ответили - не работает. Переключение мастера - это отдельная песня, которая строится отдельно, например, на базе heartbeat+pacemaker.
А насчет синхронности - мастер делает операцию, она уходит на слейв, тот дает подтверждение, что все ок, вы получаете ответ от мастера, что все ок. Худшее что может случится, это транзакция прошла, но вы получили ошибку ибо в этот момент мастер упал. В остальном - достаточно надежно должно быть. На практике не использовал, не знаю.
 
Сверху