Setting up SAN boot for an 8-Node Windows Server Cluster

Worked in the lab this past weekend setting up a new Windows Server 2012 R2 failover cluster (WSFC) using 8 diskless servers. SAN booting provides the ultimate in flexibility for being able to switch configured operating systems for testing. It’s quick and simple to setup SAN boot with Pure Storage.

Pre-requisites: Installed/configured SAN fabric with fibre channel cards and Pure Storage FlashArray.


1.  Create bootable USB device with the operating system of your choosing. For this setup I am using Windows Server 2012 R2 Update. To create the bootable USB device I used Windows USB/DVD Download Tool.

2.  Create the Host Group and Hosts and Configure Fibre Channel WWNs. This can be completed using the Web Management GUI but being the PowerShell Guy, let’s see how this is done from script. The following PowerShell will create a new Host with the specified WWNs and then create a new Host Group and add the newly created Host(s).

Import-Module PureStoragePowerShell

$FAToken = Get-PfaApiToken -FlashArray MY-ARRAY -Username pureuser -Password *******
$FASession = Connect-PfaController -FlashArray MY-ARRAY -API_Token $FAToken.api_token

New-PfaHost -FlashArray MY-ARRAY -Name CSG-SP01-SVR01 `
    -WWNList '21:00:00:24:FF:59:FC:8C','21:00:00:24:FF:59:FC:8D' -Session $FASession

New-PfaHostGroup -FlashArray MY-ARRAY -Name CSG-SP01-SVRGRP01 -HostList CSG-SP01-SVR01 -Session $FASession

This above script shows just creating a single new Host. Although this can all be done using PowerShell you might find it easier to setup the individual Hosts using the Web Management GUI.

3.  Create one (1) boot LUN on the Pure Storage FlashArray and connect to the new Host, CSG-SP01-SVR01. For this example I created a 125GB volume called CSG-SP01-SVR01-MS-BOOT where I will install Windows Server 2012 R2.

New-PfaVolume -FlashArray MY-ARRAY -Name CSG-SP01-SVR01-MS-BOOT -Size 125G -Session $FASession

Connect-PfaVolume -FlashArray MY-ARRAY -Name CSG-SP01-SVR01 -Volume CSG-SP01-SVR01-MS-BOOT -Session $FASession

Now the Pure Storage FlashArray is ready to be used as a target from the diskless server for SAN booting.

The next few steps need to be performed from the server to setup the fibre channel cards. I am using QLogic QLE2562 cards in my environment. QLogic provides a quick video tutorial on how to configure their cards for SAN booting.

4.  When the server boots up watch closely for the QLogic prompt (ALT+Q) to enter the QLE Fast!UTIL configuration. Once the QLogic card has the BIOS enabled (see video tutorial) you can enter the configuration for the individual ports (QLE2562 Function 1). Here we see Scan Fibre Devices once that is selected and a scan completed the QLogic card will show all of the paths to the volume created in Step 2.

A great way to check connectivity is to perform the connection and then on the Pure Storage FlashArray disconnect the previously created volume, CSG-SP01-SVR01-MS-BOOT, from the Host and then perform a Scan Fibre Devices again. All of the paths should be gone, reconnect, rescan and the paths should be displayed.


5.  Next is to install Windows Server 2012 R2 on the attached SAN boot volume. In Step 1 a bootable USB device was created and we now need to plug that USB device into a port on the server and reboot. Upon rebooting I suggest entering into the servers boot menu to select the USB device.

6.  Once the server has rebooted and the USB device selected a normal Windows Server setup process will begin. When Windows Setup gets to “Where do you want to install Windows?” there will be multiple Offline paths shown to the 125.0 GB volume and a single Online path, select this path to install Windows Server.

7.  After Windows Server completes the setup process then we can configure the install. For the environment I was building I added Failover Cluster, Hyper-V, set IEsec and Remote Desktop features. I did not specify any networking details, system name, or domain.

Add-WindowsFeature -Name Failover-Clustering
Add-WindowsFeature -Name RSAT-Clustering-Mgmt
Add-WindowsFeature -Name RSAT-Clustering-PowerShell
Add-WindowsFeature -Name RSAT-Clustering-AutomationServer
Add-WindowsFeature -Name RSAT-Clustering-CmdInterface
Add-WindowsFeature -Name Hyper-V
Add-WindowsFeature -Name RSAT-Hyper-V-Tools
Add-WindowsFeature -Name Hypev-V-Tools
Add-WindowsFeature -Name Hyper-V-PowerShell

8.  Now that we have a base Windows Server 2012 R2 installed and partially configured the next step is to make this boot volume available to the other seven (7) servers. Shutdown the Windows Server 2012 R2 instance just installed.

9.  Once Windows Server is confirmed to be shutdown then we can take a snapshot of the volume, CSG-SP01-SVR01-MS-BOOT and create seven (7) new volumes from that snapshot and connect them to the corresponding Host. Notice the ForEach loops starts at 2 since there is already a CSG-SP01-SVR01-MS-BOOT volume created which we are using as the master to create the other volumes.

New-PfaSnapshot -FlashArray MY-ARRAY -Volumes CSG-SP01-SVR01-MS-BOOT -Suffix MASTER -Session $FASession
ForEach ($i in 2..8) 
    New-PfaVolume -FlashArray MY-ARRAY -Name CSG-SP01-SVR0$i -Source CSG-SP01-SVR01-MS-BOOT.MASTER -Session $FASession 
    Connect-PfaVolume -FlashArray MY-ARRAY -Name CSG-SP01-SVR0$i -Volume CSG-SP01-SVR0$i-MS-BOOT -Session $FASession

Once the above PowerShell has been run each of the CSG-SP01-SVR0n, where n = 1-8, will have the volumes attached and ready for use. Simply turn on or reboot the servers and everything should be up and running for further configuration.


Happy Booting,

Add Comment

Required fields are marked *. Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

This site uses Akismet to reduce spam. Learn how your comment data is processed.