Knowledge Not Memorizing Commands
I find that most “tech books” are filled with a tonne of commands and details that one can’t ever hope to cram in his/her head. Yet authors write, expecting the users to memorize whatever is mentioned in the text.
This book from Michael Lucas and Allan Jude is anything but a boring college textbook. You can enjoy this book on bright Sunday afternoon, in a coffee shop, without having a ZFS pool to actually work on. The writing incites visual imagination in the mind of the readers. How zpools are constructed, how disks are grouped into vdevs and how various datasets can share a given zpool you will learn about it all without having to memorize anything. When in doubt, the book serves as a decent reference text as well. Although I much prefer man pages because software gets updated whereas the books stay the same.
Without overwhelming the readers with a tonne of commands and tuneable parameters, FreeBSD Mastery: ZFS imparts knowledge. After reading this book, you would know what to do when confronted with the task of creating your own zpool and zfs datasets. The trade-offs between redundancy (offered via mirroring, RAID-Z, etc) and performance (read/write speed) is discussed at length, for example.
Both the authors of this book have had years of experience with various UNIX and Linux systems before they settled down with FreeBSD. The same is true with storage devices. From spinning disks to NVMe flash and from FAT32 to FFS they have dealt with it all, so you don’t have to.
“A wise man learns from the experience of others.” and this book provides the perfect opportunity for you to do so. Michael Lucas is not only an experienced sysadmin but also a seasoned writer (he writes both fiction and non-fiction), so the book is full of witty remarks and humor, unlike other texts which are all just dry passionless documentation of a system.
A Word for New Users
If you are young enough to not know anything about the state of computing back in late 90s and early 2000s, consider yourself lucky. This was the time when both the disk technology and file systems were constantly evolving. People created abstractions like Volume Manager to represent multiple disks as a single one. Vendors manufactured disks that would report different sector size in different scenarios and so on.
A lot of unclean ways were used to manage storage arrays, not the least of which were hardware RAID controllers which are often irreplaceable and act as a single point of failure — the one thing that they were supposed to mitigate.
There are references to the older technologies, mostly about things like volume manager, RAID controller, etc. Look in the web for these words if you don’t quite get what they mean, it will provide you with a nice contrast between the way ZFS treats your disks vs how traditionally they were treated.
With sophisticated software like OpenZFS user often worry they won’t know what to do. However, sophistication doesn’t necessarily imply complication. The question users should be asking themselves is, “How does it work?” everything else will follow naturally. It designed to be easy enough that one can use it single-handedly, you know.
The first chapter gives an overview of ZFS, its history, its purpose, a few introductory commands and how the rest of the book is arranged. The second and third chapter dive into vdevs and zpools and takes you through the thought process before you arrange and format your disks with ZFS. What type of redundancy you may want striping, mirroring, raidz, etc? How will the performance be affected? And so on. These are ZFS specific abstractions and therefore its important for the beginners to understand them straight away. Fortunately, the writing is also unambiguous and paints a clear picture of everything that happens under the hood.
Once you have arranged and formatted the disks, the chapter on datasets (‘dataset’ is another term for filesystem in ZFS lingo) follows next. Here, you get to tune parameters on a filesystem level. Reserve spaces for dataset, restricting datasets from hogging up all of the space, setting up compression, etc can be learnt in here.
The chapters that follow after this are mostly on maintenance of your zpool. How to check for errors, what to do when a disk fails, etc. There’s also a chapter dedicated to snapshots and clones which is immensely helpful and takes full advantage of ZFS’ copy-on-write functionality.
If you just go through the first 4 chapters that is enough for you to get started with your own ZFS setup. You can treat the rest of the book as a useful reference material for when you need to look something up. However, I doubt if you will be able to stop at just chapter 4. The writing is entertaining and incites curiosity. You will be left wanting for some more action after you are done with the book
If you really want to go down the rabbit-hole of ZFS, there’s also “FreeBSD Mastery: Advanced ZFS” which is next on my reading list. If you want something more general than just storage, check out the author’s new Absolute FreeBSD, 3rd Edition.