ArcGIS Enterprise built on Azure Premium Files

Overview

As of July 2019, Azure Premium Files are generally available. These file shares are backed by Solid State Drives – offering high performance and low latency for IO-intensive workloads. More here: https://docs.microsoft.com/en-us/azure/storage/files/storage-files-planning#file-share-performance-tiers

Initial real-world performance tests show slight read benefit to the Azure files, and a large write benefit to VM disks. Given that our file share is built on a single VM and so cannot be considered High Availability, Azure Files look to be an ideal option for our shared folder needs.

Manual integration

First, I manually created tcautomationcentral storage account in the tc-script-ArcGIS-rg resource group, following these steps: https://docs.microsoft.com/en-us/azure/storage/files/storage-how-to-create-premium-fileshare

Second, I created a fileshare ‘jsh-share’, and a directory structure matching what is found in our current \\egis-xyz-ds0\share approach.

Next, I manually added connection credentials the GIS and Portal machines using the CMDKEY command, using the credentials given by the ‘Connect’ tool of the file share.

Finally, I updated any reference in the DSC template that pointed to the file share on the datastore VM to reference tcautomationcentral instead.

Troubleshooting

  1. The DSC variable ConfigData->Portal->Installer->ContentDir must be a local path.

  2. The Azure Files share must be cleaned out before a DSC install takes place, as files from a previous failed install will effect subsequent runs.

Published performance expectations

According to Azure’s Planning for Azure files document, a 500GB azure file share should perform as follows:

Capacity (GiB)

Baseline IOPS

Burst IOPS

Egress (MiB/s)

Ingress (MiB/s)

Capacity (GiB)

Baseline IOPS

Burst IOPS

Egress (MiB/s)

Ingress (MiB/s)

100

100

Up to 300

66

44

500

500

Up to 1,500

90

60

And according to Introducing Premium Storage, a local VM disk should perform as follows:

Disk Types

P10

P20

P30

Disk Size

128 GB

512 GB

1024 GB

IOPS per Disk

500

2300

5000

Throughput per Disk

100 MB/sec

150 MB/sec

200 MB/sec

In our current HA configuration there is a separate Azure Premium Files share for each of POR and GIS roles, while the VM Disk is shared between all roles.

Results

Installation of ArcGIS Enterprise by modifying an existing DSC template worked once the paths were updated correctly.

Read and write speed of the share was testing using the following script:

$testFile = "\\egis-jsh-ds0\share\10MB.bin" # Get test data Invoke-WebRequest 'http://client.akamai.com/install/test-objects/10MB.bin' -OutFile $testFile #$Request=Get-Date; Invoke-WebRequest 'http://client.akamai.com/install/test-objects/10MB.bin' | Out-Null; $tempDir = "D:\speed-test-temp\" New-Item -Path $tempDir -ItemType Directory $Request=Get-Date; Copy-Item $testFile -Destination $tempDir [int]$speed = ((10 / ((NEW-TIMESPAN –Start $Request –End (Get-Date)).totalseconds)) * 8) "{0:N2}" -f $Speed Write-host "$($speed) Mbit/sec" Remove-Item $testFile -Force Remove-Item $tempDir -Recurse -Force

The script was modified to run against both our local network share on the DS0 machine, and the Azure Premium File share. The scripts were run from GIS0 and for a single run of this test the results were as follows:

Share

Read speed

Write speed

Share

Read speed

Write speed

DS0 file share

1011 Mbit/sec

1739 Mbit/sec

Azure Premium Files

1176 Mbit/sec

908 Mbit/sec

The results were surprising as the data disk on DS0 has a stated performance of 500 IOPS and 60MB/s. The Azure Premium File Share has a similar stated performance of 512 IOPS, 90 MiBytes/s egress and 60 MiBytes/s ingress. There are possible networking benefits to being in the same VNET (gis0 and DS0), or there may be caching involved.

Effects on uptime

A first look at uptime has been performed in

TM

Azure LB

WEB

POR

GIS

DS

Azure files

Overall Uptime

Overall downtime/month

TM

Azure LB

WEB

POR

GIS

DS

Azure files

Overall Uptime

Overall downtime/month

99.99%

99.99%

99.95%

99.95%

99.95%

99.95%

*99.9%

99.68%

138.2min

* Azure Premium Files are currently available as Hot tier, locally redundant storage only. https://azure.microsoft.com/en-in/support/legal/sla/storage/v1_5/. But, a separate document indicates that Azure files offers 99.999999999% yearly uptime for LRS: https://docs.microsoft.com/en-us/azure/storage/files/storage-files-planning#file-share-redundancy

Even so, using the worst case for this analysis.