0
Tudo que você queria saber sobre o 
 uso de discos em servidores 
 PostgreSQL e tinha vergonha de 
 perguntar

           ...
Agenda
   Discos
   Controladoras
   Storage
   RAID
   Sistemas de Arquivo
   Particionamento
   Exemplos práticos...
Discos
   SATA – Baixo desempenho
   SCSI – Substituído pelo SAS
   SAS – Armazenamento local
   Fibre Channel – Utili...
Discos
               Capacidade Latência         Custo /   Custo /
  Tecnologia      (GB)      (µs)    IOPS IOPS (USD) GB...
Solid State Disks
   RAM: 
              Storages com memórias RAM conectadas por FC;
              Baterias alimentam ...
Controladoras ou melhor:
               Host Bus Adapter (HBA)
   Discos locais:
              SATA,  SAS, SCSI
        ...
Storage
   Suporte a discos: SATA, SAS, SCSI, FC
   Suporte a vários tipos de RAID
   Suporte a diversas interfaces: In...
RAID
            Redundant Array of Independent Drives

   JBOD (just a bonch of disks)
   RAID 0 (strip)
   RAID 1 (mi...
RAID
   1             300               2x         1X       Baixo
Discos: 4x 300GB (sem hot spare)
 Tipo Espaço (GB) Leitu...
Sisemas de Arquivos
   Linux:
               EXT2, EXT3, EXT4, XFS, ReiserFS
   FreeBSD: 
               UFS2
   Sola...
Sistemas de Arquivos
   Desempenho:
              Testes c/ pgbench (em linux):
                      $ pgbench ­i 1000...
Particionamento
   Porquê separar diferentes tipos de arquivos?
              Desempenho;
              Segurança;
    ...
Particionamento
   SO: /boot, /var, /usr, /home, /tmp, /
   swap;
   Log de trasação: pg_xlog,
        mv /postgres/te...
Particionamento
   Tablespaces temporário (postgresql.conf): 
       temp_tablespaces = '/postgres/temp'

   Tablespace...
Particionamento
   O que particionar, o que separar em discos / RAIDs 
     distintos?
              Depende de quantos ...
Exemplos práticos
Caso 1 - Ambiente
   Base de 50GB;
   Aplicação com 50 usuários, carga mista de OLTP e 
     relatório...
Exemplos práticos
Caso 1 - Sugestão
   RAID 1;
              /boot (100MB)
              / (40GB)
              /postg...
Exemplos práticos
Caso 2 - Ambiente
   Base de 10GB;
   Aplicação Web com milhares de acessos 
     simultâneos;
   Adm...
Exemplos práticos
Caso 2 - Sugestão
   1º RAID 1;
              /boot (100MB)
              / (50GB) 
              /p...
Exemplos práticos
Caso 3 - Ambiente
   ERP c/ 250 GB:
              OLTP c/ 500 usuários simultâneos;
              Rel...
Exemplos práticos

Caso 3 - Sugestão
   RAID 1 + hot spare / 15Krpm:
              /boot (100MB);
              / (20GB...
Exemplos práticos
Caso 3 – Sugestão (continuação)
   RAID 10 c/ 4 discos (10Krpm):
          /postgres/archive (200GB);
...
Exemplos práticos
Caso 4 – Ambiente
   OLAP + Data Mining (1TB)
          Cargas pesadas à noite;
          Poucos usuá...
Exemplos práticos
Caso 4 – Sugestão
   RAID 1 + Hot Spare ­ local
              /boot (100MB)
              / (50GB) 
 ...
Exemplos práticos
Caso 4 – Sugestão (continuação)
   RAID 5 c/ 5 discos SAS 10Krpm + hot spare:
          /postgresql/da...
Obrigado!
   Perguntas, Sugestões e cervejas!
   Contatos:
              telles@timbira.com.br
              gtalk/msn...
Upcoming SlideShare
Loading in...5
×

Discos & Cia em PostgreSQL

1,783

Published on

Tudo o que você queria saber sobre o uso de discos em servidores PostgreSQL mas tinha vergonha de perguntar

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,783
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
63
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Discos & Cia em PostgreSQL"

  1. 1. Tudo que você queria saber sobre o  uso de discos em servidores  PostgreSQL e tinha vergonha de  perguntar por Fábio Telles Rodriguez    
  2. 2. Agenda  Discos  Controladoras  Storage  RAID  Sistemas de Arquivo  Particionamento  Exemplos práticos    
  3. 3. Discos  SATA – Baixo desempenho  SCSI – Substituído pelo SAS  SAS – Armazenamento local  Fibre Channel – Utilizado em storages   SSD – Hot files!    
  4. 4. Discos Capacidade Latência Custo / Custo / Tecnologia (GB) (µs) IOPS IOPS (USD) GB (USD) Cloud Storage Ilimitado 60.000 20 0,015/GB 0,15 / mês HDs de alta capacidade 2.500 12.000 250 1,67 0,15 HDs de alto desempenho 300 7.000 500 1,52 1,30 SSD (escrita) 64 300 5.000 0,20 13 SSD (leitura) 64 45 30.000 0,03 13 DRAM 8 0,005 500.000 0,001 52 Fonte: (Sun) Database performance tuning for SSD based storage    
  5. 5. Solid State Disks  RAM:   Storages com memórias RAM conectadas por FC;  Baterias alimentam discos que gravam conteúdo da  RAM em caso de falta de energia;  600.000 IOPS !!!  Flash:  Uso de SLC Flash, algorítimos especiais e outras  técnicas para aumentar a vida útil e desempenho;  100.000 IOPS !!!  Flash + RAM    
  6. 6. Controladoras ou melhor: Host Bus Adapter (HBA)  Discos locais:  SATA,  SAS, SCSI  Número de discos suportados  Buffer de leitura e Buffer de escrita  Bateria interna X Bateria externa  Suporte a RAID  Storage:  ISCSI, FC, Infiniband  Uso de fabric  Software p/ load balance e fail over    
  7. 7. Storage  Suporte a discos: SATA, SAS, SCSI, FC  Suporte a vários tipos de RAID  Suporte a diversas interfaces: Infiniband, FC, iSCSI  Buffer gerenciável de 2GB a 256GB   Baterias confiáveis  Software para tuning, snapshot, gerencimento, etc  Redundância de controladoras, discos, HBAs,  fontes, baterias, ventoinhas, etc;    
  8. 8. RAID Redundant Array of Independent Drives  JBOD (just a bonch of disks)  RAID 0 (strip)  RAID 1 (mirror)  RAID 2, RAID 3, RAID 4  RAID 5 (paridade distribuída)  RAID 6 (paridade dupla distribuída)  RAID 10 (strip + mirror)    
  9. 9. RAID 1 300 2x 1X Baixo Discos: 4x 300GB (sem hot spare) Tipo Espaço (GB) Leitura Gravação Risco 5 900 3x 1,5X Médio 6 600 2x 1,5X Baixo 10 600 2x 2x Baixo Discos: 8x 300GB (sem hot spare) Tipo Espaço (GB) Leitura Gravação Risco 5 2100 7x 3x Alto 6 1800 6x 3x Médio 10 1200 4x 4x Baixo    
  10. 10. Sisemas de Arquivos  Linux:  EXT2, EXT3, EXT4, XFS, ReiserFS  FreeBSD:   UFS2  Solaris:   UFS2, ZFS  Windows  FAT, NTFS    
  11. 11. Sistemas de Arquivos  Desempenho:  Testes c/ pgbench (em linux):  $ pgbench ­i 1000 testedb  $ pgbench ­c 100 ­T 3600  EXT2 >> XFS > EXT4 > EXT3 > ReiserFS  Segurança  EXT4 = EXT3 = XFS > ReixerFS >> EXT2    
  12. 12. Particionamento  Porquê separar diferentes tipos de arquivos?  Desempenho;  Segurança;  Facilidade de administração.  Ambientes críticos e com boa mão de obra  dedicada: divisão agressiva;  Ambiente não crítico com mão de obra ocasional:  agrupamento em poucas partições.    
  13. 13. Particionamento  SO: /boot, /var, /usr, /home, /tmp, /  swap;  Log de trasação: pg_xlog,  mv /postgres/teste/pg_xlog/ /postgres  ln -s /postgres/pg_xlog /postgres/teste/pg_xlog   Aquivamento (postgresql.conf);  archive_mode = on  archive_command = 'cp "%p" /postgres/archive/"%f"'  archive_timeout = 3600  Logs de erro e monitoramento; http://www.postgresql.org/docs/current/static/runtime­config­logging.html#RUNTIME­CONFIG­LOGGING­WHERE  Backup local;    
  14. 14. Particionamento  Tablespaces temporário (postgresql.conf):   temp_tablespaces = '/postgres/temp'  Tablespaces por tipo ou uso (index, data, hist,  OLTP, BI, etc)  mkdir /postgres/data /postgres/index /postgres/old /postgres/rh  CREATE TABLESPACE data LOCATION '/postgres/data';  CREATE TABLESPACE data LOCATION '/postgres/index';  CREATE TABLESPACE data LOCATION '/postgres/old';  CREATE TABLESPACE data OWNER 'hr' LOCATION '/postgres/index'  SET default_tablespace = '/postgres'    
  15. 15. Particionamento  O que particionar, o que separar em discos / RAIDs  distintos?  Depende de quantos discos, RAIDs você tem  disponível;  Depende da mão­de­obra disponível;  Depende do perfil da carga da aplicação;  Depende do volume e tipo de dados da aplicação;    
  16. 16. Exemplos práticos Caso 1 - Ambiente  Base de 50GB;  Aplicação com 50 usuários, carga mista de OLTP e  relatórios;  Sem DBA dedicado;  Baixo poder de investimento;  Ambiente não crítico;  Discos: 2 discos SAS 300GB.    
  17. 17. Exemplos práticos Caso 1 - Sugestão  RAID 1;  /boot (100MB)  / (40GB)  /postgres (dados) (120GB)  /backup (backup) (120GB)  swap (4GB)    
  18. 18. Exemplos práticos Caso 2 - Ambiente  Base de 10GB;  Aplicação Web com milhares de acessos  simultâneos;  Administrador de sistema monitora o PostgreSQL  com frequência;  Disponibilidade e desempenho críticos;  Discos: 5 discos SAS 300GB.    
  19. 19. Exemplos práticos Caso 2 - Sugestão  1º RAID 1;  /boot (100MB)  / (50GB)   /postgres/pg_xlog  (20GB)  /backup (backup) (200GB)  swap (8GB)  2º RAID 1 + Hot Spare  /postgres/data (300GB)    
  20. 20. Exemplos práticos Caso 3 - Ambiente  ERP c/ 250 GB:  OLTP c/ 500 usuários simultâneos;  Relatórios pesados de fechamento mensal;  Cargas em lote diárias;  DBA + Sysadmin;  Disponibilidade + perda de dados + desempenho  críticos;  Discos: 12 discos SAS 300GB.    
  21. 21. Exemplos práticos Caso 3 - Sugestão  RAID 1 + hot spare / 15Krpm:  /boot (100MB);  / (20GB);  /var (20GB);  /postgres/pg_xlog (50GB)  swap (8GB)    
  22. 22. Exemplos práticos Caso 3 – Sugestão (continuação)  RAID 10 c/ 4 discos (10Krpm):  /postgres/archive (200GB);  /postgres/backup (400GB);  RAID 4 c/ 4 discos + hot spare / 15Krpm:  /postgres/data (600GB);    
  23. 23. Exemplos práticos Caso 4 – Ambiente  OLAP + Data Mining (1TB)  Cargas pesadas à noite;  Poucos usuários realizando consultas complexas;  Desempenho crítico;  DBA e Sysadmin c/ nível sênior;  3 discos locais: SAS 300GB 10Krpm  12 discos em storage: FC 146GB 15Krpm   6 discos em storage: SAS 300GB 10Krpm    
  24. 24. Exemplos práticos Caso 4 – Sugestão  RAID 1 + Hot Spare ­ local  /boot (100MB)  / (50GB)   /var (50GB)  /postgresql/pg_xlog (200GB) – EXT3 c/ noatime  swap (16GB)    
  25. 25. Exemplos práticos Caso 4 – Sugestão (continuação)  RAID 5 c/ 5 discos SAS 10Krpm + hot spare:  /postgresql/data/old (800GB) – XFS  /postgresql/archive (400GB) – EXT3 c/ noatime +  writeback  RAID 0 c/ 3 discos FC 15Krpm ­ Storage:  /postgresql/data/temp (226GB) – EXT2  RAID 10 c/ 8 discos FC15Krpm + hot spare:  /postgresql/data/new (568 GB) – XFS c/ noatime    
  26. 26. Obrigado!  Perguntas, Sugestões e cervejas!  Contatos:  telles@timbira.com.br  gtalk/msn/mail: fabio.telles@gmail.com  Skype: fabio_telles  http://www.midstorm.org.br    
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×