SGBD x Disponibilidade Objetivo Escopo Motivação Conceitos básicos Disponibilidade Redundância de software Redundância de hardware 1 Objetivo: Objetivo Discutir tecnologias e práticas operacionais utilizadas na melhoria da confiabilidade e disponibilidade de servidores de bancos de dados. Escopo: Utilização de servidores comerciais, isto é, hardware (commodity hardware) e software (commercial off-theshelf - COTS) disponíveis no mercado, focando-se nas soluções de hardware normalmente utilizadas para aumento da disponibilidade. 2
Motivação Nos últimos anos, condições foram estabelecidas para popularização da implantação de Sistemas Gerenciadores de Bancos de Dados; Com a expansão do campo de aplicação, aumentou-se a dependência em relação aos dados armazenados; 3 Motivação Desta forma, aumentaram também os custos associados ao tempo em que sistemas não estão funcionando dentro de suas especificações; Em sistemas críticos constituídos por bancos de dados, o conceito de disponibilidade reflete também o tempo médio de resposta a consultas feitas por usuários. 4
Falha: É um defeito no sistema; Erro: É um desvio do comportamento esperado para uma determinada função do sistema; Disfunção: Conceitos básicos É a incapacidade de executar uma função solicitada, decorrente de um erro no sistema; 5 Conceitos básicos Redundância: Tudo o que é acrescentado a um sistema para aumento da confiabilidade que não seria necessário se não houvesse falhas. Tipos: Dados Software Hardware 6
Disponibilidade Disponibilidade: Probabilidade de um sistema estar em funcionamento de acordo com as suas especificações em um determinado instante de tempo; Porcentagem de tempo que o sistema permanece em seu estado operacional. 7 Disponibilidade MTTF (Mean Time To Failure): Corresponde ao tempo estimado (em média) para que o sistema esteja funcionando até a ocorrência de uma falha. O MTTF também pode ser denominado como Uptime. MTTR (Mean Time To Repair): Corresponde ao tempo médio gasto para que o sistema seja reparado após a ocorrência de uma falha. O MTTR também pode ser denominado como Downtime. Disponibilidade ASSINTÓTICA MTTF = MTTF + MTTR 8
Classificação da disponibilidade Classe de Disponibilidade ( número de noves ) 1 2 3 4 5 6 7 Disponibilidade (porcentagem) 90% 99% 99.9% 99.99% 99.999% 99.9999% 99.99999% Tempo Indisponível (minutos / ano) 52560,00 5256,00 525,60 52,56 5,25 0,53 0,05 Obs.: Os valores relativos ao Tempo Indisponível são cálculos aproximados. 9 Disponibilidade Real Pesquisas com consumidores indica valores típicos entre classes 2 e 3 (99% e 99.9%) (HENNESSY; PATTERSON, 2003); Exemplo: Windows Datacenter High Availability Program ; Disponibilidade mínima garantida: 99.9% (Classe 3); Em janeiro de 2001 o Web site da Microsoft ficou indisponível por 22 horas. Considerando os 99.9% (Classe 3) prometidos, são necessários 2.5 anos sem falhas (MTTR = 0), para que esta classe de disponibilidade seja atingida; Para Classe 5, seriam necessários 250 anos Até dezembro de 2004, foram lançados 4 service packs para o Windows 2000. 10
Aumento da disponibilidade Aumento do MTTF: Grupo 1: Transparência total para os usuários, conexões são mantidas (usuários), integridade transacional e performance não comprometida. Utilizar redundância de componentes, funcional e dados. Grupo 2: Usuários on-line, transações correntes reinicializadas se necessário e possível degradação na performance. Recuperação automática e conexões múltiplas aos discos do sistema. 11 Aumento da disponibilidade Aumento do MTTF: Grupo 3: Conexões interrompidas (com capacidade de restauração), transações refeitas a partir de backup e degradação no desempenho; Acessos múltiplos do sistema aos discos e backups concorrentes; Grupo 4: Funcionamento interrompido (integridade dos dados garantida). Discos redundantes e registros de transações para identificação e recuperação de transações incompletas. 12
Redundância de software Cópia de segurança dos dados (backup): Plano de backup: Escalonamento, Periodicidade, Usuários. Rodízio de meios de armazenamento (fitas); Teste do backup; Estimativa do tempo de restauração; Plano de contingência. 13 Redundância de software Replicação de dados: Síncrona: Operações de escrita interceptadas e repetição do comando no servidor de backup. Assíncrona: Operações de escrita interceptadas e enfileiradas. São enviadas ao servidor de backup assim que o tráfego na rede permitir (diminuir). Periódica: Operações de escrita interceptadas e repetição do comando no servidor de backup. 14
Redundância de hardware Fontes de alimentação de energia internas e externas; Memórias com correção de erro (ECC Error Correcting Code); Discos rígidos Hot Swappable; RAID - Redundant Array of Independent/Inexpensive Disks Discos magnéticos organizados em matrizes de forma que se tenha uma melhoria de performance (maiores taxas de transferência) e redundância dos dados armazenados. Clustering Conjunto de computadores onde qualquer um de seus membros deve ser capaz de desempenhar as mesmas funções de qualquer outro membro. 15 RAID RAID 1: A A E E B B F F C C G G D D H H RAID 5: Gerador de Paridade A0 A1 B0 B1 C0 C1 D0 Parid. 1 Parid. 0 E1 A2 B2 Parid. 2 D2 E2 A3 Parid. 3 C3 D3 E3 Parid. 4 B4 C4 D4 E4 Blocos A Blocos B Blocos C Blocos D Blocos E 16
Cluster Cluster Local Nó 1 Nó 2 Discos Compartilhados Usuários 17 Cluster Cluster Campus, Metropolitano ou Continental Replicação ou Duplicação de dados Nó 1 Nó 2 Nó 3 Nó 4 Usuários 18
Planejamento e Projeto; Best Practices Determinar qual o nível (ou classe) de disponibilidade a ser atingido; Monitoramento e Análise; Detectar ocorrência de falhas; 19 Best Practices Recuperação; Lista de componentes sobressalentes disponíveis, os responsáveis pela sua execução e também estimativas de tempo; Análise das causas do problema; Histórico de ocorrência de falhas. 20
Referências bibliográficas [1] Microsoft Corporation. MS Windows NT High Availability Deployment Guide. Technical Information, 2001. [2] Lewis, Morris. Building Highly Available Database Servers. Technical Drilldown, 2002. [3] Microsoft Corporation. System Administration for Microsoft SQL Server 7.0. Microsoft Official Curriculum, 1998, p. 167-214. [4] Parag K. Lala, Self-Checking and Fault-Tolerant Digital Design. Morgan Kaufmann Publishers, p. 1-13. 21 Referências bibliográficas [5] Advanced Computer and Network Corporation. Raid.edu. Site corporativo, 2003. Disponível em www.raid.com. Acesso em abril de 2003. [6] Ferreira, Enderson, Análise de Confiabilidade de Sistemas Redundantes de Armazenamento em Discos Magnéticos. Tese de Mestrado pela Escola Politécnica da Universidade de São Paulo, 2003. p. 62-68. [7] Zimmermann, Roger e Ghandeharizadeh, Shahram, HERA: Heterogeneous Extension of RAID. Proceedings of the 2000 International Conference on Parallel and Distributed Processing Techniques and Applications, 2000. 22
Referências bibliográficas [8] Geist, Robert e Trivedi, Kishor, An Analytic Treatment of the Reliability and Performance of Mirrored Disk Subsystems, IEEE, 1993. [9] Sauers Robert, Choosing the Right Disk Technology in a High Availability Environment, Hewlett Packard Technical White Paper, 1996. [10] Horst, Robert W., Reliability Improving Through Static RAM Sparing, Tandem Computers Technical Report, 1897. 23 Referências bibliográficas Computing Systems, Bell Laboratories, Lucent Technologies. [12] Hewlett Packard, Designing Disaster Tolerant High Availability Clusters, Technical Report, 2001. 24