Partilhar via


Tutorial: Simular uma falha na leitura de dados da região primária

Este tutorial é a segunda parte de uma série. Nele, ficará a saber mais sobre as vantagens do armazenamento georredundante com acesso de leitura (RA-GZRS) ao simular uma falha.

Para simular uma falha, pode utilizar o encaminhamento estático ou o Fiddler. Ambos os métodos permitir-lhe-ão simular a falha de pedidos para o ponto final primário da sua conta de armazenamento RA-GZRS, levando a aplicação a ler a partir do ponto final secundário.

Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.

Na segunda parte da série, saiba como:

Pré-requisitos

Antes de começar este tutorial, conclua o tutorial anterior: Tornar os dados da sua aplicação altamente disponíveis com o armazenamento do Azure.

Para simular uma falha com o encaminhamento estático, irá utilizar uma linha de comandos elevada.

Para simular uma falha com o Fiddler, transfira e instale o Fiddler

Simular uma falha com uma rota estática inválida

Pode criar uma rota estática inválida para todos os pedidos para o ponto final primário da sua conta de armazenamento RA-GZRS. Neste tutorial, o anfitrião local é utilizado como o gateway de encaminhamento de pedidos para a conta de armazenamento. A utilização do anfitrião local como gateway faz com que todos os pedidos para o ponto final primário da conta de armazenamento voltem a ser executados dentro do anfitrião, o que resulta num pedido falhado. Siga os passos seguintes para simular uma falha e o restauro do ponto final primário com uma rota estática inválida.

Iniciar e colocar em pausa a aplicação

Utilize as instruções no tutorial anterior para iniciar o exemplo e transferir o ficheiro de teste, confirmando que provém do armazenamento primário. Consoante a plataforma de destino, pode colocar manualmente o exemplo em pausa ou aguardar numa linha de comandos.

Simular falha

Enquanto a aplicação estiver em pausa, abra uma linha de comandos no Windows como administrador ou execute o terminal como raiz no Linux.

Obtenha informações sobre o domínio de ponto final primário da conta de armazenamento ao introduzir o seguinte comando numa linha de comandos ou terminal, substituindo STORAGEACCOUNTNAME pelo nome da sua conta de armazenamento.

nslookup STORAGEACCOUNTNAME.blob.core.windows.net

Copie o endereço IP da sua conta de armazenamento para um editor de texto, para utilização posterior.

Para obter o endereço IP do anfitrião local, escreva ipconfig na linha de comandos do Windows, ou ifconfig no terminal do Linux.

Para adicionar uma rota estática para um anfitrião de destino, escreva o seguinte comando numa linha de comandos do Windows ou terminal do Linux, substituindo <destination_ip> pelo endereço IP da conta de armazenamento e <gateway_ip> pelo endereço IP do anfitrião local.

Linux

sudo route add <destination_ip> gw <gateway_ip>

Windows

route add <destination_ip> <gateway_ip>

Na janela com o exemplo em execução, retome a aplicação ou prima a tecla adequada para transferir o ficheiro de exemplo e confirmar que provém do armazenamento secundário. Em seguida, pode colocar o exemplo novamente em pausa ou aguardar na linha de comandos.

Simular o restauro do ponto final primário

Para simular o ponto final primário a ficar funcional novamente, elimine a rota estática inválida da tabela de encaminhamento. Isto permite que todos os pedidos para o ponto final primário sejam encaminhados através de um gateway predefinido. Escreva o seguinte comando numa linha de comandos do Windows ou num terminal do Linux.

Linux

sudo route del <destination_ip> gw <gateway_ip>

Windows

route delete <destination_ip>

Em seguida, pode retomar a aplicação ou premir a tecla adequada para transferir novamente o ficheiro de exemplo, desta vez confirmando que é novamente proveniente do armazenamento primário.

Simular uma falha com o Fiddler

Para simular a falha com o Fiddler, injete uma resposta falhada para pedidos para o ponto final primário da sua conta de armazenamento RA-GZRS.

As secções seguintes mostram como simular uma falha e o restauro do ponto final primário com o fiddler.

Iniciar o fiddler

Abra o Fiddler, selecione Regras e Personalizar Regras.

Personalizar regras do Fiddler

O Fiddler ScriptEditor inicia e apresenta o ficheiro SampleRules.js . Este ficheiro é utilizado para personalizar o Fiddler.

Cole o seguinte exemplo de código na OnBeforeResponse função, substituindo STORAGEACCOUNTNAME pelo nome da sua conta de armazenamento. Consoante o exemplo, também poderá ter de substituir HelloWorld pelo nome do ficheiro de teste que está a ser transferido ou remover essa parte da condição se não se aplicar. O novo código é comentado para garantir que não é executado imediatamente.

Depois de concluído, selecione Ficheiro e Guardar para guardar as alterações. Deixe a janela ScriptEditor aberta para utilização nos passos seguintes.

    /*
        // Simulate data center failure
        // After it is successfully downloading the blob, pause the code in the sample,
        // uncomment these lines of script, and save the script.
        // It will intercept the (probably successful) responses and send back a 503 error.
        // When you're ready to stop sending back errors, comment these lines of script out again
        //     and save the changes.

        if ((oSession.hostname == "STORAGEACCOUNTNAME.blob.core.windows.net")
            // depending on the sample, you may need to modify or remove the line below
            && (oSession.PathAndQuery.Contains("HelloWorld"))) {
            oSession.responseCode = 503;
        }
    */

Colar regra personalizada

Iniciar e colocar em pausa a aplicação

Utilize as instruções no tutorial anterior para iniciar o exemplo e transferir o ficheiro de teste, confirmando que provém do armazenamento primário. Consoante a plataforma de destino, pode colocar manualmente o exemplo em pausa ou aguardar numa linha de comandos.

Simular falha

Enquanto a aplicação estiver em pausa, regresse ao Fiddler e anule o comentário da regra personalizada que guardou na OnBeforeResponse função. Certifique-se de que seleciona Ficheiro e Guardar para guardar as alterações para que a regra entre em vigor. Este código procura pedidos para a conta de armazenamento RA-GZRS e, se o caminho contiver o nome do ficheiro de exemplo, devolve um código de resposta de 503 - Service Unavailable.

Na janela com o exemplo em execução, retome a aplicação ou prima a tecla adequada para transferir o ficheiro de exemplo e confirmar que provém do armazenamento secundário. Em seguida, pode colocar o exemplo novamente em pausa ou aguardar na linha de comandos.

Simular o restauro do ponto final primário

No Fiddler, remova ou comente novamente a regra personalizada. Selecione Ficheiro e Guardar para garantir que a regra deixará de estar em vigor.

Na janela com o exemplo em execução, retome a aplicação ou prima a tecla adequada para transferir o ficheiro de exemplo e confirme que vem novamente do armazenamento primário. Em seguida, pode sair do exemplo.

Passos seguintes

Na segunda parte da série, aprendeu a simular uma falha ao testar o armazenamento georredundante com acesso de leitura.

Para saber mais sobre como funciona o armazenamento RA-GZRS e os riscos associados, veja Designing HA apps with RA-GZRS (Conceber aplicações HA com RA-GZRS).