When working with Windows Storage Spaces, the key factor in capacity calculation is the column count and redundancy type. In your case of a mirrored volume (two-way mirror) with one column, the space allocation works differently than simple RAID configurations.
For your specific setup (2x3TB + 2x4TB in one-column mirror):
Total raw capacity = (2×3TB) + (2×4TB) = 14TB Usable space = (3TB + 4TB) = 7TB
The system will pair one 3TB and one 4TB disk as a mirror set, using 3TB from each. The remaining 1TB on each 4TB disk will form another mirrored pair.
To check your actual allocation after adding disks:
# Get pool information Get-StoragePool -FriendlyName "YourPoolName" | Get-PhysicalDisk | Select Size,MediaType # View volume allocation Get-VirtualDisk -FriendlyName "YourVolumeName" | Select Size,FootprintOnPool
For maximum space utilization in mirrored configurations:
- Always add disks in pairs when expanding
- New pairs can differ in size from existing disks
- Storage Spaces will automatically optimize pairing
Here's how to properly extend your volume through PowerShell:
# Add new physical disks to pool Add-PhysicalDisk -StoragePoolFriendlyName "YourPoolName" -PhysicalDisks (Get-PhysicalDisk -SerialNumber "XXXXXX","YYYYYY") # Resize the virtual disk Resize-VirtualDisk -FriendlyName "YourVolumeName" -Size 7TB # Extend the partition Resize-Partition -DriveLetter D -Size 7TB
While mixed-size configurations work:
- Performance will be limited by the slowest disk in each column
- For best performance, use identical disks in each pair
- Larger disks in the pool will have unused space if not properly paired
For more control over disk allocation:
# Create custom column count configuration New-VirtualDisk -StoragePoolFriendlyName "YourPoolName" -FriendlyName "CustomVolume" -ResiliencySettingName Mirror -NumberOfColumns 2 -UseMaximumSize
When dealing with Storage Spaces in Windows, one common configuration involves creating a mirrored volume (two-way mirror) with fixed provisioning. The initial setup you described uses two 3TB drives, which provides 3TB of usable space in a one-column, two-copy configuration.
The core question revolves around adding two 4TB disks to this existing pool. Here's what happens technically:
- Storage Spaces will recognize the new capacity
- The system maintains mirroring across all disks
- No space is wasted when adding same-sized pairs
For your specific case with 2x3TB + 2x4TB in mirrored configuration:
Total raw space = (2 * 3TB) + (2 * 4TB) = 14TB
Usable space = (3TB + 4TB) = 7TB
The system effectively creates a virtual disk with 7TB capacity, maintaining redundancy across all drives.
Here are some practical commands for managing this configuration:
# List available disks
Get-Disk | Where-Object {$_.OperationalStatus -eq "Offline"} | Initialize-Disk -PartitionStyle GPT
# Add disks to existing pool
$pool = Get-StoragePool -FriendlyName "YourPoolName"
Add-PhysicalDisk -StoragePool $pool -PhysicalDisks (Get-PhysicalDisk -SerialNumber "12345","67890")
# Resize the virtual disk
Get-VirtualDisk -FriendlyName "YourVolume" | Resize-VirtualDisk -Size 7TB
When mixing drive sizes in Storage Spaces:
- Write performance is limited to the smallest disk's speed in each column
- Larger disks don't create performance bottlenecks
- Consider using tiering if mixing HDDs and SSDs
Common issues and solutions:
# Check pool allocation
Get-StoragePool | Get-StorageJob
# Verify disk health
Get-PhysicalDisk | Select-Object FriendlyName, Size, HealthStatus
Remember that Windows automatically optimizes data distribution across disks of different sizes in mirrored configurations, so manual intervention is rarely needed.