Painpoints with ZFS and FreeBSD
Hey guys,
I’m running my FreeBSD server now for around 1 month using ZFS for all my data. I was fascinated by ZFS for a long time (well, for a few days even), but with the time, it seems that there are 2 things that are not so well as expected using ZFS.
Painpoint 1 [Speed]
Yes, ZFS with an zpool using RAIDz1 (RAID5 similar) is a lot of work for the CPU and a lot thing to buffer for the RAM. It’s not that I wasn’t warned by the docs, 1GB of RAM is mandatory for running RAIDz1. The reason is quiet simple explained:
RAIDz1 needs to check itself, the so-called “self healing process”. That costs a lot of power and time. Reading and comparing the checksums (which is the magic behind the security) is time expensive. The result?
Well, writing files to my UFS partition (system disk) means to be able to put files with 80-90MByte/s through the GBit network onto this disk.
Same line, same source, but different disk(s) (now the zpool) ends up in putting just 30-40MByte/s through the network.
Both tests are done using an NFS share between my Mac Pro and the FreeBSD server in the basement.
Well, that’s odd and a bit frustrating for me, because it took me a few hours of work to extend the network from 100MBit/s Level to 1GBit/s Level by checking every single connection in the plugs and beeing sure everything is grounded.
Painpoint 2 [Expansion issues]
Sure, ZFS/RAIDz1 is no Drobo, so you can’t easily hot plug drives in and out and get “full” usage of the new disks by doing so. That’s ok, but the really annoying thing is, that you cannot expand your RAIDz1 zpool afterwards. If you want to expand your zpool, you’ll need to store your files somewhere (sure, it is recommended to have a current backup everytime, so that shouldn’t be the problem for the people who are doing this naturally) and destroy the old zpool and create the new one with the new disk.
That’s ok if you have for example 3x 1TB disks and want to add at least 1 more disk to have a final size of around about 2.8TB available and then you’re finished with that project. But if you want to storage to grow, there’s just one (expensive) chance to do this:
Buy at least 3 1TB disks and build a seconds zpool. Then you are able to mix both zpools to one large. That’s expensive, maybe a nice solution for a company, because that would result in something called a RAIDz2 / RAID6 similar with 2 parity disks. But for easy growing, ZFS is not the filesystem you’ve dreamed off. It’s easier to do those things with LVM on Linux for example. Haven’t used LVM on more than one disk for myself honestly, so I can’t say anything about security regarding LVM.
Painpoint 3 [FreeBSD]
FreeBSD is cool, isn’t it? It’s more or less to administrate and it’s rock solid. Yes it is, but the first thing, easy to administrate, I must say: no. Maybe because of my knowledge of Debian, but I really miss a simply “apt-get install apache2″ and a few more apt-get’s to install a great running webserver.
I’m not really sure and I think I will take this day off to think about it and what are the best practices. On the one hand, the ZFS is damn secure, on the other hand, having services running on FreeBSD is hard hard work for me.
Well – enjoy your sunday, I’ll do and I’m happy to have the upcoming week free for holidays
This means: sleeping long and have more time to rethink this all (or simply switching off the computers and having a great time with my wife
).
Ciao
Dennis
PS. I just got a very rude comment on Reddit about this article. I want to make clear, that I don’t blame the software (FreeBSD nor ZFS) in ANY way! It’s great software, but this article shows my current experiences with it. I just wanted to make this clear!













