Expanding storage spaces parity array

Notice: Page may contain affiliate links for which we may earn a small commission through services like Amazon Affiliates or Skimlinks.

nasomi

Member
Jan 11, 2016
47
11
8
40
I have a storage pool with 5x4tb hdd's, and a single volume created that is mounted and 14.5tb. I want to add 2 more 4tb hdd's. That would give me 28tb of space unformatted, and with a parity capacity, 24tb, 21.8tb formatted.

I have data on the drive now. I've had a hard time finding documentation on this. When I add two drives tot he pool, then expand the volume, the system should, by all logic, recalculate the parity bit to all the drives. Otherwise, it would just increase the available space as the parity bit is calculated.

Any idea how storage spaces processes this?
 

cesmith9999

Well-Known Member
Mar 26, 2013
1,417
468
83
2012 R2 or 2016 TP4?

2012 R2 you have to add 5 more disks to extend your volume

2016 TP4 you can re-stripe your VDisk in the storage pool.

Chris
 
  • Like
Reactions: nikalai

cesmith9999

Well-Known Member
Mar 26, 2013
1,417
468
83
is your provisioning fixed or thin?

if it is fixed. then you have to add 5 disks.

if it is thin. then we can migrate to a new vdisk with a new layout. there was a thread a long time a go where another person had the same issue.

the migration will be over time and in small increments.

Chris
 

nasomi

Member
Jan 11, 2016
47
11
8
40
Thank you for the clarification. The provisioning is fixed, so I guess i'll need to offload the data somewhere so I can create the 7 disk volume in one shot.
 

sybreeder

Member
Oct 8, 2013
31
7
8
Poland
It depends on number of columns. I created yesterday 3disk parity storage spaces with numberofcolumns =3 and i could add 3 more disks to the pool. it created configuration similar to raid50 and i can lose 2 disks.
 

smidley

New Member
Feb 7, 2011
17
0
1
2012 R2 or 2016 TP4?

2012 R2 you have to add 5 more disks to extend your volume

2016 TP4 you can re-stripe your VDisk in the storage pool.

Chris
Can you explain how to do this in 2016? I'm looking at building a SS array with parity and I would like some way to expand it when I just add one physical drive.
 

Kogashuko

New Member
Jun 16, 2019
4
0
1
So I am running 2019 with three spinning disks and two SSDs in a mirrored tiered array. I am trying to expand adding a drive. Sever simply refuses to add it. How many drives do I have to add to make this work right?
 

Kogashuko

New Member
Jun 16, 2019
4
0
1
So what you are telling me is if I am going to upgrade the server, like adding a NVME tier, at this point I am probably better off transferring all of it over to my old parity server and then setting up a new disk pool on my old one with four physical disks, two SSDs, and two NVME drives. The tier the thing, using an article about parity / mirriored storage spaces, and put the physical disks in parody and the SSDs and NVMEs into a mirrored configuration? My understanding if I do that I can add SSDs or NVMEs in pairs and single spinning disks individually. Not to mention parity is more efficient with storage since currently I have three 8tb spinning disks and two 1tb SSDs and the thing only gave me 11TB of space.

A good powershell how to or youtube video would be appreciated. I always seem to gravitate to a GUI and it pisses me off when there are features that arnt added in that are mission critical but available in powershell.
 

red_vette

New Member
Jul 13, 2019
8
1
3
It doesn't matter if you do tiering or not, parity requires you to add enough disks to cover the number of columns specified.

Think of it as a row of bricks. If you have 3 columns, that means that 3 bricks are lined up in a row. When you expand, you are adding a new row and needs the same number of bricks. If you expand again, add a new row with 3 bricks. The optimize storage just takes the files in the first row and evenly distributes them among the new rows.

This is unlike some other RAID systems that instead of building layers, just adds the new brick to the end of the row. Then takes the data and chops up into more pieces and recalculate parity. Thus taking up less space overall for parity storage as a percent of the overall volume.

With Storage Spaces, deciding column size up front really sets you in stone unless you can migrate off to another pool. You are then doubly locked in with tiers as they require a fixed amount.
 

Kogashuko

New Member
Jun 16, 2019
4
0
1
Thank you. That makes perfect sense. At least the best that I have read. I am still looking at going to parody for my capacity tier then have SSD and NVMe in a mirrored tier. With my current mirrored setup with SSDs and HHDs in it I give up too much space. Before I had a simple parody array on Server 2012 R2 with three 5TB drives. When I built my latest one with an old r510 I installed three 8tb HHDs and two 1tb SSD drives. Its pretty fast but only a total capacity of around 11tb where the old one is at around 13tb. This isnt exact but you get the picture. Now that I have a forth 8tb HHD it only makes sense to rebuild since the r510 will only have enough bays to drop in a two more SSDs and four more HHDs before I have to go to an external JBOD. At this point I am probably best to get two NVMe drives as well prior to reconfiguing the server so I will have an NVMe tier. It almost looks to me like that will be impossible to install later. So two relatively small drives will be fine as long as windows server sees two of them. I can replace them later with bigger ones if I am not mistaken as long as I am keeping the total amount of drives the same or matching the total number of columns when I update.

So which option is best.

A) throw all of the drives into the system and put them together in parody letting windows setup the tiers (my understanding is that this will not work because Windows server 2019 cant use SSDs or NVMe for cacheing without manually putting SSDs or NVMe drives in a hybrid mirrored storage configuration.)

B) use powershell (something that I am shaky on and can find really little documentation) to make an HHD parody capacity tier and an SSD and NVMe cache tier in a mirrored configuration.

C) do the same as B only put the SSD tier in the capacity parody tier (since it will not be used for write back cache) and leave NVMe as the only set of drives in the mirrored tier.

D) just rebuild the whole thing like I did this last time but instead of having three HHDs I would have four HHDs, two SSDs, and two NVMes. Just have them all in a mirrored array. That way to upgrade I just need to drop in either two SSDs or four HHDs. I would replace the NVMes individually. I really dont need seeing more that 250gb of cache at this point ever.

I know this is a little off topic but I think this goes back to figuring out columns and needed drives under the OPs topic. If it was as easy as you described it above no one would have a problem. At this point I know exactly how many drives I have to add in my current config.

Thanks.
 

nonyhaha

Member
Nov 18, 2018
50
12
8
Can you explain how to do this in 2016? I'm looking at building a SS array with parity and I would like some way to expand it when I just add one physical drive.
1. So you want to start a parity storage space (minimum 3 drives)

2. Chris says you can do this with a command in powershell.

So I am running 2019 with three spinning disks and two SSDs in a mirrored tiered array. I am trying to expand adding a drive. Sever simply refuses to add it. How many drives do I have to add to make this work right?
3. You are trying to add a single disk to a mirrored/"parity" storage space and it fails.

3 hdd or 2 sdd. It is hard to just add 1 disk in Storage Spaces.

Chris
4. You now say you can't add a single disk to an existing storage space.

Which is it? I need to move from an existing 2 way mirror to a parity storage space.

I have 2x4tb mirrorer and 2x4tb new disks.

I want to remove 1 from the mirrored storage space.

I want to start with a 3 disk parity storage space.

After copying the files to this from the remaining disk from the mirrored storage space I want to add the 4th disk to the already existing 3 disk parity storage and make it a 4 disk parity storage.

Is this possible or not? :)

P.S. Using win server 2019.
 

gregsachs

Active Member
Aug 14, 2018
559
192
43
1. So you want to start a parity storage space (minimum 3 drives)



2. Chris says you can do this with a command in powershell.



3. You are trying to add a single disk to a mirrored/"parity" storage space and it fails.



4. You now say you can't add a single disk to an existing storage space.

Which is it? I need to move from an existing 2 way mirror to a parity storage space.

I have 2x4tb mirrorer and 2x4tb new disks.

I want to remove 1 from the mirrored storage space.

I want to start with a 3 disk parity storage space.

After copying the files to this from the remaining disk from the mirrored storage space I want to add the 4th disk to the already existing 3 disk parity storage and make it a 4 disk parity storage.

Is this possible or not? :)

P.S. Using win server 2019.
I haven't played with 19, only 16. You will/are getting stuck on columns and duplication.
(apologies if you know this)
Columns are the disks that data gets striped across.
Duplication is the number of copies of the data.
A mirror is single column, with duplication if you have two drives. To do two columns, you need 4 drives.
Basically number of drives=columns*data copies.
When expanding, you need to add drives in sets equal to the number of columns you have.
A basic parity space with 3 drives has 3 columns, so you must expand by adding 3 drives.
One would think that one could take a 3 drive parity space, add a 4th drive, and rebalance, but it hasn't worked that way when I have tried it.
I'd suggest using h-v or esxi to experiment with using small virtual disks.
 
  • Like
Reactions: nonyhaha

nonyhaha

Member
Nov 18, 2018
50
12
8
Thank you very much for the reply. Yes I do know about columns and I know that in the past windows could not expand the number of columns (although this should not be that big of a deal in our days). I did not know if there was any evolution on this restriction.

It is not rocket science. Files just need to be rearranged from split in 2 to split in 3 (for parity space 3 disk to 4 disk).

This should take a bit more than rebuilding array after a failed disk. (Read from old storage + calculate using parity + writing to new disk vs read from old storage + calculate + write to new AND old storage)...