With this new capability added to Azure, you can now deploy/migrate your clustered workloads on Azure virtual machines.
This is quite handy as with the end of support of Windows Server and SQL Server 2008, you can benefit up to 3 years support if these workloads run on Azure (and there is still quite a few still alive).
This Azure Shared Disks feature has been designed to support SQL Server Failover Cluster, Scale Out File Servers, Remote Desktop Server and SAP ASCS/SCS.
As this feature is currently in preview, you need to register first to https://aka.ms/AzureSharedDiskPreviewSignUp
It is going to work the same way than a cluster deployed on-premises
IMPORTANT NOTE at this stage, support for Azure Backup and Azure Site Recovery is not available but this is off course in the roadmap.
This feature is currently only available from West Central US region and only when using premium SSD (which quite make sense from a performance perspective).
Once you have register for the preview and have been approved, you can deploy shared disks by using PowerShell only (support for doing the same from the portal is underway)
$resourceGroup = <your resource group>
$location = “WestCentralUS” – as currently only available in West Central US
$ppgName = <proximity placement group> – if you don’t know/need a refresh you can read the documentation here
$ppg = New-AzProximityPlacementGroup -Location $location -Name $ppgName -ResourceGroupName $resourceGroup -ProximityPlacementGroupType Standard
$vm = New-AzVm -ResourceGroupName $resourceGroup –Name <the virtual machine going to use the shared disk> -Location $location –VirtualNetworkName <your vNet> –SubnetName <your subnet> –SecurityGroupName <your NSG> –PublicIpAddressName <your Public IP> -ProximityPlacementGroup $ppg.Id
$dataDisk = Get-AzDisk -ResourceGroupName $resourceGroup –DiskName <the shared drive to be attached>
$vm = Add-AzVMDataDisk -VM $vm -Name <the shared drive to be attached> -CreateOption Attach -ManagedDiskId $dataDisk.Id -Lun 0
update-AzVm -VM $vm -ResourceGroupName $resourceGroup