Back to Blog
3 min read

Azure NetApp Files: Enterprise File Storage

Azure NetApp Files brings enterprise-grade NFS and SMB storage to Azure. Sub-millisecond latency for demanding workloads like SAP HANA and HPC.

Service Tiers

TierThroughputUse Case
Standard16 MB/s per TBGeneral file shares
Premium64 MB/s per TBDatabases, analytics
Ultra128 MB/s per TBSAP HANA, HPC

Creating NetApp Account

# Create NetApp account
az netappfiles account create \
    --resource-group myRG \
    --location eastus \
    --name my-netapp-account

# Create capacity pool
az netappfiles pool create \
    --resource-group myRG \
    --account-name my-netapp-account \
    --name my-pool \
    --size 4 \
    --service-level Premium

# Create volume
az netappfiles volume create \
    --resource-group myRG \
    --account-name my-netapp-account \
    --pool-name my-pool \
    --name my-volume \
    --location eastus \
    --vnet my-vnet \
    --subnet netapp-subnet \
    --protocol-types NFSv3 \
    --usage-threshold 1024

NFS Mount

# Mount NFSv3 volume
sudo mount -t nfs -o rw,hard,rsize=65536,wsize=65536,vers=3 \
    10.0.1.4:/my-volume /mnt/netapp

# Add to fstab for persistence
echo "10.0.1.4:/my-volume /mnt/netapp nfs rw,hard,rsize=65536,wsize=65536,vers=3 0 0" | sudo tee -a /etc/fstab

SMB Mount

# Create SMB volume
az netappfiles volume create \
    --resource-group myRG \
    --account-name my-netapp-account \
    --pool-name my-pool \
    --name smb-volume \
    --location eastus \
    --vnet my-vnet \
    --subnet netapp-subnet \
    --protocol-types CIFS \
    --usage-threshold 1024

# Mount on Windows
net use Z: \\10.0.1.5\smb-volume /user:admin password

# Mount on Linux
sudo mount -t cifs //10.0.1.5/smb-volume /mnt/smb -o username=admin,password=xxx

Snapshots

# Create snapshot
az netappfiles snapshot create \
    --resource-group myRG \
    --account-name my-netapp-account \
    --pool-name my-pool \
    --volume-name my-volume \
    --name snapshot-001

# List snapshots
az netappfiles snapshot list \
    --resource-group myRG \
    --account-name my-netapp-account \
    --pool-name my-pool \
    --volume-name my-volume

# Restore from snapshot
az netappfiles volume revert \
    --resource-group myRG \
    --account-name my-netapp-account \
    --pool-name my-pool \
    --volume-name my-volume \
    --snapshot-id /subscriptions/.../snapshots/snapshot-001

Snapshot Policies

# Create snapshot policy
az netappfiles snapshot-policy create \
    --resource-group myRG \
    --account-name my-netapp-account \
    --name daily-snapshots \
    --location eastus \
    --daily-snapshots 7 \
    --daily-hour 23 \
    --daily-minute 0 \
    --enabled true

# Apply to volume
az netappfiles volume update \
    --resource-group myRG \
    --account-name my-netapp-account \
    --pool-name my-pool \
    --name my-volume \
    --snapshot-policy-id /subscriptions/.../snapshotPolicies/daily-snapshots

Cross-Region Replication

# Create destination volume with replication
az netappfiles volume create \
    --resource-group dr-rg \
    --account-name dr-netapp-account \
    --pool-name dr-pool \
    --name my-volume-dr \
    --location westus \
    --vnet dr-vnet \
    --subnet netapp-subnet \
    --protocol-types NFSv3 \
    --usage-threshold 1024 \
    --replication-schedule hourly \
    --remote-volume-resource-id /subscriptions/.../volumes/my-volume \
    --endpoint-type dst

Export Policy

# Configure client access
az netappfiles volume update \
    --resource-group myRG \
    --account-name my-netapp-account \
    --pool-name my-pool \
    --name my-volume \
    --export-policy-rules '[
        {
            "allowedClients": "10.0.1.0/24",
            "nfsv3": true,
            "nfsv41": false,
            "ruleIndex": 1,
            "unixReadOnly": false,
            "unixReadWrite": true
        }
    ]'

Azure NetApp Files: enterprise storage performance in the cloud.

Michael John Peña

Michael John Peña

Senior Data Engineer based in Sydney. Writing about data, cloud, and technology.