Back at the end of September this year, I heard through the grapevine that some people in the OPG Engineering Operations Group here at Sun were looking for engineers to do testing and test development on a thing called ZFS.
I’d heard quite a bit about ZFS internally already, so I was pretty excited at the prospect of working on it and, as I’d mentioned before, I didn’t want to be writing translation tools forever. I had poked around at other bits in the company where I thought I’d be able to help out (leave Sun? You’ve got to be kidding !? ) This opportunity came up though, and I figured it’d get me more exposure to Solaris internals and formal testing than I’d had so far in my career, which had been mostly Java development. I applied for the job.
As I hoped I’d get called for an interview, I decided it’d be best to go in with as much background about the project as possible. I found an internal build of
SUNWzfs (as it was then),
pkgadded it to my little Toshiba laptop, and started reading the man pages. Of course, by this stage, you’ll have seen it already integrated in stuff built from a recent snapshot of the OpenSolaris sources, no extra installtion needed.
My initial reaction was one of pure astonishment : ZFS – Is that it ? The answer was a very happy, YES – that’s all there is to it : I’ll talk more about that statement in a future post.
I should point out, that from–an–engineering–perspective, there’s a great deal more to ZFS than first appears, but those details are all nicely hidden behind the scenes: you don’t need to worry about them if you don’t want to. True, they allow for a lot of incredibly nifty features that I’m quite sure others will write about today (and if they don’t, I’ll write more in a separate post), but I think that much of the beauty of ZFS comes from it’s wonderful administrative interface. There’s only a few concepts to learn, and two command line tools,
zpool (for which there’ll also be a GUI available) – but that’s it.
The laptop I installed the software on had only one physical disk. Now, you can use ZFS on machines with one disk, but you don’t get to play with some of the more interesting features of ZFS, allowing you create storage pools backed by RAID-Z or mirrored devices. I plugged in an external USB2 hard disk, and then created a bunch of lofi devices and started playing around. Of course, the first thing I wanted to try was one of ZFS’s Party Tricks – creating a simple mirror of two devices, and
dding some contents of
/dev/random over one side of the mirror (simulating disk corruption) and watching ZFS repair the corrupted disk automatically : wow!
To cut a long story short, 6 interviews and a programming test later, I found out I got the job – and there the fun started. I was joining the project at a rather hectic time in it’s life-cycle. ZFS was due to integrate on Halloween, and my start date was two weeks before that. So, my first experiences with becoming a full-time test-slave, were working from the 22nd Oct – 3rd Nov. non stop in the office at getting (more) familiar with ZFS and doing my best to help out the testing effort – pah, weekends, who needs ’em!
Buckle your seat belt, Dorothy, because Kansas is going bye-bye.