Highly available NFS cluster in Ubuntu

Last updated: 9/29/2020

Deploys a highly availe 2-VM NFS cluster based on DRBD, Pacemaker and Corosync with Ubuntu.

This Azure Resource Manager template was created by a member of the community and not by Microsoft. Each Resource Manager template is licensed to you under a license agreement by its owner, not Microsoft. Microsoft is not responsible for Resource Manager templates provided and licensed by community members and does not screen for security, compatibility, or performance. Community Resource Manager templates are not supported under any Microsoft support program or service, and are made available AS IS without warranty of any kind.

Parameters

Parameter Name Description
_artifactsLocation The base URI where artifacts required by this template are located. When the template is deployed using the accompanying scripts, a private location in the subscription will be used and this value will be automatically generated.
_artifactsLocationSasToken The sasToken required to access _artifactsLocation. When the template is deployed using the accompanying scripts, a sasToken will be automatically generated.
location Azure location where this template is to be deployed
subnetId Azure resource ID of the subnet where this NFS-HA cluster is to be deployed
node0IPAddr IP address of node 0 (statically assigned). E.g., 10.0.0.11. Must belong to the IP range of the specified subnet
node1IPAddr IP address of node 1 (statically assigned). E.g., 10.0.0.22. Must belong to the IP range of the specified subnet
nfsClientsIPRange IP range of the allowed NFS clients. E.g., 10.0.0.0/24
lbFrontEndIpAddr IP address of the load balancer front-end (statically assigned). E.g., 10.0.0.100. Must belong to the IP range of the specified subnet
enableAccelNwSwitch Switch to enable Azure Accelerated Networking (Note: this feature is NOT available for D1-level VM SKU)
vmSku Azure VM SKU for the NFS HA VMs
adminUserName VM admin user name
sshPublicKey SSH public key for the admin user
osType OS type (offer/publisher/sku/version) info
osDiskStorageType Azure storage type for all VMs' OS disks. With htmlLocalCopySwith true, Premium_LRS (SSD) is strongly recommended, as PHP files will be served from OS disks.
dataDiskCountPerVM Number of data disks per VM. 2 or more disks will be configured as RAID0
dataDiskSizeInGB Size per disk in an NFS server
resourcesUniqueString Unique string of fixed length (e.g., 6) identifying related resources

Use the template

PowerShell

New-AzResourceGroup -Name <resource-group-name> -Location <resource-group-location> #use this command when you need to create a new resource group for your deployment
New-AzResourceGroupDeployment -ResourceGroupName <resource-group-name> -TemplateUri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/nfs-ha-cluster-ubuntu/azuredeploy.json
Install and configure Azure PowerShell

Command line

az group create --name <resource-group-name> --location <resource-group-location> #use this command when you need to create a new resource group for your deployment
az group deployment create --resource-group <my-resource-group> --template-uri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/nfs-ha-cluster-ubuntu/azuredeploy.json
Install and Configure the Azure Cross-Platform Command-Line Interface