Optimizing Storage Spaces Pool: Mixing 3TB and 4TB Disks in Mirrored Volume Configuration


12 views

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.