I recently ordered 6x 2TB drives to throw in my Xpenology NAS, my 1TB drives were tired and starting to fail – not bad for 5+ year old Seagate drives! The only issue is that I ordered them “refurbished” from NewEgg, each came with 30k+ hours and about 12 power cycles (obviously yanked out of a datacenter). Two arrived unsealed and DOA, including one with very obvious hardware damage – the other with creeping reallocated sectors.
I shrugged and RMA’d the two drives, while waiting for the replacements – another drive failed and then I returned them all. Obviously someone was smart at the Datacenter and planned the average end of life (Mfg 2010 – 30k hours). Somehow thousands of them ended up on NewEgg as “refurbs”. I don’t know about you, but throwing tired drives directly out of a datacenter with virtually no testing doesn’t sound like refurbishment to me.
So here we are, back to square one. To make it worse, Synology has recently started adding undocumented malicious code to their files, causing Xpenology to fantastically crash – they released an “update” under the same exact build and version number so their intentions are clear. With DSM 6 coming, it sounds like it’s end of line for Xpenology.
So what do I do? I’ve been a fan of Freenas for some time, it was what I ran before Xpenology. It has some pretty stringent requirements though, such as ECC ram (and at least 8GB of it, 1GB more for every TB of HDD space for ARC Cache) and it isn’t exactly a walk in the park to administer. Yeah, I know – don’t add SSD L2ARC or ZIL, just buy more RAM, more RAM – you got 128GB of RAM, right? Then of course, my server doesn’t have ECC RAM so according to the internet at large, I’m risking silent data corruption if I run without it. So just grab some ECC RAM right? Wrong. That’s another Motherboard, CPU and RAM that would need purchasing.
What about just buying a Synology unit? The DS716+ looks mighty appealing, no compromises NAS with 4k transcoding and VM support. I could simply throw in 2x 6TB drives in SHR1 and call it a day. The issue comes to expansion, another $150 for another 2x bays or a whopping $500+ for 5 bays! That’s a chunk of change for a dumb SATA expander enclosure. Well, and I’d be voting with my money, saying it’s okay to screw over Xpenology. Worst of all, I’d have a perfectly good mobo, CPU, ram, PSU and case go to waste – which are infinitely more powerful then the DS716+ anyway. The breaking point was the “Warranty void if removed” sticker on the Syno’s RAM module. Give us 2GB of ram and a way to expand to 8GB easily but screw over those that do because they didn’t buy the next model up? Screw you Synology.
So what other solutions do we have? Well, UNRAID I suppose. I don’t like it though, it’s closed source and their “arrays” are some cobbled together proprietary solution. Sure, there is an easy to use SSD cache but it’s set to only flush every so often using some sort of cron job – and that it’s only for writes. It isn’t a true storage pool, it throws data across disks and you read from them individually, only one disk parity is allowed. “Hye guyz, let’s make a NAS OS that doesn’t use safe parity and doesn’t offer IOPS scaling, then charge for it!”. I’ll pick UNRAID the moment I throw together a 24 disk array and only want single drive read and write performance with single parity.
OpenMediaVault, Nas4Free and others – not great no nonexistent plugin support. As I want to host Plex and others on the box to make the power usage worth it, these won’t work and seem to not be as popular as other solutions.
So build your own? MDADM + LVM + LVM SSD Cache? Seems the most flexible and feature rich doesn’t it? I could install XEN and do PCIE passthrough to have an all in one Steam server/Plex/NAS rig. The burning question would remain, would I spend far too much time tweaking/playing with it, time that could go towards productive projects? This is my worry and why I dumped beloved Android for iOS. Tweaking, rooting and compiling kernels is FUN but it isn’t productive – a time suck. This is why I switched from Linux to OS X, just power the damn thing on and do actual work – save me from myself in tweaking it and not actually getting work done.
So what are we left with? Rockstor looks most appealing. It’s a newish Linux based BTRFS NAS OS built using Django and CentOS. It’s open source, it has plugins using Docker, you can add/remove/change RAID pools and disks. “Stable” update channel costs $15/year but it makes total sense, it’s free if you agree to help beta test and if you don’t like something, fork it and compile your own install. Only two main issues: 1. RAID5/6 is not yet fully mature on BTRFS, for example – they still have the write hole problem (old school) 2. The plugin system while awesome as it’s on Docker, is restricted to what images they provide as a JSON string in the source code. I totally get it though, allowing the full Docker Registry on a Beta NAS OS is bad news, for example a change in the Plex Docker image they use leads to / having permissions changed and the OS breaking.
So I’m stuck with this need of a NAS but having issues committing to a platform. Rockstor seems awesome and I’ve tested it in a VM but isn’t yet mature. Building my own would serve my needs and more but can turn into a time suck rather easily. Do I just go ahead and commit to Rockstor and ride along the stable updates or do I build my own?