Tolerância a falhas e failback
Tolerância a falhas é a capacidade de um DSA roteador continuar atender a consultas mesmo quando um DSA de dados se torna indisponível. Se o roteador detectar que ocorreu uma falha em um DSA, ele reenviará as solicitações pendentes para outro DSA que atenda à mesma partição, tornando a falha invisível para os clientes.
cad126br
Tolerância a falhas
é a capacidade de um DSA roteador continuar atender a consultas mesmo quando um DSA de dados se torna indisponível. Se o roteador detectar que ocorreu uma falha em um DSA, ele reenviará as solicitações pendentes para outro DSA que atenda à mesma partição, tornando a falha invisível para os clientes.Durante a operação normal, se necessário, o DSA de espera é mantido sincronizado com o DSA de dados principal.
A tolerância a falhas é importante para os sistemas que exigem alta disponibilidade e confiabilidade.
Este artigo aborda os seguintes tópicos:
Tolerância a falhas entre hosts
O CA Directory define automaticamente a tolerância a falhas entre DSAs de dados no mesmo local que atendem à mesma partição de namespace. Esses DSAs também são replicados automaticamente.
Exemplo: Tolerância a falhas para um DSA de backup
O diagrama a seguir mostra um único DSA roteador que geralmente envia solicitações para os DSAs de clientes em seu próprio host e no host NY21.
Se ocorrerem falhas nos dois DSAs de dados, o DSA roteador enviará automaticamente todas as solicitações para o DSA de clientes no NY23. Essa alteração é invisível para os clientes.
Neste exemplo, o DSA de clientes no NY23 é um backup: ele só será usado se ocorrerem falhas nos outros DSAs de dados.

Tolerância a falhas entre locais
Para melhorar o desempenho, é recomendável que todas as regiões tenham um roteador que direcione as consultas a um DSA de dados local. Os DSAs de dados locais devem ser sincronizados entre si.
Se ocorrer falha em um DSA de dados local, todos os roteadores direcionarão as consultas para o DSA de dados remoto. Isso mantém a disponibilidade e a confiabilidade do diretório.
Exemplo: Tolerância a falhas entre dois locais
O diagrama a seguir mostra um exemplo de backbone de diretórios distribuído entre dois locais, Nova York e Montreal.

O roteador de Nova York não pode compartilhar a carga com os DSAs de clientes em Montreal porque eles estão em um local diferente do roteador.
No entanto, se os dois DSAs de clientes de Nova York estiverem indisponíveis, o roteador poderá aplicar tolerância a falhas para o DSA de clientes em Montreal. Embora o desempenho seja mais baixo até que os DSAs de Nova York estejam em execução novamente, o serviço ainda está disponível.
Observação:
a consistência da tolerância a falhas é garantida dentro de uma região, mas não entre regiões.Tolerância a falhas do cliente entre os roteadores de DSAs
Se ocorrer falha em um DSA roteador, todo o acesso aos DSAs de dados será interrompido. Para evitar isso, você pode configurar o aplicativo cliente para aplicar tolerância a falhas entre os roteadores de DSAs da seguinte maneira:
- Execute mais do que um DSA roteador em mais de um computador.
- Configure os aplicativos cliente para aplicar tolerância a falhas de um DSA roteador para o outro.
Quase todos os aplicativos de terceiros habilitados para diretórios grandes podem ser configurados para fazer isso.
Exemplo de tolerância a falhas do cliente para um segundo roteador
O diagrama a seguir mostra um sistema de diretórios simples com dois tipos de tolerância a falhas.
Como em Tolerância a falhas entre hosts, os roteadores de DSAs podem aplicar tolerância a falhas para o segundo DSA de dados. No entanto, esse sistema também mostra que o aplicativo cliente pode aplicar tolerância a falhas entre os dois roteadores de DSAs.
Esses dois roteadores de DSAs são configurados para usar os DSAs de dados exatamente da mesma forma, o que significa que o serviço para o aplicativo cliente não é interrompido.

Definir a precedência do DSA para tolerância a falhas
Quando ocorre falha em mais do que um DSA de dados, o DSA de dados aplica tolerância a falhas aos outros DSAs na ordem em que eles estão listados nos arquivos de configuração.
É possível substituir essa ordem com os seguintes comandos:
set precedence = precedence-list; set write-precedence = precedence-list;
O comando set precedence define a ordem dos DSAs aos quais o DSA roteador aplica a tolerância a falhas.
O comando set write-precedence define a ordem na qual os DSAs são escolhidos para realizar atualizações. Você pode usá-lo para direcionar as solicitações de gravação de um computador com tolerância a falhas para um mestre preferencial. Se o comando set write-precedence não estiver presente, as atualizações seguirão a precedência normal, que é definida na ordem dos DSAs no arquivo de configuração ou pelo comando set precedence.
Os DSAs nessas listas têm precedência sobre aqueles que não estão listados, e os DSAs indicados antes nas listas têm precedência sobre aqueles indicados depois.
Para maximizar o desempenho, em geral, você deve priorizar os DSAs mais rápidos em detrimento dos DSAs mais lentos, e os DSAs locais em detrimento dos DSAs remotos.
Quando esses comandos ocorrem em um arquivo de configuração, forneça-os depois do conhecimento.
Esses comandos devem aparecer somente uma vez nos arquivos de configuração fornecidos por qualquer DSA específico.
Exemplo: Usando a precedência para DSAs separados geograficamente
Os DSAs LESTE, OESTE, NORTE E SUL contêm as mesmas informações. O comando a seguir garante que os DSAs no leste apliquem tolerância a falhas em OESTE antes de OESTE:
set precedence = EAST, WEST;
Os DSAs NORTE e SUL não estão listados, então, se o LESTE e o OESTE estiverem indisponíveis, os DSAs aplicarão tolerância a falhas a eles na ordem em que estiverem listados no arquivo de configuração.
Exemplo: Usando a precedência de gravação
set write-precedence = home-dsa,work-dsa;
Definir a precedência do DSA para tolerância a falhas com grupos de compartilhamento de carga
Você pode usar regras de precedência para afetar como a tolerância a falhas funciona com grupos de compartilhamento de carga. Para obter informações sobre a configuração de precedência, consulte Definir a precedência de DSA para tolerância a falhas.
Se você usar o comando set precedence para listar os DSAs que também estão em grupos de compartilhamento de carga, um grupo de compartilhamento de carga terá a precedência do DSA mais elevado nesse grupo.
Por exemplo, considere o seguinte comando:
set precedence = DSA1, DSA2, DSA3, DSA4;
Um grupo de compartilhamento de carga que inclui DSA1 e DSA4 tem precedência sobre um grupo que inclui DSA2 e DSA3.
Além disso, um grupo de compartilhamento de carga que inclua DSA4 tem precedência sobre um grupo que não inclua nenhum DSA listado.
Outros métodos para tolerância a falhas do roteador
Outras abordagens foram seguidas, e cada uma tem os prós e contras a seguir:
- Round-robin DNSEssa solução é fácil de implementar, mas cada cliente deve manter afinidade com um único DSA roteador por toda a conexão. Além disso, os atrasos inerentes em aplicar as alterações aos registros de DNS podem causar problemas.
- Tolerância a falhas de IPOutra boa solução é fornecer um mecanismo de tolerância a falhas de IP imediato entre os computadores que executam os roteadores de DSAs. Há algumas configurações adicionais necessárias para que um DSA roteador se vincule a um novo endereço IP, mas isso pode ser feito. Certifique-se de que o método escolhido seja imediato, não exija reinicialização e lide com o failback.
- Balanceadores de carga de redeEles não são recomendados. Balanceadores de carga de rede podem reduzir o desempenho do CA Directory.
Failback
Failback
é a restauração para um serviço normal de um DSA do CA Directory após a tolerância a falhas e a recuperação.Quando um DSA subordinado fica indisponível, o roteador redireciona todas as solicitações direcionadas para esse DSA para outro DSA que atende ao mesmo prefixo (tolerância a falhas). Quando o DSA indisponível se tornar disponível novamente, o CA Directory enviará automaticamente as solicitações ao DSA (failback).