Windows 8 Storage Spaces: Pooling Disks Without Hardware RAID
Windows 8 Storage Spaces pools mismatched drives into one resilient volume with thin provisioning. Walk through a three-drive mirrored example, PowerShell automation, and the trade-offs to know first.
27 Feb 2026, 05:22 UTC

The Problem: Disconnected Drives and No Redundancy
You have three external USB drives sitting on your desk—each 2 TB, each formatted NTFS, each showing up as a separate drive letter. You want to treat them as one large volume, survive a drive failure, and add capacity later without reformatting. Hardware RAID cards are expensive and lock you into a vendor. Windows 8 introduced Storage Spaces as a software-defined answer: pool physical disks into a storage pool, then carve virtual disks (called spaces) with the resiliency you choose.
How Storage Spaces Works
A storage pool is a logical group of two or more physical disks (internal SATA, USB, or SAS). From that pool you create one or more spaces—virtual disks that appear to the OS as regular volumes. Each space uses one of three resiliency layouts:
- Simple (striping): no redundancy; a single disk failure loses the entire space. Suitable only for scratch or easily rebuildable data.
- Two-way mirror: writes two copies of every block; survives one disk failure. Usable capacity is roughly half the pool's physical capacity.
- Parity: similar to RAID 5; survives one disk failure with better capacity efficiency than mirroring, but random write performance is significantly slower—poor fit for databases or VM workloads.
Thin provisioning is a core design decision: you declare a logical size larger than current physical capacity. The pool allocates sectors on demand as data is written. This decouples capacity growth from reformatting—adding a disk to the pool expands available space without recreating volumes or migrating data manually.
Worked Example: Three 2 TB USB Drives, 4 TB Two-Way Mirror
Assume three 2 TB USB 3.0 drives attached to a Windows 8.1 machine. You want a single 4 TB mirrored volume that tolerates one drive failure and can grow later.
Via Control Panel (GUI)
- Open Control Panel → System and Security → Storage Spaces.
- Click Create a new pool and storage space. Select the three USB drives (they will be wiped).
- Name the pool (e.g., "USB-Pool"). Click Create pool.
- In the next dialog, name the space (e.g., "MirroredData"), choose drive letter, file system (NTFS), resiliency Two-way mirror, and set Size to 4 TB (larger than the ~3.7 TB usable after mirroring overhead). Click Create storage space.
The space appears as a 4 TB drive. Physical free space starts around 3.7 TB; as you write data, the pool consumes physical capacity. When free physical space runs low, you add another drive to the pool—the space remains intact and usable capacity grows.
Via PowerShell (Scripted, Repeatable)
Run the following in an elevated PowerShell session (Administrator). Replace PhysicalDiskIds with the actual disk numbers from Get-PhysicalDisk -CanPool $true.
# 1. Identify poolable disks
$disks = Get-PhysicalDisk -CanPool $true | Where-Object {$_.BusType -eq "USB"}
# 2. Create the pool
$pool = New-StoragePool -FriendlyName "USB-Pool" -PhysicalDisks $disks -StorageSubsystemFriendlyName "Windows Storage*"
# 3. Create a thin-provisioned two-way mirror space (4 TB logical size)
$space = New-VirtualDisk -StoragePoolFriendlyName "USB-Pool" `
-FriendlyName "MirroredData" -ResiliencySettingName Mirror `
-Size 4TB -ProvisioningType Thin
# 4. Initialize, partition, format, assign drive letter
$disk = Get-VirtualDisk -FriendlyName "MirroredData" | Get-Disk
Initialize-Disk -Number $disk.Number -PartitionStyle GPT
New-Partition -DiskNumber $disk.Number -UseMaximumSize -AssignDriveLetter |
Format-Volume -FileSystem NTFS -NewFileSystemLabel "MirroredData" -Confirm:$false
Checks: Run Get-StoragePool and Get-VirtualDisk to verify pool and space configuration. Get-PhysicalDisk | ft FriendlyName,Size,OperationalStatus shows each drive's health. Risk: The New-StoragePool command wipes the selected disks—confirm you targeted the correct USB drives.
Trade-offs and Limitations
- Simple spaces have no redundancy. A single disk failure loses all data in that space. Use only for temporary or rebuildable data.
- Parity spaces suffer slow random writes. They are fine for sequential archives (media, backups) but unsuitable for databases, VHDX files, or other random-write workloads.
- Thin provisioning can overcommit. If the pool fills completely, writes fail. Monitor free physical capacity (
Get-StoragePool | ft FreeSpace,AllocatedSpace) and set up alerts. - Version differences matter. Windows 8 client lacks three-way mirrors and storage tiering (SSD + HDD), which are Server 2012/2012 R2 features. Client also defaults to simpler column counts for parity.
- USB drives add latency and disconnect risk. For production workloads, prefer internal SATA/SAS or certified JBOD enclosures.
Try It on a Spare Machine
- Gather two or more spare USB drives (any size).
- Open Storage Spaces in Control Panel, create a pool, then a two-way mirror space larger than physical capacity.
- Copy a few GB of test files, then pull one drive—verify the space stays online.
- Add a third drive to the pool and confirm usable capacity increases without reformatting the space.
This hands-on test validates the thin-provisioning behavior and growth path before you commit production data.
0 replies
A thoughtful contribution can make all the difference. Be the first to share one.