Setting up a Windows failover cluster
Introduction
Setting up a Windows cluster requires at least three virtual machines and two networks.
These instructions assume KVM and libvirt are used. Windows version is Server 2019.
+-------------+ | SMB Client | +-------------+ | 192.168.150.201 | +---------------------------------------------------------------+ | Clients network | +---------------------------------------------------------------+ | | | 192.168.150.10 192.168.150.21 192.168.150.22 | | | +---------------+ +------------+ +------------+ | AD + iSCSI | | Node 1 | | Node 2 | | target server | +------------+ +------------+ +---------------+ | | | | 192.168.160.21 192.168.160.22 | | +---------------------------------------------------------------+ | Cluster network | +---------------------------------------------------------------+
VM name | Hostname | IP addresses | |
---|---|---|---|
win2k19-fover-ad | fover-ad | 192.168.150.10 | |
win2k19-fover-n1 | fover-n1 | 192.168.150.21 | 192.168.160.21 |
win2k19-fover-n2 | fover-ad | 192.168.150.22 | 192.168.160.22 |
Setup libvirt networks
The first step is to create the public and private networks in libvirt. Save the following fragment to a file named cluster-public.xml
:
<network> <name>cluster-public</name> <forward mode='nat'> <nat> <port start='1024' end='65535'/> </nat> </forward> <domain name='cluster-public'/> <dns> <forwarder domain='fover.net' addr='192.168.150.10'/> </dns> <ip address='192.168.150.1' netmask='255.255.255.0'> <dhcp> <range start='192.168.150.200' end='192.168.150.250'/> </dhcp> </ip> </network>
Save the following fragment to cluster-private.xml
:
<network> <name>cluster-private</name> <domain name='fover.net'/> <dns> <forwarder domain='fover.net' addr='192.168.160.10'/> </dns> <ip address='192.168.160.1' netmask='255.255.255.0'> <dhcp> <range start='192.168.160.200' end='192.168.160.250'/> </dhcp> </ip> </network>
Now define and start the networks:
# virsh net-define cluster-public.xml # virsh net-define cluster-private.xml # virsh net-start cluster-public # virsh net-start cluster-private
Setup AD virtual machine
After installing the operating system, set the host name and IP addresses. It is useful to rename the network adapters to know to which network are connected.
Public | Private | |
---|---|---|
IP Address | 192.168.150.10 | 192.168.160.10 |
Netmask | 255.255.255.0 | 255.255.255.0 |
Gateway | 192.168.150.1 | |
DNS 1 | 192.168.150.1 | |
DNS 2 |
Proceed to install the Active Directory Domain Services and iSCSI target server roles:
Once roles are installed, provision the Active Directory domain following the Wizard:
Setup cluster nodes
In both nodes:
- Install the operating system
- Set the hostname
- Set the IP addresses
- Join the computer to the domain
- Install the "File Server" role and the "Failover Clustering" feature.
fover-n1 | fover-n2 | |||
---|---|---|---|---|
Public | Private | Public | Private | |
IP Address | 192.168.150.21 | 192.168.160.21 | 192.168.150.22 | 192.168.160.22 |
Netmask | 255.255.255.0 | 255.255.255.0 | 255.255.255.0 | 255.255.255.0 |
Gateway | 192.168.150.1 | 192.168.150.1 | ||
DNS 1 | 192.168.150.10 | 192.168.150.10 | ||
DNS 2 |
Setup the iSCSI target server
In fover-ad:
- Open the Server Manager console and go to "File and Storage Services" -> "iSCSI"
- Click TASKS -> New iSCSI virtual disk
- Follow the "New iSCSI Virtual Disk Wizard"
- iSCSI Virtual Disk Location
- Select C
- iSCSCI Virtual Disk Name
- Name
- quorum
- Description
- quorum witness disk</il>
- iSCSI Virtual Disk Size
- 128 MB, Dynamically expanding
- iSCSI target
- Select New iSCSI target
- Target Name and Access
- Name
- fover
- Description
- Fover cluster iSCSI target server
- Access Server
- Click add
- Select Query initiator computer for ID
- Type the node 1 host name (fover-n1.fover.net)
- Click OK
- Click add
- Select Query initiator computer for ID
- Type the node 2 host name (fover-n2.fover.net)
- Click OK
- Enable authentication
- Do not enable
- Confirm
- iSCSI Virtual Disk Location
Setup the iSCSI initiators
In each node:
- Open the Server Manager
- Click Tools -> iSCSI initiator
- It will ask to start the service, click yes
- In the "Targets" tab, type "fover-ad.fover.net" and click Quick Connect
- In the "Volumes and Devices" tab, click Auto Configure
- Click OK
Initialize the quorum disk
In one of the nodes:
- Open the Server Manager
- Go to File and Storage Services -> Disks
- Right click the 128MB disk, select bring online
- Right click the 128MB disk, select Initialize
- Right click the 128MB disk, select New Volume
- Follow the "New Volume Wizard", do not assign a letter
Create the cluster
- Open the Server Manager
- Go to Tools -> Failover Cluster Manager
- In the right column, click Validate Configuration
- Follow the Validate Configuration Wizard
- Select Servers
- Type the name of the first node, fover-n1.fover.net and click add
- Type the name of the second node, fover-n2.fover.net and click add
- Testing options
- Select Run all tests
- Check the results
- Everything should succeed, you may get a warning if the nodes do not have the same updates installed
- Select the "Create the cluster now using the validated nodes" and click finish
- Select Servers
- Follow the "Create Cluster Wizard"
- Access point for administering the cluster
- Type a name for the cluster: "cluster"
- Type an address associated to the cluster name: "192.168.150.30"
- Confirmation page
- Select "Add all elegible storage to the cluster"
- Confirm
- Access point for administering the cluster
A new computer account "cluster" will be created in AD, and a new A record added to the DNS zone.
Check the Quorum is properly configured. You should see the 128MB disk assigned to "Disk Witness in Quorum"