Completely Fake Blog

Welcome to my blog

Back to Linux

I switched from a company that provides illumos based products to a company that hosts Linux based solutions. I think you can consider this post part of the trend for sharing experiences in switching to other OS. And while my day to day workstation has been Linuxes since forever, I've last done server work with it in 2012 and there are real changes there I was thrilled to discover.

Since none of illumos distributions known to me support any recently released desktop nor laptop products, I'm using Linux distributions as my working environment for some time now. For various reasons I don't want to discuss here, I chose two distros as my main desktop candidates: Ubuntu and Fedora. After lots of consideration, I finally decided to give Fedora 22 a shot.

What I miss tho from, say, OpenIndiana or FreeBSD is observability tools (mainly DTrace) and boot environments (large feature of ZFS enabled /).

To give you an overview of why boot environments are so cool, consider a compilation of new kernel or firing up a code that may destroy your operating system. With a read/write snapshot of your OS (clone on ZFS nomenclature), which only consumes as much disk space as it takes to store difference between the snapshot itself and your current version of the operating system, you can even run rm -rf /* and later boot to the cloned OS just by choosing a grub menu line.

While many people scratch their heads why it's so cool, once you start using it, it becomes comforting and sometimes useful. Also, snapshots become a great feature to rely on. So I know I can't use FreeBSD (sorry, can't really, need Skype for example) or any ZFS port for Linux. I don't know of any major Linux distro that supports ZFS (well, Gentoo may, I'm not checking it) and, frankly, only sensible port I know of is ZFS in userspace, which don't make me really comfortable.

Thus I decided to go with vanilla kernel available filesystem with redundancy, snapshots and other cool features: btrfs. The problem I have right now is, installation filesystem scheme seems not optimal for managing snapshots of / filesystem. It also seems that any equivalent of illumos' beadm command is not available. Thankfully, Fedora 22 Alpha offers btrfs as one of install options and it's capable of using it without separate extX/reiserFS/whatever /boot partition.

Just as a side note, coming back to Linux made me aware how much ZFS made my life simpler. I forgot that creating a disk partition of 3TB can be a hassle. Actually, I have forgotten about disk partitions at all.

Switching from ZFS to btrfs is pretty painless, as for understanding of filesystem basic ideas and solutions. Bar the terms there's basically the same goal and functionality along with basic concepts. Differences start in design details and implementation, but that's something that can be easily learnt from btrfs wiki. I'd consider reading the wiki anyway, as the similarities may be deceiving.

Btrfs on / is not painless in Fedora 21. Booting with kernel available from installation time results in kernel panic and hung system. Getting more recent kernel, ie. 4.0-rc5 gets everything going. hrw suggested I should try Fedora 22. I had some problems booting it on my laptop, as it seem to hung on something, so I went a different route. Booted to Fedora rescue. Then ran "yum update", "fedup --network" 22 and few hundred megs of software later I booted into Fedora 22.

Being previously in storage company, I kept track of btrfs and few other filesystems, so its current capabilities were not surprising. What was surprising is the amount of maturity that SystemTap has gained since last time I had an interest in it (pre 2011). I remember it was considered hazardous to run stap on production system and many examples from the wiki were not running clearly or not at all. At the moment everything, from stap itself, to documentation, is very high quality.