Compartilhar via


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

Este tutorial é a parte dois de uma série. Nele, você aprenderá sobre os benefícios do armazenamento com redundância de zona geográfica de acesso de leitura (RA-GZRS) simulando uma falha.

Para simular uma falha, você pode usar o roteamento estático ou o Fiddler. Os dois métodos permitirão simular uma falha de solicitações ao ponto de extremidade primário da conta de armazenamento RA-GZRS, levando o aplicativo a ler do ponto de extremidade secundário.

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

Na parte dois da série, você aprenderá a:

Pré-requisitos

Antes de começar este tutorial, conclua o tutorial anterior: tornar os dados do aplicativo altamente disponíveis com o armazenamento do Azure.

Para simular uma falha de roteamento estático, será necessário utilizar um prompt de comando com privilégios elevados.

Para simular uma falha usando o Fiddler, baixe e instale o Fiddler

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

É possível criar uma rota estática inválida para todas as solicitações da conta de armazenamento RA-GZRS para o ponto de extremidade primário. Neste tutorial, o host local é usado como o gateway para roteamento de solicitações para a conta de armazenamento. Usar o host local como gateway faz com que todas as solicitações para o ponto de extremidade primário da conta de armazenamento sejam redirecionadas de volta para dentro do host, resultando em uma solicitação falha. Siga as etapas a seguir para simular uma falha e a restauração de ponto de extremidade primário com uma rota estática inválida.

Iniciar e pausar o aplicativo

Use as instruções no tutorial anterior para iniciar o exemplo e baixar o arquivo de teste, confirmando que ele vem do armazenamento primário. Dependendo de sua plataforma de destino, você poderá pausar manualmente o exemplo ou esperar em um prompt.

Simular falha

Enquanto o aplicativo estiver em pausa, abra um prompt de comando no Windows como administrador ou execute o terminal como raiz no Linux.

Obtenha informações sobre o domínio do ponto de extremidade primário da conta de armazenamento inserindo o comando a seguir em um prompt de comando 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 uso posterior.

Para obter o endereço IP do host local, digite ipconfig no prompt de comando do Windows ou ifconfig no terminal do Linux.

Para adicionar uma rota estática para um host de destino, digite o comando a seguir em um prompt de comando 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 host 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 o aplicativo ou pressione a tecla apropriada para baixar o arquivo de exemplo e confirmar que ele vem do armazenamento secundário. Então, você pode pausar o exemplo novamente ou aguardar no prompt.

Simular a restauração do ponto de extremidade primário

Para simular o ponto de extremidade primário se tornando funcional novamente, exclua a rota estática inválida da tabela de roteamento. Isso permite que todas as solicitações para o ponto de extremidade primário sejam roteadas através do gateway padrão. Digite o comando a seguir em um prompt de comando do Windows ou terminal do Linux.

Linux

sudo route del <destination_ip> gw <gateway_ip>

Windows

route delete <destination_ip>

Em seguida, você pode retomar o aplicativo ou pressionar a tecla apropriada para baixar o arquivo de exemplo novamente, desta vez confirmando que ele vem mais uma vez do armazenamento primário.

Simular uma falha com o Fiddler

Para simular uma falha com o Fiddler, você injeta uma resposta de falha para solicitações feitas ao endpoint primário da sua conta de armazenamento RA-GZRS.

As seções a seguir explicam como simular uma falha e a restauração do ponto de extremidade primário com o Fiddler.

Iniciar o Fiddler

Abra o Fiddler, selecione Regras e Personalize Regras.

Personalizar regras do Fiddler

O Fiddler ScriptEditor é iniciado e exibe o arquivo SampleRules.js . Esse arquivo é usado para personalizar o Fiddler.

Cole o seguinte exemplo de código na função OnBeforeResponse, substituindo STORAGEACCOUNTNAME pelo nome da sua conta de armazenamento. Dependendo do exemplo, talvez você também precise substituir HelloWorld pelo nome do arquivo de teste que está sendo baixado ou remover essa parte da condição se ela não se aplicar. O novo código é comentado para garantir que ele não seja executado imediatamente.

Depois de concluído, selecione Arquivo e Salvar para salvar suas alterações. Deixe a janela ScriptEditor aberta para uso nas etapas a seguir.

    /*
        // 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 pausar o aplicativo

Use as instruções no tutorial anterior para iniciar o exemplo e baixar o arquivo de teste, confirmando que ele vem do armazenamento primário. Dependendo de sua plataforma de destino, você poderá pausar manualmente o exemplo ou esperar em um prompt.

Simular falha

Com o aplicativo em pausa, volte para o Fiddler e remova a marca de comentário da regra personalizada que você salvou na função OnBeforeResponse. Selecione Arquivo e Salvar para salvar suas alterações para que a regra entre em vigor. Esse código procura solicitações para a conta de armazenamento RA-GZRS e, se o caminho contiver o nome do arquivo de exemplo, retornará um código de resposta de 503 - Service Unavailable.

Na janela com o exemplo em execução, retome o aplicativo ou pressione a tecla apropriada para baixar o arquivo de exemplo e confirmar que ele vem do armazenamento secundário. Então, você pode pausar o exemplo novamente ou aguardar no prompt.

Simular a restauração do ponto de extremidade primário

No Fiddler, remova a regra personalizada ou comente-a novamente. Selecione Arquivo e Salvar para garantir que a regra não esteja mais em vigor.

Na janela com o exemplo em execução, retome o aplicativo ou pressione a tecla apropriada para baixar o arquivo de exemplo e confirmar que ele vem do armazenamento primário mais uma vez. Em seguida, você pode sair da amostra.

Próximas etapas

Na segunda parte da série, você aprendeu a simular uma falha para testar o armazenamento com redundância geográfica com acesso de leitura.

Para saber mais sobre como o armazenamento RA-GZRS funciona e seus riscos associados, consulte a criação de aplicativos de HA com RA-GZRS.