Estou curioso para saber se alguém realmente está executando o PostgreSQL em um contêiner em produção em algum tipo de sistema de arquivos distribuído - o GlusterFS de preferência, ou algo assim.
Atualmente, estou executando o Mesos / Marathon. Caso o nó do PostgreSQL falhe, o Marathon simplesmente lança outra instância do PostgreSQL em outros nós e se for feito corretamente (descoberta de serviço e aplicativo recuperando-se da perda de conexão com o banco de dados), a tolerância final a falhas será alcançada.
Eu sei que o PostgreSQL tem suas próprias soluções de alta disponibilidade, como envio de logs e backup em espera, mas ainda é necessário resolver o problema de quando mudar de mestre para escravo, como fazê-lo corretamente e assim por diante.
Então, como você executa o PostgreSQL em produção no GlusterFS ou similar? Se sim, é estável? E quanto ao desempenho?
fonte
Respostas:
Cada cluster geralmente tem noção de quorum: os observadores (monitores, o que for) devem decidir qual nó é o principal. Então você pode usar as informações deles para encaminhar solicitações corretamente. É bastante comum executar haproxy não apenas com verificações básicas de integridade TCP / IP , mas com uma lógica de alto nível implementada com consultas específicas de serviço.
Confira pacificadores , por exemplo.
fonte
Você precisa executar o postgresql no modo de serviço com estado. O dimensionamento é feito por mesos, mas a replicação de dados é feita pelo próprio postgresql. Dê uma olhada neste serviço estável do site e em volumes persistentes .
fonte