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.
Before you start
Section titled “Before you start”- 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
Deploy
Section titled “Deploy”git clone https://github.com/zettalane-systems/open-pnfs-cloud.gitcd open-pnfs-cloud./deploy-pnfs.sh --cloud azure -k ~/.ssh/id_rsa -n mypnfs \ -g my-resource-group -l westusIt 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:
sudo mount -t nfs4 -o vers=4.2,nconnect=8 <MDS_IP>:/ /mnt/pnfsWhat gets deployed
Section titled “What gets deployed”| 1 metadata server | Lattice pNFS MDS with a co-located RonDB catalogue |
| 1 MayaNAS HA pair | two nodes serving as data servers DS-0 and DS-1, each with its own ZFS pool and floating VIP |
| 1 client | for the built-in verification run |
| Azure Blob Storage | the 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.
Verify
Section titled “Verify”The deploy runs the upstream pNFS test suite and checks the cluster. A healthy run ends with:
PASS: 17 FAIL: 0 SKIP: 0 Total: 17DS-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"} 81The counters show pNFS at work: the metadata server handed out layouts and served no reads or writes itself.
Performance tiers
Section titled “Performance tiers”| Tier | Azure VM |
|---|---|
| basic | Standard_D8as_v6 |
| standard | Standard_D16as_v6 |
| performance | Standard_D32as_v6 |
| ultra | Standard_D48as_v6 |
Tear down
Section titled “Tear down”./deploy-pnfs.sh --cloud azure -n mypnfs --destroy -g my-resource-group -l westusPass 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.
Pricing
Section titled “Pricing”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.