User Tools

Site Tools


aix:aix_nfsv4

AIX: Mount a filesystem on NFS v4

http://aix4admins.blogspot.com/2011/05/server-computer-that-makes-its-file.html

https://www.ibm.com/support/pages/aix-nfs-authentication-root-user

  • On the source host, check the domain:
[root@nfsserver]/root# chnfsdom
Current local domain: mydom
  • On the target host, set the domain, and start NFSv4 daemon:
[root@labotest]/root# chnfsdom        
Current local domain: N/A
[root@labotest]/root# chnfsdom mydom
[root@labotest]/root# chnfsdom      
Current local domain: mydom
[root@labotest]/root# cat /etc/nfs/local_domain
mydom
[root@labotest]/root# startsrc -g nfs
0513-029 The biod Subsystem is already active.
Multiple instances are not supported.
0513-059 The nfsd Subsystem has been started. Subsystem PID is 66142.
0513-059 The rpc.mountd Subsystem has been started. Subsystem PID is 20447570.
0513-059 The nfsrgyd Subsystem has been started. Subsystem PID is 39715266.
0513-059 The gssd Subsystem has been started. Subsystem PID is 55509106.
0513-029 The rpc.lockd Subsystem is already active.
Multiple instances are not supported.
0513-029 The rpc.statd Subsystem is already active.
Multiple instances are not supported.
  • On the source host, export a filestem for NFS V3 and V4 (if not specified = v3):
[root@nfsserver]/root# vi /etc/exports
/nfs_test -vers=3:4
[root@nfsserver]/root# exportfs -va
  • On the target host, mount the NFSv4 exported filesystem:
[root@labotest]/root# mount -o vers=4,soft,intr nfsserver:/nfs_test /mnt 
[root@labotest]/root# mount | grep /mnt
nfsserver /nfs_test      /mnt             nfs4   Oct 28 17:19 vers=4,soft,intr

On client ports used for NFSv4:

  • nfsserver:2049
  • clientnfs: 1022-1023

Restrict access

[root@labotest]/root# cat /etc/exports
/Tech/test1 -vers=4,sec=sys:krb5p:krb5i:krb5:dh,rw,access=10.1.199.35,root=10.1.199.35

Required Tuning to Mount Linux NFSv4 export

# For NFS with Linux, add the following settings

nfso portcheck  1 (not sure)
nfso nfs_use_reserved_ports  1
nfs -po <param>=<value>

Commands to export/unexport on AIX server

Example to unexport

[root@nfsserver]/root# rmnfsexp -d /export/mksysb

Example to export

[root@nfsserver]/root# mknfsexp -d /export/mksysb -v 3,4 -S sys,krb5p,krb5i,krb5,dh -r aixn*,aixa*,aixb* -t rw

Open the /etc/filesystems file on labotest with a text editor.

/mksysb:
        dev             = "/export/mksysb"
        vfs             = nfs
        nodename        = nfsserver
        mount           = true
        options         = bg,soft,intr,vers=4,sec=sys
        account         = false

NFSv4 error

gssd error in syslog

[root@aix01]/var/log/syslog# grep gss warning.log
/var/adm/syslog/warning.log:Feb  1 09:21:04 aix01 daemon:err|error gssd[15663584]: /usr/lib/drivers/krb5.ext: No such file or directory
/var/adm/syslog/warning.log:Feb  1 09:21:04 aix01 daemon:err|error gssd[15663586]: /usr/lib/drivers/krb5.ext: No such file or directory
[root@aix01]/export/aix73_exp/installp/ppc# lssrc -g nfs
Subsystem         Group            PID          Status
 biod             nfs              30867940     active
 nfsd             nfs              23921040     active
 rpc.mountd       nfs              7406062      active
 nfsrgyd          nfs              19399068     active
 rpc.lockd        nfs              9175414      active
 rpc.statd        nfs              32309574     active
 gssd             nfs                           inoperative

Install the missing krb5.ext module, you can find the package modcrypt.base.6.1.0.4.I into expansion pack

[root@aix01]/export/softs# restore -Tqvf /export/aix73_exp/installp/ppc/modcrypt.base.6.1.0.4.I
New volume on /export/aix73_exp/installp/ppc/modcrypt.base.6.1.0.4.I:
...
           0 ./usr/lpp/modcrypt.base
        4334 ./usr/lpp/modcrypt.base/liblpp.a
      406327 ./usr/ccs/lib/libmodcrypt.a
      175022 ./usr/lib/drivers/krb5.ext
        5999 ./usr/include/xcrypt.h

Error while trying to export

root@ds:/root# cat /etc/exports
/export/aix72 -vers=3:4
root@ds:/root# exportfs -va
error: Too many levels of symbolic links

First chek if you have symbolic link into you directory

find /export/aix72 -type l

In symbolic link exist, remove it, else:

This problem is more common when using a NFS filesystem (v3 or v4) over an filesystems backend and with a lot of files in the same directory (more than 50000).

The problem is related to the readdir function of the readdir API, that uses the readdir cookie to quickly locate a file inside a directory. The NFS server uses this API while communicating with filesystem backends.

The “readdir loop” problem seems to be fairly widely known. Try to upgrade your OS, and reboot.

Mount as nobody

Export NFSv4

[root@aixnfssrv01]/root> cat /etc/exports
/repository -vers=3:4,sec=sys,root=aix*:lnx*:ocp*,rw

[root@aixnfssrv01]/root> chnfsdom
Current local domain: mydom1

With good domain

[root@aixclientnfs01] /root> chnfsdom mydom1
[root@aixclientnfs01] /root> stopsrc -g nfs
[root@aixclientnfs01] /root> startsrc -g nfs
[root@aixclientnfs01] /root> mount -o vers=4 aixnfssrv01:/repository /mnt
[root@aixclientnfs01] /> ls -l /   | grep mnt
   4 drwxr-xr-x   22 root     system         4096 Mar  1 16:59 mnt

With bad domain

[root@aixclientnfs01] /root> chnfsdom mydom2
[root@aixclientnfs01] /root> stopsrc -g nfs
[root@aixclientnfs01] /root> startsrc -g nfs
[root@aixclientnfs01] /root> mount -o vers=4 aixnfssrv01:/repository /mnt
[root@aixclientnfs01] /> ls -l /   | grep mnt
   4 drwxr-xr-x   22 nobody   nobody         4096 Mar  1 16:59 mnt

FIXME you can have multiple domains: chnfsdom mydom1,mydom2

Performance

If you have a dédicated VLAN for NFS, you can use MTU 9000. All devices must set the MTU to 9000 and network ports to 9216.

Best proctice for AIX LPAR:

  • Processing Units: 1.0
  • network options
# no -p -o tcp_sendspace=524288
# no -p -o tcp_recvspace=524288
* nfs options
[root@testh]/root# nfso -L
NAME                      CUR    DEF    BOOT   MIN    MAX    UNIT           TYPE
     DEPENDENCIES
--------------------------------------------------------------------------------
nfs_max_read_size         512K   64K    512K   512    512K   Bytes             D
--------------------------------------------------------------------------------
nfs_max_write_size        512K   64K    512K   512    512K   Bytes             D
--------------------------------------------------------------------------------
nfs_rfc1323               1      1      1      0      1      On/Off            D
  • enable largesend
    jumbo_frames    yes
    large_receive   yes
    large_send      yes
[root@testh]/root# lsattr -El ent3
chksum_offload  yes              Request checksum offload                         True
jumbo_frames    yes              Request jumbo frames                             True
large_receive   yes              Request Rx TCP segment aggregation               True
large_send      yes              Request Tx TCP segment offload                   True
...
    
[root@testh]/root# lsattr -El en3
...
mtu           9000            Maximum IP Packet Size for This Device        True
mtu_bypass    on              Enable/Disable largesend for virtual Ethernet True
state         up              Current Interface Status                      True

For info, largesend 'll send packet 64k, that 'll be split on VIOS side (hypervisor), when analyse packet, checksum for 64k return FFFF bad checksum, it normal.

Example of mount options:

# mount -o bg,hard,intr,rsize=131072,wsize=131072,timeo=1200,vers=4,sec=sys nfssrv:/nfspath /mnt

NFS ERROR

  • Mount error
NFS lookup failed for server : rpc error 7 (RPC: 1832-010 Authentication error) errno 5

Try:

# nfso -p -o portcheck=1
# nfso -p -o nfs_use_reserved_ports=1
  • Set range ports for NFS

Normally, The usage of NFS ports will be dynamically in AIX…. If you would like to set the port ranges,

The NFS_PORT_RANGE environment variable can be used to limit the source port of network calls the client makes to the server. If used, this environment variable should be added to the /etc/environment file. The format of the environment variable is as follows:

NFS_PORT_RANGE=udp[4000-5000]:tcp[7000-8000]
aix/aix_nfsv4.txt · Last modified: 2024/02/26 09:43 by manu