PGDay Brasília 2009



Replicação e Alta-Disponibilidade
          é possível?



Dickson S. Guedes
http://guedesoft.net
P...
O que vamos ver?

        Os desafios
    



        O Plano de Continuidade de Negócio
    



        O Contrato de N...
Os desafios

       O porquê da replicação?
   



       As premissas de segurança
   


           Disponível, Confiáv...
O P.C.N.

        Os riscos
    


            externos, internos, naturais, hard/soft/peopleware
        




        O...
O S.L.A.

       Disponibilidade do Sistema
   


           O sistema precisa estar disponível durante __ dias
       
...
O S.L.A.

       Tempo de recuperação
   


           Em caso de um desastre o sistema precisa voltar a
       

      ...
O noves

        90,0% ~ 56 dias/ano de indisponibilidade
    


        99,0% ~ 3,5 dias/ano de indisponibilidade
    
...
Alta-disponibilidade

        O que é necessário?
    


            Menor indisponibilidade possível
        




     ...
Alta-performance

        O que é necessário?
    


            Menor tempo de resposta possível
        




        P...
Os cenários possíveis

        Tolerância à falhas
    




        Balanceamento de carga
    




        Sites remoto...
As soluções possíveis

        Tolerância à falhas por disco compartilhado
    


        Espelhamento de Sistemas de Arq...
Disco compartilhado

        Desempenho normal
    



        Não há perda                                 APLICAÇÃO
   ...
Disco compartilhado

        Master morreu e agora?!
    



        Aplicação precisa tratar                     APLICAÇ...
Espelhamento de Sistema de
                 Arquivos
        Desempenho normal no
    



        Master                 ...
Espelhamento de Sistema de
                 Arquivos
        Master morreu e agora?!
    



        Aplicação precisa tr...
Log shipping sincrono

        Desempenho no master
    



        depende da rede                              APLICAÇÃ...
Log shipping sincrono

        Master falhou
    


        pg_standby pode                              APLICAÇÃO
    
...
Baseado em sentenças pgpool-II
                                                    APLICAÇÃO
        Balanceamento de carg...
Baseado em sentenças pgpool-II
                                                    APLICAÇÃO
        Um dos masters
    
...
Baseado em sentenças sequoia
                                                      APLICAÇÃO
        Balanceamento de carg...
Outros

        Postgres-R
    



        PGCluster
    




Dickson S. Guedes - http://guedesoft.net - PGDay Brasília ...
Um exemplo...

        Configurando o pgpool-II
    




Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009
Instalando pgpool-II

        Acessar
    


            http://pgfoundry.org/frs/?group_id=1000055
        



        ...
Configurando pgpool-II
        Em pgpool.conf
    


            listen_addresses = '*'
        


            port = 99...
Configurando os nós
        Em pgpool.conf
    


            backend_hostname0 = 'srv01.dbservers.intranet'
        


...
Gerenciando o pgpool-II
        Iniciando em primeiro plano
    


            pgpool
        



        Iniciando em s...
Estrutura testada
                                        Blade Center
                                        ● Capacidad...
Testando
        Criar um banco de testes conectando no pgpool-II
    



             createdb -p 9999 -h srvpool.dbserv...
Conclusão

        Não existe uma caixinha pronta chamada
    



        replicação!
        Não existe almoço grátis!
 ...
Contatos

        Dickson S. Guedes
    


            Email e Gtalk: guedes@guedesoft.net
        




            Home...
Upcoming SlideShare
Loading in...5
×

Replicacaoo Sincrona e Alta-Disponibilidade com PostgreSQL

4,788

Published on

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

Published in: Business, Technology
0 Comments
7 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
4,788
On Slideshare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
0
Comments
0
Likes
7
Embeds 0
No embeds

No notes for slide

Replicacaoo Sincrona e Alta-Disponibilidade com PostgreSQL

  1. 1. PGDay Brasília 2009 Replicação e Alta-Disponibilidade é possível? Dickson S. Guedes http://guedesoft.net PGDay Brasília 2009
  2. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 21. Outros Postgres-R  PGCluster  Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009
  22. 22. Um exemplo... Configurando o pgpool-II  Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009
  23. 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. 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. 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. 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. 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. 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. 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. 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

×