Windows 8 Preview / I am playing with Storage Spaces

Storage Space, PARITY. Ok this is one you've been waiting for. Unfortunately there is the same heavy write penalty others seem to be finding.
Why are they having a forum figure this out within 48 hours? This performance hit should already be solved.
 
Why are they having a forum figure this out within 48 hours? This performance hit should already be solved.

Its a preview. Probably expected people to treat it as such rather than a finished product. Obviously if its like this in RTM then one can then jump all over it. :)
 
Why are they having a forum figure this out within 48 hours? This performance hit should already be solved.

I am no longer convinced that this is a "problem" to be solved. While I think that perhaps it COULD be improved...I believe that it is merely a by product of the clearly conservative approach they are taking to data integrity, especially considering the journaling and all. If you think about who it is intended for (end user/consumer) and the USAGE MODEL (occasional write, mostly read, like for movie storage ect) it is aimed at it seems less and less to be a problem...and more as something merely disappointing.

You do get a nice sequential read bonus as you'd expect so again....for a light write/heavy read usage scenario it seems like it may be fine for most people.

I think many of us here, myself included, are simply spoiled by our fancy ZFS rigs. ;)
 
Why are they having a forum figure this out within 48 hours? This performance hit should already be solved.

Well, the performance looks in line with software RAID-5 performance in Server 2008, so I'm guessing they haven't really revised that part of the code too much. And if they haven't bothered changing that part of the code in beta stage, I imagine it's something they won't bother touching at least until the next major revision.
I'm disappointed with MS's effort with Storage Space and ReFS as I was hoping it could compete with ZFS. I suppose I'm keeping my Solaris box for at least a few more years.
 
I am no longer convinced that this is a "problem" to be solved. While I think that perhaps it COULD be improved...I believe that it is merely a by product of the clearly conservative approach they are taking to data integrity, especially considering the journaling and all.
Being slow does not mean you do anything for extra integrity. It just means your baby steps in storage are still years behind everyone else.

My NetBSD raidframe(4) also gets me abysmal write performance in RAID5 if I don't align the stripe size to filesystem block size. If I do, however, I get write speeds in the order of read speeds. It doesn't do any integrity beyond RAID parity calculations, though.

If they had separate statistics for read/write--which are also too hard to implement for them it seems--you could check whether pure writes also induce a lot of reads, which would mean that, after years and years of ZFS existing, they still fail to go around the RAID5 write hole.

Storage from MS? No thanks.
 
This is software raid being software raid. They're not going to have it improved by RTM. This is probably it, or what they were satisfied with. I mean their article on this boasts "comparable to RAID speeds" which is safely vague enough for that to be true. Coincidentally that's all an external USB2.0 hard drive will give you. They really just optimized this system to be good enough for just those types of drives? I find that a silly waste of resources and can't believe it. While their mirror speeds are good, that doesn't really matter since you could just do it right at the start and use RAID1.


I think many of us here, myself included, are simply spoiled by our fancy ZFS rigs. ;)
Is that as difficult as it sounds? I really don't want to spend >100 hours to learn Solaris just to store things. My only motivation to do that would be if 8 empty drives suddenly landed in my lap.

I could honestly live with 20MB/s write speed though to have what this is. Read speed is much more important to me than write. This drawback is a better tradeoff than no parity. I want to see what ReFS does for this first.
 
Does anybody know if network locations can be used as part of a storage pool?

We have 2 servers for file data - one for primary storage on fast disks and one for archive storage on slower disks. The primary server is a virtual machine with access to LUNs on our NetApp (15k SAS), the archive server is a physical box with 4x 2TB SATAs in RAID-10. These are then shared out to clients in the normal way as 2 seperate drive mappings.

To be able to provision these 2 places into a single hierarchical view as a single mapped drive to users would be cool.
 
I am using a few 3TB Western Digital 5400RPM drives... on a 2-way mirror I am getting 30-40MB/s write speeds. Parity is about 15-20MB/s write speeds. God awful slow. When they are standalone I get 90MB/s write. Is it just my hard drives for the slow writes? It's killing me because I'd love to setup a 63TB space but it's going to take me forever to write the data to the space.

Does anyone know, if you add more drives to a pool (for example, 6 disks in a 2-way mirror), does the write speed increase because of the extra use of the other disks?

I'd REALLY love this if I can just get the write speeds up on my 3TB drives.

Ethan
 
Is that as difficult as it sounds? I really don't want to spend >100 hours to learn Solaris just to store things. My only motivation to do that would be if 8 empty drives suddenly landed in my lap.
ZFS is easier than any other solution, in my opinion. Less complex. More intuitive. Lot of people use OpenIndiana with napp-it (in the huge thread) and they dont know solaris, or care to learn. They just want to store data. Safely. You should try to install napp-it in VirtualBox (which is free) and see if it is difficult or not.
 
This is software raid being software raid. They're not going to have it improved by RTM. This is probably it, or what they were satisfied with. I mean their article on this boasts "comparable to RAID speeds" which is safely vague enough for that to be true. Coincidentally that's all an external USB2.0 hard drive will give you. They really just optimized this system to be good enough for just those types of drives? I find that a silly waste of resources and can't believe it. While their mirror speeds are good, that doesn't really matter since you could just do it right at the start and use RAID1.



Is that as difficult as it sounds? I really don't want to spend >100 hours to learn Solaris just to store things. My only motivation to do that would be if 8 empty drives suddenly landed in my lap.

I could honestly live with 20MB/s write speed though to have what this is. Read speed is much more important to me than write. This drawback is a better tradeoff than no parity. I want to see what ReFS does for this first.

Doesnt take nearly 100 hours. Does take a few to learn the different options in napp-it but overall not too hard.
 
ZFS is easier than any other solution, in my opinion. Less complex. More intuitive. Lot of people use OpenIndiana with napp-it (in the huge thread) and they dont know solaris, or care to learn. They just want to store data. Safely. You should try to install napp-it in VirtualBox (which is free) and see if it is difficult or not.

I too don't have the time to spend. However i do have a few dozen 200gb+ drives lying around. Thanks for pointing me to the 'easy' solution for a guy who just doesn't have the time to learn entire OS's
 
Just a random thought; but anyone think its possible that we might see better write speeds as a part of the Windows 8 server OS? I'm just a hobbyist, but it seems that such low write speeds might really limit the appeal of storage spaces on a server platform.

I am still tempted by the simplicity of storage spaces (to replace my WHS box) but the low write speeds makes me wonder just how hard ZFS would be to learn and use.
 
ZFS is really easy and intuitive. No need for 20 commands to create a raid, and format and setup partitions etc etc.


Create a zfs raid:
# zpool create myRaidNow raidz2 disk0 disk1 disk2 disk3 disk4
this creates a raid6 (raidz2 is raid6). No need to format, just start to copy data immediately. To create raid-5 (raidz1)
# zpool create myRaidNow raidz1 disk0 disk1 disk2 disk3 disk4
To create a single disk:
# zpool create mySingleDisk disk0


Create a new partition (similar to create D: or E:)
# zfs create myRaidNow/HereBeMyMovies
this creates a new partition, no need to format. Just start to move data. The zfs partition grows and shrinks as needed. (In normal Linux/Unix filesystems, the partition is fixed in size and does not grow/shrink as needed).


On top of that, you can add an gui. For instance, napp-it. No need to learn Unix or Linux. I never use any gui for zfs, it is easier to type commands as above, than learn a web gui such as napp-it:
http://www.eviltyrant.com/blog/?p=988
 
Just a random thought; but anyone think its possible that we might see better write speeds as a part of the Windows 8 server OS? I'm just a hobbyist, but it seems that such low write speeds might really limit the appeal of storage spaces on a server platform.

That sounds nice, but I wouldn't bet on it. Server 2008 R2 has the same abysmal write speed for its raid5 parity implementation...
 
ZFS is really easy and intuitive. No need for 20 commands to create a raid, and format and setup partitions etc etc.
[/url]

Personally, I indend to look at ZFS at some stage but right now I'm more comfortable with a Windows based solution for my data hosting (at home) because that is what I know best. Its probably the same for others here. The issue for me isn't for when things work, its for when things go wrong. In Windows I'm reasonably well versed to resolve things. In Nix like systems I'm on far shakier ground. I had to rebuild one of my old ESX boxes because the unlying system got screwed and I couldn't fix something that it would have took someone experienced in Linux 5 mins to resolve I suspect. For me its hard to understand from the log files whether there is a serious problem or nor at times etc.

So what is missing isn't how to create something, its how to recover from an error or troubleshoot the multitude of problems that could occur with a computer system and its OS, something you just can't learn in a few hours.
 
Windows 8 is a pretty significant change, so there will be some relearning there as well.

That said, it looks like you should be fine as long as you stay away from the parity spaces. Run mirrors (multiple 2 disk mirrors) all in the same "space" - should be equivalent to raid10 (though it looks like it doesn't do read striping?).

If you want a raid-6 setup then it still seems like you need to spend the money for a decent raid card.
 
Windows 8 is a pretty significant change, so there will be some relearning there as well.

That said, it looks like you should be fine as long as you stay away from the parity spaces. Run mirrors (multiple 2 disk mirrors) all in the same "space" - should be equivalent to raid10 (though it looks like it doesn't do read striping?).

If you want a raid-6 setup then it still seems like you need to spend the money for a decent raid card.

If ReFS woks okay (e.g. bit rot) with "mirrors", I will be fine. I will get saturaged gigabit ethernet performance + redunacy + bit rot. I know my efficiency will be around 40% for storage (Raid 1 + 13% bit rot overhead protection)..but i'm okay with that; i'm okay with adding 2 drives at a time for more storage; others may not be.

However, with how cheap a HP microserver is, i've considered using iSCSI into windows with a simple ZFS box if the cost savings is enough.
 
Writes need caching using NVRAM or power-safe SSD......

This is the way hardware RAID controllers and ZFS (slog device) get good write performance while maintaining file system consistency in ZFS's case and on-disk consistency in hardware RAID in the event something goes wrong.....
EDIT:

Similar to the way ZFS works: (except ZFS is COW)

It may be the fact that it is journelling the changes before writing them to the parity spaces data store to guard against the RAID5 write hole. You can apparently define an arbitary drive for where this journal should live on, so I suspect dumping it on an SSD should dramatically improve preformance.

linky on the info:

Parity spaces include a journal to ensure data integrity regardless of write size and in the presence of unexpected power loss. Stay tuned for more information on the work we have done with Windows file systems - this work builds on Storage Spaces. Parity spaces do use some memory caching to improve performance. Storage Spaces do not use a SSD as a write buffer although SSDs can be used to back the journal thereby helping performance for parity spaces
 
Last edited:
unless MicroSoft do it the same way like Sun did 10 years ago:

Do not care about compatibility
Do not care about current (slow) hardware, look at high end use cases only
Do the best from a technical only not marketing view
Do something without reachable limits

they will not produce something comparable to ZFS
(while i would not say, ZFS is perfect, it needs improvements as well)
 
If ReFS woks okay (e.g. bit rot) with "mirrors", I will be fine. I will get saturaged gigabit ethernet performance + redunacy + bit rot. I know my efficiency will be around 40% for storage (Raid 1 + 13% bit rot overhead protection)..but i'm okay with that; i'm okay with adding 2 drives at a time for more storage; others may not be.

You don't need to add two drives at a time for 2-Way Mirror with Storage Spaces. You just need two to start, and then add extra drives as needed. I'm at 5 drives right now and it works like a champ. My only complaint is that the write speeds are still pretty slow (even though they are 100% faster than parity). It is what it is I guess.
 
You don't need to add two drives at a time for 2-Way Mirror with Storage Spaces. You just need two to start, and then add extra drives as needed. I'm at 5 drives right now and it works like a champ. My only complaint is that the write speeds are still pretty slow (even though they are 100% faster than parity). It is what it is I guess.

I'm a bit confused - if you start with a 2 way mirror, then add a third drive, and it's *not* a parity setup, what exactly is it? (assuming we are protected from any drive failing).
 
I'm a bit confused - if you start with a 2 way mirror, then add a third drive, and it's *not* a parity setup, what exactly is it? (assuming we are protected from any drive failing).

Here is how I understand it;

It stores the the two half-"slabs" (mirror of data, original data) across two different disks. It doesn't matter which ones, just as long as they are not on the same disk. Windows manages the redundancy behind the scenes. No two half-slabs are on the same disk. But it still only protects against a single drive failure.

See http://blogs.msdn.com/b/b8/archive/...rage-for-scale-resiliency-and-efficiency.aspx for an explanation on how the mirroring works with Storage Spaces.
 
Thanks - hadn't actually caught that portion of it - so in practice it becomes similar to drive extender in whs2003 (though the implementation is different). I expect it's also doing some sort of dynamic relocation on the back end to "balance" the drives when you add a new drive (otherwise you couldn't really add, say, a third disk if your first two were already full - as there wouldn't be any "room" to mirror the slabs on the third). I wonder if you get a lag in the new space being available, or if you get a lag in the data being mirrored (i.e. does the write always go to two slabs - so it would have to balance first, or does the write go to one slab and the replicate asynchronously later on).

How bad is the write performance you are seeing - it doesn't seem like there's any reason for it to be slower than your slowest drive?.
 
Another question, although you may mot be able to answer or test. The original MS DE on WHS1 was notorious for causing stuttering on streamed media, as it's IO activity caused havoc. Is Storage Spaces streaming any better ?
 
ChrisBenn - I've noticed no slow down or lag, and I too question how the rebalancing works. I'm assuming it's all hidden from us and just taken care of by the OS. When we want to write something new, the OS will rebalance at the time, or maybe when the system is idle it will do rebalancing. Either way, there's nothing visible that I can see to show me what's going on, and I don't notice any lag. As far as speeds go, it fluctuates wildly from 20MB/s up to 80MB/s and then back down. I think it's because I have a number of drives with different speeds. It's still a lot slower than the 100MB/s minimum I'd get by doing a direct copy (on a WD 5400 Green 3TB drive). The CPU is only at 10% during the copy, so the slowdown must be caused by creating the slabs, journalling the locations of them, and allocating the slabs to the correct location. Still, I'd love to see an improvement here as I feel it's slower than to should be.

benogil - I've done streaming from the Storage Space mirror of a full Blu-ray ISO's over my network to a Netgear NeoTV 550 and it works like a charm. Read speed is much faster than write speed. BUT.... when I stream and write to the drive at the same time, it sputters the stream (which actually should be expected, as that's a lot of I/O). And with the new Storage Space I have yet to try two/three streams at the same time. That will be the real key to see how well the read speeds are on this for me personally. If I can stream three Blu-ray ISO's from my mirror at the same time with no stuttering, then this solution is going to work great for me.
 
Just a quick question: has anyone tried using a SSD for journaling backup as alluded to in a few posts in this thread? I was wondering if I could "buy" a write performance increase at the cost of a SSD.

Thanks.
 
Just a quick question: has anyone tried using a SSD for journaling backup as alluded to in a few posts in this thread? I was wondering if I could "buy" a write performance increase at the cost of a SSD.

Thanks.

Maybe I missed it, but can you specify where the journal is located with PowerShell?
 
I was referring to part of a post by MSITPRO. I wish I knew more but am not able to play with the CP. Quote below;

Parity spaces include a journal to ensure data integrity regardless of write size and in the presence of unexpected power loss. Stay tuned for more information on the work we have done with Windows file systems - this work builds on Storage Spaces. Parity spaces do use some memory caching to improve performance. Storage Spaces do not use a SSD as a write buffer although SSDs can be used to back the journal thereby helping performance for parity spaces

Perhaps its not yet implemented; or maybe only for the server OS.
 
I found one issue with storage spaces in Win 8 I don't like.

With WHS V1 you can turn off duplication. With Storage Spaces as far as I can find once you set up the storage pool you can't change the settings.

For example I selected 3 way mirror since the 3 drives were old and pulled at some point from my WHS so I don't remember if I had issues or just upgraded them for space. I used a 500gb, 750gb and a 1tb drive. It turns out the 750gb is actually having issues and was locking Windows and Storage Spaces up. I pulled the 750gb drive since I couldn't even get into manage storage spaces without it locking up. Unfortunately I only have 320gb drives laying around. As a result with 3 way on, I don't have enough room to remove the 750gb via the menu even after adding the 320gb drive in place of the 750gb.

I can't find anyway to change it from three way to two way so my only option seems to be to copy the data off the pool until I have enough space to remove the 750gb drive.
 
Will there be a WHS sku of Server 8?

I really like the Storage Spaces feature but I would be adverse to losing the client/server backup functionality of WHS.
 
Although unraveling the intent of MS is a meaningless pursuit, I would bet on a Windows Home Server 8.
 
I found one issue with storage spaces in Win 8 I don't like.

With WHS V1 you can turn off duplication. With Storage Spaces as far as I can find once you set up the storage pool you can't change the settings.

For example I selected 3 way mirror since the 3 drives were old and pulled at some point from my WHS so I don't remember if I had issues or just upgraded them for space. I used a 500gb, 750gb and a 1tb drive. It turns out the 750gb is actually having issues and was locking Windows and Storage Spaces up. I pulled the 750gb drive since I couldn't even get into manage storage spaces without it locking up. Unfortunately I only have 320gb drives laying around. As a result with 3 way on, I don't have enough room to remove the 750gb via the menu even after adding the 320gb drive in place of the 750gb.

I can't find anyway to change it from three way to two way so my only option seems to be to copy the data off the pool until I have enough space to remove the 750gb drive.

To replace a drive you need to replace it with something of equal or greater value, unless you know you have enough free space on your other drives to cover the difference.

The only options that I know you will be able to change once a Space has been created is that you supposedly will be able to make your Space larger... so changing it from 10TB to 20TB for example. If you want to make any other major change, I think you need to start from scratch and just copy data to it.
 
To replace a drive you need to replace it with something of equal or greater value, unless you know you have enough free space on your other drives to cover the difference.

The only options that I know you will be able to change once a Space has been created is that you supposedly will be able to make your Space larger... so changing it from 10TB to 20TB for example. If you want to make any other major change, I think you need to start from scratch and just copy data to it.

Yeah. I guess I was hoping it would be like duplication where I could downgrade from 3 way to 2 way which would free up the space. I only had one free sata port otherwise I would have added a couple more 320gb drives.

One other concern is Win 8 didn't notify me on boot there was a problem with the storage pool. It shows the pool is unhealthy when I enter the menu but nothing alerted me that I might have an issue.

Now I have copied everything but 9 gigs out of the pool and still can't remove the drive. I am guessing it takes a bit for the pool to rebalance since it still shows over 1TB in use. There is no option to change allocation to the new drive from the old removed drive which seems to be the issue.
 
Last edited:
If you are willing to get dirty with powershell commands, there appear to be a bunch documented here.

Calling Optimize-Volume should do the trimming & moving to free up space.

Something like:
Code:
Optimize-Volume -DriveLetter H -ReTrim -SlabConsolidate -Verbose
Where "H" is whatever the storage pool's drive letter is (you can select the pool by other methods too).

Can't see where you change the journal location in the documented powershell commands. So it may not be in this release yet :(
 
Last edited:
One other concern is Win 8 didn't notify me on boot there was a problem with the storage pool. It shows the pool is unhealthy when I enter the menu but nothing alerted me that I might have an issue.

This will be included in the final version of Windows 8, I can almost guarantee that. In fact the MSDN blog post shows a screenshot of the notification in the system tray. I never got one either when my disks became full, so I'm assuming it's a bug.
 
If you are willing to get dirty with powershell commands, there appear to be a bunch documented here.

Calling Optimize-Volume should do the trimming & moving to free up space.

Something like:
Code:
Optimize-Volume -DriveLetter H -ReTrim -SlabConsolidate -Verbose
Where "H" is whatever the storage pool's drive letter is (you can select the pool by other methods too).

Can't see where you change the journal location in the documented powershell commands. So it may not be in this release yet :(

I have been looking through the powershell commands as well and I can't find where the journal drive can be changed. Perhaps your right and the options aren't there yet. I'd really like to test it once we know how.

However, In case I've missed it somewhere...if anyone that can find the appropriate powershell commands to change the journal drive please let us know!
 
Well it looked amazing until you read this :

To maximize performance, Storage Spaces always stripes data across multiple physical disks

Akin to mirrored spaces, slabs for parity spaces are strewn across available disks (with capacity utilized for parity information) as shown below for a parity space contained within a six-disk pool:

So basically it's just tweaked Raid3/4 & Raid5/6 nothing more, which does absolutely nothing to protect users against the glaring flaw of "one too many" failures.

Sure having "50Virtual TB" and "Add disks as you go" and "One directory to rule them all" are appealing.
But i'm surprised they haven't bothered to copy Unraid/Flexraid/Snapraid for a multi-million dollar project that's sad.

For "the average joe" i agree that an "invisible automatic raid1" will be awesome.
But for someone looking to administer a "Home Media Server" well... bad idea....

Flexraid is probably still vastly superior.....

But... how do you understand this ?

@Salty – two-way mirrored spaces will survive failure of any 2 disks backing the space. Parity spaces will only survive failure of a single physical disk backing the parity space – note, however, that concurrent failures of other disks within the pool not backing the parity space do not impact access to the parity space.
 
Last edited:
Yeah this makes no sense:
two-way mirrored spaces will survive failure of any 2 disks backing the space.

Also, I didn't realize Flexraid ran in Windows. How are the speeds with a parity configuration? How is it superior?
 
Back
Top