KnowThreat will soon be offering VMware VI3 Training, on behalf of VMware, Inc. To celebrate the announcement, I thought I'd post this quick walkthrough detailing my process for building an installing a full VMware Virtual Infrastructure environment using ESX 3 and VC 2 within virtual machines in VMware Fusion Beta on Mac OS X 10.4.10. This environment proved to be ideal for simulation and testing (though performance obviously leaves a bit to be desired) and saved me the trouble of using an Ubuntu daily build just to do the same thing in VMware Workstation via Linux on the same hardware. Further, with VMware Fusion's new “Unity” feature, I can run the VI Client alongside all of my other OS X applications as if it were natively built for the Mac!
After using it pretty constantly for the past two weeks, I can say that VMware Fusion is certainly an excellent basis for the forthcoming GA product, and though there are still a few minor features missing and kinks to work out before we see a 1.0 release, I've been very pleased with its functionality and performance thus far.
In Part I of this walkthrough, I'll show you how to setup VMware Fusion to allow ESX to install, then setup bi-directional connectivity between your laptop and your virtual infrastructure.
- 1 Preparation
- 2 The Physical Environment
- 3 The Virtual Environment
- 4 Building your VVI (Virtual Virtual Infrastructure)
- 5 Setup and Test Connectivity
Before you begin this process, I recommend you free up plenty of disk space. On my first run through this process, I created the virtual disks for both ESX and Windows XP with a bit too little available free space. This process itself can be made significantly easier with the assistance of either Disk Inventory X or GrandPerspective, both of which provide visualizations of your filesystem that should make removing existing disk hogs significantly easier. I'd suggest you leave no less than 20 – 30 GB available specifically for your virtualization environment if you plan to put it to any real use.
The Physical Environment
- MacBook Pro 15“ C2D 2.4 GHz, 2GB, 120GB SATA
- VMware Fusion Beta 4
- VMware ESX, VC, and VCB Insall CDs
- Wired 4-port switch, connected to the Internet
- Private network address space allocated to Virtual Environment
The Virtual Environment
- VMware ESX 3, with 2 CPU's, 1.5GB RAM, 20GB Local VMFS
- Windows XP Pro for VMware VC 2, single CPU, 384MB RAM, 8GB disk
- Windows 2003 Server VM, single CPU, 256MB RAM, 4GB disk
- Ubuntu 7 VM, single CPU, 384MB RAM, 4GB disk
- 20GB SAN datastore
Building your VVI (Virtual Virtual Infrastructure)
Building our environment essentially just consists of creating and customizing a VM to host VMware ESX Server, then creating additional VMs using default settings to hold our VC and other Guest VMs.
Create our ESX VM
- Choose OS: ”Linux“
- Choose Version: ”Red Hat Linux“
- Save as: Whatever You Like
- Where: Wherever You Like (faster HDs better)
- Disk size: ”8.00GB“
- Disk Advanced: Check ”Allocate all“
- Uncheck ”Start virtual machine and install“
- Select ”Use os installation disk“
- Hit ”Finish“
Now, go into the VMs Settings dialog and increase Memory to the amount specified as the ”Recommended maximum“ in the Memory dialog. Select 2 Processors. Set Network to Bridged.
Close VMware Fusion, browse to the location of your ESX VM, select it and choose ”Show Package Contents.“ Then open up the .vmx file and ensure the following values exist as specified.
virtualHW.version = ”6“ scsi0.virtualDev = ”lsilogic“ ethernet0.virtualDev = ”e1000“ ethernet0.addressType = ”generated“ monitor_control.restrict_backdoor = ”TRUE“ monitor_control.vt32 = ”TRUE“ virtualHW.productCompatibility = ”esx“
Close the Package Contents window in Finder, Re-open VMware Fusion, and we're ready to move on.
Boot your ESX VM and install ESX
When you first boot your new VM, Fusion will prompt you to recreate the virtual disk, as it was originally created using a different virtual SCSI adapter. In order for the VM to function properly, you must allow VMware to recreate the virtual disk. Ignore any warnings and move on.
Now, insert your ESX installation CD, boot your VM and install ESX. When giving ESX an IP address, make sure to use an IP on an unused private subnet, not your existing Internet-facing subnet! For example, if your existing network is a 192.168.1.0/24, give the ESX machine an IP within 192.168.254.0/24 or something within 172/12 or 10/8. Next, we'll add an alias to our wired interface so that we can communicate ‘pseudo-privately' with our VVI while maintaining Internet connectivity from our laptop.
Setup and Test Connectivity
First, you'll need to give your MacBook an IP on the private subnet that you established for your ESX VVI. To simplify this, we'll add an alias to our wired interface. Note that this technique will not work on your wireless (en1) interface, as packet forwarding is handled differently and will prevent your laptop from communicating with its VMs.
taylor@[~]: ifconfig en0 en0: flags=8863
mtu 1500 tunnel inet --> inet6 fe80::42b:79fb:fa97:ea12%en0 prefixlen 64 scopeid 0x4 inet 10.254.254.100 netmask 0xffffff00 broadcast 10.254.254.255 media: autoselect (100baseTXtaylor@[~]: sudo ifconfig en0 alias 192.168.254.100 netmask 255.255.255.255 taylor@[~]: ifconfig en0 en0: flags=8863 ) status: active vlan: 0 parent interface: bond interfaces: mtu 1500 tunnel inet --> inet6 fe80::42b:79fb:fa97:ea12%en0 prefixlen 64 scopeid 0x4 inet 10.254.254.100 netmask 0xffffff00 broadcast 10.254.254.255 inet 192.168.254.100 netmask 0xffffffff broadcast 192.168.254.255 media: autoselect (100baseTX ) status: active vlan: 0 parent interface: bond interfaces:
After adding the interface alias, you should be able to ping your ESX VM on the new subnet while maintaining the default route for your laptop through your existing upstream gateway. Note that the VM will otherwise be isolated, as it has no knowledge of any other subnets, nor a route to or through any default routers.
At this point in time, you should have a working ESX installation within a VM on your MacBook and a pseudo-private subnet on which the two can communicate.
In Part II of this series, I'll show you how I setup VC and my virtual-virtual machines, as well as how I setup a virtual SAN for ESX datastores and VM usage!