Fundo:
Estou trabalhando em um cluster de banco de dados PostgreSQL de alta disponibilidade de 2 nós para minha empresa. O sistema possui uma configuração master/standby onde o standby assume as funções do master quando este falha e ambos possuem dados atualizados.
Aqui está uma pergunta anterior que descreve o cenário exato para o qual estou tentando encontrar uma solução: PostgreSQL Failover - Quais ferramentas devo usar?
Cada solução tem uma sobrecarga de replicar o banco de dados entre o mestre e o servidor standby. No entanto, se eu puder compartilhar o mesmo local de dados entre os dois servidores, essa necessidade de replicação será removida.
Estou pensando em usar um armazenamento SAS altamente confiável compartilhado entre os dois servidores para dados do PostgreSQL. Como apenas uma instância do PostgreSQL será executada em um determinado momento (usando o failover do pacemaker), isso deve funcionar, pelo menos no papel.
Meu experimento:
Identifiquei duas estações de trabalho gratuitas em nosso laboratório de teste, Workstation-A e Workstation-B para fins de discussão aqui.
Interrompi o processo do PostgreSQL 9.1 na Workstation-A e Workstation-B
Eu compartilhei as pastas NFS /var/lib/postgresql e /var/log/postgresql da Workstation-A
Eu montei os diretórios acima nos mesmos locais em Workstation-B
eu corri
/etc/init.d/postgresql start
Eu recebi o seguinte erro:
IST FATAL: could not access private key file "server.key": Permission denied
Alguma ideia de como corrigir esse problema?
Preciso disso funcionando como uma prova de conceito que possa ser avaliada para o projeto.
Eu descobri o problema. Foi devido à pasta NAS compartilhada incorretamente. Eu consertei usando esta entrada em /etc/exports
compartilhar.
E se interessar a alguém, consegui fazer o banco de dados compartilhado funcionar com sucesso. A única pasta que precisava ser comum era a pasta acima. E ambas as instâncias do PostgreSQL Server precisam ter arquivos de configuração idênticos para que a pasta de dados seja compartilhada com sucesso.