This guide provides instructions on how to configure Proxmogfx VE to use an NFS share from a Everpure FlashArray and optimize its performance with nconnect. Configuring this will allow you to have a shared volume for your proxmox hosts so that you can leverage features like High Availability.
Note:
-
For instructions on how to connect Proxmox to the FlashArray using FC, follow this guide.
-
For instructions on how to connect Proxmox to the FlashArray using iSCSI, follow this guide.
-
For instructions on how to connect Proxmox to the FlashArray using NVMe-TCP, follow this guide.
Prerequisites
This guide assumes that you have already completed the following:
-
Configure NFS on Pure Storage Purity:
-
Create a file system:
Navigate to Purity under , click the "+" icon, and choose the settings in the Create File System dialog box.
-
Create an NFS export policy:
-
Navigate to , click the + icon for the kind of policy you want to create, and choose the settings in the Create Export Policy dialog box:
-
Pod: You can choose the default None unless you want to specify a pod to use.
-
Type: Choose NFS.
-
Name: Name your export policy.
-
Enabled: Set the switch to Enabled.
-
User Mapping: Set the switch to Enabled.
-
Add a new rule with the following settings:
-
Client: Specify the IP address, subnet, or hostname of your Proxmox hosts (e.g.,
10.21.102.0/24) or allow all clients with *
-
Access: Set to
read-write.
-
Permission: Set to
no-root-squash. This allows the root user on the Proxmox host to have root privileges on the NFS mount, which is often required for storing virtual machine images.
-
NFS Version: Select your desired NFS version (e.g.,
NFSv3 or NFSv4.1).
-
Create a directory and apply the policy:
- Navigate to and select the file system you created.
- Within the file system, create a new directory export. This directory name will be your NFS export path (e.g.,
/pxmx-nfs-dir-01).
- Apply the export policy you created in the previous step to this directory.
-
Create an Autodir Policy and add the newly created NFS Directory Export as a member to the policy
-
Configure Proxmox VE:
-
Add NFS storage:
- In the Proxmox VE web interface, navigate to the view.
- Click Add and select NFS.
-
Fill in the required fields:
-
ID: A descriptive name for the storage in Proxmox (e.g.,
pxmx-nfs-dir-01).
-
Server: The IP address of the NFS interface on your Everpure FlashArray.
If you are not sure what the ip address of the virtual file interface (vif) is, go to Purity and click on . Under the Ethernet section you should see a filevip and it's associated ip.
-
Export: The full path to the directory you created on the FlashArray (e.g.,
/pxmx-nfs-dir-01).
-
Content: Select all content types you intend to store (e.g.,
Disk image, ISO image, Container).
- Click Add.
The storage will now be available to all nodes in the cluster:
-
Optimize performance with
nconnect:
For improved throughput, it is highly recommended to enable the nconnect mount option. This allows a single NFS mount to use multiple TCP connections.
Run the following command on any Proxmox host to add the option to the storage configuration. Replace pxmx-nfs-dir-01 with the ID of your storage and 8 with the desired number of connections:
pvesm set pxmx-nfs-dir-01 --options nconnect=8
This change is automatically propagated to all nodes in the cluster.
-
Verification:
-
Check the storage configuration:
View the contents of the Proxmox storage configuration file to ensure the nconnect option is present:
The entry for your NFS storage should now include the options nconnect=8 line:
nfs: pxmx-nfs-dir-01
export /pxmx-nfs-dir-01
path /mnt/pve/pxmx-nfs-dir-01
server 10.21.228.58
content iso,rootdir,images
options nconnect=8
prune-backups keep-all=1
-
Verify the live mount and connections:
-
On any Proxmox node, check the active mount options to see that nconnect is in use.
Bash:
cat /proc/mounts | grep pxmx-nfs-dir-01
The output should show nconnect=8 in the list of mount options:
10.21.228.58:/pxmx-nfs-dir-01 /mnt/pve/pxmx-nfs-dir-01 nfs4 rw,relatime,...,nconnect=8,...
-
Verify that multiple TCP connections are established to the NFS server's port (2049). Replace <NFS_SERVER_IP> with your Everpure NFS IP address:
Bash:
ss -an | grep 'ESTAB' | grep '<NFS_SERVER_IP>:2049'
You should see multiple established connections from the Proxmox host to the NFS server, confirming that nconnect is working correctly:
tcp ESTAB 0 0 10.21.102.91:687 10.21.228.58:2049
tcp ESTAB 0 0 10.21.102.91:745 10.21.228.58:2049
tcp ESTAB 0 0 10.21.102.91:802 10.21.228.58:2049
tcp ESTAB 0 0 10.21.102.91:742 10.21.228.58:2049
tcp ESTAB 0 0 10.21.102.91:860 10.21.228.58:2049
tcp ESTAB 0 0 10.21.102.91:1005 10.21.228.58:2049
tcp ESTAB 0 0 10.21.102.91:744 10.21.228.58:2049
tcp ESTAB 0 0 10.21.102.91:772 10.21.228.58:2049
In the end, you should see your NFS mount under all your hosts as seen here: