DIY NAS: Difference between revisions
No edit summary |
No edit summary |
||
Line 47: | Line 47: | ||
*HDD: 3x [http://www.wdc.com/en/products/products.aspx?id=1280 WD Red Pro 6TB WD6002FFWX] | *HDD: 3x [http://www.wdc.com/en/products/products.aspx?id=1280 WD Red Pro 6TB WD6002FFWX] | ||
*Case: [http://www.fractal-design.com/home/product/cases/node-series/node-804 Fractal Design Node 804] | *Case: [http://www.fractal-design.com/home/product/cases/node-series/node-804 Fractal Design Node 804] | ||
It took me 2 days (or rather: nights) to come up with this build, and i'll be only able to call it a good decision after it's installed, configured and running as expected, but there's a good reason why i chose each component and not something else. | |||
First off, the motherboard. Supermicro has become a quite respected manufacturer, at least in my opinion. They're not wasting their money on huge marketing and fancy graphics on the boxes their boards ship in, but rather on simple and well thought-out devices. I don't need airflow guides made from carbon fiber and more blinking lights than your average christmas tree, but here's what i need, and what their board offers: | |||
* 8 SATA ports, so i can keep adding drives | |||
* M.2 NVMe port, so the OS (and Cache) SSD doesn't block a precious SATA port | |||
* IPMI, so i can remotely manage it | |||
* dual Gbit NICs, just because. | |||
The CPU was probably the only rational decision, it was the smallest and cheapest available that can be used with the motherboard. Considering that the 4+ year old CPU in the old NAS was mostly twiddling its thumbs, i don't think this was a bad choice. But hey, i can upgrade to a real Xeon if i feel like it. | |||
Could i have added a bit more RAM, especially because it's currently dirt cheap? Sure. But why. There are still 2 additional slots available, so maybe later. But i really wanted to have ECC RAM! The markup compared to Non-ECC RAM was insignificant, and with all the other components being geared towards reliability, this was an easy decision. And yes, the board and the CPU both support ECC RAM. | |||
Now regarding the SSD for the OS (and Cache), this was initially just a "How cool would it be to have an M.2 SSD in there?"-thought, especially if you consider that 128GB is a lot of wasted (and expensive) space if OpenMediaVault is happy with less than 5GB, and lots of people actually use for their system drive just cheap USB Sticks which they replace every couple of months. On the one hand i wanted a reliable system, so using an USB Stick that pretty quickly wears out was definitely not an option, but on the other hand i didn't want to give up a SATA port, which would mean one less disk for the RAID array. I could have added an PCIe SATA controller and plugged a regular SSD into that, but the combined cost of those two would be higher than just buying a M.2 NVMe SSD. NVMe means that the drive is '''really''' fast, compared to normal SATA SSDs. | |||
That makes even less sense if i use it as the system drive - which doesn't even need to be when the system boots, once every couple of months, right? Yes, if i'd only use it as the drive! | |||
It does make a lot of sense if i also use it as a cache drive, using [https://en.wikipedia.org/wiki/Bcache bcache]. |
Revision as of 00:07, 27 August 2016
I've learned two things in the past: you can never have enough money, and you can never have enough disk space. Okay, there's a third thing i've learned: those two above are mutually exclusive. My first NAS was a Conceptronic CH3SNAS with two 1TB drives as RAID1 and a Gbit NIC. The existing OS on there was pretty soon "extended" with FFP to work around some issues and also provide access to the system's shell.
Having shell access taught me some things about off-the-shelf consumer NAS and their manufacturers:
- They're just using Linux, too
- They're stripping all the good stuff to optimize their system
- They're not good at optimizing
With these insights, the observation that the weak CPU of the CH3SNAS was not even remotely able to provide Gbit-bandwith (only ~20MByte/s) and the strong desire to have a more flexible storage solution, i decided to build my own NAS from off-the-shelf computer parts - and have never looked back.
What OS should i use?
My original idea was to basically just build a regular PC, just without any fancy graphics card, a cheap but reasonably powered CPU and loads of large drives, then put Debian Linux on there and just start from scratch configuring all the services like Samba and... well, actually i only needed Samba, but with decent performance.
No big deal and easily done, right? But then i discovered OpenMediaVault. Don't get, i'm more than capable of installing, configuring and maintaining my Linux systems, and happy to have something to tinker with, but OMV looked like it would be easy to use (compared to e.g. Openfiler) and by that i mean "keep me from tinkering too much with it, losing Terabytes of data in the process". And it was just a regular Debian Linux under the hood, so i'd still have all the freedom i want.
After 4 years of using it, i'm still convinced that going with OMV was the best decision, compared to the alternatives out there - and i tried a couple of them - so this would be my OS recommendation for everybody looking into building their own NAS, too.
Blockbox (2012)
- Motherboard: Asus E35M1-I
- CPU: onboard AMD E-350
- RAM: 2x 2GB DDR3 1333MHz
- SSD:
OCZ Agility 3 60GBSamsung 840 128GB - HDD: 6x WD Green 2TB WD20EARX
- Case: Lian-Li PC-Q08 black
The HDDs are configured in a RAID5 (mdadm) with ~9TB usage storage space and have been running 24/7 for the last 4 years. No failures at all. That can't be said of the OCZ SSD i was using for the OS, though. The CPU is more than sufficient to saturate the Gbit link when reading and writing to the disks and only shows only moderate load when Syncthing hashes new files (like my nightly backups, more on that later).
Overall this system is still more than sufficient, performance-wise. One could even say it is quite a bit over-powered for its purpose. Unfortunately it's also maxed out, storage-wise.
Upgrade Options
Back in 2012 i was confident that going from 1TB of available space to ~10TB would last me a lot longer than 4 years, but now (2016) i'm down to ~500GB space left, which brings me into the Danger Zone™ of <5%. So what are my options?
- More disks: not possible, only 6 SATA ports on the board
- Bigger disks: possible, but would require replacement of all 6 disks, which is quite expensive
- New NAS: possible, also quite expensive
So the choice is between replacing all 6 disks with 6TB ones, which would cost roughly 1700€, get me ~27TB in RAID5 and limit my options for further expansion, or building a new NAS with fewer drives (3x 6TB), wich means less available space to start with (11TB in RAID5), but with more SATA ports, which means with a better upgrade path for the future, for about the same amount of money.
Considering the urgent requirement for a bit more disk space, but not that much right away, i went for the new NAS.
Blockbox (2016)
- Motherboard: Supermicro X11SSH-F
- CPU: Intel i3 6100
- RAM: 2x Kingston 4GB DDR4 2133 ECC
- SSD: Samsung SM951 NVMe M.2 128GB
- HDD: 3x WD Red Pro 6TB WD6002FFWX
- Case: Fractal Design Node 804
It took me 2 days (or rather: nights) to come up with this build, and i'll be only able to call it a good decision after it's installed, configured and running as expected, but there's a good reason why i chose each component and not something else.
First off, the motherboard. Supermicro has become a quite respected manufacturer, at least in my opinion. They're not wasting their money on huge marketing and fancy graphics on the boxes their boards ship in, but rather on simple and well thought-out devices. I don't need airflow guides made from carbon fiber and more blinking lights than your average christmas tree, but here's what i need, and what their board offers:
- 8 SATA ports, so i can keep adding drives
- M.2 NVMe port, so the OS (and Cache) SSD doesn't block a precious SATA port
- IPMI, so i can remotely manage it
- dual Gbit NICs, just because.
The CPU was probably the only rational decision, it was the smallest and cheapest available that can be used with the motherboard. Considering that the 4+ year old CPU in the old NAS was mostly twiddling its thumbs, i don't think this was a bad choice. But hey, i can upgrade to a real Xeon if i feel like it.
Could i have added a bit more RAM, especially because it's currently dirt cheap? Sure. But why. There are still 2 additional slots available, so maybe later. But i really wanted to have ECC RAM! The markup compared to Non-ECC RAM was insignificant, and with all the other components being geared towards reliability, this was an easy decision. And yes, the board and the CPU both support ECC RAM.
Now regarding the SSD for the OS (and Cache), this was initially just a "How cool would it be to have an M.2 SSD in there?"-thought, especially if you consider that 128GB is a lot of wasted (and expensive) space if OpenMediaVault is happy with less than 5GB, and lots of people actually use for their system drive just cheap USB Sticks which they replace every couple of months. On the one hand i wanted a reliable system, so using an USB Stick that pretty quickly wears out was definitely not an option, but on the other hand i didn't want to give up a SATA port, which would mean one less disk for the RAID array. I could have added an PCIe SATA controller and plugged a regular SSD into that, but the combined cost of those two would be higher than just buying a M.2 NVMe SSD. NVMe means that the drive is really fast, compared to normal SATA SSDs. That makes even less sense if i use it as the system drive - which doesn't even need to be when the system boots, once every couple of months, right? Yes, if i'd only use it as the drive! It does make a lot of sense if i also use it as a cache drive, using bcache.