- David's Church Information Technology - https://infotech.davidszpunar.com -

Explorations with VMware ESXi (now free!) and Linux NICs

Late last month, VMware announced [1] that it was going to make it’s ESXi product [2] free. It’s not the same as the full-blown ESX product, but it’s close enough to get anyone running VMware Server salivating! Including me.

I’m going to have to work on getting a server available to play with this at Lakeview, but it came at a great time for the Indiana District Assemblies of God office where I work one day per week: I had a server that I was about to transition into a role as a virtual server host and ESXi was released freely at just the right time to try it out! My server is a ProLiant DL580 G2 model, which isn’t on the “officially supported” HCL (Hardware Compatibility List) for ESXi, but is for the full ESX. Worth a try; I’m not planning on buying support anyway.

After registering, downloading the ISO image file, burning it to a CD, and booting the CD on the target server, the installation process completed without a hitch. It was so quick and easy, there’s no point in describing the process in detail! If you can’t make it install on supported hardware, you shouldn’t be using servers anyway :-) (You can find how-to guides online easily enough if you do need one, and I will mention that you need to change the BIOS on the DL580 G2 to indicate that the supported OS is “Linux” before installing.)

After installing, the server boots and you get a screen that you can’t actually use to do much. It tells you your IP address (if it obtained one using DHCP, which mine did) and lets you set a root password (which I recommend). Then, you need to visit the IP address of the server from a client machine on the network. This page gives you a download link to install the VMware Infrastructure Client, which you’ll need to actually setup and manage ESXi. Connect with the Client to the IP of the server using the username root (and either a blank password or the one you set earlier if you changed it–you did change it, right?).

I’m using an onboard RAID controller with SCSI storage rather than a SAN (I’ve been told ESXi does not support IDE disks but does work with SATA drives if you need it to), so I didn’t need to set up any iSCSI targets or anything like that, although that appears to be very easy if you’re fortunate enough to have a SAN.

One thing to keep in mind is that you’ll need the free VMware Converter [3] if you want to convert Virtual Machines from a VMware Server installation to your ESXi box. It’s a rather simple process I haven’t really gone through in production yet so I won’t say more, but you can’t just copy the files over and run them.

So far I’m only running a LAMP [4] (Linux/Apache/MySQL/Perl-or-PHP-or-Python) appliance from VirtualAppliances.net [5], which I absolutely love when I need a quick webserver! Installing this from the Virtual Infrastructure Client is very, very easy. File menu->Virtual Appliance->Import. I used the Import from this VirtualAppliances address [6] to the .ovf file needed to install the appliance. Confirm and wait, it has to download the disks from the internet and transmit them to the ESXi server!

I’m using the LAMP server to run the HelpSpot helpdesk [7] application. Since I had this running in a VMware Server appliance already, I simply used the “scp” command to transmit the web files from the existing appliance to the new one, and moved the MySQL database dump over as well. I logged in as root to the appliance and used “aptitude update” and then was able to use “apt-get install php5-imap” and “apt-get install php5-tidy” which are required or recommended for HelpSpot, and I used the web-based configuration to turn on the Zend engine in the Apache configuration, which HelpSpot requires. It popped up and took off like I’d never moved it! I also copied over the cron entries needed to execute the regular email checks that Helpspot does. Note that I’m leaving off a few steps involving DNS changes and firewall modifications because I gave it a new IP address, but basically the move was very easy and straightforward.

Then I ran into trouble, because I like to experiment :-) In the VMware Infrastructure Client, I right-clicked the LAMP VM and told it to “Install/Upgrade VMware Tools” on the VM (it said the Toold were out of date…wouldn’t want that now, would we?). I used the Automatic option with no Advanced Options. Everything seemed to complete successfully, and I rebooted the appliance. Oops, no network! The eth0 network interface was nowhere to be found! (Using “ifdown eth0” and then “ifup eth0” normally disables and re-enables the Ethernet interface, in case you didn’t know (I didn’t, until recently, thanks to #citrt!), but in this case only the localhost “lo” interface showed up at all.) This could be a problem, since the whole point is to be a “networK” server! I tried asking around in the #citrt Church IT Roundtable channel on IRC, where usually someone knows what to do, but I didn’t get much help on this issue from the folks currently in there when I asked. Time for Google! Without too much effort I’m pointed in the right direction, to this forum thread on the Ubuntu Forums [8] (The VA LAMP appliance is based on Debian linux [9]). User “modifiedmind” had the same problem as the original poster, and then found the solution and posted it later…thanks! I couldn’t quite find what to enter as the argument to the modprobe command, but I managed to track it down and this is what I had to do:

  1. Edit the /etc/udev/rules.d/70-persistent-net.rules file on the appliance and delete the last two lines (the one starting “1. PCI device…” and the one beneath it, starting with “SUBSYSTEM==”net”…” (I like using the nano text editor because I’ve never spent the time to learn vi or emacs, so I did an “apt-get install nano” first; make sure to use the -w argument to nano so it doesn’t line-wrap for you, like “nano -w /filename“. Or use whatever text editor you’re comfortable with!)
  2. Run this command: /etc/init.d/udev restart
  3. Run this command: modprobe -r pcnet32
  4. Run this command: modprobe pcnet32
  5. Run this command: ifdown eth0
  6. Run this command: ifup eth0

That’s it. Back to working order! So far I’m very happy with ESXi and I’m going to do everything I can to use it everywhere possible :-) It also has the capability of adding the higher-end features (HA, VMotion, VirtualCenter Manager) just like you can with ESX, if you’re willing to pay for them. I’ve never used them, this is my first ESX/ESXi experience ever, so I figure I’ll be happy without them as long as I don’t use them to see what I’m missing! The biggest thing that ESXi doesn’t have that the “full” ESX has is a “service console” that lets you control the machine locally. I’ve heard that many people have had great success running ESXi on even non-supported hardware, and it should at least run on anything that ESX will run on without a problem (just don’t try to pay for support!).

8 Comments (Open | Close)

8 Comments To "Explorations with VMware ESXi (now free!) and Linux NICs"

#1 Comment By shellie On August 5, 2008 @ 6:35 pm

LUCKY! I have an old Proliant ML370 G2 with a Smart Array 5i embedded and a SCSI disk array. I can’t get either raid to work! I’ve tried everything! I’ve tried installing everything! My old school server hates me. haha. Congrats. I’m jealous.

#2 Comment By Jeffrey Thompson On August 5, 2008 @ 7:49 pm

Great article! I can’t wait to install my ESXi soon. :)

#3 Comment By Carlo On August 12, 2008 @ 3:00 am

Thanks for the detailed explanation on the ESXi install. And thanks for telling me how to download (for free) the VM Client, it was not clear in the VMW docs.
Thanks also for confirm that servers running ESX are compatible with ESXi. The ESXi compatibility list is currently offering too few choices!

#4 Comment By David Szpunar On August 12, 2008 @ 10:35 pm

@Jeffrey Thompson: Glad you liked the article! I started out confused and not understanding the actual process very well (coming from a VMware Virtual Server-only background) but actually doing it clarified things so I thought I’d share what I went through. Hope you haven’t gotten around to installing ESXi yet, since they’ve [10] with their free Update 2 release. Not good for them, I’m running the problematic release but nothing mission critical on it fortunately!

@Carlo: Check out my link above about the bug in the free ESXi! But you’re welcome, I hope you get some good results in your tests! I’m enjoying it so far, minus the whole bug thing, which fortunately came soon enough to spare me much trouble. It’s worse for a lot of people! But I still like the product.

#5 Comment By moses On September 11, 2008 @ 2:53 pm

very good example, it works for me such good, but it tooks me about 4 hours to fix it. reason? i had 4 lines with “1. PCI device…� and the one beneath it, starting with “SUBSYSTEM==�net�…�. you should kill all the lines if you have one ethernetcard and follow the instructions at point 2.

thank you very much, gerd

#6 Comment By David Szpunar On September 14, 2008 @ 7:18 pm

@moses: I’m glad you have it working; sorry if my instructions were at all unclear. I don’t claim to fully understand the bowels of linux, but I usually manage to get by with my existing experience and Google :-)

#7 Comment By Dan On September 14, 2008 @ 9:23 pm


I was wondering if you have encountered a “time conflict” between what VMWare Infrasture Client and what the time is on the ESXi server is.

If I go to Configuration tab, click on “Time and Configuration” next to “Date & Time” moving the mouse over the time, I see an error that says:

“Shows the ESX Server’s time in VI Client local time. The translated ESX Server time does not match VI Client local time.”

What’s really strange, is when I go to the ESXi counsole, and check the logs, the time is correct.

For example:
current time on my workstation is 6:21 pm
current time on esxi server is 6:21 pm
VMware Infrastructure Client gui: 11:22 pm


#8 Comment By David Szpunar On September 21, 2008 @ 10:31 pm

@Dan: That appears to be a bug but frankly, I haven’t used ESXi long enough to run into any issues or be extremely familiar with it. So far, everything running smooth and I’m happy :-) I did take a quick look at the GUI you’re talking about and it does look like the same thing is happening for me, I just don’t claim to understand why and I haven’t seen a reason to be concerned. If you find any more info I’d be happy to hear it!