12 Remove DirectNFS in ASM

References

Disabling Direct NFS Client Oracle Disk Management Control of NFS

Overview

Further thought on the problem described in 11 Create Database Failed led me to suspect that the problem was the DirectNFS driver being used by ASM.

Procedure

Analysis

Since Oracle Clusterware appears to be using the ZFS Datasets on the FreeNAS just fine, I assume there must be some difference between how ASM was accessing the NFS files to the way by Oracle Clusterware. That difference is DirectNFS.

Although the DirectNFS ODM driver is installed in the Oracle Database home, there is no oranfstab file there to activate it.

First Attempt to Disable DirectNFS for ASM

I followed the first option in the procedure in Disabling Direct NFS Client Oracle Disk Management Control of NFS by removing the oranfstab file in ASM:

[asm@penrith1 ~]$ srvctl stop asm -n penrith1
[asm@penrith1 ~]$ cd $ORACLE_HOME/dbs
[asm@penrith1 dbs]$ ls
ab_+ASM1.dat  init+ASM1.ora  init.ora   orapw+ASM1
hc_+ASM1.dat  initdw.ora     oranfstab
[asm@penrith1 dbs]$ rm oranfstab
[asm@penrith1 dbs]$ srvctl start asm -n penrith1
[asm@penrith1 dbs]$ asmcmd lsdg
State    Type    Rebal  Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Name
MOUNTED  EXTERN  N         512   4096  1048576      3104     3010                0            3010              0  DATA/
MOUNTED  EXTERN  N         512   4096  1048576      4062     3969                0            3969              0  RECOVERY/

Still get the same problem according to the alert log in /u01/app/oracle/diag/rdbms/example/example1/trace/alert_example1.log :

NOTE:Loaded library: System
SUCCESS: diskgroup DATA was mounted
Errors in file /u01/app/oracle/diag/rdbms/example/example1/trace/example1_ora_17659.trc:
ORA-27041: unable to open file
WARNING: IO Failed. subsys:System dg:1, disk:0x0.0xe9685a7f au:94
 iop:0x2512000 bufp:0x5b2600 iosz:8192 oper:2 wait:0
 result: 4 osderr:0x0 osderr1:0x0 pid:17659
Errors in file /u01/app/oracle/diag/rdbms/example/example1/trace/example1_ora_17659.trc:
ORA-15080: synchronous I/O operation to a disk failed
WARNING: failed to write mirror side 0 of virtual extent 0 of file 256 in group 1
2012-01-08 02:21:59.793000 +11:00
SUCCESS: diskgroup DATA was dismounted

Second Attempt to Remove DirectNFS

The first option should have disabled DirectNFS for the NFS files. However, I really wanted to make sure that DirectNFS was not being used by ASM.

In the second attempt to remove DirectNFS, I followed the section option in the procedure in Disabling Direct NFS Client Oracle Disk Management Control of NFS by restoring the libodm11.so stub file in ASM:

[asm@penrith1 ~]$ srvctl stop asm -n penrith1
[asm@penrith1 ~]$ cd $ORACLE_HOME/lib
[asm@penrith1 lib]$ ls -l *odm*
-rw-r--r-- 1 asm oinstall 44670 Aug  1  2007 libnfsodm11.so
lrwxrwxrwx 1 asm oinstall    12 Jan  2 08:05 libodm11.so -> libodmd11.so
-rw-r--r-- 1 asm oinstall  8841 Jan  4 21:11 libodm11.so_stub
-rw-r--r-- 1 asm oinstall  8841 Aug  1  2007 libodmd11.so
[asm@penrith1 lib]$ rm libodm11.so
[asm@penrith1 lib]$ mv libodm11.so_stub libodm11.so
[asm@penrith1 lib]$ srvctl start asm -n penrith1

And again, I get the same problem according to the alert log in /u01/app/oracle/diag/rdbms/example/example1/trace/alert_example1.log . See above for the style of error message.

The obvious error is the link error for libodm11.so — it should not be pointing to itself; it should be pointing to libnfsodm11.so .

Conclusion

DirectNFS in ASM was not the cause of the problem of write failures during database creation.

I have to consider other options.