Skip to content

pNFS on Azure

Deploy parallel NFS into your own Azure subscription. Stock in-kernel NFS clients mount it; the metadata server hands out layouts and every read and write goes straight from the client to the data servers.

  • Terraform 1.0 or later, git, and the Azure CLI signed in (az login)
  • An SSH key
  • A resource group and region to deploy into
Terminal window
git clone https://github.com/zettalane-systems/open-pnfs-cloud.git
cd open-pnfs-cloud
./deploy-pnfs.sh --cloud azure -k ~/.ssh/id_rsa -n mypnfs \
-g my-resource-group -l westus

It takes roughly five minutes end to end. The script deploys the storage pair, the metadata server and a client, waits for the cluster to come up, then verifies it.

Mount from any Linux client in the same network:

Terminal window
sudo mount -t nfs4 -o vers=4.2,nconnect=8 <MDS_IP>:/ /mnt/pnfs
1 metadata serverLattice pNFS MDS with a co-located RonDB catalogue
1 MayaNAS HA pairtwo nodes serving as data servers DS-0 and DS-1, each with its own ZFS pool and floating VIP
1 clientfor the built-in verification run
Azure Blob Storagethe pools’ data devices. You pay for what you store.

Everything lands in your subscription and your VNet. There is no call-home and no vendor-run infrastructure.

The deploy runs the upstream pNFS test suite and checks the cluster. A healthy run ends with:

PASS: 17 FAIL: 0 SKIP: 0 Total: 17
DS-OK
✓ DS distribution OK — every DS holds data
pnfs_mds_nfs_op{op="read"} 0
pnfs_mds_nfs_op{op="write"} 0
pnfs_mds_nfs_op{op="layoutget"} 81

The counters show pNFS at work: the metadata server handed out layouts and served no reads or writes itself.

TierAzure VM
basicStandard_D8as_v6
standardStandard_D16as_v6
performanceStandard_D32as_v6
ultraStandard_D48as_v6
Terminal window
./deploy-pnfs.sh --cloud azure -n mypnfs --destroy -g my-resource-group -l westus

Pass the same -n you deployed with. This removes every resource the deployment created, including the storage containers and their contents. Keep the deployment state in your working directory until the cluster is destroyed.

The Community Edition is free: nothing to subscribe to and nothing metered. You pay Azure for the three VMs (plus the client), disks, Blob Storage and network traffic. -s, --spot lowers the compute cost for evaluation.

See the open-pnfs-cloud README for the full option list.