Tutorial: Simulieren eines Fehlers bei Zugriff auf redundanten Speicher mit LesezugriffTutorial: Simulate a failure in accessing read-access redundant storage

Dieses Tutorial ist der zweite Teil einer Reihe.This tutorial is part two of a series. In diesem Teil erfahren Sie, welchen Nutzen ein georedundanter Speicher mit Lesezugriff (Read-Access Geographically Redundant Storage, RA-GRS) bietet, indem Sie einen Fehler simulieren.In it, you learn about the benefits of a read-access geo-redundant (RA-GRS) by simulating a failure.

Zum Simulieren eines Fehlers können Sie statisches Routing oder Fiddler verwenden.In order to simulate a failure, you can use either Static Routing or Fiddler. Beide Methoden ermöglichen es Ihnen, einen Fehler für Anforderungen an den primären Endpunkt Ihres RA-GRS-Speicherkontos (georedundanter Speicher mit Lesezugriff) zu simulieren, sodass die Anwendung stattdessen vom sekundären Endpunkt liest.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.

Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.If you don't have an Azure subscription, create a free account before you begin.

Im zweiten Teil der Reihe lernen Sie Folgendes:In part two of the series, you learn how to:

VoraussetzungenPrerequisites

Führen Sie vor Beginn dieses Tutorials das vorherige Tutorial durch: Herstellen von Hochverfügbarkeit für Anwendungsdaten mit Azure Storage.Before you begin this tutorial, complete the previous tutorial: Make your application data highly available with Azure storage.

Zum Simulieren eines Fehlers mit statischem Routing verwenden Sie eine Eingabeaufforderung mit erhöhten Rechten.To simulate a failure with static routing, you will use an elevated command prompt.

Führen Sie den Download und die Installation von Fiddler durch, um einen Fehler mit Fiddler zu simulieren.To simulate a failure using Fiddler, download and install Fiddler

Simulieren eines Fehlers mit einer ungültigen statischen RouteSimulate a failure with an invalid static route

Sie können eine ungültige statische Route für alle Anforderungen an den primären Endpunkt Ihres Speicherkontos vom Typ Georedundanter Speicher mit Lesezugriff (RA-GRS) erstellen.You can create an invalid static route for all requests to the primary endpoint of your read-access geo-redundant (RA-GRS) storage account. In diesem Tutorial wird der lokale Host als Gateway für das Weiterleiten von Anforderungen an das Speicherkonto verwendet.In this tutorial, the local host is used as the gateway for routing requests to the storage account. Die Nutzung des lokalen Hosts als Gateway bewirkt, dass für alle Anforderungen an den primären Endpunkt Ihres Speicherkontos eine Schleife zurück zum Host erfolgt. Dies führt schließlich zu einem Fehler.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. Führen Sie die folgenden Schritte aus, um einen Fehler zu simulieren und die Wiederherstellung des primären Endpunkts mit einer ungültigen statischen Route durchzuführen.Follow the following steps to simulate a failure, and primary endpoint restoration with an invalid static route.

Starten und Anhalten der AnwendungStart and pause the application

Verwenden Sie die Anleitung im vorherigen Tutorial, um das Beispiel zu starten und die Testdatei herunterzuladen und sicherzustellen, dass sie aus dem primären Speicher stammt.Use the instructions in the previous tutorial to launch the sample and download the test file, confirming that it comes from primary storage. Je nach Zielplattform können Sie das Beispiel dann manuell anhalten oder müssen an der Eingabeaufforderung warten.Depending on your target platform, you can then manually pause the sample or wait at a prompt.

Simulieren eines FehlersSimulate failure

Öffnen Sie bei angehaltener Anwendung eine Eingabeaufforderung unter Windows als Administrator, oder führen Sie das Terminal unter Linux als root-Benutzer aus.While the application is paused, open a command prompt on Windows as an administrator or run terminal as root on Linux.

Geben Sie an einer Eingabeaufforderung oder in einem Terminal den folgenden Befehl ein, um Informationen zur Domäne des primären Endpunkts des Speicherkontos abzurufen. Ersetzen Sie hierbei STORAGEACCOUNTNAME durch den Namen Ihres Speicherkontos.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

Kopieren Sie die IP-Adresse Ihres Speicherkontos zur späteren Verwendung in einen Text-Editor.Copy to the IP address of your storage account to a text editor for later use.

Geben Sie zum Abrufen der IP-Adresse Ihres lokalen Hosts an der Windows-Eingabeaufforderung ipconfig bzw. im Linux-Terminal ifconfig ein.To get the IP address of your local host, type ipconfig on the Windows command prompt, or ifconfig on the Linux terminal.

Geben Sie zum Hinzufügen einer statischen Route für einen Zielhost den folgenden Befehl in einer Windows-Eingabeaufforderung oder einem Linux-Terminal ein, und ersetzen Sie <destination_ip> durch die IP-Adresse Ihres Speicherkontos und <gateway_ip> durch Ihre lokale Host-IP-Adresse.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>

Setzen Sie die Anwendung im Fenster mit dem ausgeführten Beispiel fort, oder betätigen Sie die entsprechende Schaltfläche, um die Beispieldatei herunterzuladen und zu bestätigen, dass sie aus dem sekundären Speicher stammt.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. Sie können das Beispiel dann erneut anhalten oder an der Eingabeaufforderung warten.You can then pause the sample again or wait at the prompt.

Simulieren der Wiederherstellung des primären EndpunktsSimulate primary endpoint restoration

Löschen Sie die ungültige statische Route aus der Routingtabelle, um zu simulieren, dass der primäre Endpunkt wieder funktionsfähig ist.To simulate the primary endpoint becoming functional again, delete the invalid static route from the routing table. Dies ermöglicht, dass alle Anforderungen an den primären Endpunkt über das Standardgateway geleitet werden.This allows all requests to the primary endpoint to be routed through the default gateway. Geben Sie den folgenden Befehl in einer Windows-Eingabeaufforderung oder im Linux-Terminal ein.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>

Sie können die Anwendung dann fortsetzen oder die entsprechende Schaltfläche betätigen, um die Beispieldatei erneut herunterzuladen und sich nun zu vergewissern, dass sie wieder aus dem primären Speicher stammt.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.

Simulieren eines Fehlers mit FiddlerSimulate a failure with Fiddler

Zum Simulieren eines Fehlers mit Fiddler injizieren Sie eine fehlerhafte Antwort für Anforderungen an den primären Endpunkt Ihres RA-GRS-Speicherkontos.To simulate failure with Fiddler, you inject a failed response for requests to the primary endpoint of your RA-GRS storage account.

In den folgenden Abschnitten wird gezeigt, wie Sie mit Fiddler einen Fehler simulieren und die Wiederherstellung des primären Endpunkts durchführen.The following sections depict how to simulate a failure and primary endpoint restoration with fiddler.

Starten von FiddlerLaunch fiddler

Öffnen Sie Fiddler, und wählen Sie zuerst Rules (Regeln) und anschließend Customize Rules (Regeln anpassen) aus.Open Fiddler, select Rules and Customize Rules.

Anpassen von Fiddler-Regeln

Der Fiddler ScriptEditor wird gestartet und zeigt die Datei SampleRules.js an.The Fiddler ScriptEditor launches and displays the SampleRules.js file. Mit dieser Datei können Sie Fiddler anpassen.This file is used to customize Fiddler.

Fügen Sie das folgende Codebeispiel in die Funktion OnBeforeResponse ein, und ersetzen Sie STORAGEACCOUNTNAME durch den Namen Ihres Speicherkontos.Paste the following code sample in the OnBeforeResponse function, replacing STORAGEACCOUNTNAME with the name of your storage account. Je nach Beispiel müssen Sie ggf. auch HelloWorld durch den Namen der Testdatei (oder ein Präfix wie sampleFile) ersetzen, die heruntergeladen wird.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. Der neue Code ist auskommentiert, um sicherzustellen, dass er nicht sofort ausgeführt wird.The new code is commented out to ensure that it doesn't run immediately.

Wählen Sie anschließend File (Datei) und dann Save (Speichern) aus, um Ihre Änderungen zu speichern.Once complete, select File and Save to save your changes. Lassen Sie das ScriptEditor-Fenster geöffnet, damit es in den folgenden Schritten verwendet werden kann.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;
        }
    */

Einfügen einer benutzerdefinierten Regel

Starten und Anhalten der AnwendungStart and pause the application

Verwenden Sie die Anleitung im vorherigen Tutorial, um das Beispiel zu starten und die Testdatei herunterzuladen und sicherzustellen, dass sie aus dem primären Speicher stammt.Use the instructions in the previous tutorial to launch the sample and download the test file, confirming that it comes from primary storage. Je nach Zielplattform können Sie das Beispiel dann manuell anhalten oder müssen an der Eingabeaufforderung warten.Depending on your target platform, you can then manually pause the sample or wait at a prompt.

Simulieren eines FehlersSimulate failure

Wechseln Sie bei angehaltener Anwendung zurück zu Fiddler, und heben Sie die Auskommentierung der benutzerdefinierten Regel auf, die Sie in der Funktion OnBeforeResponse gespeichert haben.While the application is paused, switch back to Fiddler and uncomment the custom rule you saved in the OnBeforeResponse function. Achten Sie darauf, dass Sie File (Datei) und Save (Speichern) wählen, um Ihre Änderungen zu speichern, damit die Regel wirksam wird.Be sure to select File and Save to save your changes so the rule will take effect. In diesem Code wird nach Anforderungen an das RA-GRS-Speicherkonto gesucht, und wenn der Pfad den Namen der Beispieldatei enthält, wird der Antwortcode 503 - Service Unavailable zurückgegeben.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.

Setzen Sie die Anwendung im Fenster mit dem ausgeführten Beispiel fort, oder betätigen Sie die entsprechende Schaltfläche, um die Beispieldatei herunterzuladen und zu bestätigen, dass sie aus dem sekundären Speicher stammt.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. Sie können das Beispiel dann erneut anhalten oder an der Eingabeaufforderung warten.You can then pause the sample again or wait at the prompt.

Simulieren der Wiederherstellung des primären EndpunktsSimulate primary endpoint restoration

Entfernen Sie die Regel in Fiddler, oder kommentieren Sie sie wieder aus.In Fiddler, remove or comment out the custom rule again. Wählen Sie File (Datei) und Save (Speichern), um sicherzustellen, dass die Regel nicht mehr wirksam ist.Select File and Save to ensure the rule will no longer be in effect.

Setzen Sie die Anwendung im Fenster mit dem ausgeführten Beispiel fort, oder betätigen Sie die entsprechende Schaltfläche, um die Beispieldatei herunterzuladen und zu bestätigen, dass sie nun wieder aus dem primären Speicher stammt.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. Sie können das Beispiel dann beenden.You can then exit the sample.

Nächste SchritteNext steps

Im zweiten Teil dieser Reihe haben Sie gelernt, wie Sie einen Fehler simulieren, um den georedundanten Speicher mit Lesezugriff zu testen.In part two of the series, you learned about simulating a failure to test read access geo-redundant storage.

Im folgenden Artikel finden Sie weitere Informationen zur Funktionsweise von georedundantem Speicher mit Lesezugriff (RA-GRS) und zu den damit verbundenen Risiken:To learn more about how RA-GRS storage works, as well as its associated risks, read the following article: