Azure NetApp Files (ANF) is an enterprise-class, high performance, file storage service that supports any workload type and is by default, highly available. The service enables you to select various service and performance levels based on your use cases and needs. Key Use cases include:
- Databases – Applications that need to be performant require reliable, and high-performance storage. ANF can play a crucial role in ensuring that your Web-apps and e-commerce apps perform exactly as you need them to, and you have fine-grained control over the storage tiers you consume for your applications to meet your needs.
- Files Services – ANF provides cloud-based file share services through its highly available and scalable platform. It supports both SMB connections for Windows apps, and NFSv3/NFSv4.1 connections for Linux file environments.
- Analytics – use ANF to create data lakes in the cloud and synchronize with data sources wherever they may reside. Advanced solutions for machine learning and big data analytics can access data in ANF files through integration with Azure services.
- DevOps – Leverage the ANF snapshot copy functionality to create clones of existing data sets without affecting source data adversely. This facilitates the setup of dev/ test/ CI/CD environments as needed.
- Disaster Recovery – ANF Cross-Region replication enables the replication of ANF volumes in one region to ANF volumes in another region, and this capability can prove central to DR solutions for your most mission critical enterprise applications.
The ANF storage hierarchyis comprised of:
- NetApp Accounts – which serves as the administrative grouping of underlying capacity pools
- Capacity Pools – which is the measure of provisioned capacity to meet your storage needs. These are provisioned by fixed SKUs which you can purchase, and the minimum size at this time is 4TiB. You can scale this up as needed.
- Volumes – This is a scalable unit of logical capacity consumption, and you can carve these out of your capacity pool. You can select various protocol types.
You can read more about ANF and specific configurations in the Microsoft service documents.
You can easily deploy and configure ANF in the Azure Portal, but as with most things, I prefer to use automation wherever it’s available. Here’s a JSON script you can use to deploy ANF into your environment. This will deploy a ANF account, capacity pool. volumes and snapshot policy. This script is contained in a single file, and for simplicity, I have not included a separate parameters file.
Note that the resource group location value will locate your ANF account in same location as resource group used to deploy this template, so be mindful of that.
Furthermore, update these parameters with your preferred values, and create additional parameters as needed.
Note that this script creates a 4TiB capacity pool which is the minimum allowed. You can modify the capacity pool resource value if you’d prefer a larger pool size. This creates a single volume, but you will likely need more than 1 volume in your capacity pool.
{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "location": { "type": "string", "defaultValue":"[resourceGroup().location]", "metadata": { "description": "location value for all defined resources" } }, "anf_account_name": { "defaultValue": "Name of ANF Account", "type": "String" }, "anf_vnet": { "defaultValue": "Name of Virtual Network into which you will deploy ANF", "type": "String" }, "anf_subnet": { "defaultValue": "Name of subnet into which you will deploy ANF", "type": "String" }, "anf_cap_pool":{ "defaultValue": "Name of CapacityPool", "type": "string" }, "anf_snap_pol":{ "defaultValue": "Snapshot name", "type": "string" }, "anf_vol1":{ "defaultValue": "Volume Name", "type": "string" } }, "variables": {}, "resources": [ { "type": "Microsoft.NetApp/netAppAccounts", "apiVersion": "2020-06-01", "name": "[parameters('anf_account_name')]", "location": "[parameters('location')]", "properties": {} }, { "type": "Microsoft.NetApp/netAppAccounts/capacityPools", "apiVersion": "2020-06-01", "name": "[parameters('anf_cap_pool')]", "location": "[parameters('location')]", "dependsOn": [ "[resourceId('Microsoft.NetApp/netAppAccounts', parameters('anf_account_name'))]" ], "properties": { "serviceLevel": "Standard", "size":4398046511104 } }, { "type": "Microsoft.NetApp/netAppAccounts/snapshotPolicies", "apiVersion": "2020-06-01", "name": "[parameters('anf_snap_pol')]", "location": "[parameters('location')]", "dependsOn": [ "[resourceId('Microsoft.NetApp/netAppAccounts', parameters('anf_account_name'))]" ], "properties": { "enabled": true, "hourlySchedule": {}, "dailySchedule": {}, "weeklySchedule": {}, "monthlySchedule": {} } }, { "type": "Microsoft.NetApp/netAppAccounts/capacityPools/volumes", "apiVersion": "2020-06-01", "name": "[parameters('anf_vol1')]", "location": "[parameters('location')]", "dependsOn": [ "[resourceId('Microsoft.NetApp/netAppAccounts/capacityPools', parameters('anf_cap_pool'))]", "[resourceId('Microsoft.NetApp/netAppAccounts', parameters('anf_account_name'))]", "[resourceId('Microsoft.NetApp/netAppAccounts/snapshotPolicies', parameters('anf_snap_pol'))]" ], "properties": { "mountTargets": [ ], "dataProtection": { }, "serviceLevel": "Standard", "creationToken": "sapinstall", "usageThreshold": 214748364800, "exportPolicy": { "rules": [ { "ruleIndex": 1, "unixReadOnly": false, "unixReadWrite": true, "cifs": false, "nfsv3": false, "nfsv41": true, "allowedClients": "0.0.0.0/0", "kerberos5ReadOnly": false, "kerberos5ReadWrite": false, "kerberos5iReadOnly": false, "kerberos5iReadWrite": false, "kerberos5pReadOnly": false, "kerberos5pReadWrite": false } ] }, "protocolTypes": [ "NFSv4.1" ], "subnetId": "[concat(parameters('anf_vnet'),'/subnets/',parameters('anf_subnet'))]", "snapshotDirectoryVisible": true } } ] }
Latest posts by Chiyo Odika (see all)
- Replicate Proximity Placement Group workloads in Azure - January 13, 2021
- Azure NetApp Files (ANF) – Deploy with JSON - October 9, 2020
- Addressing Critical ZeroLogon Vulnerability CVE-2020-1472 - September 26, 2020