Replicação de dadosSegundo Coulouris et al. (2013) replicação é a chave para prover alta disponibilidade e tolerância a falhas em sistemas distribuídos. A alta disponibilidade é um tópico de crescente interesse, principalmente com a atual tendência em direção à computação móvel e à operação desconectada. A tolerância a falhas é uma preocupação permanente dos serviços fornecidos em sistemas nos quais a segurança funcional (safety) é fundamental e em outros tipos importantes de serviços e sistemas. A replicação é uma técnica para melhorar serviços. As motivações para a replicação são: melhorar o desempenho de um serviço, aumentar sua disponibilidade ou torná-lo tolerante a falhas.
A replicação de dados imutáveis é simples: ela aumenta o desempenho com pouco custo para o sistema. A replicação de dados mutáveis (dinâmicos), como os da Web, acarreta sobrecargas nos protocolos para garantir que os clientes recebam dados atualizados. Assim, existem limites para a eficácia da replicação como uma técnica de melhoria de desempenho.
A replicação de dados pode ser realizada via software, quando nos referimos há algumas linhas específicas numa determinada tabela ou ainda um banco de dados. Por outro lado, quando precisamos replicar um volume ou um disco, é comum recorrermos a replicação de hardware. O uso da replicação permite o uso de vários níveis de granularidade. A replicação de banco de dados, por exemplo, permite desde a replicação de algumas linhas ou colunas específicas até um conjunto de várias tabelas ou eventualmente um banco de dados inteiro. A replicação de dados é uma das tecnologias mais empregadas para a construção de banco de dados distribuídos. FuncionamentoA replicação é uma técnica para manter automaticamente a disponibilidade dos dados, a despeito das falhas do servidor. Se os dados são replicados em dois ou mais servidores que falham independentemente, então o software cliente pode acessar os dados em um servidor alternativo, caso o servidor padrão falhe ou se torne inacessível. Exemplo de replicação de dados Inicialmente a aplicação submete instruções de escrita (insert, update, delete) para o banco de dados. Alterando, posteriormente esse banco de dados é replicado para suas quatro cópias, mantendo-as sincronizadas. Considerando que as réplicas são idênticas ao banco de dados original, uma consulta pode ser feita em qualquer uma das réplicas provendo assim cenários de alta disponibilidade e escalabilidade. A indisponibilidade do banco principal, não compromete as consultas. Uma vez que o banco principal esteja disponível, é possível redirecionar as operações de escritas para uma das réplicas. Aplicabilidade
Arquitetura de uma replicaçãoServidores trabalham com um modelo de gerenciador de réplicas, esse gerenciador tem o papel de: Coordenar o processo de replicação:
Tipos de Replicação:
Replicação Passiva (backup primário)No modelo passivo, ou de backup primário, de replicação para tolerância a falhas, existe, em determinado momento, um único gerenciador de réplica (RM) primário e um ou mais gerenciadores de réplica secundários – backups ou escravos. Na forma pura do modelo, os front-ends (FE) se comunicam somente com o gerenciador de réplica primário para obterem o serviço. O gerenciador de réplica primário executa as operações e envia cópias dos dados atualizados para os backups. Se o primário falhar, um dos backups será promovido para atuar como primário.
Detecção de falha do primário
Solução: Um novo primário é eleito. Casos:
Vantagens e desvantagens da Replicação Passiva Vantagens:
Desvantagens:
Solução: fazer update a cada n requisições.
Replicação AtivaNo modelo ativo de replicação para tolerância a, os gerenciadores de réplica são máquinas de estado que desempenham papéis equivalentes e são organizados como um grupo. Os front-ends enviam suas requisições por multicast para o grupo de gerenciadores de réplica, e todos os gerenciadores de réplica processam a requisição independentemente, mas de forma idêntica, e respondem. Se qualquer gerenciador de réplica falhar, isso não tem nenhum impacto sobre o desempenho do serviço, pois os gerenciadores de réplica restantes continuam a responder normalmente. Veremos que a replicação ativa pode tolerar falhas bizantinas, pois o front-end pode reunir e comparar as respostas que recebe. Sob a replicação ativa, a sequência de eventos quando um cliente solicita a execução de uma operação é a seguinte:
Recuperação de falhasA recuperação é feita através de uma:
Exige que as réplicas tenham comportamento determinístico: A requisição deve produzir o mesmo efeito em todas as réplicas. Caso contrário, pode ocorrer divergência de estados. Exige atomicidade na comunicação: Uma certa requisição é recebida por todas as réplicas ou, então, não é recebida por nenhuma réplica. Exige ordenação na comunicação: Todas as réplicas recebem as mensagens (requisições) na mesma ordem. Vantagens e desvantagens da Replicação AtivaVantagens
Desvantagens
Principais desafios da replicaçãoOs dados em grandes corporações estão cada vez mais volumosos. O principal entrave é que o tamanho da largura da banda, necessária para trafegar as informações, não acompanha o crescimento na mesma proporção que o armazenamento. As estratégias de replicação ativo-ativo são, portanto, as mais interessantes, mesmo requerendo mudanças de softwares para o funcionamento transparente em data centers. Esses são desafios que novas tecnologias de banco de dados, como o NoSQL e ferramentas de big data, são capazes de resolver de maneira nativa, sem que haja a necessidade de aquisição de softwares específicos para essa finalidade. Existem, ainda, alternativas que permitem que a replicação seja feita em ambientes internos com um único datacenter. Um bom exemplo disso são os de Hadoop, que replicam as informações, por padrão, três vezes dentro de seu próprio espaço. Para empresas menores, onde não há a possibilidade de investimento em outros datacenters, é importante garantir a alta disponibilidade por meio de serviços com arquitetura nativa de replicação, como a NoSQL e as ferramentas de big data. Hoje a melhor forma de se armazenar, recuperar e analisar as informações em um único ambiente utilizando big data é por meio de sistemas preparados de forma nativa para conseguir obter resultados de alta disponibilidade com a replicação de dados. AtualidadeAtualmente, as grandes corporações não podem se dar ao luxo de terem suas operações interrompidas, independentemente do motivo. A rápida recuperação de sistemas após desastres naturais, como enchentes, incêndios, panes elétricas, terremotos, furacões ou tempestades é uma das maiores preocupações nas companhias. Soluções que permitem a continuidade operacional, mesmo após um evento catastrófico, são cada vez mais bem vistas e utilizadas. Nesse aspecto, a replicação de dados torna-se uma saída interessante para as empresas que buscam a rápida recuperação depois de uma fatalidade. Essas ferramentas são usadas, normalmente, por companhias que possuem mais de uma estrutura de data center. Assim, se ocorrer um problema em um deles, é possível continuar com as operações normalmente a partir de outro centro de processamento. Para a implementação, o custo pode ser considerado alto. Nesses casos, é importante que as empresas ponderem se o valor por ter a operação parada por dias ou semanas é menor do que o de implantação de replicação. Dependendo da conclusão, é fundamental que haja uma reavaliação das estratégias de recuperação, validando a necessidade de um novo datacenter. Esse, por sua vez, normalmente deve ser instalado em região geográfica distante do original. Veja tambémInformation related to Replicação de dados |