Skip to main content
Version: 2604 (Preview)

Task 12: Install FC HBA Drivers (Conditional)

Runbook Phase 03 Platform

DOCUMENT CATEGORY: Runbook SCOPE: FC HBA driver installation PURPOSE: Install and verify FC HBA drivers so nodes present WWPNs to the FC fabric MASTER REFERENCE: Microsoft Learn — Prepare hardware for Azure Local SAN deployment

Status: Active

Skip this task if deploying Storage Spaces Direct (S2D)

This task applies only to disaggregated SAN deployments. If you are deploying with Storage Spaces Direct (hyperconverged), skip to Task 15: Complete Combined Script.

Overview

Azure Local disaggregated deployments require Fibre Channel Host Bus Adapters (HBAs) in each node. Before zoning can be configured in the FC fabric, the HBA drivers must be installed and WWPNs collected. This task installs vendor-provided drivers and records each node's WWPN for FC fabric zoning.


When to Run

ScenarioRun?
SAN disaggregated deployment✅ Yes — all nodes
Storage Spaces Direct (S2D) deployment❌ Skip
HBA drivers already installed from OEM image✅ Yes — verify and collect WWPNs

Prerequisites

RequirementDetails
Tasks 01–11 completeNodes named, storage cleaned
HBA hardware installedFC HBAs seated in PCIe slots on all nodes
HBA vendor driver packageDownload from your HBA vendor (Emulex, QLogic, Broadcom, Marvell, etc.)
FC fabric accessFabric admin ready to configure zoning after WWPN collection

Variables from variables.yml

PathTypeDescription
cluster_nodes[].management_ipstringPSRemoting target IP (orchestrated mode)
cluster_nodes[].hostnamestringNode display name for logging
cluster_nodes[].fc_hba[].wwpnstringRecord here after collection — used for FC zoning

Execution Options

Run on each node individually via console, RDP, or PSRemoting.

Toolkit script: scripts/deploy/04-cluster-deployment/phase-03-os-configuration/task-12-install-fc-hba-drivers-conditional/powershell/Install-FcHbaDrivers-Direct.ps1

# Task 12 - Install FC HBA Drivers (run on each node)
# Consult your HBA vendor documentation for the correct .inf driver path

# Stage 1: Install driver via PnP
# Replace <path-to-driver.inf> with the vendor-provided INF file path
PNPUTIL /add-driver "<path-to-driver.inf>" /install

# Stage 2: Confirm HBA ports are detected
Get-InitiatorPort | Select-Object NodeAddress, PortAddress, ConnectionType |
Where-Object { $_.ConnectionType -eq 'Fibre Channel' } |
Format-Table -AutoSize

# Stage 3: Record WWPNs for each node (save to variables.yml)
# PortAddress field contains the WWPN in XX:XX:XX:XX:XX:XX:XX:XX format
Get-InitiatorPort | Where-Object { $_.ConnectionType -eq 'Fibre Channel' } |
Select-Object @{N='Node';E={$env:COMPUTERNAME}}, NodeAddress, PortAddress |
Export-Csv -Path "C:\Temp\wwpn-$env:COMPUTERNAME.csv" -NoTypeInformation

Validation

# Confirm HBA ports are online and WWPNs visible
$ServerList = @("<node1-ip>", "<node2-ip>")
Invoke-Command -ComputerName $ServerList -ScriptBlock {
Get-InitiatorPort | Where-Object { $_.ConnectionType -eq 'Fibre Channel' } |
Select-Object @{N='Node';E={$env:COMPUTERNAME}}, PortAddress, ConnectionType, OperationalStatus
} | Sort-Object Node | Format-Table -AutoSize

Expected: Each node shows 1–4 FC initiator ports depending on HBA count. OperationalStatus should be Online once fabric-connected.


WWPN Collection Worksheet

NodeHBA PortWWPNFabric (A/B)
NODE01Port 0___________________________A
NODE01Port 1___________________________B
NODE02Port 0___________________________A
NODE02Port 1___________________________B
Provide WWPNs to FC Fabric Admin

Once WWPNs are collected, provide them to the FC fabric administrator for zoning configuration. Zoning must be completed after Arc registration (Phase 04) — the storage array's port WWPNs are needed to complete the zone configuration.


Rolling Reboot (if required)

Driver installation may require a node restart. In a cluster, reboot one node at a time to maintain availability:

# Drain and reboot one node at a time
Suspend-ClusterNode -Name "<NodeName>" -Drain
# Wait for roles to migrate
Restart-Computer -ComputerName "<node-ip>" -Force
# Wait for node to rejoin
Resume-ClusterNode -Name "<NodeName>"

For initial pre-cluster deployment (Phase 03), simply reboot each node and confirm the OS comes back online.


Validation Checklist

  • HBA drivers installed on all nodes
  • FC initiator ports visible (Get-InitiatorPort shows Fibre Channel ports)
  • WWPNs collected and recorded in variables.yml under cluster_nodes[].fc_hba[].wwpn
  • WWPN list provided to FC fabric administrator

← Task 11: Clear Storage · ↑ Phase 03 · Task 13: Configure MPIO →


Version Control

VersionDateAuthorChanges
1.0.02026-05-02Azure Local CloudInitial release