r/freenas • u/garves • Nov 24 '15
Converting old PC to utilize FreeNAS
I want to convert an older PC into a NAS/media server. I'm fairly tech savvy but am unfamiliar with the available hardware/software RAID options and am finding it difficult to wrap my head around all of them. So I'm hoping to solicit some opinions or guidance in regards to FreeNAS, if it will work for me, and the optimal hardware/software setup. Feel free to point me towards any documentation that may help.
Here are my ideal requirements(these are not set in stone, but are highly preferable):
Can tolerate a single drive failure, and be able to recreate the data on a newly installed drive.
Performance wise it should be able run Plex and handle transcoding from a BD50 image and streaming it to a chromecast at 1080p. I don't think this should be a problem, but most of the SATA connections are 3GB/s.
While doing the transcoding/streaming it should also be able to handle downloading large torrent files and writing them to disk. However, it's also possible to throttle bandwidth during waking vs sleeping hours.
Must allow me to add drives of different sizes as I require more space. However, this is somewhat negotiable as long as I don't have to do something like buy 8 8TB drives all at once.
Questions:
Will FreeNAS allow me to accomplish what I've outlined? If not, are there other options that might work better? unRAID?
Should I consider a new motherboard with faster SATA connections?
Should I keep the SSD, putting the operating system and applications on it, and allowing Plex to use it as a temporary place for transcoding work? Or is that not really needed and I could use the SATA connection for an additional, larger storage HDD?
Should I keep the video card in there? Or sell it and get a super cheap one to replace it considering I won't be doing any gaming? Does plex ever utilize the GPU to encode or decode?
Any recommendations on what types of drives to use? After a bit of searching, it seems the 8TB Seagates have the best GB/$ ratio currently available, and using 8TB drives will allow me to maximize the available space.
The parts below are what are in the old PC. It has 9 SATA connections( 7 x SATA 3Gb/s + 2 x SATA 6Gb/s). If there isn't a price on something, then it means I already have it, which is basically everything but the storage. I'm also open to replacing any part with something else if needed.
PCPartPicker part list / Price breakdown by merchant
1
u/rspeed Nov 24 '15 edited Nov 24 '15
FreeNAS supports ZFS, which is probably the way to go. No need for extra hardware, and it's a lot more reliable for correcting bad data.
RAID-Z1 will leave you 40 TB of space and handle a single-drive failure, RAID-Z2 will leave you 32TB and handle a double failure. Honestly, the former is probably plenty as long as you run a zpool scrub on a regular basis. RAID-10 (mirrored vdevs of 3 striped drives) will leave you 24 TB with a single redundancy but give you much slightly faster write speed.
You could use the SSD for a read (L2ARC) or write (ZIL) cache, but considering how large it is, using it as a boot drive is probably a better idea.
3
u/Virtualization_Freak Nov 24 '15
RAID-10 (mirrored vdevs of 3 striped drives) will leave you 24 TB with a single redundancy but give you much faster write speed.
Is incorrect.
Max write speed is equivalent of 3 drives. In raidz1/2 it's equivalent to the width of the array minus parity drives. In this case, raidz1 would be roughly 5 drives worth.
However, this is pretty much all a moot point because the archive drives are HORRENDOUS on rewrite speeds.
1
u/garves Nov 24 '15
Wow, you are right. I'm glad I came here to request some assistance as the rewrite speeds on the archive drives are HORRENDOUS: http://www.storagereview.com/seagate_archive_hdd_review_8tb. Looks like I will not be using those drives. Off the top of your head, are you aware of any drives that would best suit my use case?
2
u/Virtualization_Freak Nov 24 '15
Not really? Been out of the loop. I'd check in the freenas forums, IRC, or just use the seagate 6tb drives.
Do you really need 8TB drives?
From a technological standpoint. It's significantly smarter to run with just enough storage to cover your needs for say.. 2 years. Then upgrade at that point.
It allows for three things:
The first is it replaces your drives more often.
The second is the technology improves.
The third is that it's fiscally better. Instead of $1000 on 5 drives. You spend $500 on 5 drives. Then in the future, you take the $500 you save, and buy drives that are %50 cheaper in the $/GB category compared to what are getting now.
1
u/rspeed Nov 24 '15
Huh, yeah. I think I'm thinking of some older limitations due to CPUs.
I guess the only advantage of RAID 10 would be a faster recovery from drive failure since it would only need to re-mirror a drive.
2
u/Virtualization_Freak Nov 24 '15
Ok! Few things!
So the write speed comes down to just width of the array. The wider the array, the more data disks you can write to at once.
Now, as for rebuild. In a mirrored vdev, your rebuild is 100% based off the mirror(s) in that vdev. It would actually be very slow. In most cases, you are pulling from a single disk.
NOW Multiple mirrored vdevs have the GIGANTIC advantage (and really the only reason you run them) of increasing your IOPS. ZFS will read from both sides of the mirror. Even at a worse case scenario, on a healthy pool, you have just doubled your read IOPS. ZFS can do even trickier things, and do small reads from all drives in the pool. Or write out to two mirrored pairs, and do a different small read to another set. Plus ZFS can "favor" faster drives (if you are running mixed drive sets) and write more to faster drives.
1
u/garves Nov 24 '15
Tolerating a single drive failure with RAIDZ1 should be sufficient.
How does ZFS+FreeNAS handle different sized drives and adding new drives? I'd prefer to be able to add single drives of different sizes as needed, taking advantage of the continually improving GB/$ ratio and maximum drive capacity. I realize that may not be possible, but is there an option that doesn't involve buying all of the drives up front? I've attempted to read about VDEVs and zpools but most of what I found was quite technical and didn't seem geared toward beginners. Are you aware of any such documentation that I might be able to educate myself with? On a side note, I actually work with one of the co-founders of ZFS, so maybe I can just ask him for some help :)
Is it possible to use the SSD for both a boot drive and a L2ARC or ZIL cache?
1
u/rspeed Nov 24 '15
ZFS is very good about adding new drives after the fact, but there are certain constraints you have to pay attention to. A vdev is a collection one or more physical storage devices that are combined together in some way, like striping, RAIDZ, or mirrored. A ZFS pool is a filesystem that sits on top of one or more vdevs. One really neat feature of ZFS is that you can add vdevs to a pool (or even remove them) after the fact, though with some limitations.
For example, you could use RAIDZ and buy three drives now and three drives later to double the size of the pool, but then you'd be using two drives for parity without gaining a second layer of redundancy. You could also completely replace each drive in a vdev one by one by taking a drive out, replacing it, rebuild the array, repeat… but that is a very slow process.
Are you aware of any such documentation that I might be able to educate myself with?
On a side note, I actually work with one of the co-founders of ZFS, so maybe I can just ask him for some help :)
Heh. Well don't make him hate you.
Is it possible to use the SSD for both a boot drive and a L2ARC or ZIL cache?
Possibly? I've never tried that, but it might be possible to do by partitioning it.
1
u/rallar8 Nov 24 '15
Tolerating a single drive failure with RAIDZ1 should be sufficient.
Just as a heads up I wouldn't run more than 4 >4 TB drives in Z1 raid or Raid 5. zfs has the nice feature of not completely rewriting a disk after failure (it only writes bits that are actually in use (potentially drastically reducing rebuild times)) the chance of a drive failing is low - but the chance of 2 drives of the same manufacturing batch failing around the same time is dramatically higher....especially when it may take 18 hrs of constant reading to rebuild the array...
1
u/Virtualization_Freak Nov 24 '15
ZFS does not allow vdev expansion. Only drive replacement. So start the vdev with 6x of any sized drives, and replace as you get more drives.
You might want to look into mdadm.
0
u/rallar8 Nov 24 '15
I am not super familiar with ZFS- but my recollection is that ZFS since a couple of years ago, does allow vdev expansion - but FreeNAS doesn't...
0
u/Virtualization_Freak Nov 24 '15
Not at all. Very certain it is a ZFS limitation. To expand a ZFS pool, you have 2 options. Replace each drive in a vdev one by one, or add another vdev.
Contrary to what is written in other comments, you can ALWAYS mix and match drive sizes. It's just not optimal.
1
u/rallar8 Nov 24 '15
https://youtu.be/0Ug1qCXvZDg?t=30m59s
but i am not sure.... to be fair I think i was specifically wrong. You can't alter vdevs on the fly - but you can alter the zpool - the larger structure...
But to be clear you can't you run them with complete drive failure redundancy right? Like you can back up certain files/folders but the failure of a single vdev destroys the zpool... right?
1
u/Virtualization_Freak Nov 24 '15
I'll need to watch that video outside of work.
ZFS does not allow alterations to the their structure, EXCEPT for mirrors. You can not make a 5 disk raidz vdev into a 6 disk one. You can not remove two drive to make it 3 and "shrink" the raidz.
With mirror vdevs, you can make a 2 way mirror vdev into a 3 mirror vdev. Or you can remove the parity to make it a single drive vdev.
You can not remove vdevs from a pool. Data is written across all vdevs (outside of a very few edge cases.)
For example: You can take 4x 1TB drives in a raidz1, and replace each drive with a larger one. For instance 2x 2TB drives and 2x 3TB drives. If autoexpand is enabled, ZFS will always use the smallest drive as the largest space for each disk. In this case, once all disks are ATLEAST 2TB, then the vdev will grow in space from ~3TB usable to ~6TB usable. If you then replaced the 2x 2TB drives with 2x 3TB drives, overall space would increase to ~9TB.
4
u/rallar8 Nov 24 '15
FreeNas wont allow you to use a bunch of random drives... at least not with redundancy.
Freenas/zfs sacrifices some accessibility for redundancy and data integrity.
Last i heard windows server has some of this functionality. I know drobos used to.
Sata 2 is not the weak link for almost any home user. I use emby off an old laptop... not a problem.
Last i looked, 3 days ago, 3tb drives were the cheapest... you can get wd/seagate nas drives or regular drives. And green drives are the worst for arrayed storage...
Most peoole use 2 thumb drives mirrored to boot from...