7. VAST Client NFS Multipathing

Prev Next

VAST provides a high-performance NFS interface enhanced with multipathing, enabling clients to communicate with multiple VAST server nodes (CNodes) in parallel. This is achieved through the VAST NFS client, which builds on the standard Linux kernel NFS driver and provides multipathing support for both TCP and RDMA transport modes.

Multipathing enables:

  • Load-balanced traffic across multiple VIPs.

  • Parallel data paths for improved throughput.

  • Support for multiple client-side NICs to utilize all available bandwidth.

Note: The VAST NFS client is optional and best used in high-performance scenarios with large, sequential I/O—like AI training or HPC—where it enables multi-path, RDMA, or GPU Direct for higher throughput. For general-purpose workloads or many small files, it offers a small benefit only.

Mounting with Multipathing

The VAST Enhanced NFS client introduces several mount options to leverage multipathing fully:

NFSv3:

sudo mount -o vers=3,nconnect=34,pconnect=4,mdconnect=2,spread_reads,spread_writes,noextend,lookupcache=pos,remoteports=dns localports=192.168.0.100~192.168.0.200 vast.example.com:/export /mnt/vast

NFSv4:

sudo mount -o vers=4.1,nconnect=32,pconnect=4,remoteports=dns localports=192.168.0.100~192.168.0.200 vast.example.com:/export /mnt/vast

Option

Description

nconnect=<N>

Sets the total number of TCP connections per mount. These connections are distributed across VIPs.

Notes:

  1. Use 8 connections for every 100Gbps with TCP (e.g., nconnect=32 for 400Gbps).

  2. Use 2 connections for every 100Gbps with RDMA (and a minimum of 8 to reach good load balancing).

pconnect=<NUM>

Controls the number of connections made by each client. The nconnect parameter still controls the total number of connections. For example, passing nconnect=32 and pconnect=4 will create 8 clients with 4 connections each, all to the same destination address, and regardless of how big is remoteports.  (Note: pconnect applies to vastnfs 4.5 or later)

When using mdconnect=2, there are two connections out of nconnect settings that are dedicated to metadata, hence the values of 34 (32 + 2)

remoteports

Enables connections to multiple VIPs (server-side IPs).

Note: It is recommended to use remoteport=dns, so the client can issue DNS queries with the mount target DNS name and retrieve an array of addresses.

localports

Specifies multiple client-side IPs for outgoing traffic (NFSv3 only).

spread_reads

Distributes read operations across all connections to increase throughput.

spread_writes

Distributes write operations across all connections.

lookupcache=pos

Reduces the delay in discovering newly created files on other clients by enabling positive lookup caching, which is useful when one client waits for another to create a file.

mdconnect=2

Enables dedicated metadata channels, preventing metadata operations from being blocked behind large read/write I/O.
Note: Requires vastnfs 4.0.34 or later. mdconnect Only applies to NFSv3

noextend

Turns off the default extend-to-page optimization in writes. Useful for specific NFSv3 workflows with multiple clients. No tradeoffs; safe default.


Additional Resources