dsccommunity / FailoverClusterDsc

This module contains DSC resources for deployment and configuration of Windows Server Failover Cluster.
MIT License
60 stars 54 forks source link

Support for WS2019 Distributed Network Name CNO Feature #207

Open pjvander opened 5 years ago

pjvander commented 5 years ago

Hi,

I am planning on using DSC for MSSQL VM config in Azure, and am wondering if the new "Distributed Network Name" feature available in Windows Server 2019 is accessible via xFailoverCluster.

Ref: https://techcommunity.microsoft.com/t5/Failover-Clustering/Windows-Server-2016-2019-Cluster-Resource-Resource-Types/ba-p/372163

https://blogs.windows.com/windowsexperience/2018/08/14/announcing-windows-server-2019-insider-preview-build-17733/#5H4XED7gKCoCgttc.97

My investigation found out this is the default design in this recent Windows Server 2019 Build 17733 and up. So what you are experiencing is not related to DHCP setting on the network card but a new feature called "Distributed Network Name" Distributed Network Name (clusres.dll): A Distributed Network Name is a name in the Cluster that does not use a clustered IP Address. It is a name that is published in DNS using the IP Addresses of all the nodes in the Cluster. Client connectivity to this type name is reliant on DNS round robin. In Azure, this type name can be used in lieu of having the need for an Internal Load Balancer (ILB) address.

The goal being something equivalent to something like (in PS), particularly the parameter "-ManagementPointNetworkType Distributed": New-Cluster –Name ${clusterName} -Force –Node ${server1}, ${server2} -AdministrativeAccessPoint ActiveDirectoryAndDns -ManagementPointNetworkType Distributed -NoStorage

johlju commented 5 years ago

That is not supported yet, but I be happy to review a PR that adds this. 🙂

pjvander commented 5 years ago

Thanks, @johlju. I may just do that; stay tuned! 😃

pjvander commented 5 years ago

Just a quick update, @johlju; I believe Distributed Network Name is being set properly when omitting the static IP address from xCluster config, as below:

            xCluster CreateCluster
            {
                Name                          = $Node.ClusterName
                # StaticIPAddress               = $Node.ClusterIPAddress
                # This user must have the permission to create the CNO (Cluster Name Object) in Active Directory, unless it is prestaged.
                DomainAdministratorCredential = $SqlAdministratorCredential
                DependsOn                     = '[WindowsFeature]AddRemoteServerAdministrationToolsClusteringCmdInterfaceFeature'
            }

I'm continuing to test, but I believe this "just works" with WS 2019 VM's and Azure Automation w/DSC.