Skip to Main Content

Breadcrumb

dNFS richtig konfigurieren

Oracle dNFS richtig konfigurieren

Oracle hat dNFS mit der Version 11gR1 eingeführt und über die verschiedenen Releases laufend verbessert und/aber auch die Konfiguration verändert.

In diesem Artikel zeigen wir Ihnen, wie man mit dNFS richtig umgeht - vom Konfigurieren am OS bis hin zu Tipps und Tricks.

 

Was ist eigentlich Oracle direct NFS (dNFS)?

Hinter Oracle dNFS versteckt sich ein in das Oracle Executable integrierter NFS Client - die Datenbank Instanz / die Prozesse können somit NFS Verbindungen DIREKT aufbauen, ohne die NFS Client Software am Operating System zu nutzen.

Dies reduziert dramatisch den Overhead durch Context Switches und NFS Client Verarbeitung und schlägt sich in großen Performance- und Durchsatzunterschieden (bis zu Faktor 2 und mehr) bei gleichzeitiger Reduktion des CPU Bedarfs am Datenbank Server nieder.

 

Wie konfiguriert man die Oracle Datenbank Software für dNFS?

Einschalten von dNFS mit Oracle 11gR1

Oracle Database 11g

cd $ORACLE_HOME/lib
mv libodm11.so libodm11.so_stub
ln -s libnfsodm11.so libodm11.so

Einschalten von dNFS ab Oracle 11gR2

Oracle Database 11g Oracle Database 12c

In Oracle 11gR2 kann man dNFS noch genau so wie mit Oracle 11gR1 einschalten (ab Oracle 12c nicht mehr!). Der korrekte Weg ist aber der folgende:

cd $ORACLE_HOME/rdbms/lib
make -f ins_rdbms.mk dnfs_on

Deaktivieren geht übrigens wie folgt:

cd $ORACLE_HOME/rdbms/lib
make -f ins_rdbms.mk dnfs_off

NFS Server Einstellungen

Bei den meisten professionellen NFS Storage Lösungen muss man für Oracle dNFS nichts zusätzliches konfigurieren, verwendet man aber auf Linux/Unix basierende NFS Server Lösungen, so muss man unbedingt beachten, dass die Oracle dNFS INSECURE Ports nutzt!

Beispiel zur Konfiguration von einem Linux basierenden NFS Server

Dieses Beispiel berücksichtigt nur jene Teile, die für Oracle relevant sind. NFS Zugriffseinschränkungen,... werden NICHT behandelt.

Ein Verzeichnis für NFS vorbereiten und freigeben

mkdir -p /nfs_shares/test_db

Diese NFS Share freigeben

vi /etc/exports
/nfs_shares/test_db *(rw,sync,no_wdelay,insecure,insecure_locks,no_root_squash)

NFS export aktivieren

Wenn der NFS Server schon läuft und genutzt wird - /etc/exports neue einlesen

exportfs -a

Wenn der NFS Server noch nicht läuft/konfiguriert ist

chkconfig nfs on
service nfs restart

NFS Konfiguration am Datenbank Server

Obwohl die Datenbank Instanz selbst NFS Verbindungen aufbaut und nutzt, verlangt Oracle eine "Fallback Möglichkeit"

Verzeichnis für den dNFS Mount anlegen

mkdir -p /u01/app/oracle/oradata/test_db

NFS Mount im System konfigurieren

vi /etc/fstab ## und folgende Zeile anfügen (alles in einer Zeile!)
nfsserver_hostname:/nfs_shares/test_db /u01/app/oracle/oradata/test_db nfs rw,bg,hard,nointr,tcp,vers=3,timeo=600,rsize=32768,wsize=32768,actimeo=0 0 0

NFS Mount durchführen und Oracle den Zugriff ermöglichen

mount /u01/app/oracle/oradata/test_db
chown oracle:dba /u01/app/oracle/oradata/test_db

Ab jetzt wird die Datenbank ( Files unter /u01/app/oracle/oradata/test_db ) mit dNFS betrieben

Das waren die Schritte für eine einfache dNFS Konfiguration. Es gibt noch einige Advanced Konfigurationsmöglichkeiten wie:

  • Nutzen von mehreren NFS Pfaden (max 4)
  • Direct NFS CloneDB ab Oracle 11.2.0.2
  • RMAN Proxy Backup Integration für NFS mit NetApp Storages

Diese haben aber spezifische Anforderungen und Voraussetzungen, die den Rahmen dieses Artikels sprengen. Wir helfen Ihnen aber gerne bei der Umsetzung, wenn Sie diese Funktionalitäten nutzen wollen.

dNFS und Jumbo Frames

Jumbo Frames bedeutet, dass die Netzwerkpakete mit einer größeren Paketgröße arbeiten dürfen. Da für die Oracle Datenbank meistens 8k große Datenblöcke genutzt weden, sollte man Jumbo Frames so konfigurieren, dass die Datenbank Blöcke in einem Netzwerkpaket platz haben.
Wir empfehlen daher Jumbo Frames mit der Größe von 9000 bytes (MTU=9000). Dies muss man auf allen beteiligen Komponenten (NFS Server, Netzwerk Switches, Datenbank Server) definieren und einschalten.