Dell Unity: After upgrade to Unity OE version 5.5, NFSv4 clients cannot access data
Summary: After upgrading to Unity OE version 5.5, NFSv4 clients cannot access data.
Symptoms
After upgrading to Unity OE version 5.5, NFSv4 clients cannot access data.
Cause
Starting with Unity OE version 5.5, support for NFSv4.2 is included. The NFSv4.2 protocol support brings additional security and performance and NFS attribute support of spares files and NFS security labelling.
During the Unity OE upgrade, as SPs reboot sequentially, NFS clients supporting NFSv4.2 will automatically remount exports using NFSv4.2. This automatic protocol upgrade could cause unexpected issues, and some customers may lose access to their data. The reason for this is that Unity and the client will negotiate the highest NFS version they both support at mount time, but if NFSv4.2 specific settings were not enabled or configured, the mounts will fail or data access will fail.
Resolution
Fix:
There is no fix here, as the product is working as designed.
If you want to prevent the issue from occurring after a code upgrade, you can follow the Workarounds as listed below. On the Client side, you can implement that workaround at any time. On the Unity side, you will need to complete the upgrade and then make the Unity changes before the clients reconnect.
Workaround:
The workaround to restore access to data in the fastest way possible is to downgrade NFS to NFSv4.1. There are three methods to accomplish this: one is on the client side, and two are on the Unity side.
- Client side:
Customers can explicitly specify the NFS protocol version during client-side mounting. For example, to enforce NFSv4.1:
[root@rhel8 tmp]# mount -o vers=4.1 5.6.7.196:/test /tmp/test
- Unity side
From Unity, there is no way to specify the NFSv4 version in Unisphere, but there is a CLI parameter introduced in Unity OE 5.5 that controls the max NFSv4 version Unity can support.
The following command can be used to list the current max NFSv4 version supported on Unity NAS server. Both "default_value = 2" and "current_value = 2" indicates Unity supports NFSv4.2.
06:59:09 service@unity spa:~/user# svc_nas ALL -param -facility nfsv4 -info maxMinorVersion -verbose
SPA :
param nfsv4.maxMinorVersion added into the list of visible params
name = maxMinorVersion
facility_name = nfsv4
default_value = 2
current_value = 2
configured_value =
param_type = global
user_action = reboot SP
change_effective = reboot SP
range = (0,2)
description = NA
test:
name = maxMinorVersion
facility_name = nfsv4
default_value = 2
current_value = 2
configured_value =
param_type = global
user_action = reboot SP
change_effective = reboot SP
range = (0,2)
description = NA
The following command can be used to downgrade the max NFSv4 version from default 4.2 to 4.1.
07:01:30 service@unity spa:~/user# svc_nas ALL -param -facility nfsv4 -modify maxMinorVersion -value 1
SPA : done
Warning 17716815750: SPA : You must reboot the SP for maxMinorVersion changes to take effect.
After the parameter change and SP reboot, the "vers" in client mount output should be 4.1.
Additionally, a second option on the Unity side would be to disable security labels on all NAS servers with the following command:
18:26:32 service@unity spa:~/user# svc_nas ALL -param -f nfsv4 -m secLabelSupport -v 0
param nfsv4.secLabelSupport added into the list of visible params
SPA : done