Recently, a participant on the oracle-l email list asked the following question:
Per note 359515.1 nfs mounts are supported for datafiles with oracle 10. Does anyone know if the same applies for 9.2 databases?
I’d like to point out a correction. While Metalink note 359515.1 does cover Oracle10g related information about NFS mount options for various platforms, that does not mean Oracle over NFS is limited to Oracle10g. In fact, that couldn’t be further from the truth. But before I get ahead of myself I’d like to dive in to the port-level aspect of this topic.
There are no single set of NFS mount options that work across all Oracle platforms. In spite of that fact, another participant of the oracle-l list replied to the original query with the following:
try :
rw,bg,vers=3,proto=tcp,hard,intr,rsize=32768,wsize=32768,forcedirectio
OK, the problem is that of the 6 platforms that support Oracle over NFS (e.g., Solaris, HP-UX, AIX, Linux x86/x86_64/AI64), the forcedirectio NFS mount option is required only on Solaris and HP-UX. For this reason, I’ll point out that the best references for NFS mount options to use for Oracle10g is Metalink 359515.1 and NAS vendors’ documents for Oracle9i.
Oracle9i
Support for Oracle9i on NFS was a little spottier than Oracle10g, but it was there. The now defunct Oracle Storage Compatibility Program (OSCP) was very important in ensuring Oracle9i would work with varying NAS offerings. The Oracle server has evolved nicely to handle Oracle over NFS to such a degree that the OSCP program is no longer even necessary. That means that Oracle10g is sufficiently robust to know whether the NFS mount you are feeding it is valid. That aside, the spotty Oracle9i support I allude to is actually at the port level mostly. That is, from one port to another, Oracle9i may or may not have required patches to operate efficiently and with integrity. One such example is the Oracle9i port to Linux where Oracle Patch number 2448994 was necessary so that Oracle would open files on NFS mounts with the O_DIRECT flag of the open(2) call. But, imagine this, it was not that simple. No, you had to have the following correct:
- The proper mount options specified by the NAS vendor
- A version of the Linux kernel that supported O_DIRECT
- Oracle patch 2448994
- The Correct setting for the filesystemio_options init.ora parameter
Whew, what a mess. Well, not that bad really. Allow me to explain. Both of the Linux 2.6 Enterprise kernels (RHEL 4, SuSE 9) support open(2)s of NFS files with the O_DIRECT. So there is one requirement taken care of—because I assume nobody is using RHAS 2.1. The patch is simple to get from Metalink and the correct setting of the filesystemio_options parameter is “directIO”. Finally, when it comes to mount options, NAS vendors do pretty well documenting their recommendations. Netapp has an entire website dedicated to the topic of Oracle over NFS. HP EOMs the File Serving Utility for Oracle from PolyServe and documents their mount options in their User Guide as well as in this paper about Oracle on the HP Clustered Gateway NAS.
Oracle10g
I’m not aware of any patches for any Oracle10g port to enable Oracle over NFS. I watch the Linux ports closely and I can state that canned, correct support for NFS is built in. If there were any Oracle10g patches required for NFS I think they’d be listed in Metalink 359515.1 which, at this time, does not specify any. As far as the Linux ports go, you simply mount the NFS filesystems correctly and set the init.ora parameter filesystemio_options=setall and you get both Direct I/O and asynchronous I/O.
Thanks for the write-up of the question Kevin.
The SR that was also opened, eventually, shed some light on this issue.
First up I got this response
“QUESTION
========
From what release are NFS mounts supported for Datafiles?
ANSWER
======
NFS support is not a matter of Oracle release, infact it’s counts on the NFS ven
dor as Oracle does not recommend using an NFS device unless the NFS vendor is a
member of the Oracle Storage Compatibility Program (OSCP).”
which, pace your article and my experience, had some useful information in it – it isn’t release dependent – and some real stinkers – the reference to OSCP which no longer exists, as I discovered when I went to the referenced URI. Googling OSCP turned up the end of program discussion on this blog by the way.
I then pointed out that this was all very well, but that the further reference URIs didn’t actually work.
I then got this.
UPDATE
======
Hi Niall,
It’s true, there is no list of OSCP anymore (web pages have been removed), but if NFS on Linux is
used, this will be Ok with us for supporting issues (Note: 236826.1).
So I did get a useful link in the end, the highlights of the note being the support statement I wanted
“The current support includes ext2, ext3 and NFS-based storage systems (e.g. NetApp). To be acceptable for database usage, the file system must support certain minimum functions such as write acknowledgement, write-through cache and file permissions. Counter examples are simple NFS, which lacks acknowledge and VFAT, which lacks file permissions.”
and this note full of eastern promise, as the Fry’s Turkish Delight adverts used to say, for Linux filesystem support
“Your choice of which [filesystem] to use then becomes based on supportability, reliability, security and performance. Oracle generally does not certify file systems and does certify operating systems, but Linux is a specific case. On different Linux distributions, Oracle might choose to have certifications on different filesystems. When a problem is encontered, if a non-supported filesystem is being used for Oracle data, control and redo log files, Oracle will try to reproduce the problem on a supported and certified filesystem. If the problem does not reproduce on a certified filesystem, the specific filesystem / O/S vendor should be engaged for resolution.”
Good God Niall…
Hi !
I cannot find any notes on metalink how to set the filesystemio_options parameter on solaris (sparc64) with 10.2.0.4 ?
The mount option for the Filesystem have to be with forcedirectio.
Should be filesystemio_options=DIRECTIO used too, or is the recommondation for linux (SETALL) true for Solaris as well.
thx
I’d go with setall.
I just found that the old OSCP articles are still published here:
http://www.oracle.com/technology/deploy/availability/htdocs/oscp_papers.html
And there are a few articles specifically on 9i and even 8i so that seems to confirm that NFS was indeed supported with these versions.
It was supported, but as I blogged (years ago) on the matter, it was very spotty support. The recipe was very specific. !0gR2, on the other hand, prime-timed Oracle over NFS.