• Save
Replicacao Sincrona "Nao existe almoco gratis!"
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Replicacao Sincrona "Nao existe almoco gratis!"

  • 1,965 views
Uploaded on

Palestra Ministrada no PGCon 2008, na UNICAMP em Campinas, SP.

Palestra Ministrada no PGCon 2008, na UNICAMP em Campinas, SP.

More in: Technology , Business
  • 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
1,965
On Slideshare
1,955
From Embeds
10
Number of Embeds
2

Actions

Shares
Downloads
0
Comments
0
Likes
1

Embeds 10

http://www.slideshare.net 9
http://www.linkedin.com 1

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. Replicação Síncrona quot;Não existe almoço grátisquot; Conhecer o que você precisa, planejar, criar cenários de  testes, interpretar os resultados obtidos,  são passos  fundamentais para uma tomada de decisão que assombra os  administradores de muitos ambientes:  A implementação de uma solução de replicação síncrona. Dickson S. Guedes http://makeall.wordpress.com PGCon Brasil 2008    
  • 2. Problematização Qual é o nosso problema?  Quais soluções buscamos?  Qual é a nossa estrutura?  Quais os cenários podemos testar?  Qual o custo/benefício de cada um?  Quais os resultados obtidos?      Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
  • 3. Qual o nosso problema? Nossa aplicação por si só não integra   mecanismos de tolerância a falhas. Dados armazenados altamente voláteis,   transacionais; Sistema OLTP de missão crítica;      Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
  • 4. Qual é a nossa estrutura? 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 Aplicação ● 2x PowerPC 970MP 2.5GHz / 2.3GHz Dual Core; ● 12 GB MEM PC2-3200 CL3 ECC DDR2 SDRAM RDIMM; ● 2 x HD de 73GB 10K SFF SAS; ● Dual Gigabit Ethernet Integrado; ● RAID-0 ou -1 integrado padrão no servidor blade, RAID-1E; 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;     Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
  • 5. Qual é a nossa estrutura? 2 Servidores IBM modelo System x3200 Servidor WEB 1 1.87GHz Intel Xeon 3040 Dual Core Cache L2: 2MB; 1 GB Memória ECC DDR2-667 DIMM PC2-5300 expansível a 08GB; 2 HD`s de 80GB 7200 rpm Simple-Swap SATA HDD; 2 Adaptadores Gigabit Ethernet 10/100/1000; Interface do disco SATA Simple-Swap; Controladora: SATA 4 Port; 01 Storage IBM modelo DS4700 Express 2GB de cache; 9 x discos 300GB 2 Gbps, 10K RPM; Implementa RAID 0,1, 1+0 e 5; 4 portas Fibre Channel 4Gbps; 2 Storage Partitions Activation; Host Kit Linux/Intel; 4 x Fibre Cable 5m Multimode (LC-LC); Suporte para até 112 discos; Integração com o IBM Director; Garantia de 03 anos on-site 24 x 7, atendimento em 4 horas.     Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
  • 6. Quais soluções buscamos? Assegurar a integridade de qualquer alteração   realizada a qualquer intervalo de tempo; Minimizar o risco de indisponibilidade do   ambiente; Atingir disponibilidade inicial de 99%                                (~3,5dias/ano ou ~7h/mês)     Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
  • 7. Planejamento Que aplicações requerem alta disponibilidade?  Qual o nível de serviço requerido por essas   aplicações? Quais são os pontos de falhas em potencial no   ambiente e como eles podem ser  identificados?     Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
  • 8. Planejamento Quais os pontos de falhas podem ser   automaticamente identificados?  Quais deles necessitam de uma customização   para disparar um evento de recuperação? Qual o nível de conhecimento existente   do grupo que implementará e manterá este ambiente?     Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
  • 9. Planejamento Quantos nós são necessários para suportar a   aplicação? Como os clientes conectam­se à aplicação?  Qual configuração de rede possuímos?      Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
  • 10. Quem precisa estar envolvido? Administrador de Redes  Administrador de SO  Adminsitrador da Aplicação  Administrador de Banco de Dados  Arquitetos e Analistas da Aplicação  Suporte  Usuários da aplicação      Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
  • 11. Cenário ideal NLB WEB01 WEB02 WEB01 WEB02 APP01 APP02 APP01 APP02 BD01 BD02 BD01 BD02 SAN SAN SAN SAN     Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
  • 12. Cenário ideal NLB WEB01 WEB02 WEB01 WEB02 APP01 APP02 APP01 APP02 Não podemos BD01 BD02 BD01 BD02 abraçar o mundo no momento... SAN SAN SAN SAN     Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
  • 13. Cenário ideal reduzido NLB WEB01 WEB02 APP01 APP02 BD01 BD02 SAN SAN     Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
  • 14. Cenário ideal NLB Sem NLB! ”:( WEB01 WEB02 APP01 APP02 PostgreSQL sozinho não suporta replicação! ”:( BD01 BD02 SAN SAN     Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
  • 15. Cenário ideal reduzido ROUND ROBIN WEB01 WEB02 mod_jk APP01 APP02 QUEM?? BD01 BD02 SAN     Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
  • 16. Soluções aproximadas Middlewares que trabalhem entre servidores   PostgreSQL e softwares clientes Candidatos:  pgpool­II  Sequoia  Existem outras soluções?  pgcluster, pl/proxy, ...      Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
  • 17. Características do pgpool­II Limita conexões excedentes;  Pool de conexões;  Replicação até 128 nós;  Balanceamento de carga em consultas;  Consultas paralelas;  Tolerância a falhas transparente para os   clientes ; Nível de complexidade do restore alto;      Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
  • 18. Características do sequoia Replicação via driver JDBC próprio;  Necessidade de um ou mais controladores;  Balanceamento de carga em consultas;  Consultas paralelas;  Tolerância a falhas transparentes para os   clientes; Nível de complexidade do restore baixo;      Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
  • 19. Preparação do cenário de testes Estrutura original do piloto no novo ambiente  Uso do pgScript para criação de massa de   dados (~50GB) Escolha de uma amostra de instruções do   próprio sistema; Etapa 1: 50 con. 1.000.000 transac.  Etapa 2: 100 con. 1.500.000 transac.  Etapa 3: 100 con. 2.000.000 transac.      Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
  • 20. Cenário utilizando pgpool­II ROUND ROBIN WEB01 WEB02 APP01 APP02 pgpool­II BD01 BD02 SAN     Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
  • 21. Cenário utilizando pgpool­II ROUND ROBIN  Uma instância do pgpool  ● pode estar conectada a n  WEB01 WEB02 backends;  Um ponto único de falha; ●  Pode ser criada uma árvore; APP01 APP02 ●  Velocidade de transação  ● pgpool­II restrita ao nó mais lento; BD01 BD02  Retornamos à estaca zero? ●  Storage sub­utilizado? ● SAN     Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
  • 22. Exemplo configuração pgpool­II # Master node info backend_hostname0 = ‘localhost’ backend_port0 = 5432 backend_data_directory0 = ‘/home/y­asaba/demo/5432/data’ # Secondary node info backend_hostname1 = ‘localhost’ backend_port1 = 5433 backend_data_directory1 = ‘/home/y­asaba/demo/5433/data’ # Enable replication replication_mode = true # Enable load balance load_balance_mode = true # Online recovery user recovery_user = ‘y­asaba’ # The first stage script recovery_1st_stage_command = ‘base­backup.sh’ # The second stage script recovery_2nd_stage_command = ‘pgpool­recovery’     Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
  • 23. Cenário utilizando sequoia ROUND ROBIN WEB01 WEB02 APP01 APP02 JDBC JDBC sequoia sequoia BD01 BD02 SAN     Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
  • 24. Cenário utilizando sequoia ROUND ROBIN  Várias instâncias do  ● sequoia podem estar  WEB01 WEB02 conectada a n backends;  Pontos de falha distribuídos; ●  Níveis de RAIDb (0, 1, 2) APP01 APP02 ● JDBC JDBC  Velocidade de transação  ● sequoia sequoia restrita ao nó mais lento; BD01 BD02  Retornamos à estaca zero? ●  Storage sub­utilizado? ● SAN     Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
  • 25. Exemplo configuração sequoia CONTROLLER.XML <?xml version=quot;1.0quot; encoding=quot;UTF­8quot; ?> <!DOCTYPE SEQUOIA­CONTROLLER PUBLIC  quot;­//Continuent//DTD SEQUOIA­ CONTROLLER @VERSION@//ENquot;  quot;http://sequoia.continuent.org/dtds/sequoia­ controller­@VERSION@.dtdquot;> <SEQUOIA­CONTROLLER>   <Controller ipAddress=quot;127.0.0.1quot; port=quot;25322quot;>     <JmxSettings>        <RmiJmxAdaptor port=quot;1090quot;/>     </JmxSettings>     <VirtualDatabase configFile=quot;hsqldb­raidb1­ distribution­1.xmlquot;       virtualDatabaseName=quot;myDBquot;  autoEnableBackends=quot;truequot;/>   </Controller> </SEQUOIA­CONTROLLER>     Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
  • 26. Exemplo configuração sequoia VIRTUALDATABASE.XML <?xml version=quot;1.0quot; encoding=quot;UTF­8quot;?> (...)     <Backup>       <Backuper backuperName=quot;Octopusquot;          className=quot;org.continuent.sequoia.controller.backup.backupers.O ctopusBackuperquot;         options=quot;zip=truequot;/>     </Backup>    (...)     <DatabaseBackend name=quot;localhost1quot;  driver=quot;org.hsqldb.jdbcDriverquot;       url=quot;jdbc:hsqldb:hsql://localhost:9001quot;       connectionTestStatement=quot;call now()quot;>       <ConnectionManager vLogin=quot;userquot; rLogin=quot;TESTquot;  rPassword=quot;quot;>         <VariablePoolConnectionManager initPoolSize=quot;10quot;  minPoolSize=quot;5quot;           maxPoolSize=quot;50quot; idleTimeout=quot;30quot; waitTimeout=quot;10quot;/>       </ConnectionManager>     </DatabaseBackend>     Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
  • 27. Resultados obtidos Identificar qual solução consegue satifazer   nossos pré­requisitos de disponibilidade e  desempenho; Vamos aos números...      Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
  • 28. Resultados obtidos com pgpool­II PGPOOL DIFF TPS RPS TPS PGPOOL 1557 8200 934 -40,01% 1583 8158 950 -39,99% 1547 8152 928 -40,01% 1579 8178 947 -40,03% 1568 8185 941 -39,99% 1566 8145 940 -39,97% 1547 8138 928 -40,01% 1580 8206 948 -40,00% 1574 8231 944 -40,03% 1573 8159 944 -39,99% 1581 8218 949 -39,97% 1533 8224 920 -39,99% 1522 8228 913 -40,01% 1480 8198 888 -40,00% 1560 8137 936 -40,00% 1550 8161 930 -40,00% 1582 8146 949 -40,01% 1581 8177 949 -39,97% 1588 8126 953 -39,99% 1566 8140 940 -39,97%     1561 8175 937 Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
  • 29. Resultados obtidos com pgpool­II PGPOOL  DIFF  TPS RPS TPS PGPOOL 2512 11197 1507 ­40,01% 2497 11185 1498 ­40,01% 2463 11215 1478 ­39,99% 2506 11211 1504 ­39,98% 2529 11220 1517 ­40,02% 2528 11154 1517 ­39,99% 2520 11171 1512 ­40,00% 2521 11152 1513 ­39,98% 2532 11192 1519 ­40,01% 2496 11178 1498 ­39,98% 2502 11182 1501 ­40,01% 2486 11161 1492 ­39,98% 2508 11185 1505     Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
  • 30. Resultados obtidos com pgpool­II PGPOOL  DIFF  TPS RPS TPS PGPOOL 2572 11241 1543 ­40,01% 2571 11288 1543 ­39,98% 2550 11245 1530 ­40,00% 2587 11233 1552 ­40,01% 2566 11231 1540 ­39,98% 2545 11237 1527 ­40,00% 2582 11306 1549 ­40,01% 2554 11229 1532 ­40,02% 2582 11283 1549 ­40,01% 2546 11252 1528 ­39,98% 2558 11239 1535 ­39,99% 2588 11269 1553 ­39,99% 2539 11256 1523 ­40,02% 2565 11271 1539 ­40,00% 2572 11274 1543 ­40,01% 2551 11238 1531 ­39,98% 2577 11247 1546 ­40,01% 2535 11287 1521 ­40,00% 2575 11223 1545 ­40,00% 2534 11303 1520 ­40,02% 2574 11279 1544 ­40,02% 2554 11291 1532 ­40,02% 2558 11240 1535 ­39,99%     2562 11259 1537 Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
  • 31. Resultados obtidos com sequoia SEQUOIA DIFF TPS RPS TPS PGSEQUOIA 1557 8200 814 -47,72% 1583 8158 828 -47,69% 1547 8152 809 -47,71% 1579 8178 826 -47,69% 1568 8185 820 -47,70% 1566 8145 819 -47,70% 1547 8138 809 -47,71% 1580 8206 826 -47,72% 1574 8231 823 -47,71% 1573 8159 823 -47,68% 1581 8218 827 -47,69% 1533 8224 802 -47,68% 1522 8228 796 -47,70% 1480 8198 774 -47,70% 1560 8137 816 -47,69% 1550 8161 811 -47,68% 1582 8146 827 -47,72% 1581 8177 827 -47,69% 1588 8126 831 -47,67% 1566 8140 819 -47,70%     1561 8175 816 Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
  • 32. Resultados obtidos com sequoia SEQUOIA  DIFF  TPS RPS TPS PGSEQUOIA 2512 11197 955 ­61,98% 2497 11185 949 ­61,99% 2463 11215 935 ­62,04% 2506 11211 952 ­62,01% 2529 11220 962 ­61,96% 2528 11154 961 ­61,99% 2520 11171 958 ­61,98% 2521 11152 958 ­62,00% 2532 11192 963 ­61,97% 2496 11178 948 ­62,02% 2502 11182 951 ­61,99% 2486 11161 944 ­62,03% 2508 11185 953     Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
  • 33. Resultados obtidos com sequoia SEQUOIA  DIFF  TPS RPS TPS PGSEQUOIA 2572 11241 1008 ­60,81% 2571 11288 1007 ­60,83% 2550 11245 999 ­60,82% 2587 11233 1014 ­60,80% 2566 11231 1005 ­60,83% 2545 11237 997 ­60,83% 2582 11306 1011 ­60,84% 2554 11229 1001 ­60,81% 2582 11283 1012 ­60,81% 2546 11252 997 ­60,84% 2558 11239 1002 ­60,83% 2588 11269 1014 ­60,82% 2539 11256 994 ­60,85% 2565 11271 1004 ­60,86% 2572 11274 1007 ­60,85% 2551 11238 999 ­60,84% 2577 11247 1009 ­60,85% 2535 11287 992 ­60,87% 2575 11223 1009 ­60,82% 2534 11303 993 ­60,81% 2574 11279 1009 ­60,80% 2554 11291 1001 ­60,81% 2558 11240 1001 ­60,87%     2562 11259 1004 Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
  • 34. Resultados obtidos PGPOOL  SEQUOIA  TPS RPS TPS TPS Média 2506,431 11123,570 1503,856 986,853 Média Harmonica 2478,442 11071,438 1487,066 984,572 Média Geométrica 2494,435 11099,975 1496,660 985,765 Desvio Padrão 93,147 278,886 55,875 29,566 3000,000 2500,000 2000,000 Média 1500,000 Média Harmonica Média Geométrica Desvio Padrão 1000,000 500,000 0,000 TPS PGPOOL TPS SEQUOIA TPS     Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
  • 35. Gráfico comparativo entre o cenário  com e sem pgpool­II 12000 10000 8000 6000 4000 2000 0 TPS RPS PGPOOL TPS     Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
  • 36. Gráfico comparativo entre o cenário  com e sem sequoia 12000 10000 8000 6000 4000 2000 0 TPS RPS SEQUOIA TPS     Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
  • 37. Conclusões obtidas O ganho no balanceamento de consultas não é   surpreendente; O cenário com pgpool­II não garante alta   disponibilidade caso ele próprio falhe; O cenário com o sequoia exige o uso de mais   servidores, ou utilização dos próprios  servidores de banco ou de aplicação para  executar; Queda substancial na escrita de dados;  Criação de mais pontos de falhas;      Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
  • 38. Finalizando Solução proposta pela NTT;  Discussão na lista pgsql­hackers entre Greg   Smith, Itagaki Takahiro, Markus Wanner; Testar RAIDb­2 do sequoia;  679000000 Transações  271600 Segundos  75,44 Horas  25,15 Dias      Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
  • 39. Referências http://pgpool.projects.postgresql.org/  http://pgpool.projects.postgresql.org/tutorial­en.html  http://www.slony.info/  http://www.postgresql.org/about/news.679  https://forge.continuent.org/projects/sequoia/  https://forge.continuent.org/plugins/scmcvs/viewcvs.php/sequoia/doc/?root=sequoia  http://pgfoundry.org/projects/pgcluster/  http://pgfoundry.org/projects/plproxy/  http://kaiv.wordpress.com/2007/07/27/postgresql­cluster­partitioning­with­plproxy­part­i/  https://developer.skype.com/SkypeGarage/DbProjects/PlProxy      Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
  • 40. Questionamentos ?     Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
  • 41. Replicação Síncrona quot;Não existe almoço grátisquot; Dickson S. Guedes <guediz@gmail.com> http://makeall.wordpress.com http://planeta.postgresql.org.br irc://irc.freenode.net/#postgresql irc://irc.freenode.net/#postgresql-br PGCon Brasil 2008