Mini book review: "The Book of XEN - A Practical Guide For The System Administrator" by Chris Takemura and Luke S. Crawford, published by No Starch Press, copyright 2010, ISBN-10 1059327-186-7, ISBN-13 978-1-59327-186-2
I would first like to begin with some credit as to why I started down the path of Xen. My co-worker Chakri Girda was excellent enough to be my introduction into the real world of using Xen for virtualization. We had been a long time user of various VMWare products to get the virtualization job done. He was the lead on our revamped virtualization project and choose Xen. Good move all around I'd say!
The quest for enlightenment can take many paths. My quest generally does depart from the "path-of-google" when it comes to technology learning. That is I google the item of interest and read some links/pages/source/whatever and make it work. For some reason I just wanted a book. I had an urge to understand Xen virtualization in a greater way. Don't misunderstand, I currently manage 7 Dell PowerEdge Xen servers with 30+ domU's. Not huge by any standard, but enough to make me want to learn some of the "best practices" and not just "it's running and has fail-over". So, A quick google lead me to this book.
Chris and Luke are very clear in the beginning on the CentOS/Redhat Enterprise Linux (slight) slant of the book. But face it, Xen works on everything. And the xm command args don't not change from distro to distro. The sidebars throughout the book provide welcome distractions and helpful titbits as a general rule.
The authors set the practical and pragmatic tone from the start. The introduction clearly sets the stage for the rest of the book by creating a brief and down to earth (mercifully) short background and summary of Xen. No extra fluff. As a bonus, there is an actual "But I Am Impatient!" section that provides a reader with what chapter to turn for "step-by-step instructions" or chapters depending on the type of deployment being considered.
Chapter 1 is the the real introduction to virtualization. A well thought out overview with just enough background. As as overview, you are told that some general concepts are a bit over-simplified to speed you along.
Chapter 2 has to be the most foundational portion of the book. This begins the "Getting Started" with Xen. Well written and laid out for reading. This in spite of being referred as a "step-by-step instructions". It turns out the entire book is written in a very readable manner that goes beyond the regurgitation of man pages or help files. Quite interesting how some of the paragraphs flow more like a novel and less like a how-to. I say this in a good way! As part of the title states, this is, "A Practical Guide". So, chapter 2 is the short version of follow-the-Xen-leader.
Chapter 3 is "Provisioning DomUs" it seems to go out of its way to be distro inclusive when setting up domU's. There is a tar install section, a Redhat/CentOS and even a Debian install section. The information provided even provides insight into the large scale deployment options. The quick and dirty version of SystemImager or Cobbler/koan. The array of choices for the newbie is quite large in this chapter.
Chapter 4 is "Storage With Xen" and begins the, "I know I have shown you the easy way, but that may not be the best way" approach to storage spelled out from chapter 2. What you get here is the blktap -vs- LVM information. The chapter is still presented in a very readable way. However, the spoiler of the chapter, in my opinion, is, "blktap is easy to set up and good for testing, while LVM is scalable and good for production". This chapter not only presents some basic commands, but also provides the foundation of *why*. The "why" something is done is often as important is what is done. So knowing both pieces allows a sysadmin to actually make the best decisions. In this chapter, the, "why" deals with storage allocation choices.
Chapter 5 is simply "Networking". Networking is really the whole focus of this chapter. The authors begin with the startup script hierarchy. Then explains when Xen preforms certain actions - on xend startup or domU startup. Followed by a well laid out how and why to name virtual interfaces. I had to dog ear one of the pages (page 65) as it perfectly explained an odd interface issue being reported by our MAC address monitoring. Nice, very nice.
Chapter 6 is "DomU Management: Tools and Frontends". Again, this chapter steps out to be more disto independent. They make sure to say that there are choices. The authors even provide installation instructions for the frontend tools. Really a continuation of the "step-by-step" approach taken throughout the book. Suffice it to say that there are frontend options and you will need to choose one.
Chapter 7 is "Hosting Untrusted Users under Xen: Lessons from the Trenches". This chapter could have been entitled, "Cover your A$$" or even "Share". The focus of this chapter is sharing (well, maybe imposing restrictions is another way to put it). The reader is gently stepped through a why and how to restrict CPU, IO and even networking. I love the whole system approach to handling DomU's taken in this chapter. The authors clearly provide the basics on how to generally handle each type of resource in a fundamental way. This means using system tools most likely in use already. I suspect this chapter is built from, "college of hard knocks" style learning. The authors are unusually nice when referring to the general user base that lead to this chapter. I would not have been so nice... I consider this chapter a must read no matter if your are a external (public) or internal (company) Xen administrator.
Chapter 8 is "Beyond Linux: Using Xen with other Unix-Like OS's". Honestly, I found this the least interesting. I was lead to this book with the general belief of being CentOS/Redhat centric since these are my OS platform of choice. Needless to say I do not need to know about Solaris or NetBSD.
Chapter 9 is "Xen Migration". This chapter does a good job of exploring the foundation of the migration options ("live" and "cold"). There are command examples for each option provided and well thought out reasoning. A nice addition was the inclusion of storage options in the migration mix. This included basic setup and configuration of ATA over ethernet (AoE) as well as iSCSI. Again, both informational context and actual implementation is provided.
Chapter 10 is "Profiling and Benchmarking under Xen". I was almost expecting a, "this is my kickass benchmark score for my servers" chapter. Luckily, I was wrong. Instead, the chapter lays a well balanced look at testing in general and how it can relate to Xen. Careful attention is noted at the beginning to state that no benchmark is a substitute for a production workload of a server. As common through the book, several options are provided and discussed. I do like inclusion of actual results and a real world application. The OProfile section is a nice addition and goes beyond the usual benchmarking spew. This is the section that provides the real world experience on how a problem was solved. My only issue with this chapter is the need to make all auxiliary program additions a download, configure, make and make install treadmill. Not a good idea for any production server to have 1.)build tools and 2.) "dead programs" that will never get updated and 3.) it's a bad idea.
Chapter 11 is "Citrix Xenserver" Xen For The Enterprise" - What?! A whole chapter devoted to non-Xen. Maybe a longer Introduction that included some of the Xenserver stuff. In spite of stray from Xen at it's core, the chapter does a good job to balance the open source -vs- commercial aspect of Xen core virtualization. I like the "gladiator combat" reference. It's good to have a sense of humor.
Chapter 12 is "HVM: Beyond Paravirtualization". This chapter represents a brief introduction into the HVM install process and setup. The only part that seems out of place is the 5 paragraph
Xen HVM vs. KVM in the middle of the chapter.
Chapter 13 is "Xen and Windows". This short chapter is another nice plunge into a specific implementation are for Xen. Well laid out chapter with good examples and very handy discussion of options. I managed to dog-ear a couple of the pages for later quick reference. The small section on HALs is a good addition in this chapter.
Chapter 14 is "Tips". I always like the real world problem -> resolution sections and this is the pinnacle for this book. This chapter has tidbits of knowledge for all to enjoy. I found the "PCI Forwarding" (passthrough) and a couple of other sections to be of great interest. Good chapter overall and one that *ALL* people should read IMHO.
Chapter 15 is "Troubleshooting". This chapter has the most dog-ears for me with 4. I will likely return to this chapter a couple of times in the near future. I have had (and ignore today) some of the issues noted in this chapter. Issue like the DomU interface number incrementing has just be an annoyance. While the VM restarting too fast has been a major battle on occasion. Another must read for the Xen (want-to-be) server administrator as far as I am concerned.
In summary, a well written book with lots of tidbits of wisdom and years of experience. This was actually an easy read. I would find no issue in recommending this book to a new -> intermediate Xen admin.