With Windows 8 Storage Spaces, you can lump many hard disks of varying types, speeds and sizes together to use as a single storage space / logical drive.

How does Windows decide what to place where?

For example will it move files about depending on frequency of access? Maybe splitting files frequently accessed together between hard disks etc.

What does it optimize for? Speed, reliability, etc?

If the above is asking too much, can I easily see where the files are physically (on which physical disk)?


There are three different data resiliency options available: two-way mirroring requires at least two physical disks, and will place a copy of each of your files on both drives; three-way mirroring requires at least five disks and will store a copy of each file on three of the five; and "parity" mode requires at least three disks and duplicates your data using less physical space on each disk, but has higher performance overhead—Microsoft recommends that it be used primarily for large files that are rarely changed.

In a storage space with two-way mirroring enabled, a copy of every slab is kept on both disks so that if one goes down, no user data will be lost.

Src: http://arstechnica.com/information-technology/2012/10/storage-spaces-explained-a-great-feature-when-it-works/


I believe you can view the files


Try this article. It explains in explicit detail how storage spaces work to optimize speed and recoverability. IT IS NOT JBOD.


To explain here, Storage spaces stripes your data across all applicable drives evenly, filling them up evenly.

If you are working in a Mirror system, all data is replicated exactly with its paired mirror drive. so if you have 2 drive in mirror, 1 and 3 will be identical, and 2 and 4 will be identical.

If you are working in Parity mode, the last drive in the array is flagged as parity and stores all that information. the remaining drives will stripe data across them evenly.

It does not make any optimizations based on file access frequency or medium. Since storage spaces cant be booted to, it assumes that none of the files stored therein are system files and treats all files equally. (this is the same behavior as if you were using a traditional RAID array, so this is NOT a bug.)


Its RAID-0, or striping. It can be done with mirroring or parity.

How does Windows decide what to place where?
It writes in parallel across all your disks, nothing is going to get written to a single physical disk.

What does it optimize for? Speed, reliability, etc?
It optimizes for speed. It writes the data across all drives in parallel, reducing write speed to x/(number of disks), where x would be the normal write speed to any given file on a single disk.

Can I easily see where the files are physically (on which physical disk)? No, because they are going to exist across all the drives, never on just a single physical disk.


How does Windows decide what to place where?

Windows doesn't decide anything. Both the pool and the virtual disk (a space) are visible as storage devices in Windows' device manager. Storage Spaces actually behaves as if it was a device plugged into your computer, so that to Windows itself, it appears as yet another disk to write into. Windows simply writes to the virtual disk and has no care in the world about how is the write request handled, the same way it doesn't care how a physical hard disk actually conducts the write (for example, moving the actuator, changing magnetic properties of sectors). The virtual disk in turn has it's own implementation of writing, depending on what virtual disk type it is. Under mirror settings, it requests two physical destinations from the pool driver, so that two individual copies of that data exist. Under parity setting, it requests N physical destinations from the pool, so that N columns can be written into. Number of columns is a different matter, so I'll not explain it here. But you can google using those keywords.

What does it optimize for? Speed, reliability, etc?

I couldn't find any resource that specifically states that it optimizes for anything. Resiliency types (Mirror, Parity) don't infer any specific optimizations, they merely describe the technique used to store data with protection against failure of physical device (one of the hard disks). What I did find is real-world test results here, which correspond with my own. In short, Mirror resiliency type does improve read performance a little bit, so Storage Spaces clearly does support reading from both disks simultaneously in order to improve performance. In Parity resiliency type, the virtual disk implementation has no option but to read from all columns at once, so the read performance comes by design as the implementation has to collect chunks of data from each physical disk, put it together and then release it as read result. Notice, however, that author of the hereabove linked article complains about poor write performance. That is caused by incorrect Interleave setting used when creating the virtual disk. When set correctly, Storage Spaces parity write performance can get really close to the number of physical disks it is using (minus 1, because parity).

can I easily see where the files are physically (on which physical disk)?

No. The virtual disk driver decides what is stored where.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.