Skip to main content
Version: 2604 (Preview)

Task 14: Verify SAN LUN Presentation (Conditional)

Runbook Phase 03 Platform

DOCUMENT CATEGORY: Runbook SCOPE: SAN LUN pre-deployment verification PURPOSE: Confirm all required LUNs are visible and infrastructure LUNs remain RAW MASTER REFERENCE: Microsoft Learn — Enable External Storage

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.

Do NOT initialize the infrastructure or performance history LUNs

The infrastructure volume LUN and performance history LUN must remain RAW (no partition table, no file system) until the Azure Local deployment wizard runs. If you initialize these LUNs before deployment, the wizard will fail.

Workload LUNs are added and initialized after cluster deployment — see Phase 06 Task 05.


Overview

This task confirms that all required SAN LUNs are correctly presented to all cluster nodes via MPIO, and that the infrastructure LUNs are in the correct RAW state. This is a verification-only step — no disk initialization occurs.


When to Run

ScenarioRun?
SAN disaggregated deployment✅ Yes — all nodes
Storage Spaces Direct (S2D)❌ Skip
After FC zoning changes✅ Yes — re-verify

Prerequisites

RequirementDetails
Tasks 12 and 13 completeFC HBA drivers and MPIO configured
FC zoning completeFC fabric admin has configured single-initiator/single-target zones
SAN LUNs provisionedInfra LUN (≥250 GB), perf history LUN (≥20 GB), and workload LUNs created on the SAN array and mapped to all nodes
FC fabric connectivityHBA ports visible in fabric; WWPN aliases and zones active
Coordinate with your SAN administrator

LUN presentation timing must be coordinated with the SAN array administrator. The infrastructure and performance history LUNs should be provisioned before this step but left uninitialized.


Required LUN Layout

LUNPurposeMin SizeExpected State
Infrastructure VolumeAzure Local system data250 GBRAW — no partition
Performance HistoryCluster metrics store20 GBRAW — no partition
Workload CSVsVM storagePer capacity planNot visible yet — add post-deployment

Step 1: Rescan and Verify Disks

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

Toolkit script: scripts/deploy/04-cluster-deployment/phase-03-os-configuration/task-14-verify-san-lun-presentation-conditional/powershell/Verify-SANLUNs-Direct.ps1

# Task 14 - Verify SAN LUN Presentation (run on each node)

# Rescan storage subsystem
Update-HostStorageCache

# List all FC disks (should include infrastructure and perf-history LUNs)
Get-PhysicalDisk | Where-Object BusType -eq 'Fibre Channel' |
Select-Object FriendlyName, SerialNumber, Size, CanPool, BusType, OperationalStatus |
Format-Table -AutoSize

# Verify infrastructure LUNs are RAW (no partition table)
Get-Disk | Where-Object {
$_.BusType -eq 'Fibre Channel' -and $_.PartitionStyle -eq 'RAW'
} | Select-Object Number, FriendlyName, Size, PartitionStyle |
Format-Table -AutoSize

# Confirm MPIO path count per disk
mpclaim -s -d

Expected Results

CheckExpected
FC disks visible on all nodes✅ Same LUNs appear on every node
Infrastructure LUN (≥250 GB)PartitionStyle = RAW
Performance history LUN (≥20 GB)PartitionStyle = RAW
MPIO path count≥2 paths per LUN (2 HBAs × 1 fabric or 2 × 2 with dual-fabric)
OperationalStatusOK for all LUNs
If LUNs are NOT visible on all nodes

Verify FC zoning — each initiator WWPN must have a zone to each target port. Re-run zoning configuration and rescan: Update-HostStorageCache. Confirm mpclaim -s -d shows paths.

If a LUN shows multiple entries per node

MPIO is not claiming the disk. Verify New-MSDSMSupportedHW hardware IDs match the array vendor, then rescan.


Validation Checklist

  • Infrastructure LUN (≥250 GB) visible on all nodes with PartitionStyle = RAW
  • Performance history LUN (≥20 GB) visible on all nodes with PartitionStyle = RAW
  • No LUN appears more than once per node (MPIO claiming correctly)
  • MPIO path count matches expected value (≥2 per LUN)
  • OperationalStatus = OK for all FC disks

Alternatives

The procedures in this task use the scripted methods shown in the tabs above. Additional deployment methods including Azure CLI and Bash scripts are available in the azurelocal-toolkit repository under scripts/deploy/.

MethodDescription
Azure CLIPowerShell-based Azure CLI scripts for Azure resource operations
BashLinux/macOS compatible shell scripts for pipeline environments

← Task 13: MPIO & MSDSM · ↑ Phase 03 · Task 15: Combined Script →


Version Control

VersionDateAuthorChanges
1.0.02026-05-02Azure Local CloudInitial release