Replicacaoo Sincrona e Alta-Disponibilidade com PostgreSQL
1. PGDay Brasília 2009
Replicação e Alta-Disponibilidade
é possível?
Dickson S. Guedes
http://guedesoft.net
PGDay Brasília 2009
2. O que vamos ver?
Os desafios
O Plano de Continuidade de Negócio
O Contrato de Nível de Serviço
Alta-disponibilidade e a Alta-performance
Os cenários possíveis
As soluções possíveis
Os custos envolvidos
Os resultados que poderemos obter
Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009
3. Os desafios
O porquê da replicação?
As premissas de segurança
Disponível, Confiável, Íntegro
O modelo ACID
Atômico, Consistente, Isolado e Durável
O paradigma da escalabilidade
O dono do negócio
Os usuários do negócio
Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009
4. O P.C.N.
Os riscos
externos, internos, naturais, hard/soft/peopleware
Os impactos
custo da indisponibilidade, quantificar perdas
A recuperação de desastres
backup, site remoto
A conscientização
treinamentos internos
Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009
5. O S.L.A.
Disponibilidade do Sistema
O sistema precisa estar disponível durante __ dias
por semana das __ horas às __ horas
Perda de dados aceitável
Não mais que __ minutos de entrada de dados
podem ser perdidas
Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009
6. O S.L.A.
Tempo de recuperação
Em caso de um desastre o sistema precisa voltar a
funcionar em no máximo __ horas
Performance
O tempo de resposta das transações da aplicação
não pode exceder mais que __ segundos
Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009
7. O noves
90,0% ~ 56 dias/ano de indisponibilidade
99,0% ~ 3,5 dias/ano de indisponibilidade
99,9% ~ 8 horas/ano de indisponibilidade
99,99% ~ 52min/ano de indisponibilidade
99,999% ~ 5min/ano de indisponibilidade
24x7 / 8x5 / ??x!!
Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009
8. Alta-disponibilidade
O que é necessário?
Menor indisponibilidade possível
Por que é necessário?
Prevenir perda de dados
Evitar indisponibilidade do serviço
Quem precisa?
O dono do negócio
Os usuários do serviço
Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009
9. Alta-performance
O que é necessário?
Menor tempo de resposta possível
Por que é necessário?
Quem gosta de esperar?
Mais dados processados em menos tempo
Quem precisa?
Os usuários do serviço
Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009
10. Os cenários possíveis
Tolerância à falhas
Balanceamento de carga
Sites remotos
Data Warehouse
Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009
11. As soluções possíveis
Tolerância à falhas por disco compartilhado
Espelhamento de Sistemas de Arquivos
Log shipping síncrono (em desenvolvimento)
Multi-master síncrono
Statement-Based
Soluções comerciais
Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009
12. Disco compartilhado
Desempenho normal
Não há perda APLICAÇÃO
Slave não executa
consultas BD BD
Master Slave
Scripts auxiliares
Nagios
Custos?
Pontos de falhas?
DADOS
Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009
13. Disco compartilhado
Master morreu e agora?!
Aplicação precisa tratar APLICAÇÃO
Usar um heartbeat
Slave vira master
BD BD
Master Master
Master volta
manualmente
DADOS
Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009
14. Espelhamento de Sistema de
Arquivos
Desempenho normal no
Master APLICAÇÃO
Síncrono
Assíncrono com
BD BD
Master Slave
possíveis perdas
Slave não executa
consultas
Custos?
DRDB
DADOS DADOS
Pontos de falhas?
Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009
15. Espelhamento de Sistema de
Arquivos
Master morreu e agora?!
Aplicação precisa tratar APLICAÇÃO
Usar um heartbeat
Slave vira master
BD BD
Master Master
Master volta
manualmente
Checar integridade dos
dados do master
DADOS DADOS
Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009
16. Log shipping sincrono
Desempenho no master
depende da rede APLICAÇÃO
Sucessor do warm-
standby BD BD
Master Slave
Síncrono sem perdas
Recuperação rápida
Hot Standby
Custos?
DADOS DADOS
Pontos de falhas?
Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009
17. Log shipping sincrono
Master falhou
pg_standby pode APLICAÇÃO
promover o slave
para master
BD BD
Ambos os modulos Master Master
em desenvolvimento
DADOS DADOS
Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009
18. Baseado em sentenças pgpool-II
APLICAÇÃO
Balanceamento de carga
nas consultas PGPOOL-II
Consultas paralelas
Escalabilidade em
BD BD
01 02
consultas
Pool de conexão
Custos?
Pontos de falha?
DADOS DADOS
Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009
19. Baseado em sentenças pgpool-II
APLICAÇÃO
Um dos masters
morreu? PGPOOL-II
pgpool sabe!
A aplicação não “:)
BD BD
01 02
A volta do master de
forma online exige o
SystemDB
DADOS DADOS
Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009
20. Baseado em sentenças sequoia
APLICAÇÃO
Balanceamento de carga
nas consultas SEQUOIA 01 SEQUOIA 02
Consultas paralelas
Escalabilidade em
BD BD BD BD
01 02 03 04
consultas
JDBC, ODBC
Custos?
Pontos de falha?
DADOS DADOS DADOS DADOS
Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009
21. Outros
Postgres-R
PGCluster
Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009
22. Um exemplo...
Configurando o pgpool-II
Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009
23. Instalando pgpool-II
Acessar
http://pgfoundry.org/frs/?group_id=1000055
Obter a versão mais atual: pgpool-II 2.2
Descompactar no servidor onde irá rodá-lo
Executar:
./configure && make && make install
cd /usr/local/etc/
cp pgpool.conf.sample pgpool.conf
cp pcp.conf.sample pcp.conf
Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009
24. Configurando pgpool-II
Em pgpool.conf
listen_addresses = '*'
port = 9999
pcp_port = 9898
replication_mode = true
load_balance_mode = true
Em pcp.conf
postgres:e8a48653851e28c69d0506508fb27fc5
No pg_hba.conf
trust para o IP do pgpool e usar pool_hba.conf
Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009
26. Gerenciando o pgpool-II
Iniciando em primeiro plano
pgpool
Iniciando em segundo plano
pgpool -n -d > /var/log/pgpool.log 2>&1 &
Parando
pgpool stop
Parando imediatamente (arriscado)
pgpool -m fast stop
Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009
27. Estrutura testada
Blade Center
● Capacidade para 14 lâminas;
● Fonte de alimentação redundante e hot-swap;
● 02 x Switches SAN 4Gb/s;
● 02 x Switches Gigabit EthernetServer
● Connectivity com 14 portas internas e 6 portas
externas;
2 lâminas JS21 – Servidor de Banco de Dados
● 2x PowerPC 970MP 2.5GHz / 2.3GHz Dual Core;
● 12 GB MEM PC2-3200 CL3 ECC DDR2 SDRAM RDIMM;
● 1xHBA
● 2 x HD de 73GB 10K SFF SAS;
● Dual Gigabit Ethernet Integrado;
● RAID-0 ou -1 integrado padrão no servidor blade, RAID-1E;
01 Storage IBM modelo DS4700 Express
2GB de cache;
9 x discos 300GB 2 Gbps, 10K RPM;
Implementa RAID1+0;
Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009
28. Testando
Criar um banco de testes conectando no pgpool-II
createdb -p 9999 -h srvpool.dbservers.intranet replicacao
Popular o banco com o pgbench:
pgbench -i -s 3 -p 9999 -h srvpool.dbservers.intranet replicacao
Executar benchmarks nos servidores individuais e no pgpool-II:
pgbench -s 3 -p 5432 -h srv01.dbservers.intranet replicacao
Resultado obitido em TPS: ~ 1200
pgbench -s 3 -p 5432 -h srv02.dbservers.intranet replicacao
Resultado obitido em TPS: ~ 1200
pgbench -s 3 -p 5666 -h srv03.dbservers.intranet replicacao
Resultado obitido em TPS: ~ 1200
pgbench -s 3 -p 9999 -h srvpool.dbservers.intranet replicacao
Resultado obitido em TPS: ~ 900 (perda na replicação)
Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009
29. Conclusão
Não existe uma caixinha pronta chamada
replicação!
Não existe almoço grátis!
Há vários custos envolvidos na replicação!
Entenda seus requisitos e como as diversas
alternativas se adéquam à eles!
Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009
30. Contatos
Dickson S. Guedes
Email e Gtalk: guedes@guedesoft.net
Home Page: http://guedesoft.net
IRC: Guedes em irc.freenode.net
#postgresql, #postgresql-br
Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009