<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Windows Server Archives - The SERO Group</title>
	<atom:link href="https://theserogroup.com/tag/windows-server/feed/" rel="self" type="application/rss+xml" />
	<link>https://theserogroup.com/tag/windows-server/</link>
	<description>SQL Servers Healthy, Secure, And Reliable</description>
	<lastBuildDate>Wed, 28 Apr 2021 17:16:05 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9</generator>

<image>
	<url>https://theserogroup.com/wp-content/uploads/2024/07/cropped-Canister-only-1-32x32.png</url>
	<title>Windows Server Archives - The SERO Group</title>
	<link>https://theserogroup.com/tag/windows-server/</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">121220030</site>	<item>
		<title>Azure shared disks &#8211; Failover Clustered Instance &#8211; SQL Server 2016</title>
		<link>https://theserogroup.com/azure/azure-shared-disks-failover-clustered-instance-sql-server-2016/</link>
		
		<dc:creator><![CDATA[Luke Campbell]]></dc:creator>
		<pubDate>Tue, 08 Sep 2020 15:24:23 +0000</pubDate>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[Consulting]]></category>
		<category><![CDATA[Shared Disks]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Windows Server]]></category>
		<guid isPermaLink="false">http://theserogroup.com/?p=3076</guid>

					<description><![CDATA[<p>In my last post, I wrote about a new option in Azure &#8211; shared disks. Have you ever needed to build a Failover Cluster Instance (FCI) in Azure? This post will provide a few steps to get you started. To follow along with the demo, you&#8217;ll need an Azure account (available for free here )&#8230; <br /> <a class="read-more" href="https://theserogroup.com/azure/azure-shared-disks-failover-clustered-instance-sql-server-2016/">Read more</a></p>
<p>The post <a href="https://theserogroup.com/azure/azure-shared-disks-failover-clustered-instance-sql-server-2016/">Azure shared disks &#8211; Failover Clustered Instance &#8211; SQL Server 2016</a> appeared first on <a href="https://theserogroup.com">The SERO Group</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>In my last <a data-type="URL" data-id="http://theserogroup.com/2020/09/01/azure-shared-disks-failover-clustered-instances/" rel="noreferrer noopener" href="http://theserogroup.com/2020/09/01/azure-shared-disks-failover-clustered-instances/" target="_blank">post</a>, I wrote about a new option in Azure &#8211; shared disks.  Have you ever needed to build a Failover Cluster Instance (FCI) in Azure?  This post will provide a few steps to get you started.  To follow along with the demo, you&#8217;ll need an Azure account (available for free <a data-type="URL" data-id="https://bit.ly/32T7ZW6" rel="noreferrer noopener" href="https://bit.ly/32T7ZW6" target="_blank">here</a> ) and some familiarity with the Azure CLI ( <a rel="noreferrer noopener" href="https://bit.ly/3jIPIld" target="_blank">https://bit.ly/3jIPIld</a> ).  I&#8217;m using the cli commands, for most of the setup for repeatability.  We&#8217;ll build a two node SQL Server 2016 failover clustered instance using premium shared disks.</p>



<h3 class="wp-block-heading">Requirements</h3>



<p>The following requirements are needed.  More information on how to setup a domain controller in Azure can be found <a rel="noreferrer noopener" href="https://bit.ly/3jMDmZo" data-type="URL" data-id="https://bit.ly/3jMDmZo" target="_blank">here</a>.</p>



<ol class="wp-block-list"><li>Visual Studio Code &#8211; Not a requirement, but provides intellisense for Azure CLI.  The following extensions were installed as well.<ol><li>Azure Account</li><li>Azure CLI Tools</li></ol></li><li>Azure account</li><li>Resource group</li><li>Virtual Network</li><li>Virtual machine as the domain controller</li><li>Storage account which can be used as the cloud witness for the FCI</li><li>Two Azure VMs running Windows Server 2019</li><li>Azure availability set</li><li>Proximity group</li></ol>



<p>We&#8217;ll assume the resource group, virtual network, domain controller, and storage account (to be used as the cloud witness), are already in place within a region which currently supports premium shared disks.  Check <a rel="noreferrer noopener" href="https://docs.microsoft.com/en-us/azure/virtual-machines/windows/disks-shared#regional-availability" data-type="URL" data-id="https://docs.microsoft.com/en-us/azure/virtual-machines/windows/disks-shared#regional-availability" target="_blank">here</a> for a list of regions which currently support premium shared disks.  You&#8217;ll also need to request access to try premium shared disks. (<a rel="noreferrer noopener" href="https://aka.ms/AzureSharedDiskGASignUp" target="_blank">https://aka.ms/AzureSharedDiskGASignUp</a>)</p>



<h3 class="wp-block-heading">Proximity placement group</h3>



<p>My demo virtual network and domain controller currently reside within the West Central US region.  Placing the clustered virtual machines within a proximity placement group achieves the lowest possible latency between the two.  This is a logical grouping to make sure Azure compute resources are located close to each other.  For more information, see <a rel="noreferrer noopener" href="https://bit.ly/3h7yKuT" data-type="URL" data-id="https://bit.ly/3h7yKuT" target="_blank">here</a>.</p>



<p>After logging into your account, using Azure CLI (<a rel="noreferrer noopener" href="https://bit.ly/3ib2I2F" target="_blank">https://bit.ly/3ib2I2F</a>) and setting your subscription using &#8220;az account set&#8221;, create the proximity group.</p>



<pre class="wp-block-code"><code>az ppg create --name SERO_FCI_PPG --location westcentralus --type standard --resource-group SERO_FCI_RG --tags "Purpose=FCI Demo"</code></pre>



<h3 class="wp-block-heading">Availability Set</h3>



<p>Next, we need to create an availability set.  An availability set is a logical group in Azure to ensure VM resources are isolated from each other and utilize separate physical servers, compute racks, storage units, and network switches.  By using an availability set and FCI, we can ensure one node will be online during typical maintenance, such as patching, and reduce impact of single points of failure.  However, an availability set does not provide data center redundancy.  For more information, see <a href="https://bit.ly/35gTi20" data-type="URL" data-id="https://bit.ly/35gTi20" target="_blank" rel="noreferrer noopener">here</a> and <a rel="noreferrer noopener" href="https://docs.microsoft.com/en-us/azure/virtual-machines/availability" data-type="URL" data-id="https://docs.microsoft.com/en-us/azure/virtual-machines/availability" target="_blank">here</a>.  The script below creates an availability set which uses 1 platform fault domain and 1 platform update domain.</p>



<pre class="wp-block-code"><code>az vm availability-set create --name SERO_FCI_AvailabilitySet --resource-group SERO_FCI_RG --location westcentralus --platform-fault-domain-count 1  --platform-update-domain-count 1 --tags "Purpose=FCI Demo" --ppg SERO_FCI_PPG
</code></pre>



<h3 class="wp-block-heading">Virtual Machines</h3>



<p>With the proximity group and availability set in place, we&#8217;re now ready to create our virtual machines.  I&#8217;m using the Standard_D2s_v3 VM size and a few variables to avoid repeating them for each vm creation script.  You could use a loop here as well.  Be sure to update the values to match your environment.</p>



<pre class="wp-block-code"><code>availabilityset="SERO_FCI_AvailabilitySet"
adminusername="yourAdminUserName"
resourcegroup="SERO_FCI_RG"
imagevar="Win2019Datacenter"
vnetname="SERO_FCI_WESTCENTRALUS_NETWORK"
subnetvar="Internal"
sizevar="Standard_D2s_v3"
tagvar="Purpose=FCI Demo"
proximitygroup="SERO_FCI_PPG"
az vm create --name SEROFC1 --admin-username $adminusername --resource-group $resourcegroup --image $imagevar --vnet-name $vnetname --nsg '' \
--subnet $subnetvar --size $sizevar --tags $tagvar --availability-set $availabilityset --public-ip-address '' --ppg $proximitygroup
az vm create --name SEROFC2 --admin-username $adminusername --resource-group $resourcegroup --image $imagevar --vnet-name $vnetname --nsg '' \
--subnet $subnetvar --size $sizevar --tags $tagvar --availability-set $availabilityset --public-ip-address '' --ppg $proximitygroup
</code></pre>



<h3 class="wp-block-heading">Add VMs to your domain</h3>



<p>At this stage, go ahead and add the virtual machines to the domain and apply the latest updates.  If your network restricts port access between machines on the same network, you may need to adjust your network security groups and the windows firewall.  For this demo, I&#8217;ve disabled the windows firewall (disclaimer: not best practice and should be avoided in a real world scenario).</p>



<h3 class="wp-block-heading">Create the premium shared disk</h3>



<p>Now the exciting part :).  Save the following json and modify to match your environment and the size of disk you wish to use.  I saved the file as ShardDiskConfig.json.</p>



<pre class="wp-block-code"><code>{ 
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "dataDiskName": {
      "type": "string",
      "defaultValue": "SEROFCI_SharedDisk"
    },
    "dataDiskSizeGB": {
      "type": "int",
      "defaultValue": 256
    },
    "maxShares": {
      "type": "int",
      "defaultValue": 2
    }
  },
  "resources": &#91;
    {
      "type": "Microsoft.Compute/disks",
      "name": "&#91;parameters('dataDiskName')]",
      "location": "&#91;resourceGroup().location]",
      "apiVersion": "2019-07-01",
      "sku": {
        "name": "Premium_LRS"
      },
      "properties": {
        "creationData": {
          "createOption": "Empty"
        },
        "diskSizeGB": "&#91;parameters('dataDiskSizeGB')]",
        "maxShares": "&#91;parameters('maxShares')]"
      }
    }
  ] 
}</code></pre>



<p>Next, create the shared disk using the &#8220;az deployment group create&#8221; command and the config saved within the json file.</p>



<pre class="wp-block-code"><code>az deployment group create --resource-group SERO_FCI_RG --template-file /Users/lukecampbell/OneDrive/Lab/SharedDiskConfig.json
</code></pre>



<h2 class="wp-block-heading">Attaching the shared disk</h2>



<p>Next, we&#8217;ll need to attach the newly created shared disk to both of the virtual machines.  Modify the values below to match your environment.</p>



<pre class="wp-block-code"><code>resourcegroup="SERO_FCI_RG"
location="westcentralus"
proximitygroup="SERO_FCI_PPG"
diskId=$(az disk show -g $resourcegroup -n SEROFCI_SharedDisk --query 'id' -o tsv)

az vm disk attach --resource-group $resourcegroup --vm-name SEROFC1 --name $diskId 
az vm disk attach --resource-group $resourcegroup --vm-name SEROFC2 --name $diskId 
</code></pre>



<h3 class="wp-block-heading">Format shared disk</h3>



<p>Now we&#8217;ll need to initialize the attached disk as a GPT partition and format using NTFS.  This can be done using the Azure CLI or Powershell commandlets.  I opted to remote into each VM and format using the disk management utility.  No need to assign a drive letter at this step.</p>



<h3 class="wp-block-heading">Create the failover cluster</h3>



<p>We&#8217;re ready to create the failover cluster.  If you&#8217;re familiar with creating clusters on premises, this is no different.  However, since we&#8217;re setting up a SQL Server 2016 FCI, we&#8217;ll need to create a Azure internal load balancer (ILB) to hold the IP address of the virtual network name in which the SQL Server instance listens on.  I won&#8217;t cover the cluster creation in detail here but the following is a summary of the steps required:</p>



<ol class="wp-block-list"><li>Install the failover cluster feature and management tools on both VMs.</li><li>Create the cluster</li><li>Add the shared disk to the cluster.  I&#8217;ve assigned drive letter F to this disk.</li></ol>



<p>One important note.  The cluster will be created using a Distributed Network Name by default.  SQL Server 2016 does not support DNN access points.  By using the powershell statement below, you can create the cluster and a virtual network name instead.</p>



<pre class="wp-block-code"><code>New-Cluster -Name &lt;FailoverCluster-Name&gt; -Node ("&lt;node1&gt;","&lt;node2&gt;") –StaticAddress &lt;n.n.n.n&gt; -NoStorage -ManagementPointNetworkType Singleton</code></pre>



<p>The new switch, ManagementPointNetworkType, allows you to specify either of the following values:</p>



<ul class="wp-block-list"><li><strong>Singleton</strong>: Use the traditional method of DHCP or static IP address.</li><li><strong>Distributed</strong>: Use a Distributed Network Name using node IP addresses.</li><li><strong>Automatic</strong>: Use detection. If running in Azure, use&nbsp;<em>Distributed</em>; if running on-premises, use&nbsp;<em>Singleton</em>&nbsp;(the default).</li></ul>



<h3 class="wp-block-heading">SQL Server 2016 install</h3>



<p>Install SQL Server 2016 using the failover cluster installation wizard on both VMs.  Assign an IP address for the virtual network name.  Again, these steps are the same as when creating a FCI on premises.  Below is a screenshot of the end result for my installation.</p>



<figure class="wp-block-image size-large is-style-default"><img fetchpriority="high" decoding="async" width="544" height="339" src="http://theserogroup.com/wp-content/uploads/2020/09/image.png" alt="" class="wp-image-3127" srcset="https://theserogroup.com/wp-content/uploads/2020/09/image.png 544w, https://theserogroup.com/wp-content/uploads/2020/09/image-300x187.png 300w" sizes="(max-width: 544px) 100vw, 544px" /></figure>



<h3 class="wp-block-heading">Load balancer </h3>



<p>At this point, you should have a fully functional FCI.  However, you won&#8217;t be able to connect remotely yet.  We need to configure an Azure Load Balancer to hold the IP address assigned to the virtual network name of the FCI.  The load balancer will route traffic to the primary node in the FCI.  These steps could be achieved using the Azure CLI if needed.  I opted to use the Azure portal following the steps provided <a rel="noreferrer noopener" href="https://bit.ly/3m3hQl2" data-type="URL" data-id="https://bit.ly/3m3hQl2" target="_blank">here</a> and create a basic ILB.</p>



<ol class="wp-block-list"><li>Frontend IP configuration (IP Address should match the IP address of the FCI virtual network name).  </li></ol>



<figure class="wp-block-image size-large"><img decoding="async" width="783" height="343" src="http://theserogroup.com/wp-content/uploads/2020/09/image-5.png" alt="" class="wp-image-3133" srcset="https://theserogroup.com/wp-content/uploads/2020/09/image-5.png 783w, https://theserogroup.com/wp-content/uploads/2020/09/image-5-300x131.png 300w, https://theserogroup.com/wp-content/uploads/2020/09/image-5-768x336.png 768w" sizes="(max-width: 783px) 100vw, 783px" /></figure>



<p>2. Backend pool &#8211; Contains the virtual machines hosting the FCI.</p>



<figure class="wp-block-image size-large"><img decoding="async" width="764" height="559" src="http://theserogroup.com/wp-content/uploads/2020/09/image-6.png" alt="" class="wp-image-3134" srcset="https://theserogroup.com/wp-content/uploads/2020/09/image-6.png 764w, https://theserogroup.com/wp-content/uploads/2020/09/image-6-300x220.png 300w" sizes="(max-width: 764px) 100vw, 764px" /></figure>



<p>3. Health probes</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="665" height="513" src="http://theserogroup.com/wp-content/uploads/2020/09/image-7.png" alt="" class="wp-image-3135" srcset="https://theserogroup.com/wp-content/uploads/2020/09/image-7.png 665w, https://theserogroup.com/wp-content/uploads/2020/09/image-7-300x231.png 300w" sizes="auto, (max-width: 665px) 100vw, 665px" /></figure>



<p>4. Load balancing rules</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="663" height="887" src="http://theserogroup.com/wp-content/uploads/2020/09/image-8.png" alt="" class="wp-image-3136" srcset="https://theserogroup.com/wp-content/uploads/2020/09/image-8.png 663w, https://theserogroup.com/wp-content/uploads/2020/09/image-8-224x300.png 224w" sizes="auto, (max-width: 663px) 100vw, 663px" /></figure>



<p>After the load balancer has been configured, be sure to modify and run the powershell script <a rel="noreferrer noopener" href="https://docs.microsoft.com/en-us/azure/azure-sql/virtual-machines/windows/hadr-vnn-azure-load-balancer-configure?tabs=fci#configure-cluster-probe" data-type="URL" data-id="https://docs.microsoft.com/en-us/azure/azure-sql/virtual-machines/windows/hadr-vnn-azure-load-balancer-configure?tabs=fci#configure-cluster-probe" target="_blank">here</a>.  The probe port must match the port provided when creating the health probes for the ILB.  In this example, we used port 59999.  If you have any issues with failovers, check all firewalls (both windows and the network security group rules in Azure).  The script below is what I used when creating the demo.  This only needs to be executed on one of the cluster nodes.  Once completed, take the FCI offline and online again for the settings to take effect.</p>



<pre class="wp-block-code"><code>$ClusterNetworkName = "Cluster Network 1"
$IPResourceName = "SQL IP Address 1 (SQLSERVERFC1)" 
$ILBIP = "10.3.1.10" 
&#91;int]$ProbePort = 59999

Import-Module FailoverClusters

Get-ClusterResource $IPResourceName | Set-ClusterParameter -Multiple @{"Address"="$ILBIP";"ProbePort"=$ProbePort;"SubnetMask"="255.255.255.255";"Network"="$ClusterNetworkName"
;"EnableDhcp"=0}
</code></pre>



<h3 class="wp-block-heading">Connecting to the FCI</h3>



<p>I verified connectivity to the FCI by installing SQL Server Management Studio on a third VM.</p>



<figure class="wp-block-image size-large is-style-default"><img loading="lazy" decoding="async" width="360" height="210" src="http://theserogroup.com/wp-content/uploads/2020/09/image-9.png" alt="" class="wp-image-3137" srcset="https://theserogroup.com/wp-content/uploads/2020/09/image-9.png 360w, https://theserogroup.com/wp-content/uploads/2020/09/image-9-300x175.png 300w" sizes="auto, (max-width: 360px) 100vw, 360px" /></figure>



<p>Failover to test connectivity.</p>



<h3 class="wp-block-heading">Conclusion</h3>



<p>I&#8217;m excited to see shared disks as an available option in Azure.  We&#8217;ll build on this series next week by creating a SQL Server 2019 FCI and utilize the new distributed network name feature vs the load balancer.  Let us know your thoughts regarding this option for high availability and if it&#8217;s something you may be interested in leveraging in the future.  </p>



<p>Thanks for reading!</p>
<p>The post <a href="https://theserogroup.com/azure/azure-shared-disks-failover-clustered-instance-sql-server-2016/">Azure shared disks &#8211; Failover Clustered Instance &#8211; SQL Server 2016</a> appeared first on <a href="https://theserogroup.com">The SERO Group</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3076</post-id>	</item>
		<item>
		<title>Azure shared disks &#8211; Failover Clustered Instances</title>
		<link>https://theserogroup.com/sql-server/azure-shared-disks-failover-clustered-instances/</link>
					<comments>https://theserogroup.com/sql-server/azure-shared-disks-failover-clustered-instances/#comments</comments>
		
		<dc:creator><![CDATA[Luke Campbell]]></dc:creator>
		<pubDate>Tue, 01 Sep 2020 13:00:00 +0000</pubDate>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[Consulting]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Cluster Shared disks]]></category>
		<category><![CDATA[Windows Server]]></category>
		<guid isPermaLink="false">http://theserogroup.com/?p=3034</guid>

					<description><![CDATA[<p>Azure offers a large array of options when it comes to high availability and disaster recovery. Failover clustered instances (FCIs) is a well known option, for SQL Server, that&#8217;s been available for years on premises. However, FCIs traditionally required shared storage. New versions of the Windows OS and SQL Server now support other options such&#8230; <br /> <a class="read-more" href="https://theserogroup.com/sql-server/azure-shared-disks-failover-clustered-instances/">Read more</a></p>
<p>The post <a href="https://theserogroup.com/sql-server/azure-shared-disks-failover-clustered-instances/">Azure shared disks &#8211; Failover Clustered Instances</a> appeared first on <a href="https://theserogroup.com">The SERO Group</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Azure offers a large array of options when it comes to high availability and disaster recovery.  Failover clustered instances (FCIs) is a well known option, for SQL Server, that&#8217;s been available for years on premises.  However, FCIs traditionally required shared storage.  New versions of the Windows OS and SQL Server now support other options such as file shares and storage spaces direct.  Each of these options have their pros and cons.  As of July 27th, 2020 Azure Shared Disks are generally available.  We&#8217;ll focus on this option for both SQL Server 2016 and SQL Server 2019 over the next couple blog posts.</p>



<h3 class="wp-block-heading"> Why should I care about shared disks?</h3>



<p>Azure shared disk enable the ability to utilize FCIs and reduce storage consumption.  Previously, if you created an FCI instance and didn&#8217;t want to use a file share, storage spaces direct was required and doubled the amount of space needed.  Another option was to set up Availability Groups.  Again, doubling the space and possibly requiring Enterprise editions of SQL Server (prior to basic availability groups being introduced).  If you&#8217;re needing to migrate to Azure, and utilize IaaS vs PaaS and retain high availability, this is a great addition to the array of available options.  Plus, unless you specifically need Enterprise edition features, you may be able to keep Standard edition further reducing costs.  </p>



<h3 class="wp-block-heading">What type of disks do I need to use?</h3>



<p>Shared disks are currently available on two disk types; ultra and premium.  Each type has there own list of limitations.  Rather than listing those here, and the information becoming out of date, review the following links for the most up to date information;</p>



<ol class="wp-block-list"><li><a rel="noreferrer noopener" href="https://bit.ly/2EvteoV" data-type="URL" data-id="https://bit.ly/2EvteoV" target="_blank">Using Azure Ultra Disks</a></li><li><a href="https://bit.ly/2Evv3SP" data-type="URL" data-id="https://bit.ly/2Evv3SP" target="_blank" rel="noreferrer noopener">Premium SSDs</a></li></ol>



<h3 class="wp-block-heading">Which regions are shared disks currently available in?</h3>



<p>Shared ultra disks are available within all regions which currently support ultra disks.  See <a rel="noreferrer noopener" href="https://bit.ly/2EvteoV" data-type="URL" data-id="https://bit.ly/2EvteoV" target="_blank">here</a> for the latest list of regions.  Premium shared disks are available in the regions listed <a rel="noreferrer noopener" href="https://docs.microsoft.com/en-us/azure/virtual-machines/linux/disks-shared#regional-availability" data-type="URL" data-id="https://docs.microsoft.com/en-us/azure/virtual-machines/linux/disks-shared#regional-availability" target="_blank">here</a>.  If you&#8217;re using premium shared disks, you&#8217;ll need to request access using the form located at <a href="https://microsoft.qualtrics.com/jfe/form/SV_cMCj3LBlv47M6xL">https://microsoft.qualtrics.com/jfe/form/SV_cMCj3LBlv47M6xL</a>. </p>



<h3 class="wp-block-heading">How do I get started?</h3>



<p>This is an exciting option for those looking to migrate on-premises failover clustered instances to Azure with little modification.  To get started, review Microsoft&#8217;s latest <a rel="noreferrer noopener" href="https://bit.ly/3jpjHyr" target="_blank">announcement</a>, and the links provided above, to determine if this is the right option.  We&#8217;ll be creating additional posts over the next few weeks detailing how to setup two node clusters using Windows Server 2019, SQL Server 2016, and SQL Server 2019.  There are some major differences when using SQL Server 2016 and SQL Server 2019 which will be explained throughout the posts.  SQL Server 2016 FCIs requires the use of an Azure load balancer and we&#8217;ll provide examples of a complete setup.  SQL Server 2019 CU2 introduces a new feature, distributed network name, which further simplifies setup.  You can read more on this feature <a rel="noreferrer noopener" href="https://docs.microsoft.com/en-us/azure/azure-sql/virtual-machines/windows/hadr-distributed-network-name-dnn-configure" data-type="URL" data-id="https://docs.microsoft.com/en-us/azure/azure-sql/virtual-machines/windows/hadr-distributed-network-name-dnn-configure" target="_blank">here</a>.  </p>



<h3 class="wp-block-heading">How can we help?</h3>



<p>We&#8217;d be more than happy to discuss your move to Azure FCIs or any upcoming migration projects.  Contact us <a rel="noreferrer noopener" href="http://theserogroup.com/#contact" target="_blank">here</a> to schedule a call.   </p>



<p>Be sure to check back soon!  Better yet, go ahead and subscribe to get notified when new posts are available 😄.</p>



<p></p>



<p>Thanks!</p>
<p>The post <a href="https://theserogroup.com/sql-server/azure-shared-disks-failover-clustered-instances/">Azure shared disks &#8211; Failover Clustered Instances</a> appeared first on <a href="https://theserogroup.com">The SERO Group</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://theserogroup.com/sql-server/azure-shared-disks-failover-clustered-instances/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3034</post-id>	</item>
		<item>
		<title>How to Create SQL Server 2019 Failover Clustered Instances in Azure</title>
		<link>https://theserogroup.com/sql-server/how-to-create-sql-server-2019-failover-clustered-instances-in-azure/</link>
					<comments>https://theserogroup.com/sql-server/how-to-create-sql-server-2019-failover-clustered-instances-in-azure/#comments</comments>
		
		<dc:creator><![CDATA[Luke Campbell]]></dc:creator>
		<pubDate>Sun, 30 Aug 2020 17:33:55 +0000</pubDate>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[Consulting]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Cluster Shared disks]]></category>
		<category><![CDATA[Windows Server]]></category>
		<guid isPermaLink="false">http://theserogroup.com/?p=3080</guid>

					<description><![CDATA[<p>Most of what you see in this post is similar to our prior post in the series &#8211; Azure shared disks – Failover Clustered Instance – SQL Server 2016. The key difference when setting up Failover Clustered Instances with SQL Server 2019 in Azure is we&#8217;re not going to utilize an Azure Load Balancer to&#8230; <br /> <a class="read-more" href="https://theserogroup.com/sql-server/how-to-create-sql-server-2019-failover-clustered-instances-in-azure/">Read more</a></p>
<p>The post <a href="https://theserogroup.com/sql-server/how-to-create-sql-server-2019-failover-clustered-instances-in-azure/">How to Create SQL Server 2019 Failover Clustered Instances in Azure</a> appeared first on <a href="https://theserogroup.com">The SERO Group</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Most of what you see in this post is similar to our prior post in the series &#8211; <a rel="noreferrer noopener" href="https://bit.ly/2ZskI1d" target="_blank">Azure shared disks – Failover Clustered Instance – SQL Server 2016</a>.  The key difference when setting up Failover Clustered Instances with SQL Server 2019 in Azure is we&#8217;re not going to utilize an Azure Load Balancer to provide access to the failover clustered instance.  We&#8217;re going to focus on the Distributed Network Name access point. </p>



<h3 class="wp-block-heading">Distributed Network Name access point</h3>



<p>In SQL Server 2019 CU2 (or later) failover clustered instances, the listener was enhanced to work with the Windows Server Failover Cluster DNN access points.  Prior to supporting DNN access points, a virtual IP access point was used but wasn&#8217;t supported in Azure without creating a load balancer.  DNN access points reduce the complexity of FCIs in Azure by allowing the SQL client to connect without the need for a load balancer.  </p>



<h3 class="wp-block-heading">Create the cluster and failover clustered instance</h3>



<p>Creating the cluster, using Azure Shared Disks, was covered in our previous post <a href="http://theserogroup.com/2020/09/08/azure-shared-disks-failover-clustered-instance-sql-server-2016/" target="_blank" rel="noreferrer noopener">here</a>.  The difference is that we&#8217;re installing a SQL Server 2019 FCI and then applying CU 7 to ensure distributed network names are supported.  Go ahead and create your Windows failover cluster and then create the SQL Server 2019 FCI.  You won&#8217;t be able to connect to the FCI instance just yet because we&#8217;re not setting up an Azure load balancer.  Failover the clustered role to all nodes within the cluster just to ensure there&#8217;s no issues.</p>



<h3 class="wp-block-heading">Create the DNN</h3>



<p>After the FCI has been created, we&#8217;ll need to rename the virtual network name resource.  However, this isn&#8217;t required if you&#8217;re planning to use a different name for the DNN and access the instance using a different DNS name than you specified when setting up the FCI.  I renamed mine to SEROSQLFC_VNN (shown below).  To rename, right click on the Server Name resource in Failover Cluster Manager, and choose properties.  I appended the existing name with &#8220;_VNN&#8221;.  Don&#8217;t delete this resource as it is a required component of the FCI infastructure.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="403" height="488" src="http://theserogroup.com/wp-content/uploads/2020/09/image-10.png" alt="" class="wp-image-3200" srcset="https://theserogroup.com/wp-content/uploads/2020/09/image-10.png 403w, https://theserogroup.com/wp-content/uploads/2020/09/image-10-248x300.png 248w" sizes="auto, (max-width: 403px) 100vw, 403px" /></figure>



<p>Next, create the DNN.  I&#8217;ll be using SEROSQLFC to access the instance and used the powershell script below to create it.  </p>



<pre class="wp-block-code"><code>Add-ClusterResource -Name SEROSQLFC_DNN -ResourceType "Distributed Network Name" -Group "SQL Server (MSSQLSERVER)"

Get-ClusterResource -Name SEROSQLFC_DNN | Set-ClusterParameter -Name DnsName -Value SEROSQLFC</code></pre>



<p>Once created, you should see a new resource within the cluster role.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="817" height="704" src="http://theserogroup.com/wp-content/uploads/2020/09/image-11.png" alt="" class="wp-image-3201" srcset="https://theserogroup.com/wp-content/uploads/2020/09/image-11.png 817w, https://theserogroup.com/wp-content/uploads/2020/09/image-11-300x259.png 300w, https://theserogroup.com/wp-content/uploads/2020/09/image-11-768x662.png 768w" sizes="auto, (max-width: 817px) 100vw, 817px" /></figure>



<p>Bring the DNN online.  The instance must be restarted before accessing.  I typically failover to the other node, attempt to access the instance from a remote server using SSMS, and then failback to ensure the instance can be accessed when hosted on either node. </p>



<h3 class="wp-block-heading">IP conflicts and how to avoid them</h3>



<p>When using a distributed network name access point there&#8217;s no longer a load balancer reserving virtual IP address in Azure and there&#8217;s a risk that another resource on the virtual network will be assigned the same IP address as the virtual IP address used by the FCI.  This can lead to an IP conflict.  The powershell script below was used to create an APIPA address to avoid this issue.  Another option is to create a dedicated network adapter in Azure and reserve the IP address used by the virtual IP address resource.  Both of these options can be seen <a href="https://docs.microsoft.com/en-us/azure/azure-sql/virtual-machines/windows/hadr-distributed-network-name-dnn-configure#apipa-address" target="_blank" rel="noreferrer noopener">here</a>.  </p>



<p>Retrieve the virtual IP resource name by opening Failover Cluster Manager and right clicking on the IP address resource (example below).  Choose properties and note the resource name.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="755" height="692" src="http://theserogroup.com/wp-content/uploads/2020/09/image-12.png" alt="" class="wp-image-3202" srcset="https://theserogroup.com/wp-content/uploads/2020/09/image-12.png 755w, https://theserogroup.com/wp-content/uploads/2020/09/image-12-300x275.png 300w" sizes="auto, (max-width: 755px) 100vw, 755px" /></figure>



<pre class="wp-block-code"><code>Get-ClusterResource "SQL IP Address 1 (SEROSQLFC)" | Set-ClusterParameter –Multiple @{"Address”=”169.254.1.1”;”SubnetMask”=”255.255.0.0”;"OverrideAddressMatch"=1;”EnableDhcp”=0}</code></pre>



<p>Take the IP Address resource offline and back online for the changes to take effect.  This will also take SQL Server offline so these resources will need to be restarted as well.</p>



<h3 class="wp-block-heading">Additional resources for Creating Failover Clustered Instances</h3>



<p>Distributed network names and shared disks simplify the usage of FCIs in Azure.  However, there a few issues to watch out for.  This post is not meant to provide an in depth review but a quick overview of what is possible using these new features available in Azure, Windows OS (since 2016), and SQL Server 2019 (cu2 or later).  The resources below provide additional detail on the use of DNNs.</p>



<p><a href="https://docs.microsoft.com/en-us/azure/azure-sql/virtual-machines/windows/failover-cluster-instance-dnn-interoperability" target="_blank" rel="noreferrer noopener">FCI DNN &amp; SQL Server features</a></p>



<p><a href="https://docs.microsoft.com/en-us/sql/sql-server/failover-clusters/install/rename-a-sql-server-failover-cluster-instance?view=sql-server-ver15" target="_blank" rel="noreferrer noopener">Rename a SQL Server Failover Cluster Instance</a></p>



<p><a href="https://docs.microsoft.com/en-us/azure/azure-sql/virtual-machines/windows/hadr-distributed-network-name-dnn-configure#apipa-address" target="_blank" rel="noreferrer noopener">Create DNN for FCI</a></p>



<p></p>



<h3 class="wp-block-heading">Conclusion</h3>



<p>Let us know your thoughts regarding this option for high availability and if it’s something you may be interested in leveraging in the future.</p>



<p>Thanks for reading!</p>
<p>The post <a href="https://theserogroup.com/sql-server/how-to-create-sql-server-2019-failover-clustered-instances-in-azure/">How to Create SQL Server 2019 Failover Clustered Instances in Azure</a> appeared first on <a href="https://theserogroup.com">The SERO Group</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://theserogroup.com/sql-server/how-to-create-sql-server-2019-failover-clustered-instances-in-azure/feed/</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3080</post-id>	</item>
	</channel>
</rss>
