Replicacaoo Sincrona e Alta-Disponibilidade com PostgreSQL

  • 4,517 views
Uploaded on

Palestra ministrada no PGDay DF, no Ministério do Planejamento em Brasília.

Palestra ministrada no PGDay DF, no Ministério do Planejamento em Brasília.

More in: Business , Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
4,517
On Slideshare
0
From Embeds
0
Number of Embeds
8

Actions

Shares
Downloads
0
Comments
0
Likes
5

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 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
  • 25. Configurando os nós Em pgpool.conf  backend_hostname0 = 'srv01.dbservers.intranet'  backend_port0 = 5432  backend_weight0 = 1  backend_hostname1 = 'srv02.dbservers.intranet'  backend_port1 = 5432  backend_weight1 = 1  backend_hostname2 = 'srv03.dbservers.intranet'  backend_port2 = 5666  backend_weight2 = 1  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