Blackout ist tabu - Verfügbarkeit auf Exasystemen Matthias Fuchs Exaday - 13. April 2016 - Hamburg Matthias Fuchs Principal Consultant [email protected] Twitter @hias222 OCP Engineered Systems Architektur und Konzeption Oracle Infrastruktur Tuning DB und Middleware Vernetzen mit esentri 2 Unser Fokus liegt auf der Middleware > > > > > Oracle ADF & MAF Oracle SOA & BPM Suite Java Enterprise Edition Oracle Weblogic esentri Middleware Toolbox > Cloud > Oracle Java Cloud > Oracle Integration & Process Cloud > Oracle Mobile Cloud > Mehr > Digitalisierung & Industrie 4.0 > Internet of Things > Forms Evolution 3 Eine Allianz für volles Programm rund um den Red Stack Ziel der scope alliance ist es, durch die Vernetzung von Experten den Zugang und Einsatz von Oracle Produkten und Services für Kunden einfacher zu gestalten. In gemeinsamen Projekten bündeln 200 Oracle Spezialisten ihre Expertise aus allen wichtigen Bereichen des Oracle Portfolio, angefangen bei Hardware, über Datenbanken bis hin zu Middleware und Anwendungsentwicklung. 4 Unsere begeisterten Kunden EINFACH MEHR > VERTRAUEN 5 7 Jahre erfolgreiche Oracle Projekte 6 Blackout ist tabu - Verfügbarkeit auf Exasystemen > Verfügbarkeit > Allgemein > ACID > Cap Theorie > Anzahl Rechenzentren > Webscale vs Enterprise > Facebook,Amazon, Oracle SOA > Architektur für die Verfügbarkeit der Exasystems > Exadata > Exalogic > Exadata & Exalogic > Maintenance > Patching > Site Guard > Far Sync > ODA vs Exa Wiki - Verfügbarkeit > Die Verfügbarkeit eines technischen Systems ist die Wahrscheinlichkeit oder das Maß, dass das System bestimmte Anforderungen zu bzw. innerhalb eines vereinbarten Zeitrahmens erfüllt. > Alternativ ist Verfügbarkeit von einer Menge an Objekten definiert als der Anteil der verfügbaren Objekten an der Gesamtzahl der Objekte in dieser Menge. Sie ist ein Qualitätskriterium und eine Kennzahl eines Systems. https://de.wikipedia.org/wiki/Verf%C3%BCgbarkeit Verfügbarkeit Verfübarkeit = !"#$%&'"(&*!"#$%&$+#,$--'"(& !"#$%&'"(& > Downtime: > Geplante Downtime: keine Ausfallzeit > Ungeplante Downtime: Ausfallzeit > Verfügbarkeit 24x7 vollständig > Jede Downtime ist Ausfallzeit Theorien zu Datenbanken bzw. verteilten Systemen > ACID > Atomic – Consistent – Isolated – Durable > „Standard für SQL Datenbanken“ > CAP > Consistency – Availability - Partition Tolerance > Basis für verteilte Datenbanken ACID > Definiert von Jim Gray Ende der 1970er Jahre > „A transaction is a transformation of state which has the properties of atomicity (all or nothing), durability (effects survive failures) and consistency (a correct transformation)“ > Standard für alle relationalen Datenbanksysteme > Atomic: > Atomar oder abgeschlossen > Alles oder Nichts > Consistent > Sequenz von Datenoperationen (Transaktion) hinterlässt einen Konsistenten Zustand > Normalisierung - Fremdschlüssel > Isolated > Mehrere Transaktionen können parallel ablaufen > Eine Transaktion sieht nicht keine Änderungen einer anderen laufenden Transaktion > Durable > Alle Änderungen nach erfolgreichen commit bleiben erhalten > Auch Hard- oder Software Fehler verändern die Daten danach nicht Theorem CAP > Eric Brewer aus dem Jahre 2000 > Im Jahr 2002 veröffentlichten Seth Gilbert und Nancy Lynch vom MIT einen axiomatischen Beweis von Brewers Vermutung, und etablierten diese somit als Theorem > nach dem CAP-Theorem kann ein verteiltes System zwei der folgenden Eigenschaften gleichzeitig erfüllen, jedoch nicht alle drei > Consisteny > Jeder sieht das gleiche > Availibility > In einem Fehlerfall bleibt die Datenbank verfügbar > Partition Tolerence > Das System arbeitet auch bei Verlust von Nachrichten, einzelner Netzknoten oder Partition des Netzes weiter. C > Beispiel: > AP – Domain Name System > CA – Relationales Datenbank Management System > CP – Banking-Anwendungen A P CAP Strict Consistency No Go Consistency Partition Toleranz Availibility Eventual Consistency Ein oder Zwei Rechenzentren > Ein Rechenzentrum > Out of the Box Engineered System > Alle Komponenten Redundant > Zwei Rechnenzentren > Active – Passive > Active – Active > Varianten > Brandschutzabschnitte > Near – Far 1 Active - Active Webscale vs Enterprise: Facebook - Scaling > > > > Probleme viele Millionen User gleichzeitig zu bedienen Lösungen wie RAC (Oracle) konnten die Skalierung nur bedingt abdecken Ökonomisch nicht sinnvoll Lösungen > Memcache – Vorladen von Daten > Sharding – Stückelung der Datenbanken > Sharding > Twitter und Facebook verteilen die Daten auf viele Datenbanken (MySQL) > Verteilt auf Basis eines Key Schlüssels 1 Webscale vs Enterprise: Facebook Sharding Web Server Memcache Datenbank Read Only Slave Shard A-F Shard G-P Shard Q-Z Read Read/write Webscale vs Enterprise: Facebook - aber > Komplexe Applikationen > Es muss das richtige Shard angesprochen werden > Während des Wachstums werden die Teile unterschiedlich verteilt Maintenance > Abgespecktes SQL > Keine Abfragen über alles > Joins werden kompliziert > ACID nicht möglich > Lastverteilung über die Knoten kompliziert > Änderungen an den Shards verlangen extrem hohen Administrativen Aufwand Webscale vs Enterprise: Amazon – DynamoDB System > Continuous Availability > Kleinste Ausfälle Verursachen einen Umsatzeinbruch > Partition Toleranz > Als Globales Unternehmen sollen Ausfälle von Teilen keinen Einfluss auf die Gesamtverfügbarkeit haben > Keine Verlust eine Bestellung oder eines Warenkorbs > Auch bei Benutzung von mehreren Endgeräte sollen alle Daten erhalten bleiben > No exklusiv locks > Effizency > Möglichst gute Responsezeiten der Applikation > „Online customers were notoriously fickle and impatient“ 1 Webscale vs Enterprise: Amazon 1. write A I B 2. write 3. write H C G Anderes Rechenzentrum D F Unterschiedliches Rack E Entscheidung pro Insert Webscale vs Enterprise: Amazon – und mehr > Consistent hashing: > Hashes werden als Primärer Key verwendet.Aufgrund der Hashes werden die Nodes zugeteilt. Ein Rebalancing ist meist nicht notwendig und es ergibt sich ein ausgeglichener Cluster ist möglich. > Tunable consistency: > Es ist möglich die Konsistenz bei einzelnen Operation zu beeinflussen. Dadurch wird entweder eine hohe Schreib- oder Lesegeschwindigkeit erreicht. > strong consistency, eventual consistency, weak consistency > Data versioning: > Dadurch das keine Aktion geblockt wird, ist es möglich, dass mehrere Versionen eines Objekts entstehen können. Dies kann entweder automatisch aufgelöst werden oder der Anwender muss die Konflikte bereinigen. > Wenn ein Objekt von 2 Computern gleichzeitig in den Warenkorb gelegt wird, kann es passieren das es doppelt vorhanden ist. Hier muss der Anwender eingreifen. Webscale vs Enterprise: Oracle SOA Maximum Availability Architecture (MAA) Active-Active > Multi Rechenzentrum Active-Active Deployment > Im Vergleich zu Active-Passive Deployments, muss bei einem Ausfall eine Middletier Seite, die Passive Seite nicht erst gestartet werden > Die Datenbank ist nur in einem Rechenzentrum Aktiv (Active-Passive) > Im Falle eines Ausfalls bzw. Switch der Datenbank werden sofort alle Datasources beider Seiten neu konfiguriert > Desaster Recovery Optimierung – Minimierung von > Recovery Point Objective (RPO) - Zeit, die vom Zeitpunkt des Schadens bis zur vollständigen Wiederherstellung der Geschäftsprozesse verloren vergeht > Recovery Time Objective (RTO) - wie viele Daten/Transaktionen gehen bei einem Systemausfall verloren 2 Webscale vs Enterprise: Oracle SOA Maximum Availability Architecture (MAA) http://www.oracle.com/technetwork/database/availability/fmw11gsoamultidc-aa-1998491.pdf Webscale vs Enterprise: Oracle SOA Maximum Availability Architecture (MAA) Active-Active > Möglichst viele Daten in der Datenbank halten – Tlogs, JMS > asynchronous Kommunikation zwischen 2 ZFS Storage – kein Einfluss auf Produktions Performance > Der Spiegel auf dem stadby ZFS ist garantiert write-order consistent > Status des letzten kompletten Transfers > Patching ist deutlich erschwert im vergleich zu Active-Passive Deployments > Problem – wann switched die Datenbank, Quorum mit 2 Rechenzentren nicht ausreichend 2 Architektur: Oracle Datenbank - Exadata RAC DB ..... ACFS Node x Node 1 Exadata Architektur: Oracle Datenbank – Exadata Active - Passive RAC DB RAC DB ..... ..... ACFS Dataguard Node x Node 1 Exadata ACFS Node x Node 1 Exadata Architektur: Oracle Datenbank – Exadata Active - Active RAC DB RAC DB ..... ..... ACFS ACFS Node x Node 1 Exadata Golden Gate Active-Active Node x Node 1 Exadata Architektur:Vergleich Datenbanken Exadata Patching Features Consistency Partition Tolerance Availibility +/- +/- +++ N/A +++ Exadata Active +++ - Passive 1 +++ +++ +/- * +++ * Exadata Active - Active - - +++ +++ One Exadata ++ *Dataguard Mode 2 Architektur: Oracle Middleware – Single Exalogic OTD - OHS OTD - OHS Weblogic Domäne ..... Weblogic Domäne Node 1 Node x Exalogic Datenbank Architektur: Oracle Middleware – Two Exalogic, Two Domains Loadbalancer OTD - OHS Node 1 Exalogic OTD - OHS OTD - OHS OTD - OHS Weblogic Domäne Weblogic Domäne .... . Weblogic Domäne ..... Node x Weblogic Domäne Node 1 Node x Exalogic Architektur: Oracle Middleware – Two Exalogic, One Domains Loadbalancer OTD - OHS OTD - OHS OTD - OHS OTD - OHS Weblogic Domäne .... . Node 1 Exalogic ..... Weblogic Domäne Node x Node 1 Node x Exalogic Architektur:Vergleich Exalogic Patching Features Caching One Exalogic +/- +/- Two Exalogic,Two Domains 1 +++ --- Two Exalogic, One Domain - +++ Architektur: Exadata und Exalogic Loadbalancer Exalogic Exalogic zwei unabhängig Domänen Grid Link Verbindung Exadata Exadata Data Guard Sync Architektur: Exadata und Exalogic Grid Link Verbindung Verbindung im Aktiven DB Rechenzentrum mit Infiniband, im Standby Rechenzentrum 10 GBit Dataguard Je nach gewählten Einstellung im Dataguard hat es Einfluss auf die Verfügbarkeit und Datenverlust bei Netzwerkausfall zwischen den Rechenzentren * -> Far Sync Patching Middleware Eine Seite/Domäne wird außer Betrieb genommen Patching DB Dataguard Switch Automatischer Switch Bei zwei Rechenzentren nur bedingt möglich -> Observer, Siteguard * http://www.trivadis.com/sites/default/files/downloads/fsfo_understood_decus07.pdf Maintenance: Patching Exadata & Exalogic System Kommentar Rolling Exadata & Exalogic Readme beachten – nur zwischen Minor Releases Exadata Storage Für Rolling Patching High Redundancy dringend empfohlen Dataguard Patch Standby First – während Patchen ggf. kein Failover möglich Exalogic Virtuell Kontrollstack Backup Exalogic Storage Umschaltung der Heads während des Patches, Impact Applikation Exalogic Applikation sind getrennt zu betrachten Immer Prechecks ausführen – detaillierte Planung, nach Release des Patches mind. 2 Wochen warten 3 Maintenance: Oracle Site Guard > Automates DR operations between sites > Preintegrated with the ZFS Storage Appliance Oracle FMW for Oracle Exalogic Elastic Cloud Machine > Preintegrated with Oracle Data Guard for Oracle Exadata Database Machine > > > > Alles aus Cloud Control steuerbar (emcli + GUI) Im Cloud Control in der Software Library abgelegt Dataguard Broker für Dataguard wird unterstützt Abgleich Storage um Dateisystem abzugleichen Maintenance: Oracle Site Guard http://www.oracle.com/technetwork/database/availability/oracle-site-guard-overview-2167478.pdf Maintenance: Dataguard Far Sync http://www.oracle.com/technetwork/database/availability/farsync-2267608.pdf Maintenance: Far Sync Flight Box - Axxana Oracle Database Appliance – Exadata, Exalogic ODA Exa Patching Storage Patches?! Full Rolling Patching Minor Releases (Readme!) – High Redundancy Cloud Control Plugin Full Integrated Size Erweiterung durch Storage Shelfs Frei konfigurierbar – DB Nodes, Exacells, Exalogic Nodes Vielen Dank! 41