In the comment section of my recent post about Tim Hall’s excellent NFS step-by-step Linux RAC install Guide, Tim came full circle to ask a question about asynchronous I/O on NFS. He wrote:
What do you set your filesystemio_options init.ora parameter to when using Oracle over NFS?
Based on what you’ve written before I know NFS supports direct I/O, but I’m struggling to find a specific statement about NFS and asynchronous I/O. So should I use:
filesystemio_options=directIO
or
filesystemio_options=setall
My reply to that was going to remind you folks about my recent rant about old Linux distributions combined with Oracle over NFS. That is, the answer is, “it depends.” It depends on whether you are running a reasonable Linux distribution. But, Tim quickly followed up his query with:
I found my answer. Asynchronous I/O is not supported on NFS:
http://download.oracle.com/docs/cd/B19306_01/server.102/b15658/appc_linux.htm#sthref892
Bummer, I didn’t get to answer it.
Word To The Wise
Don’t use old Linux stuff with NAS if you want to do Oracle over NFS. Metalink 279069.1 provides a clear picture as to why I say that. It points out a couple of important things:
1. RHEL 4 U4 and EL4 both support asynchronous I/O on NFS mounts. That makes me so happy because I’ve been doing asynchronous I/O on NFS mounts with Oracle10gR2 for about 16 months. Unfortunately, ML 279069.1 incorrectly states that the critical fix for Oracle async I/O on NFS is U4, when in fact the specific bug (Bugzilla 161362 ) was fixed in RHEL4 U3 as seen in this Red Hat Advisory from March 2006.
2. Asynchronous I/O on NFS was not supported on any release prior to RHEL4. That’s fine with me because I wouldn’t use any Linux release prior to the 2.6 kernels to support Oracle over NFS!
Summary
The Oracle documentation on the matter was correct since it was produced long before there was OS support for asynchronous I/O on Linux for Oracle over NFS. Metalink 279069.1 is partly correct in that it states support for asynchronous I/O on systems that have the fix for Bugzilla 161363 but it incorrectly suggests that U4 is the requisite release for that fix, but it isn’t—the bug was fixed in U3. And yes, I get really good performance with the following initialization parameter set and have for about 16 months:
filesystemio_options = setall
Manly Man Post Script
Always remember, the Manly Man series is tongue-in-cheek. Oracle over NFS with Async I/O on the other hand isn’t.
Cool man! You are a total godsend!
It’s so nice to be wrong, when it means things are actually better than you expected.
I love this series of posts. I can see myself becoming a terrible fanboy. 🙂
Cheers
Tim…
Tim,
That would be “Manly Fan”, wouldn’t it? 🙂
Maybe “Fanly Fan” will be better?
This post helped us considerably. Thanks Kevin.
Hi Kevin,
For high I/O throughput-type Oracle (10gR2) systems that are currently runing on FC on large SMP servers, would you recommend first upgrading to 11gR1 (for DNFS) and then moving to NFS?
Thanks
Amir
Hi Amir,
Well, no, I would recommend the Database Machine. But, if you have to go with something other than DBM, I would most certainly recommend going to 11gR2 if you are making the FC->NFS jump. I’d also take a good close look at the Sun Unified Storage platform with 10GbE …particularly the 7400
Click to access 039224.pdf
Hi Kevin,
For systems configured with dNFS, What should ‘filesystemio_options’ be set to?
Thanks,
Amir
Hi Amir,
With dNFS filesystemio_options is a no-op.