Replicacaoo Sincrona e Alta-Disponibilidade com PostgreSQL
Replicacao Sincrona "Nao existe almoco gratis!"
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 conectamse à 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:
pgpoolII
Sequoia
Existem outras soluções?
pgcluster, pl/proxy, ...
Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
17. Características do pgpoolII
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 pgpoolII
ROUND ROBIN
WEB01 WEB02
APP01 APP02
pgpoolII
BD01 BD02
SAN
Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
21. Cenário utilizando pgpoolII
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
●
pgpoolII
restrita ao nó mais lento;
BD01 BD02 Retornamos à estaca zero?
●
Storage subutilizado?
●
SAN
Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
22. Exemplo configuração pgpoolII
# Master node info
backend_hostname0 = ‘localhost’
backend_port0 = 5432
backend_data_directory0 = ‘/home/yasaba/demo/5432/data’
# Secondary node info
backend_hostname1 = ‘localhost’
backend_port1 = 5433
backend_data_directory1 = ‘/home/yasaba/demo/5433/data’
# Enable replication
replication_mode = true
# Enable load balance
load_balance_mode = true
# Online recovery user
recovery_user = ‘yasaba’
# The first stage script
recovery_1st_stage_command = ‘basebackup.sh’
# The second stage script
recovery_2nd_stage_command = ‘pgpoolrecovery’
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 subutilizado?
●
SAN
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
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 pgpoolII
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 pgpoolII 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 pgsqlhackers entre Greg
Smith, Itagaki Takahiro, Markus Wanner;
Testar RAIDb2 do sequoia;
679000000 Transações
271600 Segundos
75,44 Horas
25,15 Dias
Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008