Samouczek: Symulowanie błędu podczas uzyskiwania dostępu do odczytu do magazynu nadmiarowegoTutorial: Simulate a failure in accessing read-access redundant storage

Ten samouczek jest drugą częścią serii.This tutorial is part two of a series. Poznasz w nim korzyści wynikające z dostępu do odczytu z magazynu geograficznie nadmiarowego (RA-GRS) poprzez symulowanie błędu.In it, you learn about the benefits of a read-access geo-redundant (RA-GRS) by simulating a failure.

Aby symulować błąd, możesz użyć routingu statycznego lub Fiddler.In order to simulate a failure, you can use either Static Routing or Fiddler. Obie metody umożliwi symulacji błędu żądań kierowanych do podstawowego punktu końcowego usługi geograficznie nadmiarowego konta magazynu (RA-GRS), powodując aplikacji zamiast tego odczyt z pomocniczego punktu końcowego.Both methods will allow you to simulate failure for requests to the primary endpoint of your read-access geo-redundant (RA-GRS) storage account, causing the application read from the secondary endpoint instead.

Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.If you don't have an Azure subscription, create a free account before you begin.

Część druga serii zawiera informacje na temat wykonywania następujących czynności:In part two of the series, you learn how to:

Wymagania wstępnePrerequisites

Przed rozpoczęciem pracy z tym samouczkiem ukończ poprzedni samouczek: Uzyskiwanie wysokiej dostępności danych aplikacji przy użyciu usługi Azure Storage.Before you begin this tutorial, complete the previous tutorial: Make your application data highly available with Azure storage.

Symulowanie błędu przy użyciu routingu statycznego, zostanie użyty wiersz polecenia z podwyższonym.To simulate a failure with static routing, you will use an elevated command prompt.

Symulowanie błędu przy użyciu programu Fiddler, należy pobrać i Zainstaluj program FiddlerTo simulate a failure using Fiddler, download and install Fiddler

Symulowanie błędu przy użyciu nieprawidłowej trasy statycznejSimulate a failure with an invalid static route

Możesz utworzyć nieprawidłową trasę statyczną dla wszystkich żądań kierowanych do podstawowego punktu końcowego konta magazynu geograficznie nadmiarowego do odczytu (RA-GRS).You can create an invalid static route for all requests to the primary endpoint of your read-access geo-redundant (RA-GRS) storage account. W tym samouczku host lokalny jest używany jako brama na potrzeby kierowania żądań do konta magazynu.In this tutorial, the local host is used as the gateway for routing requests to the storage account. Dzięki użyciu hosta lokalnego brama powoduje, że wszystkie żądania kierowane do podstawowego punktu końcowego konta magazynu wywołują sprzężenie zwrotne wewnątrz hosta, co następnie prowadzi do wystąpienia błędu.Using the local host as the gateway causes all requests to your storage account primary endpoint to loop back inside the host, which subsequently leads to failure. Wykonaj poniższe kroki, aby symulować błąd i przywracanie podstawowego punktu końcowego przy użyciu nieprawidłowej trasy statycznej.Follow the following steps to simulate a failure, and primary endpoint restoration with an invalid static route.

Uruchamianie i zatrzymywanie aplikacjiStart and pause the application

Postępuj zgodnie z instrukcjami w [poprzedniego samouczka] previous-tutorial do uruchomienia przykładu i Pobierz plik testu, potwierdzenie, że pochodzi on z magazynu głównego.Use the instructions in the previous tutorial to launch the sample and download the test file, confirming that it comes from primary storage. W zależności od platformy docelowej możesz ręcznie wstrzymać próbki lub oczekiwania w wierszu.Depending on your target platform, you can then manually pause the sample or wait at a prompt.

Symulowanie błęduSimulate failure

Gdy aplikacja jest wstrzymana, otwórz wiersz polecenia na Windows jako administrator lub uruchom terminal jako katalog główny w systemie Linux.While the application is paused, open a command prompt on Windows as an administrator or run terminal as root on Linux.

Uzyskać informacje na temat domeny podstawowego punktu końcowego konta magazynu, wprowadzając następujące polecenie w wierszu polecenia terminala, zastępując STORAGEACCOUNTNAME nazwą konta magazynu.Get information about the storage account primary endpoint domain by entering the following command on a command prompt or terminal, replacing STORAGEACCOUNTNAME with the name of your storage account.

nslookup STORAGEACCOUNTNAME.blob.core.windows.net

Skopiuj adres IP konta magazynu do edytora tekstów w celu późniejszego użycia.Copy to the IP address of your storage account to a text editor for later use.

Aby uzyskać adres IP hosta lokalnego, wpisz ipconfig w wierszu polecenia systemu Windows lub ifconfig w terminalu systemu Linux.To get the IP address of your local host, type ipconfig on the Windows command prompt, or ifconfig on the Linux terminal.

Aby dodać trasę statyczną hosta docelowego, wpisz następujące polecenie w wierszu polecenia Windows lub terminalu systemu Linux, zastępując <destination_ip> za pomocą adresu IP konta magazynu i <gateway_ip> za pomocą adresu IP hosta lokalnego.To add a static route for a destination host, type the following command on a Windows command prompt or Linux terminal, replacing <destination_ip> with your storage account IP address and <gateway_ip> with your local host IP address.

LinuxLinux

route add <destination_ip> gw <gateway_ip>

WindowsWindows

route add <destination_ip> <gateway_ip>

W oknie Uruchamianie przykład wznowić działanie aplikacji, lub naciśnij odpowiedni klawisz, aby pobrać przykładowy plik i upewnij się, że pochodzi on z magazynu pomocniczego.In the window with the running sample, resume the application or press the appropriate key to download the sample file and confirm that it comes from secondary storage. Następnie można ponownie wstrzymać próbki lub oczekiwania w wierszu.You can then pause the sample again or wait at the prompt.

Symulowanie przywracania podstawowego punktu końcowegoSimulate primary endpoint restoration

Aby zasymulować podstawowego punktu końcowego, staje się ponownie funkcjonalności, należy usunąć z tabeli routingu nieprawidłowej trasy statycznej.To simulate the primary endpoint becoming functional again, delete the invalid static route from the routing table. Dzięki temu wszystkie żądania do podstawowego punktu końcowego będą kierowane za pośrednictwem bramy domyślnej.This allows all requests to the primary endpoint to be routed through the default gateway. Wpisz następujące polecenie w wierszu polecenia Windows lub terminalu systemu Linux.Type the following command on a Windows command prompt or Linux terminal.

LinuxLinux

route del <destination_ip> gw <gateway_ip>

WindowsWindows

route delete <destination_ip>

Następnie można wznowić aplikacji lub naciśnij odpowiedni klawisz, aby pobrać próbkę plik ponownie, ten czas potwierdzenie, że ponownie pochodzą z magazynu głównego.You can then resume the application or press the appropriate key to download the sample file again, this time confirming that it once again comes from primary storage.

Symulowanie błędu przy użyciu programu FiddlerSimulate a failure with Fiddler

Aby symulować błąd przy użyciu programu Fiddler, należy dodać odpowiedź oznaczającą błąd dla żądań kierowanych do podstawowego punktu końcowego konta magazynu RA-GRS.To simulate failure with Fiddler, you inject a failed response for requests to the primary endpoint of your RA-GRS storage account.

Poniższe sekcje pokazują, jak zasymulować błąd i przywrócić podstawowy punkt końcowy przy użyciu programu Fiddler.The following sections depict how to simulate a failure and primary endpoint restoration with fiddler.

Uruchamianie programu FiddlerLaunch fiddler

Otwórz program Fiddler i wybierz kolejno pozycje Reguły i Dostosuj reguły.Open Fiddler, select Rules and Customize Rules.

Dostosowywanie zasad programu Fiddler

Zostanie uruchomiony edytor ScriptEditor programu Fiddler i wyświetli plik SampleRules.js.The Fiddler ScriptEditor launches and displays the SampleRules.js file. Ten plik jest używany do dostosowywania programu Fiddler.This file is used to customize Fiddler.

Wklej następujący przykładowy kod w OnBeforeResponse funkcjonować i zastępując STORAGEACCOUNTNAME nazwą konta magazynu.Paste the following code sample in the OnBeforeResponse function, replacing STORAGEACCOUNTNAME with the name of your storage account. W zależności od próbki, konieczne może być Zastąp HelloWorld o nazwie pliku testowego (lub prefiks, takie jak sampleFile) pobierany.Depending on the sample, you may also need to replace HelloWorld with the name of the test file (or a prefix such as sampleFile) being downloaded. Nowy kod jest oznaczone jako komentarz, aby upewnić się, że nie działa natychmiast.The new code is commented out to ensure that it doesn't run immediately.

Po zakończeniu wybierz pozycję Plik i Zapisz, aby zapisać swoje zmiany.Once complete, select File and Save to save your changes. Zamykaj okna ScriptEditor do użycia w kolejnych krokach.Leave the ScriptEditor window open for use in the following steps.

    /*
        // 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")
            && (oSession.PathAndQuery.Contains("HelloWorld"))) {
            oSession.responseCode = 503;
        }
    */

Wklejanie dostosowanej reguły

Uruchamianie i zatrzymywanie aplikacjiStart and pause the application

Postępuj zgodnie z instrukcjami w [poprzedniego samouczka] previous-tutorial do uruchomienia przykładu i Pobierz plik testu, potwierdzenie, że pochodzi on z magazynu głównego.Use the instructions in the previous tutorial to launch the sample and download the test file, confirming that it comes from primary storage. W zależności od platformy docelowej możesz ręcznie wstrzymać próbki lub oczekiwania w wierszu.Depending on your target platform, you can then manually pause the sample or wait at a prompt.

Symulowanie błęduSimulate failure

Gdy aplikacja jest wstrzymana, przełącz się do programu Fiddler i usuń znaczniki komentarza reguły niestandardowej zapisanej w OnBeforeResponse funkcji.While the application is paused, switch back to Fiddler and uncomment the custom rule you saved in the OnBeforeResponse function. Pamiętaj o wybraniu pliku i Zapisz Aby zapisać zmiany, aby reguła zaczną obowiązywać.Be sure to select File and Save to save your changes so the rule will take effect. Ten kod wyszukuje żądania do konta magazynu RA-GRS i jeśli ścieżka zawiera nazwę przykładowego pliku zwraca kod odpowiedzi 503 - Service Unavailable.This code looks for requests to the RA-GRS storage account and, if the path contains the name of the sample file, returns a response code of 503 - Service Unavailable.

W oknie Uruchamianie przykład wznowić działanie aplikacji, lub naciśnij odpowiedni klawisz, aby pobrać przykładowy plik i upewnij się, że pochodzi on z magazynu pomocniczego.In the window with the running sample, resume the application or press the appropriate key to download the sample file and confirm that it comes from secondary storage. Następnie można ponownie wstrzymać próbki lub oczekiwania w wierszu.You can then pause the sample again or wait at the prompt.

Symulowanie przywracania podstawowego punktu końcowegoSimulate primary endpoint restoration

W narzędziu Fiddler należy usunąć lub ponownie komentarz reguły niestandardowej.In Fiddler, remove or comment out the custom rule again. Wybierz pliku i Zapisz aby upewnić się, zasady nie będą już obowiązywały.Select File and Save to ensure the rule will no longer be in effect.

W oknie Uruchamianie przykład wznowić działanie aplikacji, lub naciśnij odpowiedni klucz Pobierz przykładowy plik i upewnij się, że pochodzi on z magazynu głównego jeszcze raz.In the window with the running sample, resume the application or press the appropriate key to download the sample file and confirm that it comes from primary storage once again. Następnie możesz wyjść próbki.You can then exit the sample.

Kolejne krokiNext steps

W drugiej części serii omówiono czynności dotyczące symulowania błędu w celu przetestowania magazynu geograficznie nadmiarowego do odczytu.In part two of the series, you learned about simulating a failure to test read access geo-redundant storage.

Aby dowiedzieć się więcej na temat sposobu działania magazynu RA-GRS i powiązanych z nim czynników ryzyka, przeczytaj następujący artykuł:To learn more about how RA-GRS storage works, as well as its associated risks, read the following article: