the short answer to “how big should my hard drives be?” is “as big as you can afford.” while the longer answer is, “it depends,” the shorter answer really does stand the test of time well.

File Systems

the file system you use actually impacts what size drives you should get slightly. this is not the post where i am going to debate the pros and cons of certain types of file systems. in fact, to avoid that debate entirely, i will state that the best file system to use for a redundant home server is ZFS. i know i will take some heat in the comments for this, but just go with it. if we know we are going to be working with an OS that uses ZFS, then we can do some calculations about how much usable storage space we will get from our drives.

Working Backwards

before we think about how large our drives need to be, we need to think about how much usable space do i want to have in the end? so for example, say i want to have at least 10TB of usable space. how do i want to get to this 10TB mark? since this is a small home server, i think a mirror (RAID1) is best. now its time for some math.

we don’t get 100% of hard drive space. in the previous example, i cannot buy a 10TB drive and get 10TB usable space out of it because all hard drives lose 10% total space for the table which indexes where all the files are. this 10% is reserved and cannot be written to. if i bought a 10TB drive, i would only get 9TB usable out of it. the next size up is a 12TB drive; this will yield somewhere around 10.8TB usable.

here’s the important part about knowing your file system. ZFS gets mad and will warn you when your drives are over 80% full because that’s when performance using the ZFS file system begins to degrade. an admin using ZFS doesn’t want more than 80% of their drives full at any time, and as they approach this mark, they will usually expand. if ZFS doesn’t like more than 80% capacity, and i know i will need 10TB of space, then that means i need drives that accompany 20% more than 10TB. in fact, since i know i am losing 10% to indexing and my drives cant be more than 80% full i can divide my 10TB by .9 (100% minus 10%) and then again by .8. this wizardry yields us an answer of 13.8.

finally, i can say that if i want a RAID1 mirror yielding 10TB of usable space i need to purchase two 14TB hard drives. its important to understand this, because a new home admin will see that we bought 28TB of drives but are only getting around 10TB of space for it and not understand why.

Another Example

now that we know how to do the math, what if we wanted to use a different RAID type which yields more space by using a different parity level? will that save us money? lets look at RAIDZ1 for example. using the same 10TB usable storage goal and knowing we now need to use three drives instead of two for our previous mirror, lets do some more math. three 6TB drives gives us 12TB before our loss of 10% and then 80% (remember we need 1 drive worth of space for parity, so we lose an entire 6TB HDD for that). we’re not going to make it with those numbers. we would need to go to three 8TB drives. that gives us 16TB of space minus our 10% + 80% = 11.52TB usable. so in this case we bought 24TB worth of drives and got 11.5TB of space out of it.

it looks good at first – we bought less HDD space than before (24TB vs 28TB) and got more space for it (11.5TB vs 10TB). so what is the real world price of doing this? as of the time of this article (which is the holidays so bear with me on this) using WD Red Plus drives, the 14TB drive is $268 and the 8TB is $187. this means the mirrored array consisting of two 14TB drives will cost $536 dollars and the RAIDZ1 with three 8TB drives will cost $561.

the mirror ends up being safer (better parity), higher performing, easier to manage, cheaper to buy, and cheaper to own. so while at first you may think it is better to go with more drives that seem cheaper, the cost of doing this doesn’t add up in the end.

How much space do I need?

i don’t know, but i will tell you, however much you are planning for – double it. hard drive space, like socks, has a way of disappearing unexpectedly. since you can see from the above example how little space we get due to the safety of redundancy, go with the biggest drives you can afford. also know that bigger drives give more TB for less money and are more energy efficient, saving you on the electricity bill (each HDD pulls around 20W or so). this is an area you will regret if you get wrong. get big drives the first time and save yourself the headache of having to expand later. the less drives your server has, the easier it is to manage.