Remotesynchrone Blockreplikation in Oracle Cloud Infrastructure verwenden
Geben Sie Fehlertoleranz für Block-Volumes mit synchroner Remoteblockreplikation an.
Typische Herausforderungen für viele Unternehmen sind: Anwendungen, die auf einer Datenbank ausgeführt werden, Anwendungen, die auf zugrunde liegende Block-Devices zugreifen, und eine Geschäftsanforderung für keine Verzögerungen bei Services.
Beispiel: Zahlungsverarbeitungsunternehmen. Da sich eine Verzögerung bei der Zahlungsverarbeitung negativ auf die Reputation und den Markennamen in den Augen ihrer Kunden auswirkt, müssen sie über Hochverfügbarkeitstechnologie verfügen, um eine echte Fehlertoleranz zu gewährleisten (d. h. keine Serviceunterbrechungen bei einem Single-Component-Fehler).
Architektur
Diese Architektur implementiert ein hochverfügbares Block-Device auf Oracle Cloud Infrastructure (OCI), das einen Fehler auf Geschäftsanwendungsebene vollständig toleriert. Verwenden Sie diese Architektur für leistungsabhängige Anwendungen, die gleichzeitig Kontinuität erfordern.
Diese Architektur stellt Benutzern ein einzelnes iSCSI-Blockgerät (Entity) bereit. Dieses Gerät ist immer verfügbar, unabhängig von Einzelkomponentenfehlern. Alle anderen Architekturkomponenten werden für Benutzer ausgeblendet. Die Architektur ist bei einem Ausfall oder Switchover vollautomatisch. Der einzige Effekt, den Benutzer bei einem Ausfall oder Switchover bemerken, ist eine Leistungsverschlechterung des iSCSI-Geräts um etwa 50% für eine oder zwei Sekunden.
Die Implementierung eines einzelnen, immer verfügbaren Block-Devices erfordert Folgendes.
- Drei Compute-Instanzen, virtuelle Maschinen oder Bare Metal (BM). Letzteres kann bevorzugt sein, da sie eine stabile Leistung aufweisen.
- Zwei VCNs: ein öffentliches, ein privates VCN.
- Zwei Block-Volumes Ihres immer verfügbaren Zielgeräts.
- (Empfohlen) Die Block-Volumes müssen mindestens 10 VPU aufweisen. Je nach Aggressivität des I/O-Durchsatzes und der Entfernung zwischen den gespiegelten Hosts (und Block-Volumes) sollten Sie eine noch höhere IOPS-Ebene in Betracht ziehen.
Daher sind die Kosten für die Implementierung eines immer verfügbaren Block-Device das Dreifache der Kosten für die Compute-Instanz plus das Zweifache der Kosten für das Device selbst.
Das folgende Diagramm veranschaulicht diese Referenzarchitektur.
Remote-Synchron-Block-Replikations-Diagramm-oracle.zip
Die Architektur umfasst die folgenden Komponenten:
- Verteiltes repliziertes Block-Device
Distributed Replicated Block Device (DRBD) ist ein Linux-Kerneltreiber, der die Netzwerkverbindung zwischen zwei Blockgeräten auf Remote-Linux-Instanzen aufrechterhält und I/O-Vorgänge von der Quellinstanz in die Zielinstanz repliziert.
- Schrittmacher
Pacemaker ist ein Open-Source-Clusterressourcenmanager mit hoher Verfügbarkeit, der häufig in Linux-Umgebungen verwendet wird. Es stellt sicher, dass Anwendungen, Services oder Ressourcen kontinuierlich mit minimaler Ausfallzeit ausgeführt werden, indem Fehler erkannt und Services auf anderen Knoten in einem Cluster automatisch neu gestartet oder umgespeichert werden.
- Corosync
Corosync ist ein Open-Source-Softwareprodukt, das Pacemaker mit der Semantik der Wiederherstellung im Fall von Split-Hirn erweitert.
- iSCSI-Initiator und -Ziel
iSCSI ist eine Client- und Serversoftwarekomponente, die ein SCSI-Gerät über ein Netzwerk bereitstellt.
Empfehlungen
- VCN
Wenn Sie ein VCN erstellen, bestimmen Sie die Anzahl der erforderlichen CIDR-Blöcke und die Größe jedes Blocks basierend auf der Anzahl der Ressourcen, die Sie an Subnetze im VCN anhängen möchten. Verwenden Sie CIDR-Blöcke, die sich innerhalb des privaten IP-Standardadressraums befinden.
Wählen Sie CIDR-Blöcke aus, die sich nicht mit einem anderen Netzwerk (in Oracle Cloud Infrastructure, Ihrem On-Premise-Data Center oder einem anderen Cloud-Provider) überschneiden, zu dem Sie private Verbindungen einrichten möchten.
Nachdem Sie ein VCN erstellt haben, können Sie die CIDR-Blöcke ändern, hinzufügen und entfernen.
Berücksichtigen Sie beim Entwerfen der Subnetze Ihren Trafficfluss und Ihre Sicherheitsanforderungen. Hängen Sie alle Ressourcen innerhalb einer bestimmten Ebene oder Rolle an dasselbe Subnetz an, das als Sicherheitsgrenze dienen kann.
- Cloud Guard
Klonen und passen Sie die von Oracle bereitgestellten Standardrezepte an, um benutzerdefinierte Detektorrezepte und Responder-Rezepte zu erstellen. Mit diesen Rezepten können Sie angeben, welche Art von Sicherheitsverletzungen eine Warnung generieren und welche Aktionen für sie ausgeführt werden dürfen. Beispiel: Sie möchten Objektspeicher-Buckets ermitteln, deren Sichtbarkeit auf "Öffentlich" gesetzt ist.
Wenden Sie Cloud Guard auf Mandantenebene an, um den breitesten Geltungsbereich abzudecken und den Verwaltungsaufwand für die Verwaltung mehrerer Konfigurationen zu reduzieren.
Sie können auch das Feature "Verwaltete Liste" verwenden, um bestimmte Konfigurationen auf Detektoren anzuwenden.
- Sicherheitszonen
Für Ressourcen, die maximale Sicherheit erfordern, empfiehlt Oracle die Verwendung von Sicherheitszonen. Eine Sicherheitszone ist ein Compartment, das mit einem von Oracle definierten Rezept von Sicherheits-Policys verknüpft ist, die auf Best Practices basieren. Beispiel: Die Ressourcen in einer Sicherheitszone dürfen nicht über das öffentliche Internet zugänglich sein und müssen mit vom Kunden verwalteten Schlüsseln verschlüsselt werden. Wenn Sie Ressourcen in einer Sicherheitszone erstellen und aktualisieren, validiert Oracle Cloud Infrastructure die Vorgänge anhand der Policys im Rezept der Sicherheitszone und lehnt Vorgänge ab, die gegen eine der Policys verstoßen.
- Netzwerksicherheitsgruppen (NSGs)
Mit NSGs können Sie eine Gruppe von Ingress- und Egress-Regeln definieren, die für bestimmte VNICs gelten. Wir empfehlen die Verwendung von NSGs und nicht von Sicherheitslisten, da NSGs es Ihnen ermöglichen, die Subnetzarchitektur des VCN von den Sicherheitsanforderungen Ihrer Anwendung zu trennen.
- Load-Balancer-Bandbreite
Beim Erstellen des Load Balancers können Sie entweder eine vordefinierte Ausprägung auswählen, die eine feste Bandbreite bereitstellt, oder eine benutzerdefinierte (flexible) Ausprägung angeben, in der Sie einen Bandbreitenbereich festlegen und den Service die Bandbreite automatisch basierend auf Trafficmustern skalieren lassen. Bei beiden Verfahren können Sie die Ausprägung nach dem Erstellen des Load Balancers jederzeit ändern.
Hinweise
Beachten Sie Folgendes, wenn Sie diese Referenzarchitektur bereitstellen.
- Performance
Planen Sie zwei Mal N von nominalen IOPS auf Ihrem immer verfügbaren Gerät, um Ihren Benutzern N IOPS bereitzustellen. Dies liegt daran, dass die Hälfte der Performance für Echtzeitspiegelungen ausgegeben wird.
- Sicherheit
Wir empfehlen dringend, die Implementierungsdetails zu isolieren, indem die Lösung in öffentliche und private Netzwerke aufgeteilt wird.
- Verfügbarkeit
Wir empfehlen, immer verfügbare Geräte zu implementieren, da iSCSI für diese Technologie OS-unabhängig ist, sodass Benutzer echte Fehlertoleranz genießen können, unabhängig davon, ob sie Linux oder Windows auf ihren Computern ausführen.
Alle Softwarekomponenten der Lösung sind öffentlich als Open-Source-Produkte verfügbar. Insbesondere der DRBD-Treiber ist ein integraler Bestandteil des Vanilla Linux-Kernels und in jeder Linux-Distribution verfügbar.