How to Create a Storage Spaces Pool and Mirrored Virtual Disk
Applies to: Windows Server 2019, 2022 and 2025.
Storage Spaces combines eligible physical disks into a pool and creates resilient virtual disks. Selecting the wrong physical disk can destroy existing data.
Storage changes can cause data loss or access outages. Use tested backups, maintenance windows and representative access tests. Managed Windows VPS services are available at networkmanager.info.
Prerequisites
- Use console access.
- Inventory disk serial numbers and health.
- Ensure all selected disks are empty and CanPool=True.
- Choose resiliency and capacity from failure requirements.
Procedure
Step 1: List poolable disks
Validate identity and status.
Get-PhysicalDisk -CanPool $true | Select FriendlyName,SerialNumber,MediaType,Size,HealthStatusStep 2: Create the pool
Select only approved disks and the correct storage subsystem.
$sub=Get-StorageSubSystem -FriendlyName 'Windows Storage*'
$disks=Get-PhysicalDisk -CanPool $true
New-StoragePool -FriendlyName 'DataPool' -StorageSubsystemFriendlyName $sub.FriendlyName -PhysicalDisks $disksStep 3: Create mirrored virtual disk
Use a fixed size that fits the available resilient capacity.
New-VirtualDisk -StoragePoolFriendlyName 'DataPool' -FriendlyName 'DataMirror' -ResiliencySettingName Mirror -Size 500GBStep 4: Initialize disk
Select the disk by FriendlyName, not an assumed number.
$disk=Get-VirtualDisk -FriendlyName 'DataMirror' | Get-Disk
Initialize-Disk -Number $disk.Number -PartitionStyle GPTStep 5: Create volume
Allocate and format the new disk.
$disk | New-Partition -UseMaximumSize -DriveLetter D | Format-Volume -FileSystem NTFS -NewFileSystemLabel 'Data' -Confirm:$falseVerification
Check pool, virtual disk, physical disk and volume health.
Get-StoragePool -FriendlyName 'DataPool'
Get-VirtualDisk -FriendlyName 'DataMirror'
Get-PhysicalDisk
Get-Volume -DriveLetter DRollback and recovery
Copy data away before removing volume, virtual disk or pool. Destructive storage cleanup requires a separate approved procedure.
Operational notes
The example must never be run without selecting disks explicitly in a server that has other CanPool=True devices.