Projekt ASM Storagemigration – Ein Erfahrungsbericht Andreas Karlin Senior Consultant 20.11.2013 Oracle Datenbankprodukte sind bei vielen Firmen ein fester Bestandteil ihrer Infrastruktur. Die Produkte, hierzu zählen z.B. die Datenbank selbst oder Automatic Storage Management, sind universell einsetzbar und bieten viele interessante und nützliche Features. So umfangreich die Features sind, so komplex ist auch deren Pflege und Wartung. Die administrativen Aufgaben werden immer komplexer, und nicht alltägliche Aufgaben sind ohne Experten schwer durchführbar. Zu solchen Aufgaben gehört beispielsweise ein Umzug der Daten auf ein neues Storagesystem. Was muss hierbei beachtet werden? Und welche Fallstricke erwarten uns hierbei? Dieser Artikel beschreibt das Vorgehen und liefert Erfahrungswerte, welche in einem realen Projekt gesammelt wurden. 1. Die Geschichte Das bei einem Kunden eingesetzte zentrale Datenspeichersystem wird für Oracle Datenbanken, sowie deren zugehörige Applikationen, eingesetzt. Der Herstellersupport des Storage-Systems läuft Ende Februar 2013 aus. Die Speicherkapazität des Storages ist ausgereizt, eine Erweiterung ist ausgeschlossen. Aus Supportgründen und auch wegen des inzwischen höheren Speicherbedarfs, wird ein neues Storage-Subsystem zum Einsatz kommen. Die neue Storage-Lösung ist so konzipiert, dass die Daten immer redundant auf zwei separaten Storage-Einheiten vorgehalten werden. Da es sich bei den Oracle Datenbankservern um Risikosysteme handelt, muss der Umzug im Vorfeld sorgfältig konzipiert werden. Ziel ist es diesen Infrastrukturumzug so zu planen und durchzuführen, dass ein potentielles Ausfallrisiko so weit wie möglich minimiert werden kann. Im Rahmen dieses Projektes wurde auch eine Testmigration durchgeführt. Diese Testmigration diente dazu, zum einen zur Bestimmung des genauen Umzugsaufwandes und zum anderen zur reibungslosen Planung des eigentlichen Umzugs-Prozedere. [email protected] . www.trivadis.com . Info-Tel. 0800 87 482 347 . Datum 17.12.2013 Seite 2 / 16 2. ASM – Was ist das? Die Oracle Datenbanken werden mit Hilfe einer speziellen Oracle Speicherumgebung verwaltet. Diese Umgebung trägt den Namen Automatic Storage Management, kurz ASM. Die Daten in ASM sind via Betriebssystem nicht sichtbar oder veränderbar. ASM dient als spezieller Volume Manager für Oracle Datenbanken. Jedoch können administrative Tätigkeiten nur mit Oracle eigenen Utilities durchgeführt werden. Mit ASM kann der DBA die Kontrolle über nahezu alle speicherrelevanten Konfigurationen der Datenbanken übernehmen, die normalerweise in der Hand von System- oder StorageAdministratoren liegen. Dazu zählen z. B. folgende Details, die komplett mit Hilfe des ASM konfiguriert beziehungsweise verwaltet werden können: • • • • • Striping, I/O-Performance Tuning Automatische Vergabe von Dateinamen Gruppierung von physischen Platten und Verteilung der Daten auf Platten Überwachung von Dateisystemen Datenspiegelung (Mirroring) Realisiert wird ASM als eine spezielle Form einer Datenbankinstanz, die ausschließlich der Konfiguration und dem Management des datenbankrelevanten Speichers dient. Diese Instanz hat, genau wie eine normale Datenbankinstanz, verschiedene Hintergrundprozesse und eine SGA. ASM stellt eine vereinfachte Schnittstelle für das Management von Plattenspeichern zur Verfügung. Dabei verbindet es Funktionalitäten eines Cluster-Dateisystems mit denen eines logischen Volumes. ASM kann ein softwareseitiges Spiegeln der Daten übernehmen. Bei der Erstellung einer DiskGruppe kann der Administrator die Redundanz konfigurieren: • • • Normal Redundancy: 2-Wege Spiegelung High Redundancy: 3-Wege Spiegelung External Redundancy: keine Spiegelung durch ASM [email protected] . www.trivadis.com . Info-Tel. 0800 87 482 347 . Datum 17.12.2013 Seite 3 / 16 Soll ASM die Spiegelung tatsächlich verwalten, müssen die Platten einer Plattengruppe innerhalb dieser Spiegelung in so genannte Failure-Gruppen entsprechend dem eingestellten Redundanztyp aufgeteilt werden. Dabei spiegelt ASM nicht den kompletten Bereich der Platten als Ganzes, sondern spiegelt einzelne Extents der angelegten Dateien auf verschiedenen Platten. Grundsätzlich gelten für ASM folgende Regeln: . • • • Immer Disks mit der gleichen Grösse in eine Diskgruppe nehmen. Immer Disks mit gleicher Geschwindigkeit in eine Diskgruppe nehmen. Eine Disk Gruppe für die Datendateien, eine Diskgruppe für die Archivelogdateien. 3. Den Umzug machen wir Online… Zuerst wurde ein Onlineumzug der Daten präferiert. Mit ASM lässt sich eine solche Migration durchführen, wenn bestimmte Kriterien erfüllt sind. • • Das alte und neue Storage müssen parallel den Servern präsentiert werden. Die LUN’s des neuen SAN’s müssen identisch oder grösser sein als die alten LUN’s. Da die LUN’s der alten Umgebungen sehr groß sind (grösser als 600 Gbyte), müssten auch auf der neuen SAN die LUN’s entsprechend eingerichtet werden. Dies würde eine Verschwendung des Plattenplatzes bedeuten da diese lediglich zur Hälfte genutzt werden. Um diese Problematik zu umgehen, werden neue Diskgruppen erstellt. Die Daten müssen beim Umzug auf diese neuen Diskgruppen kopiert werden. Dies ist nicht online möglich und muss während zuvor definierten Downtimes geschehen. [email protected] . www.trivadis.com . Info-Tel. 0800 87 482 347 . Datum 17.12.2013 Seite 4 / 16 4. Test der Storagemigration 4.1 Vorgehensweise Um Seiteneffekte für die Produktionsumgebungen zu vermeiden, wurde eine Testumgebung installiert und konfiguriert. Die Testumgebung, sowohl auf Linux-, als auf Datenbankebene, wurden identisch zu der Produktion installiert und konfiguriert. Somit ist gewährleistet, dass die Ergebnisse der Tests aussagekräftige Erfahrungen für die produktive Migration liefern können. Die Testmigration wurde auf Basis des Oracle Support Dokuments “How To Move The Database To Different Diskgroup (Change Diskgroup Redundancy) [ID 438580.1]” konzipiert. Gemäß den Anforderungen und Gegebenheiten der Umgebung, wurde die Vorgehensweise entsprechend abgewandelt. Zusammenfassend wurden die folgenden Migrationsschritte erarbeitet und getestet: • • • • • • • Vorbereitung des neuen Storages Vorbereitung der Server Entfernen der Standby-Konfiguration Umzug der Datenbank Änderung relevanter Scripte Umzug der Clusterinternen Dateien Diverse kleinere Nacharbeiten auf den Servern Die Migrationsschritte wurden zuerst an einer Testdatenbank durchgeführt. Nachdem einige Punkte optimiert wurden, wurden die restlichen Testdatenbanken migriert. 4.2 Ergebnis Die Testmigration konnte ohne grössere Probleme durchgeführt werden. Die potentiell auftretenden Risiken wurden erkannt, bewertet und entsprechend gelöst. Daraus resultierend wurden folgende Punkte erarbeitet: • • • • • Dauer des Umzugs Downtimes Storagelayout Arbeitsschritte des Umzuges Prüfmechanismen nach dem Umzug Resultierend aus der Testmigration wurde eine Migrationsanleitung erstellt. Diese Anleitung wurde für den produktiven Umzug verwendet. [email protected] . www.trivadis.com . Info-Tel. 0800 87 482 347 . Datum 17.12.2013 Seite 5 / 16 Wie in den vorherigen Kapiteln beschrieben, wurde das Diskgruppen-Layout während des Umzuges geändert. Dies konnte im Rahmen der Testmigration erfolgreich umgesetzt werden. Die folgende Tabelle Zeigt beispielhaft das neue Layout eines von dem Umzug betroffenen Real Application Clusters. Diskgruppe Grösse Name der Name der Speicherplatz in LUN# in Gbyte Diskgruppe Disk Zweck Gbyte 1 100 U310 U310D001 DB 1 Daten 2 100 U310 U310D002 DB 1 Daten 350 3 100 U310 U310D003 DB 1 Daten 4 50 U311 U311D001 DB 1 Archive 5 100 U320 U320D001 DB 2 Daten 6 100 U320 U320D002 DB 2 Daten 350 7 100 U320 U320D003 DB 2 Daten 8 50 U321 U321D001 DB 2 Archive 9 50 U330 U330D001 DB 3 Daten 10 50 U330 U330D002 DB 3 Daten 200 11 50 U330 U330D003 DB 3 Daten 12 50 U331 U331D001 DB 3 Archive 13 1 U300 U300D001F1 Cluster Disks 14 1 U300 U300D002F2 Cluster Disks 5 15 1 U300 U300D003F3 Cluster Disks 16 1 U300 U300D004F4 Cluster Disks 17 1 U300 U300D005F5 Cluster Disks Abbildung 1: ASM Diskgruppenlayout Testumgebung Erläuterung der Tabelle: Pro Datenbank werden zwei Diskgruppen genutzt. Eine Diskgruppe besteht aus mehreren Disks (LUN’s). Je Datenbank existiert eine Diskgruppe für die eigentlichen Daten. Die zweite Diskgruppe beherbergt die Archivierten Logdateien, sowie Redolog- und Controlfilemirror. Die rot hinterlegten LUN’s beherbergen Clusterinterne Dateien. [email protected] . www.trivadis.com . Info-Tel. 0800 87 482 347 . Datum 17.12.2013 Seite 6 / 16 Die Dauer der Migration konnte durch die Tests spezifiziert werden. Nachfolgende Tabelle zeigt die Migrationsdauer eines vom Umzug betroffenen Real Application Clusters. Zeit Netto / min Zeit Brutto / min 40 60 Vorbereitung DB1 DB2 50 DB3 DB4 60 DB5 DB6 70 Cluster Intern 70 Gesamt 290 Abbildung 2: Migrationsdauer pro Datenbank 70 80 90 90 390 Erläuterung der Tabelle: Die jeweils farblich identischen Datenbanken wurden parallel umgezogen. Die Nettozeit ist die reine Durchführungszeit ohne Berücksichtigung nicht beeinflussbarer Faktoren. Die Bruttozeit ist die Zeit inklusive der nicht beeinflussbaren Faktoren wie Netzwerkgeschwindigkeit und Menschliche Fehler. Die Bruttozeit ist als die tatsächliche Migrationszeit zu betrachten. [email protected] . www.trivadis.com . Info-Tel. 0800 87 482 347 . Datum 17.12.2013 Seite 7 / 16 5. Nun zu den Erfahrungen…. Insgesamt lässt sich festhalten, daß der Test ohne relevante Schwierigkeiten durchgeführt werden konnte. Es gab während der Testmigration zwei nennenswerte Probleme. Auf beide Probleme werde ich genauer eingehen. 5.1 Unzureichende ASM Standardwerte Das Automatic Storage Management meldete während der Erstellung der Diskgruppen ein Speicherproblem. Folgendes Bild zeigt den Fehler zur Zeit der Diskgruppenerstellung: Abbildung 3: Fehler während der Erstellung der 14. Diskgruppe Der Fehler deutet darauf hin, dass die Speicherparameter der ASM Instanz zu gering sind. Offenbar reichen die Standardparameter ab einer gewissen Anzahl von Diskgruppen nicht aus. Der Fehler ist ab der Erstellung der 14. Diskgruppe eines Clusters aufgetreten. [email protected] . www.trivadis.com . Info-Tel. 0800 87 482 347 . Datum 17.12.2013 Seite 8 / 16 Die nachfolgenden Befehle erhöhen die Speicherparameter von der ASM Instanz. Die Befehle müssen auf allen ASM Instanzen abgesetzt werden. Danach ist ein Neustart der Clusterware erforderlich. SQL> show parameter memory NAME TYPE VALUE ------------------------------------ ----------- ---------------------------memory_max_target 272M memory_target big integer 272M big integer SQL> alter system set memory_max_target=4096m scope=spfile; System altered. SQL> alter system set memory_target=1536m scope=spfile; System altered. SQL> exit Abbildung 4: Ändern der Speicherparameter der ASM Instanzen Nach einer Erhöhung der Hauptspeicherparameter, konnten die Diskgruppen angelegt und gestartet werden. Die Parameteroptimierung wurde als Task für den Umzug in der Migrationsanleitung definiert. [email protected] . www.trivadis.com . Info-Tel. 0800 87 482 347 . Datum 17.12.2013 Seite 9 / 16 5.2 SAN Failover Wie bereits in den Vergangenen Kapitel erwähnt, besteht die neue Storage-Lösung aus zwei Speichereinheiten. Die Daten werden auf den Einheiten gespiegelt vorgehalten. Beide Einheiten sind für die angeschlossenen Systeme transparent, d.h., die Maschinen sehen nur ein Storage. Die gesamte Oracle Landschaft besteht aus Oracle Linux 5.x Servern. Laut der Dokumentation des neuen Storages wird die sog. Multipath-Problematik (Eine LUN erscheint mehr als einmal als eigenständiges Device) durch das Linuxinterne Device Mapping gelöst. Die empfohlene Devicekonfiguration des Herstellers wird in die Datei /etc/multipath.conf eingetragen. Eine solche Devicekonfiguration sieht wie im folgenden Beispiel aus. defaults { … polling_interval … 60 } device { vendor product "DataCore" "Virtual Disk" path_grouping_policy failover path_checker tur failback 10 prio alua rr_min_io 100 } Abbildung 5: Konfiguration der multipath.conf Soweit, so gut! Die Konfiguration wurde wie angefordert eingetragen. Im Normalbetrieb konnten keine Probleme verzeichnet werden. [email protected] . www.trivadis.com . Info-Tel. 0800 87 482 347 . Datum 17.12.2013 Seite 10 / 16 5.2.1 Der Failovertest – Fibrechannel plugout Der Output des Tools multipath verzeichnete vor dem Test zwei Pfade zu den LUN’s (hier rot und blau gekennzeichnet). [root@node1 backup]# multipath -ll U170D003 (360030d905a5cba003a78b1439bffa153) dm-37 DataCore,Virtual Disk size=50G features='0' hwhandler='0' wp=rw |-+- policy='round-robin 0' prio=1 status=active | `- 0:0:0:30 sdae 65:224 active ready running `-+- policy='round-robin 0' prio=1 status=enabled `- 1:0:2:30 sdcx 70:80 active ready running Abbildung 6: Ausgabe der verfügbaren Pfade vor Test Um den Failover physikalisch zu testen, wurden die FC Kabel abwechselnd von den FC Karten der Server getrennt. Wurde einer der FC-Verbindungen manuell getrennt, wurde auf Serverseite nur ein Pfad gesehen. [root@node1 backup]# multipath -ll U100D004F4 (360030d908a65c300f5750a3e38c00f45) dm-10 DataCore,Virtual Disk size=1.0G features='0' hwhandler='0' wp=rw `-+- policy='round-robin 0' prio=1 status=enabled `- 1:0:2:3 sdbw 68:160 active ready running Abbildung 7: Ausgabe der verfügbaren Pfade nach Test Wird anschließend die FC-Verbindung manuell hergestellt, werden an den Servern beide Pfade angezeigt. Dies stellt ein korrektes Verhalten dar. Halten wir also fest: Das trennen der FC-Verbindung an den Servern funktioniert wie erwartet. [email protected] . www.trivadis.com . Info-Tel. 0800 87 482 347 . Datum 17.12.2013 Seite 11 / 16 5.2.2 Wartungsmodus Spezial Ein weiterer Test bestand aus einer Simulation der Durchführung einer Wartung an den Storage-Einheiten. Hierzu wurden beide Storage-Einheiten nacheinander heruntergefahren und hochgefahren, sodass jederzeit eine Storage-Einheit aktiv war. Erfolgt das Herunterfahren einer Storage-Einheit in den Wartungszustand, wird der betroffene Pfad auf Serverebene entfernt. Hierbei konnten keine Probleme festgestellt werden. Der Output des Tools Multipath zeige wie erwartet einen Pfad an. U110D002 (360030d90c7957007893965b5f866211a) dm-16 DataCore,Virtual Disk size=100G features='0' hwhandler='0' wp=rw `-+- policy='round-robin 0' prio=1 status=enabled `- 1:0:2:6 sdbz 68:208 active ready running Abbildung 8: Ausgabe der verfügbaren Pfade während Wartungszustand eines Storages Wird die betroffene Storage-Einheit nach der Wartung gestartet, wurde dies von den Servern nicht erkannt. Multipath zeigte weiterhin nur einen Pfad an. Was passiert wenn ich die zweite Storage-Einheit in den Wartungsmodus schalte? Folgender Output zeigt das „Desaster“. U110D002 (360030d90c7957007893965b5f866211a) dm-16 DataCore,Virtual Disk size=100G features='0' hwhandler='0' wp=rw |-+- policy='round-robin 0' prio=0 status=enabled `- 1:0:2:6 sdbz 68:208 failed faulty running Abbildung 9: Ausgabe der verfügbaren Pfade während Wartungszustand beider Storages Wie in vorangehenden Abbildung sichtbar, verabschiedete sich der letzte vorhandene Pfad. Die Server verloren die Verbindung zum Storage. Die Systeme waren außer Gefecht gesetzt. [email protected] . www.trivadis.com . Info-Tel. 0800 87 482 347 . Datum 17.12.2013 Seite 12 / 16 5.2.3 Der erste Supportfall... Wir öffneten nach diesem Vorfall einen Service Request an den Storage-Hersteller. Nach einigen Tagen wurde uns angeraten, einen weiteren Parameter in die /etc/multipath.conf zu integrieren. Die Konfigurationsdatei wurde wie im nächsten Beispiel entsprechend erweitert. defaults { … polling_interval … 60 } device { vendor product "DataCore" "Virtual Disk" path_grouping_policy failover path_checker tur failback 10 prio alua rr_min_io 100 dev_loss_tmo 2147483647 } Abbildung 10: Konfiguration der multipath.conf nach Service Request an den StorageHersteller Der Parameter „dev_loss_tmo“ gibt in Sekunden an, wie lange nach einem Fiber-ChannelKanal-Fehler gewartet werden soll, bis der Kanal auf O/S Ebene entfernt wird. Übersetzt heisst dies, daß nach einem Storagefehler der Kanal dennoch sichtbar ist, aber als fehlerhaft erkannt wird und nicht wie in den Tests zuvor dann entfernt wird. Wie zu erkennen ist, steht der Zähler sehr hoch und damit ist die Zeitspanne sehr groß. Somit ist auszuschliessen, dass ein defekter Kanal niemals entfernt wird. Abgesehen davon, dass der Storage-Hersteller dies nicht in den Standarddokumenten verzeichnete, hatten wir ein weiteres Problem zu lösen. Der Parameter zieht erst ab der Oracle Linux Version 5.7. Wir hatten jedoch auf den betroffenen Systemen die Versionen 5.4 und 5.6 installiert. Diverse Tests bestätigen dies. Somit blieb uns nichts anderes übrig, zusätzlich zur Storage-Migration, auch das Betriebssystem zu aktualisieren. [email protected] . www.trivadis.com . Info-Tel. 0800 87 482 347 . Datum 17.12.2013 Seite 13 / 16 5.2.4 „Vom hundertstel und tausendstel“ oder der zweite Supportfall Wir aktualisierten also auf unserer Testumgebung die Systeme von OEL 5.6 auf OEL 5.9 und versuchten die Tests erneut. Leider konnten wir keine Entwarnung geben. Das Problem war nach wie vor Präsent. Der Support des Storage-Herstellers konnte uns keine weiteren Informationen geben. Also öffneten wir einen Service Request bei Oracle. Der Oracle Support gab indes zu, dass der Parameter dev_loss_tmo nicht wie erwartet funktionieren würde. Nach einigen Tagen schlug er uns vor, einen zusätzlichen Parameter einzusetzen…offensichtlich muss dieser gesetzt sein, da dies im Quellcode vernachlässigt wurde! Die Konfigurationsdatei wurde wie im nächsten Beispiel entsprechend erweitert. defaults { … polling_interval … 60 } device { vendor product "DataCore" "Virtual Disk" path_grouping_policy failover path_checker tur failback 10 prio alua rr_min_io 100 dev_loss_tmo 2147483647 fast_io_fail_tmo 5 } Abbildung 10: Konfiguration der multipath.conf nach Service Request bei Oracle Der Parameter „fast_io_fail_tmo“ gibt in Sekunden an, wie lange IO auf seine Ausführung warten muss, wenn ein Fiber-Channel-Kanal fehlerhaft ist. Zusammen mit diesem Parametern und OEL 5.9 wurden erneut die Tests durchgeführt. Mit der oben genannten Konfiguration und OEL 5.9 konnten die Tests des Wartungsmodus erfolgreich durchgeführt werden. ☺ [email protected] . www.trivadis.com . Info-Tel. 0800 87 482 347 . Datum 17.12.2013 Seite 14 / 16 6. Fazit Die Testmigration konnte, abgesehen von den beiden zuvor genannten Problemen, erfolgreich durchgeführt werden. Alle Produktiven Systeme konnten mit Hilfe der dokumentierten Vorgehensweise reibungslos umgezogen werden. Durch das Problem des Storage-Wartungsmodus, mussten die Migrationstermine mehrmals verschoben werden - insgesamt um drei Monate. Für die nächsten Projekte ist es wichtig, das neue Storagesystem im Vorfeld zu kennen und für solche Tests einen größeren Zeitrahmen einzuplanen. Es hat sich gezeigt, wie wichtig eine Zusammenarbeit zwischen O/S-, DBA und Storage-Team ist. So kritisch die Infos aus dem letzten Absatz sein mögen: Die Testphase vor der eigentlichen Migration war „das Geld“ auf jeden Fall wert. Hätte man ohne diese Testphase einen Umzug durchgeführt, hätte man dies spätestens bei der ersten Storage-Wartung bereut. Die Migration selbst konnte deutlich beschleunigt werden, da durch die Testphase ein HowTo inklusive Checkliste zur Verfügung stand. Und sollte wieder eine Migration anstehen, so kann nun auf die aus diesem Projekt gewonnenen Erfahrungswerte zurückgegriffen werden. Schlussendlich die Kernaussage: Umso Komplexer die Aufgabenstellung ist, umso wichtiger wird eine ausgiebige Testphase! Viel Erfolg beim Einsatz von Trivadis-Know-how wünscht Ihnen Andreas Karlin Trivadis GmbH Industriestrasse 4 DE-70565 Stuttgart Internet: www.trivadis.com Tel: Fax: Mail: +49-711-90 36 32 30 +49-711-903 63 259 [email protected] [email protected] . www.trivadis.com . Info-Tel. 0800 87 482 347 . Datum 17.12.2013 Seite 15 / 16 7. Literatur und Links… www.trivadis.com https://suport.oracle.com: Oracle Support Portal http://www.datacore.com/Support.aspx: Storage Support Portal Note 438580.1: How To Move The Database To Different Diskgroup (Change Diskgroup Redundancy) ftp://support.datacore.com/psp/TBs/TBulletin2a_OtherLinux.pdf: Bulletin der Linux Konfiguration für Multipathing [email protected] . www.trivadis.com . Info-Tel. 0800 87 482 347 . Datum 17.12.2013 Seite 16 / 16