
|
Device Im eigentlichen Sinne ein Endgerät; hier physikalischer Speicherplatz der von einem Storagesystem bereitgestellt wird. |
|
NAS Network Attached Storage; Dateiserver, die ihre Speicherkapazität anderen Systemen über Netzwerkprotokolle zur Verfügung stellen. |
|
NFS Network Files System; Ein Protokoll, das den Zugriff von Dateien über ein Netzwerk ermöglicht. |
|
Mount(en) Einhängen eines Dateisystems unterhalb eines bestimmten Pfades/Verzeichnisses (Mountpoint). |
|
Um eine Oracle Datenbank per NFS zu betreiben, mussten bis zur Version 10g die jeweiligen Devices über die entsprechenden NFS-Treiber des Betriebssystems eingebunden werden. Da es sich bei NFS um ein generell verfügbares und genutztes Protokoll für unterschiedliche Anwendungen handelt, ist es verständlich, dass es nicht für den Betrieb einer Oracle Instanz optimiert wurde. Daher wurde in der Vergangenheit großes Augenmerk auf die Auswahl und Konfi guration der NFS Mount-Optionen gelegt. Viele Storage-Anbieter haben aus diesem Grund Best-Practice-Guides für die Anbindung ihrer Systeme veröffentlicht, z. B. die Firma NetApp für Oracle Single Instances unter Linux [1]. Um diese Anleitung nutzen zu können, benötigen Sie einen Account für das NetApp-Supportportal.
Mit der Oracle Version 11g wurden nun eigene NFS-Treiber in die Datenbank-Software integriert. Dies erspart dem Administrator die Auswahl und "Einstellung“ der NFS-Parameter. Darüber hinaus bietet die Integration auch Performance-Vorteile. Fordert eine Oracle Instanz die Daten eines NFS-Devices an, so sind Kontextwechsel zwischen dem Benutzerund Kern-Modus die Folge. Diese Wechsel kosten Zeit. Natürlich resultieren daraus auch Schreibaktionen auf ein NFS-Device in diesen Kontextwechseln. Diese entfallen, wenn die Datenbank selbst die Verwaltung über die I/OOperationen übernimmt (siehe Abbildung 1).
Zusätzlich umgehen die Oracle Treiber den Betriebssystem-Cache für NFS I/O-Operationen. Bis dato wurden Oracle Daten oftmals im Cache des Betriebssystems und in der bereitgestellten System Global Area (SGA) der Instanz gehalten. Die daraus resultierenden Kopieraktionen zwischen diesen beiden Speicherbereichen belasteten neben dem Hauptspeicher des Servers auch die CPU.
Was bringt dNFS in der Praxis? Im Internet sind zum Thema Performance-Optimierung einige Erfahrungsberichte zu finden (z. B. von der Firma Oracle [2]). Eine wesentliche Grundaussage aus diesen Reports ist, dass dNFS wesentlich besser skaliert als das betriebssystemeigene NFS, wenn eine Kanalbündelung genutzt wird (ab 2 Kanälen). Wird lediglich ein Kanal vom Server zum Filer genutzt, bietet dNFS keinen Vorteil gegenüber der Betriebssystemvariante. Es bietet allerdings auch keinen Nachteil. Insofern lohnt sich der Einsatz von dNFS auch hier, da die Komplexität der Administration deutlich reduziert wird. Fehlerquellen bei der Auswahl der Mount-Optionen werden vermieden.
Da die NFS-Treiber nun Bestandteil der Datenbank sind, können auch Oracle Instanzen unter Windows via NFS auf NASDevices zugreifen. Ein weiterer Vorteil, der sich aus Sicht eines Administrators ergibt, ist die Tatsache, dass für alle Plattformen die NFS-Komponenten vom selben Hersteller kommen wie die Datenbank-Software. Dies erleichtert im Fehlerfall die Kommunikation und beschleunigt die Fehlerbeseitigung, da von nun an nicht mehr zwischen Betriebssystem- und Datenbankhersteller "vermittelt“ werden muss.
Die Einrichtung von dNFS ist relativ einfach. Zunächst wird die Standard-Bibliothek ODM (Oracle Disk Manager) gegen den dNFSTreiber getauscht (siehe Abbildung 2).
Zusätzlich müssen die Mount-Anweisungen in einer eigenen Konfigurationsdatei (ähnlich der (v)fstab bei Linux/Solaris) bereitgestellt werden. Diese Datei wird per Default in den folgenden Pfaden gesucht:
Damit die Instanz darüber informiert ist, welches Device von welchem Server einzubinden ist, sind die entsprechenden Informationen in der orafstab zu hinterlegen (siehe Abbildung 3).
Bevor die Instanz gestartet wird, sind die Devices per Hand konventionell – über die Betriebssystem-Treiber – einzubinden. Beim Starten der Instanz übernimmt dann Oracle mittels des dNFS-Clients die Kontrolle über die entsprechenden Devices. Die eingestellten Mount-Optionen (z. B. aus der /etc/fstab) spielen dann keine Rolle mehr für die weitere Kommunikation.
Aktuell können bis zu vier Pfade parallel konfiguriert werden. Im Beispiel in Abbildung 3 sind es lediglich zwei. Dies erhöht den Datendurchsatz (Load Balancing) und gewährleistet eine höhere Verfügbarkeit, falls eine der Verbindungen ausfällt.
Um sich zu vergewissern, ob der dNFS-Client seine Arbeit auch zufriedenstellend erledigt, stellt Oracle vier Systemsichten zur Verfügung:
Interessant ist die Tatsache, dass dNFS erst dann die Kontrolle über Devices übernimmt, wenn sie benötigt werden. Das erste SELECT-Statement (siehe Abbildung 4) zeigt den Zustand direkt nach dem Start der Instanz. Zu diesem Zeitpunkt wurden noch keine archivierten Redo-Logs in das dafür zuständige File-System geschrieben. Nachdem ein Archiv erzwungen wurde, kontrolliert die Instanz auch das für die Archive zuständige Volume (siehe zweites SELECT-Statement in Abbildung 4).
Die Statistik in Abbildung 5 zeigt, wie oft auf welche Datei lesend oder schreibend zugegriffen wurde.
dNFS ist einfach zu konfigurieren und unproblematisch im Einsatz. Sicher wird diese Technologie mit dem anhaltenden Trend von NAS-Storage für Oracle Datenbanken und dem zunehmenden Verbreitungsgrad der Version 11g immer mehr Beachtung finden.
Matthias Jung (info@ordix.de).