Connecting Proxmox to FlashArray using NFS

Proxmox

Audience
Public
Source Type
Documentation

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:

  • Deployed at least three Proxmox nodes and joined them into a cluster. For instructions on how to do that, please see the previous section.

  • Configured your Everpure FlashArray with file services networking setup. For instructions on how to do that, please see this quick start guide.
  1. Configure NFS on Pure Storage Purity:
    1. Create a file system:

      Navigate to Purity under Storage > File Systems, click the "+" icon, and choose the settings in the Create File System dialog box.

    2. Create an NFS export policy:
      1. Navigate to Storage > Policies, click the + icon for the kind of policy you want to create, and choose the settings in the Create Export Policy dialog box:

        1. Pod: You can choose the default None unless you want to specify a pod to use.

        2. Type: Choose NFS.

        3. Name: Name your export policy.

        4. Enabled: Set the switch to Enabled.

        5. User Mapping: Set the switch to Enabled.

      2. 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).
    3. Create a directory and apply the policy:
      1. Navigate to Storage > File Systems and select the file system you created.
      2. Within the file system, create a new directory export. This directory name will be your NFS export path (e.g., /pxmx-nfs-dir-01).
      3. Apply the export policy you created in the previous step to this directory.

    4. Create an Autodir Policy and add the newly created NFS Directory Export as a member to the policy
  2. Configure Proxmox VE:
    1. Add NFS storage:
      1. In the Proxmox VE web interface, navigate to the Datacenter > Storage view.
      2. Click Add and select NFS.
      3. 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 Settings > Network > Connectors. 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).
      4. Click Add.

      The storage will now be available to all nodes in the cluster:

    2. 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.

  3. Verification:
    1. Check the storage configuration:

      View the contents of the Proxmox storage configuration file to ensure the nconnect option is present:

      cat /etc/pve/storage.cfg

      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
    2. Verify the live mount and connections:
      1. 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,...
      2. 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: