Home ORDIX AG             Dienstleistung             Trainingsshop    Kunden / Referenzen Aktuelles    Kontakt
Home  Pfeil  ORDIX News  Pfeil  3/2008  Pfeil  Datenbanken
suche: 
Der Artikel richtet sich an Datenbankadministratoren und Entwickler, die Oracle RAC aufsetzen und betreiben.

Glossar

SGA
System Global Area. SGA ist der von Oracle allokierte Hauptspeicher auf dem Datenbankserver.
DBCA
Database Configuration Assistant. Grafischer Assistent zur Erstellung und Konfiguration von Oracle Datenbanken und anderen Oracle Komponenten.
OMF
Oracle Managed Files. OMF ermöglichen, dass man die Verwaltung von Daten-, Online Redolog-Dateien und Control-Dateien auf Betriebssystemebene der Instanz überlassen kann.
OCFS
Oracle Cluster Filesystem. OCFS ist ein von Oracle geliefertes Cluster-Datei-system für gemeinsam genutzte Dateien; vor Version 2 nur für zu Oracle Datenbanken gehörende Dateien zugelassen.


Oracle Real Application Cluster (RAC) 10g (Teil III):

Automatic Storage Management




Mit der Oracle Version 10g wurde eine neue Funktion namens "Automatic Storage Management" (ASM) eingeführt. Als Mischung eines logischen Volume Managers und eines automatischen Dateimanagements für Oracle-Dateitypen soll es Datenbankadministratoren die physische Konfiguration von Datenbanken erleichtern.

ASM-Übersicht

Mit ASM kann der DBA die Kontrolle über nahezu alle speicherrelevanten Konfigurationsdetails von Datenbanken übernehmen, die normalerweise in der Hand von System- oder Storage-Administratoren liegen. Dazu zählen z. B. folgende Details, die komplett im ASM konfiguriert werden:

Dem ASM werden dazu vom Betriebssystem Raw Devices zur Verfügung gestellt, welche ASM dann strukturiert und verwaltet.

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. Der Initialisierungsparameter Instance_type definiert, ob es sich bei der Datenbankinstanz um eine ASM-Instanz handelt.

Abb. 1: Darstellung des Oracle RAC Hard-/Software Stacks. Vergrößern

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 Volume Managers und bietet dabei:

Striping: Direct- und Asynchronous-I/O steigern die Performance

ASM verwendet nicht den Filesystem-Cache des Betriebssystems, sondern greift stattdessen mit Direct-I/O direkt auf die Platten zu. Dabei realisiert ASM einen eigenen, speziell auf die Bedürfnisse des Datenbanksystems ausgelegten Cache-Algorithmus, der zu besseren Hit-Raten führt.

Für Datenbanken, deren Dateien in Dateisystemen plaziert sind, empfiehlt Oracle die Nutzung der Direct-I/O-Funktion, die im Betriebssystem konfiguriert wird. Bei HP-UX müssen dazu z. B. spezielle Direct-I/O-Treiber in den Kernel eingebunden werden. Im Gegensatz dazu benötigt ASM diese Direct-I/O-Konfiguration des Betriebssystems jedoch nicht, sondern greift direkt auf die verwendeten Raw Devices zu.

I/O-Requests werden bei ASM nach Möglichkeit auf verschiedene Platten verteilt, wodurch eine parallele Verarbeitung möglich wird. Insbesondere schreibintensive Vorgänge, wie das Herunterschreiben von geänderten Datenbankblöcken durch den Database-Writer bei der Durchführung von Checkpoints, profitieren in hohem Maße von dieser parallelen, asynchronen Verarbeitung.

Vereinfachtes Storage Management

Automatische Dateinamensvergabe
ASM vereinfacht das Storage Management innerhalb der Datenbank. Es besteht keine Notwendigkeit mehr, die externen Namen für Datenbankdateien zu verwalten, da ASM automatisch jeder neuen Datei - abhängig vom Typ der anzulegenden Datei - einen eindeutigen Namen innerhalb einer Dateisystemstruktur zuweist. Einzig der Name der zu verwendenden Gruppe von Platten ist dabei anzugeben.

Standard Plattengruppen Definition
Wie bei OMF kann im Parameter DB_CREATE_FILE_DEST eine Standard-Plattengruppe definiert werden. Dann besteht keine Notwendigkeit mehr, Pfadangaben für Dateien zu hinterlegen. Insbesondere bei der Verwendung von weiteren Datenbankfunktionen, wie Auto Extent und Bigfile Tablespaces, beschränkt sich die Definition neuer Tablespaces dann auf CREATE TABLESPACE TEST;.

Automatische I/O-Verteilung in Plattengruppen
Weiterhin vereinfacht ASM den Umgang mit den benötigten Plattenbereichen der Datenbank. Mit einfachen Befehlen werden dem Datenbanksystem weitere Platten zur Verfügung gestellt. Dabei werden die Platten zu so genannten Plattengruppen zusammengefasst. Diese dienen als Storage Pools, wobei die in diesen Plattengruppen angelegten Dateien gleichmäßig über alle beteiligten Platten verteilt werden. Dadurch soll eine I/O-Verteilung und damit Performance-Gewinn erreicht werden.

Reicht der Platz in einer Plattengruppe nicht mehr, können den Plattengruppen im laufenden Betrieb weitere Platten hinzugefügt werden. Anschließend erfolgt bei einem solchen Vorgang automatisch eine erneute Umverteilung der Daten in der Plattengruppe (Rebalancing). ASM versucht die I/O-Verteilung im System nach Möglichkeit dynamisch zu optimieren. Stellt ASM z. B. fest, dass bestimmte Bereiche der Platten besonders beansprucht werden, werden eben diese Daten nach Möglichkeit neu verteilt.

Schutz vor Datenverlust
Werden Platten aus einer Diskgruppe durch den Administrator entfernt, werden vor der Freigabe dieser Platten deren Inhalte auf die übrigbleibenden Platten der Diskgruppe verteilt. Ist das nicht möglich, kann die Platte nicht entfernt werden. Somit kann also mit Administratormitteln kein Datenverlust entstehen.

Datenspiegelung
Neben dem Striping kann ASM auch ein softwareseitiges Spiegeln der Daten übernehmen. Bei der Erstellung einer Plattengruppe kann der Administrator die Redundanz konfigurieren:

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. Wichtigster Aspekt dabei ist, dass damit die Failure-Gruppen in Größe und Anzahl der beteiligten Platten nicht identisch sein müssen, was die Verwaltung der Plattengruppen weiterhin vereinfacht.

Installation und Konfiguration von ASM

Eine ASM-Instanz wird mit dem Database Configuration Assistant (DBCA) installiert. Voraussetzung für das Arbeiten von ASM sind ein aktiver CSS-Daemon (cluster synchronisation service) sowie ein aktiver Listener. Dieser CSS-Daemon wird bei der Installation der Cluster Ready Services bei RAC-Installationen automatisch mit installiert. Bei Nicht-RAC-Systemen muss dieser Daemon manuell mit dem Befehl localconfig add installiert und konfiguriert werden. Durch verschiedene Initialisierungsparameter kann die ASM-Instanz konfiguriert werden. Hier einige Beispiele:

Mit ASM_DISKGROUPS wird definiert, welche Plattengruppen beim Start der ASM-Instanz aktiviert werden. Mit ASM_POWER_LIMIT wird festgelegt, wie viel Systemleistung ASM für das automatische Rebalancing von Daten verwenden darf. Dieser Parameter ist von 1 bis 10 einstellbar, wobei 1 die geringste Belastung für das System darstellt.

CREATE DISKGROUP DG1 EXTERNAL REDUNDANCY DISK '/dev/sde1', '/dev/sdf1' ;
Abb. 2: Mit CREATE DISKGROUP werden Diskgruppen angelegt.
ALTER DISKGROUP DG1 ADD DISK '/dev/sdg1' ;
ALTER DISKGROUP DG1 DROP DISK '/dev/sde1' ;
Abb. 3: Mit ALTER DISKGROUP werden Diskgruppen verwaltet.

Definition von Plattengruppen

Die Verwaltung des ASM erfolgt mittels sqlplus in der ASM-Instanz. Standardmäßig hat die ASM-Instanz eines Standalone-Systems die SID=+ASM, bei RAC-Systemen werden die einzelnen ASM-Instanzen der beteiligten Knoten mit +ASM1 bis +ASMn gekennzeichnet. Mit den Befehlen in den Abbildungen 2 und 3 werden Plattengruppen angelegt und verwaltet.

Innerhalb der Datenbank werden ASM-Plattengruppen mit dem Zusatz "+" angesprochen. Das Anlegen eines Tablespaces in einer bestimmten Plattengruppe erfolgt z. B. mit CREATE TABLESPACE TEST DATAFILE '+DG1'. Die weitere Namensvergabe und Ablage in bestimmten Pfaden erfolgt entsprechend den vorgegebenen Regeln, die denen der Funktion OMF von Oracle entsprechen.

Fazit

ASM stellt somit ein modernes Mittel zur Abstraktion zwischen physikalischer Ablage von Datenbanken und ihren logischen Komponenten zur Verfügung. Gleichzeitig versucht ASM, diese Ablage bezüglich I/O-Performance zu optimieren. Zudem steht ASM als Teil von Oracle schon in der Standard Edition zur Verfügung, es erfordert also keine zusätzliche Lizenz.

ASM erleichtert dem Administrator den Umgang mit den Massenspeichern und die Verwaltung von Dateinamen. Eine vom Administrator definierte und einzuhaltende Namenskonvention ist nicht mehr notwendig. Zusätzlich optimiert ASM automatisch den Zugriff auf die Daten der Datenbank und erzielt damit eine verbesserte Gesamtleistung des I/O-Systems.

Besonders für Nutzer der Oracle Standard Edition ist ASM wichtig, denn ASM stellt für sie die einzig mögliche Option für die Installation eines Real Application Clusters dar. Andere Optionen wie z. B. OCFS oder andere Cluster-Dateisysteme stehen erst mit der Enterprise Edition zur Verfügung.

Klaus Garstecki (info@ordix.de).