Мне любопытно, если кто-то на самом деле запускает PostgreSQL в контейнере, работающем в какой-либо форме распределенной файловой системы - предпочтительно GlusterFS или что-нибудь еще.
В настоящее время я бегу Mesos / Marathon. В случае сбоя узла PostgreSQL Marathon просто запускает другой экземпляр PostgreSQL на других узлах и, если все сделано правильно (обнаружение службы и восстановление приложения после потери соединения с базой данных), будет достигнута максимальная отказоустойчивость.
Я знаю, что у PostgreSQL есть свои собственные решения высокой доступности, такие как доставка журналов и горячее резервное резервное копирование, но тогда нужно решить вопрос о том, когда переключаться с главного на подчиненное, как это делать правильно и так далее.
Итак, как вы запускаете PostgreSQL в рабочей среде на GlusterFS или подобном? Если это так, стабильно ли это? Как насчет производительности?
источник
Ответы:
Каждый кластер обычно имеет понятие кворума: наблюдатели (мониторы, что угодно) должны решить, какой узел является главным. Затем вы можете использовать их информацию для правильной маршрутизации запросов. Весьма типично запускать haproxy не только с базовыми проверками работоспособности TCP / IP но и с некоторой высокоуровневой логикой, реализованной с помощью специфичных для службы запросов.
Проверьте миротворец , например.
источник
Вам нужно запустить postgresql в режиме обслуживания с отслеживанием состояния. Масштабирование выполняется с помощью mesos, но репликация данных выполняется самим postgresql. Взгляните на этот сайт с состоянием сервиса и постоянными томами .
источник