Microsoft is offering more predictable billing costs on its Azure public cloud service for disk-based file storage similar to the provisioning style of its SSD file storage as an alternative to its pay-as-you-go system.
Azure has two file storage tiers: Premium, using fast SSD storage; and Standard – using hard disk drives (HDDs). Premium is billed with a Provisioned v1 model based on the capacity when a fileshare is created. A user selects the required capacity and Azure allocates IOPS and throughput (bandwidth) based on it. To get more IOPS and/or throughput, you must provision more capacity.
A pay-as-you-go model was the standard way to bill HDD-based file storage on capacity used, throughput, and data transfer cost. It has three access tiers: transaction-optimized for transaction-heavy workloads, hot access for balanced capacity and transaction needs, and cool access for capacity-centric workloads. Azure monitored this scheme at the storage account level, not the fileshare level, making fileshare costs difficult to ascertain.

This model provides a high degree of unpredictability in the actual costs incurred. Azure blogger Vybava Ramadoss, Azure Storage Principal Product Lead, says: “Usage-based pricing can be incredibly challenging to understand and use because it’s very difficult or impossible to accurately predict the usage on a file share.”
Microsoft has now made a Provisioned v2 pricing model available for the Standard (HDD-based) file storage tier. Unlike the Provisioned v1 model, users can provision capacity, IOPS, and throughput separately for a fileshare. Azure will, however, “recommend IOPS and throughput provisioning to you based on the amount of provisioned storage you select.”
Provisioned v2 fileshares can span 32 GiB to 256 TiB in size, with up to 50,000 IOPS and 5 GiB/sec throughput, and users can dynamically scale up or down their application’s performance as needed, without downtime.
Azure has increased Provisioned v2 file share characteristics compared to the pay-as-you-go scheme:

Azure monitors fileshare usage with this pricing model under five metrics:
- Transactions by Max IOPS, which provides the maximum IOPS used over the indicated time granularity.
- Bandwidth by Max MiB/sec, which provides the maximum throughput in MiB/sec used over the indicated time granularity.
- File Share Provisioned IOPS, which tracks the provisioned IOPS of the share on an hourly basis.
- File Share Provisioned Bandwidth MiB/s, which tracks the provisioned throughput of the share on an hourly basis.
- Burst Credits for IOPS, which helps you track your IOPS usage against bursting.
The Provisioned v2 pricing model is now available in 24 Azure regions in North and South America, Europe, and the Asia-Pacific area.
In comparison, Azure NetApp Files has Standard, Premium, and Ultra storage tiers that are based on 1 TiB increments. These are priced differently for single encryption, double encryption, and cool tier access, and are basically much more expensive on a capacity basis.
Azure Native Qumulo instances come in hot or cold tiers with prices starting at $3,700/month for hot and $2,500/month for cold tiers. Usage-based pricing is applied using capacity, throughput, and IOPS metrics. A table compares basic capacity/month prices, normalized to per-GiB numbers, for Azure Files, NetApp, and Qumulo file services in Azure:

This table only provides basic capacity prices. A full pricing comparison for the various file storage services will need to take into account throughput and IOPS charges plus whatever ancillary charges might apply, such as snapshot costs.
In contrast, Dell APEX File Storage for Azure is priced on annual licensed capacity in TB: $642.81 for 12 months and $1,578.8 for 36 months. Dell says the cost of running the product is a combination of a software plan charge plus Azure infrastructure costs for the virtual machines on which the Dell APEX File Storage for Azure software runs.
Currently, there is only one software plan, the Cluster Deployment Plan, and it is free. There are no details available on pricing by VM instance.