Mixing disks of different sizes in a Storage Spaces pool

I have a Storage Spaces pool containing 2x 3TB disks. A single mirrored volume is created from this pool with a fixed size (not thin provisioned) and is set to use all space in the pool at the time of creation.

Now, I want to add 2x 4TB disks to the same pool and extend the same volume. I can't seem to dig up documentation that covers this scenario.

What will my total usable space for the volume be? Do I lose any space by using drives of mixed sizes in the same pool if I add them in pairs?

My understanding is that since this is a one-column, two copy setup, I shouldn't "leave any space on the table" as long as disks of the same size are added in pairs, even if that new pair is different in size from the current disks, but I can't seem to find any docs that confirm this.


These are the document you are looking for:What are columns and how does Storage Spaces decide how many to use? and Storage Spaces - Designing for Performance and Storage Spaces: Understanding Storage Pool Expansion

I will start by quoting two things from the articles provided:

  1. "Note Storage Spaces in Windows Server 2012 R2 and earlier by default uses the largest column count possible given the number of disks you have and the resiliency type you select." a

  2. "To extend [a storage pool], it would need the appropriate number of columns available to accommodate the layout of the disk." b

    In other words: If you add physical disks to a storage pool, Windows keeps the amount of columns in said pool. Each row of disks you add must provide one disk per column.

So, if you create a mirror with 2x3TB drives, the largest column count is 1. The column-to-disk correlation for that is 1:2. That makes a 3TB virtual disk.

enter image description here

Now, if you add the other two physical 4TB disks to the storage pool and add them to the virtual drive, Windows will add them without changing the column count. One disk will be added to the column and the other one to the mirror. Thus expanding the virtual disk by another 4TB. Your disk layout will look like this:

enter image description here

So no, you won't lose any space by using drives of mixed sizes in the same pool if you add them in pairs. Quite the opposite even! Because if you would have added them all at once, two things would have happened:

  1. Windows would have created two columns (see note above).
  2. Windows would have limited the available space. Probably by limiting each column to the size of the smallest column. [*]

Your layout would have looked like this providing only 6TB, instead of 7TB:

enter image description here

[*] Now, I am not sure how exactly the limitation works and how the new size is calculated. I assume it has something to do with how stripes are written to disks. Because if you write 512 KB of data on the virtual disk, each column parallely receives a stripe of 256 KB. And that would not be possible if one of the columns is full. So that is why I guess that all columns in a storage pool must have the same size. At least with the disks 3TB+3TB+4TB+4TB this is practically true, I checked.