Getting Started With Virtualization (Using VMware ESXi) – Part 0 (Quickstart)

I’m working on a series of blog entries, Getting Started With Virtualization (Using VMware ESXi), but before I dig into the background and the details, I wanted to give you something to get yourself started. I know that you, as a sysadmin, want to try before you read instead of after. To help, I’m writing this quickstart first.

  1. Get ESXi
  2. ESXi is a commercially licensed VMware product, even if there’s a free license. You’re going to have to register, so go to VMware, register for a free download (ESXi 5.0 is the newest, but 4.1 is the latest stable that most places have in production), and get your license. Also, while you’re there, make sure to pick up a copy of the vSphere client.

  3. Install ESXi
  4. To install ESXi, you need a supported platform. Because there’s a relatively restrictive set of supported devices, you need to make sure your hardware is on the HCL. I’ve also found this whitebox HCL by very useful.

    If you don’t have a piece of hardware to install on, don’t fret. It’s a poorly kept secret that ESXi can be installed inside of VMware Player (free) or VMware Fusion ($$$).

    You’ll also need a Windows machine to install the vSphere Client on.

  5. Configure ESXi
  6. ESXi installs quickly, mostly because it’s a CD ISO that only takes up a couple hundred megs. Generally speaking, most of the options you’ll be given will make sense to you. If you’re installing on a machine connected to SAN storage, I’d recommend unplugging from the SAN until the machine is configured. The setup is straight forward, but screwing up and wiping out a LUN by accident is no one’s idea of a good time.

    Most of the questions you’ll be asked you should probably already know the answer to. The only real piece of terminology you may not know is “datastore”, which is a piece of accessible storage. It can be anything from a full disk to a partition to an NFS share. If you are asked which datastore you want to install on, it’ll probably be the one that looks like your system disk(s). (Incidentally, if you have fake RAID (i.e. on-motherboard SATA RAID or the like, you’ll probably see two system disks rather than one mirrored set. That’s just because you don’t really have hardware RAID, and ESXi doesn’t support software RAID).

  7. Set up VMs
  8. At this point, you should have ESXi booted up and configured on the network. Install the vSphere Client on a Windows machine and connect it to the IP you gave the ESXi machine. It should load and look something remotely like this:

(compliments of

Double click on VMs and Templates at the top and you should be taken to a screen that looks much more like this:

(Image courtesy of Tech Target)

…only you won’t have any VMs listed on the left. So you’ve got to add some.

Before you do that, though, it helps to have an installation source, like a CD image. Assuming you’ve already got your favorite ISO handy, go pick up a copy of Veeam FastSCP, and use it to put the ISO onto the ESXi server.

Now you’re ready to create a new server, so right click on the server’s IP in the top left corner and follow the instructions for making a new VM. It’ll ask all of the details about the software you’re going to install (and don’t lie – it uses these selections to specify virtual devices and settings assigned to the resulting VM), then it’ll finish, leaving your VM created, but powered off.

Before you go and power it on, click on the machine, then on the “Configuration” tab. Under storage, you can assign an ISO file to the VM’s CD-ROM. Give it the ISO that you transferred over using FastSCP, then right click on the machine and hit “Start”.

There will be a little icon in the bar at the top that looks like a monitor with an arrow pointing out of it. Clicking this button launches the remote console in a pop-out window. Use this to configure the VM.

Inside the VM, install the OS like you normally would. Once you click in the console window, you’ll notice that it eats your mouse pointer and keyboard. To release it, hit ctrl-alt at the same time.

After installing the OS, you’ll need to reboot the VM. After it comes back up, take the time to install VMware Tools by clicking the VM menu in the console screen, going to Guest, then clicking “Install/Upgrade VMware Tools”. This enables you to do useful things like pause the VM, as well as not have the mouse cursor be trapped in a GUI environment on the guest.

This should be enough to get you playing with VMware this weekend. Next week I’ll work on getting some entries out that explain some of the backend things, and show some more useful features that are possible when you start putting vSphere in production environments.

Until then, good luck and have fun!

CloudFlare CDN

I host my site at, but it is essentially a small VPS, probably underpowered for the traffic spikes the my blog gets on occasion. I’ve done a few things to try to improve that time (such as using wp-super-cache, and I’ve investigated using nginx as a front end proxy (or even a replacement) for my web-serving needs, but in the end, all of these solutions require that queries come to my machine.

The ultimate solution is to spread the load across several machines in geographically dispersed locales. The biggest problem with that is that is money; namely that I’m cheap and that solution definitely isn’t.

I thought the situation was hopeless until I was reading this Reddit thread asking what people’s favorite Content Delivery Systems (CDNs) were. Lucidify (who is a god among men. or women. Or whatever gender/species they are) mentioned Cloud Flare as a free CDN.

Free? It’s like you can hear my ears perking up over the internet, isn’t it?

So I checked it out. Sure enough, it’s got three tiers, the bottom being free. And the features are great, even with the free plan. I figured, hey, the performance on my blog is bad enough right now that I can’t possibly screw it up THAT much, right? So I signed up.

Because they’re acting as a reverse proxy for your site, they need to essentially hijack your domain name resolution. They have an automated method of checking for existing DNS entries, to which you then add anything they didn’t find (the only one I had to add was the special Google apps for domains CNAME).

While the scanning is going on, they play a little movie that explains what (and how) they do what they do. There was a little snippet that I got a kick out of:

In the past, if you wanted your website to be faster, safer, or smarter, you needed to add hardware, install software, or change your code. If you think about it, that’s all so 1990s.

I use that phrase a lot, varying the year (or decade), depending on what I’m making fun of (Email is SO 1985. Just ask this guy).

Anyway, eventually you get to the point where you update your domain’s DNS servers to the cloudflare servers, and that’s pretty much it.

If you’re running WordPress, there’s also a wordpress plugin that fixes things that might be otherwise skewed by the reverse-proxy usage (such as IP addresses in comments).

Overall, I’ve been very impressed so far. I don’t know a lot about the backend, but their system status page, they’ve got a dozen servers around the world. I don’t know if everyone’s pages are delivered by each of these sites or not, but even a subset would be likely to help my performance.

Initial gut response by me and everyone I’ve asked to check it out is that the site is running much, much faster. If so, I’m not the first success story. Develop Daily reported that not only is it running better, but their traffic has increased since installing it. Very cool.

If you’ve got a site that is underperforming, think about it and consider whether or not it’s a good candidate for Cloud Flare, because I’m very happy with it so far.

Red Hat: A just target of my wrath?

In the article I wrote yesterday, I directed my wrath at CentOS for a bad experience I had with a new installation. A lot of people called me out on it, and they’re right. CentOS isn’t the cause of the problems that I mentioned – all they’re doing it copying things from upstream.

The design decisions about installations should be directed at them, to be sure. Here’s a snippit from Chapter 9 of RHEL 6 installation guide:

While text mode installations are not explicitly documented, those using the text mode installation program can easily follow the GUI installation instructions. However, because text mode presents you with a simpler, more streamlined installation process, certain options that are available in graphical mode are not also available in text mode. These differences are noted in the description of the installation process in this guide, and include:

  • configuring advanced storage methods such as LVM, RAID, FCoE, zFCP, and iSCSI.
  • customizing the partition layout
  • customizing the bootloader layout
  • selecting packages during installation
  • configuring the installed system with firstboot

At least CentOS has this under the “known issues” section.

Yesterday, I unjustly accused CentOS of making a crappy installation experience and I’m sorry for that.

For the record, I’d love to try out an evaluation of Red Hat Enterprise, but unfortunately, I use gmail:

We noticed that your Red Hat Login uses a personal email address. We’re sorry, but users must have an enterprise or business email address to obtain product evaluations.

Oh well.