2015/06/05

FreeNAS Grievances

FreeNAS Grievances

This listing is maintained by killermist, and not an official rant, so complain to killermist if you think any of this is in error. (hint: it isn't)

Plugins

Such a bad idea from the word “Go.”
Let's start with a definition. NAS means “Network Attached Storage”. It doesn't mean ANYTHING else. It definitely does NOT mean “database server”, or “media transcoder”, or “usenet scheduler and downloader”.
In opening up the Pandora's Box that is “plugins”, it encourages users to do with their NAS things that a NAS isn't intended to do.
On top of this, there's the problem of feature bloat and feature lag.
With users doing so many unrelated and inappropriate things with their NAS, extra care must be taken to not break any of the user's precious plugins. So, every time some feature or program that is in the core system gets upgraded, all kinds of stupid extra tests have to be performed to make sure they don't break user plugins. There's your feature lag.
If in order to keep user plugins running, 2 versions of some thing must coexist, that means you're wasting space keeping the 2 versions of the thing around. There's your feature bloat.

ZFS Partitioning

Where to start with this abomination…. ZFS is memory hungry. Duh. If you don't have enough of it, you're going to have problems. Remember this, I'll come back to it.
Anyone that knows anything about ZFS knows that you want to feed it raw disks to manage. Why?
  1. If ZFS controls the whole drive, it can intelligently choose what, if anything, to do with the drive's in-built cache.
  2. ZFS should, in anything resembling optimal conditions, be the only user of a drive, and not be challenged for I/O time.
Remember how I said that ZFS is memory hungry? Well, what genius idea did the FreeNAS people have to deal with people without enough memory? SWAP! That's right, swap. And how do they plan to pay for this swap? Well, by taking every disk that will be part of a ZFS pool and partitioning a few percent of it to be swap. Then they take and make the remaining space a partition that will be used for the pool.
So, they wasted space. They put something on ZFS disks that will likely challenge ZFS for I/O time. AND they've prohibited ZFS from exercising its own control over the drive cache.
But, that's one of the things I'd expect from a system designed by committee.

ZFS Documentation

As is only possible in a system designed by committee, the documentation takes liberties with the language and nomenclature that can only confuse users when they try to figure out what they're doing. For example. In ZFS, a volume is a virtual block device that acts like a disk. A volume IS NOT a pool. A volume is a child construct of a pool.
But, the people creating FreeNAS obviously know NOTHING about ZFS, so I can't be surprised that they screwed up the nomenclature/language.

This was originally posted on  the NAS4Free wiki by me.  This is just another copy, just in case.

No comments:

Post a Comment