Pythian Blog: Technical Track

DNFS: wtmax = /proc/fs/nfsd/max_block_size

This is one of those posts that you find via Google using an error message for direct hit search. If you didn’t reach this post that way, I would advise you to stop reading here. If you are still reading then you (as I did) faced error messages below and got frustrated as it isn’t obvious what exactly Oracle means by wtmax/fsinfo/rt/rtp/wt/wtp etc. It all has been very confusing to me as I am an Oracle DBA and still need to learn a lot on the system administration level side of things.

Disclaimer: This comes from my laboratory sandbox environment. Don’t use it in a production environment until confirmed as a working and valid solution by your vendor.

Problem

You have configured Direct NFS, but see the following message in an instance’s alert.log:

...
ALTER DATABASE OPEN
Direct NFS: attempting to mount /u02 on filer KUKARACHA2 defined in oranfstab
Direct NFS: channel config is:
channel id [0] local [192.168.51.30] path [192.168.51.21]
Direct NFS: mount complete dir /u02 on KUKARACHA2 mntport 963 nfsport 2049
Direct NFS: Invalid filer wtmax 525232 on filer KUKARACHA2
Direct NFS: Filer wtmax 525232 must be an even multiple of 32768
Thread 1 opened at log sequence 26
...

If you switch on DNFS, debug events using the following command:

alter system set event="19392 trace name context forever, level 8","19394 trace name context forever, level 8","19396 trace name context forever, level 2","19398 trace name context forever, level 128"

You find the following messages in the DB writer (or client) trace files:

 1350862522117253 kgnfs_get_fsinfo:1907: Filer wtmax 525232 on filer KUKARACHA2
 1350862522118461 kgnfscrechan:3010:  Failed to get root fsinfo 192.168.51.21 on filer KUKARACHA2 error 22
 1350862522118498 kgnfsdeschan:3290: channel 0x7a839070 id 0
 1350862522118548 kgnfsdeschan:3354: freeing channel 0x7a839070 id 0 flags 4
 1350862522118585 kgnfscrechan:3087: warn path 192.168.51.21 filer KUKARACHA2 erc 9
 1350862522118630 kgnfs_crechan:3209: Direct NFS: Could not connect to filer KUKARACHA2
 1350862522118690 kgodm_identify:2766: path /nfsim3/iops_01.dbf fid 0 fsize 0 used 0 /nfsim3/iops_01.dbf erc 0 result 2
 NOTE: disabled slave pool (status 3); using direct msgs

Solution

On the NFS Filer (server) side:

root@yve_ol5_a sysconfig# service nfs stop
root@yve_ol5_a sysconfig# service nfslock stop
root@yve_ol5_a sysconfig# ps -ef | grep nfs
root      3262    53  0 14:10 ?        00:00:00 nfsiod
root     12903  8796  0 19:53 pts/0    00:00:00 grep nfs
root@yve_ol5_a sysconfig# cat /proc/fs/nfsd/max_block_size
524288
root@yve_ol5_a sysconfig# echo 1048576 > /proc/fs/nfsd/max_block_size
root@yve_ol5_a sysconfig# cat /proc/fs/nfsd/max_block_size
1048576
root@yve_ol5_a sysconfig# service start stop
root@yve_ol5_a sysconfig# service nfs start

Stop the database and unmount the NFS mount. Adjust the related configuration file (I don’t know which one as of now, give me and others a hint in the comments section!) to make the change permanent.
The  alert.log and trace files should show normal messages like below:

...
ALTER DATABASE OPEN
Direct NFS: attempting to mount /u02 on filer KUKARACHA2 defined in oranfstab
Direct NFS: channel config is:
     channel id [0] local [192.168.51.30] path [192.168.51.21]
Direct NFS: mount complete dir /u02 on KUKARACHA2 mntport 883 nfsport 2049
Direct NFS: channel id [0] path [192.168.51.21] to filer [KUKARACHA2] via local [192.168.51.30] is UP
Direct NFS: channel id [1] path [192.168.51.21] to filer [KUKARACHA2] via local [192.168.51.30] is UP
Beginning crash recovery of 1 threads
...

Trace file

...
1350863663882120 kgnfs_get_fsinfo:1907: Filer wtmax 1048576 on filer KUKARACHA2
 1350863663882320 kgnfscrechan:3068: created channel 0x7a839070
 1350863663882346 kgnfscrechan:2889: path 192.168.51.21 rserver 0x7a834048 local 192.168.51.30 routing on ch 1
 1350863663882578 skgnfs_bind:1295: sockfd 33 port 20285 address 192.168.51.30
 1350863663883086 kgnfscrechan:3068: created channel 0x7a839e20
 1350863663883177 kgnfsexecnfs3proc:3430: channel 0x7a839070 proc 3 tmo 4294967295
 1350863663883202 kgnfs_fillcmsg:4234:  LOOKUP iops_01.dbf
...

Let me know if you found this info useful in the comment section. ;)
Yury

No Comments Yet

Let us know what you think

Subscribe by email