To enhance the network bandwidth, make sure to have multiple network interfaces on the client. These multiple interfaces can be configured on a single subnet or on multiple subnets.
Single subnet
IO performance on a dNFS environment with multiple interfaces and single subnet is limited to the speed of the first interface that is picked by the OS. This is because the OS returns the first path when multiple paths are available on the subnet and hence the traffic is always routed through the first path.
Client interface NFS server
ens7f0 10.21.108.193 10.21.108.10
ens7f1 10.21.108.194 10.21.108.10
[oracle@rlxora-b01-11-06 ~]$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.21.108.1 0.0.0.0 UG 0 0 0 ens7f0
10.21.108.0 0.0.0.0 255.255.255.0 U 0 0 0 ens7f0 <-- first route
10.21.108.0 0.0.0.0 255.255.255.0 U 0 0 0 ens7f1 <-- route ignored
As per the routing table, both traffic can go through the first interface (ens7f0) as the destination and the mask fits for both routes and OS will invariably choose the first route.
In this case, to enhance the bandwidth, it is recommended to use NIC bonding at the client level. Oracle support document (Doc ID 833481.1) provides other means to enable multiple paths in a single subnet using static routing but it doesn’t address the issue with availability when a NIC fails or network cable is pulled as the routing table will not be updated.
Multiple subnets
“Direct NFS client best practices recommend always to use multipaths in separate subnets”.
Client interface NFS server
ens7f0 10.21.108.193 10.21.108.10
ens7f1 10.21.107.194 10.21.107.10
[oracle@rlxora-b01-11-06 ~]$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.21.108.1 0.0.0.0 UG 0 0 0 ens7f0
10.21.108.0 * 255.255.255.0 U 0 0 0 ens7f0
10.21.107.0 * 255.255.255.0 U 0 0 0 ens7f1
In this case, these are two dynamic routes and based on the traffic, the route is selected automatically.
As such, if you decide to use multiple subnets, it should be configured at both the client and the FlashBlade side as well. Multiple subnets can be configured in FlashBlade GUI under the Network Settings.
Make sure to update the oranfstab with the subnets and the mount point details. In RAC environment, all RAC nodes should have the appropriate oranfstab file configured.