2012/12/30

Storage: An unRAID beginning

About a month or two ago I got fed up with my latest HDD loss, so I started looking around for redundant, easily expandable storage solutions that wouldn't cost an arm and a leg...

The problem
What I wanted to get was a safer way of storing my stuff. Photos, music, videos, installers, (I've 300+ titles in my steam library and it takes quite a while to download the bigger games) work and learning related stuff and others. For this, and the magnitude of the data, the only real solution is parity protection, which means for N disks, I get the storage area of N-1 or N-2 disks, depending on the algorithm and safety margins. Mirroring is simply not feasable for the home consumer, as the two and half HDD vendors have kept their prices diligently up after the floods. (There is one target for the courts to start sniffing about, my 2,5 year old 2TB would cost twice as much right now.)

I didn't want hardware solutions, as they have very, very big problems. First, if the controller dies, you can only replace it with the same controller. So seamless expansion beyond the controllers capabilities is flat out of the question. The second is that they are not flexible in any way. If you mix 2 and 3 TB drives (because you don't want to get a full rack of new drives when you have some older, still good ones) you are lucky if they will take the 3TBs in as 2TB storage. If you are unlucky, they will demand the same model for all ports. Should there be a problem with them, you might get a firmware fix. Or not. And there are much more vocal people talking about the software solutions than the specific controllers.

I didn't want one of those NAS boxes either, because they usually compounded the HW problem with almost nonexistent expandability that is brought on by their diminutive size and usually quite high price (for the minimal footprint I don't care about). Plus they have also problems, and many only offer storage, not parity protected storage. So they are also disqualified.

The candidates
I did look at many solutions on the market today. We have two from Microsoft: the old Windows Home Server Drive Extender, which was killed, and the Storage Spaces model in Windows 8 and the new Server. I also had a look at Flexiraid, a software solution, and then found unRAID, which - as opposed to those before - is a paid software above 3 disks.

Microsoft: Drive Extender
Drive extender sounds like a great solution: you can add disks on-the-fly, use their full storage, plus I think it also offers some protection. The biggest obvious problem with Drive Extender was that it is no longer really supported in any real sense. The second problem was that you can still read about bugs in it: arrays suddenly getting trashed. Since the data is stored in a propietary format - I think striped - it is difficult to get it back after a crash. So yeah, I wouldn't use it for anything remotely vital.

Microsoft: Storage Spaces
One of the big things in Windows 8. It has all the good features of Drive Extender and then some. You can build parity protected or 2/3-way mirrored storages, overprovision, etc. It also retains some of the Drive Extenders problems. The data is striped for performance, which makes recovery a real pain, if not impossible for the budget of an average person. If you lose more disks than the number of parity disks, you will lose all your data. As the new kid on the block, there isn't any big, real world application of it that has been on for years, so we don't know about any possible long-term bugs and such. Also, if you use overprovisioning (you are more or less driven to) and fill up your drives, Windows will automatically umount the storage spaces, and you will have to remount them manually, after adding a new disk. WTF? I'll let others experiment with it, as the longer I read about it, the more cautious I became.

FlexiRAID
One of the software raid solutions. It is quite peculiar, as the main version offers not real-time but snapshot protection. There is a real-time version also, but they still seem very buggy. Also, last time I tried setting it up it was a nightmare. It does have very interesting notions, like operating on filesystem level, not deeper, and thus protecting files and directories instead of disks. Due to this, if you lose more disks than the protection, you will still retain the full data on the other disks. The other big plus is that it does not require you to set up a new server, as it is only an extra program running on Windows.

unRAID
Somewhat like FlexiRAID in that it is also software based and operates on the filesystem level. This is linux based server and runs from a pendrive. You can access data through FTP, Samba or NFS. The data is stored on the disks in reiserFS, with one parity disk. Like FlexiRAID, if you lose two or more disks, your data on the other disks will still be safe. As ideally, it works as a NAS that you stuck away in the basement, it does have some optional plugins, like mail alerts, and you can even install a virtualbox server to it. Although so far I've been unable to do that one. That said, I didn't spend more than maybe 30 minutes trying. The problems of unRAID are twofold: first, you have to have a new server, second, you have to pay. Yes, there is a free version that will support 3 disks at a time, but that doesn't even offer user level security.

A limitetion to keep in mind with unRAID is that it will only utilize the data drives up to the capacity of the parity drive. So if you have two 3TB drives for data and only a 2TB for parity, you will get 4TB of space. If you swap a 3TB with the parity, this will increase to 5TB.

The server: bits from the cupboard
Luckily, I just upgraded my old desktop, so I had some surplus components: an ASrock motherboard with six SATA connectors, an AMD Athlon II X3-400e processor, 6 GBs of DDR2 memory, some cables and a old 450W Chieftec power supply that I had just cleaned and the replaced the fan in. So I needed a case, some more cables and the drives. Plus some rubber rope from eBay.

Case: Sharkoon REX8
Very new on the market, a budget case with 8x5.25" spaces, just what I needed. It turns out this wasn't entirely the case unfortunately. Note that this is not my first Sharkoon case, I also have a Rebel9 Economy for my gaming rig. On the basis of these two, I have to say that Sharkoon cases are not as great as they try to make them appear. Let's get down to the causes!

First, the front fan placement. You can only have two 12cm fans, and if you use the included HDD/fan brackets, you cannot install a fan in front of a HDD. As would be obvious. I cannot fathom what the designers were thinking when they thought this would be OK. Then again, they also had the idea of using screws to "secure" the fully plastic brackets to the case. Needless to say a number of these already worn their threads almost bare. German quality, riiiiiight.
The bracket: place for 3.5" and 2.5" drives or a 12cm fan.

Although these are supposedly fan brackets, their airflow resistance is quite big, thanks to the stylized cut-out fan blades on them that seem to be from an 8cm fan. Note that (unless you use rubber holders) you can't install 8cm fans on them, only 12cm versions.

The front face plate is of course fully plastic as well. Due to the lack of rigidity, the designers inserted plastic crossbars. The problem with this is that they just threw it down without regard to a possible installed frontal fan. You would either have to move the fan even more inside to be able to install the plate. As there is no warranty on the case, I chose to break this off. This does cause the 5.25" covers to come off if you handle the house roughly or push on them, but that is not what a server is about, so an acceptable loss. Then again, the Rebel9 solved this much better.
Looks OK from the front...

The craftmanship is generally shoddy. This is my first case where the threads of the motherboard standoffs were so bad I had to resort to plyers for installation. The bottom plate has some issues as well, namely I cut myself on the threads sticking up.

As this is a very budget case, the thin, wobbly metal sides are to be expected. Yes, something like the sturdy sides of my Antex P180 would be better, but that case costs many times the price of this. Due to this, getting the back plate on the case again can be tricky if you have cables there to manage the jungle.
Cable management: more space needed!

The good parts of the case? The quick fasteners that I didn't have any use for. They seemed to be working OK. And the price, though a Fractal Design Core 3000 was only about 20 euros more expensive. (But it had a different mounting system and I was really short on cash.)

HDD mounting: rope!
Any silent computing fan worth their salt will tell you that one of the cheapest and best method for mounting a HDD inside a case is to use some kind of rubber rope. I went for 4.5 mm kayaking/bungee rope this time, and they hold up very well. Actually, I had to use the plastic mounts for a few days first, and the difference in noise and vibration is still staggering. This said, I could only use 7 slots for this mounting method, as the bottom one was missing a opening.
And the black/neon blue pairing even looks good.

Yes, they seem a bit unstable, but trust me, they are quite safe. They do move around, but not only with sufficient force. This is why the vibration insulation is so good. Not perfect, but still very good. It is a bit difficult to get the drives in and out, as even a 4-5 mm rubber cord is quite powerful.

Drives: a healthy mix
I asked around, and yes, there seem to be some (very few) cases when drives of the exact same type bought together also fail together. To mitigate this, I tried mixing up my drives: I bought two Hitachi drives and two Western Digital drives. One of the latter is a Red, the other an AV-GP. The fifth you see on the newer pictures is an older Seagate that I plan to replace the parity drive with.
The finished server. (the PATA drive on top is there for the eventual virtualbox server.)

unRAID: experience
So far so good, I have to say. Writing performance is 20-40 MB/s, totally acceptable, reading is 80-100 MB/s. My only real complaints are that the wake-on-lan gets disabled on every boot and wake and that sometimes a wake goes into crash. Then again, this might be a problem with the board, as I also couldn't get it to sleep properly under Windows 7.

Right now I don't use a cache drive, because first, the writing speed is OK for me, second, I do my copies on one thread, so no problematic fragmentation occurs.

1 comment:

Nicholas Cardwell said...

"A limitetion to keep in mind with unRAID is that it will only utilize the data drives up to the capacity of the parity drive. So if you have two 3TB drives for data and only a 2TB for parity, you will get 4TB of space. If you swap a 3TB with the parity, this will increase to 5TB."

Slightly wrong. Biggest hard drive has to be parity drive, everything else is data. So if you have 2qty 3TB and 1qty 2TB drive. Total storage is 5TB (3tb & 2TB) with 3TB parity. If you get a 4TB drive, you will have 4TB parity, 8TB storage (2qty 3TB & 1qty 2TB)