OpenStack and VMware vSphere Integration with Mirantis Fuel


As I’m expecting some interesting news around VMware’s OpenStack strategy at VMWorld 2014 next week, I’m writing this post about OpenStack and vSphere integration especially around Nova compute.  I hear people talk about OpenStack vs. VMware but that’s missing the point of the argument.  In OpenStack world, VMWare ESXi is one of hypervisor options (KVM, QEMU, Xen, Docker or ESXi).  VMware provides a Nova vCenter driver, which enables the nova-compute service to communicate with vCenter to deploy OpenStack instance on ESXi cluster via Horizon Dashboard (or CLI).  The vCenter driver gives customers to advanced vSphere features like vMotion, HA and DRS, which many customers have been using and felt comfortable.

Back in November, 2013 at OpenStack Summit in Hong Kong, VMware and Mirantis announced a partnership to enable customers to use Mirantis OpenStack Distribution with VMware Solutions for Compute, Networking and Storage.  Current Mirantis OpenStack (MOS) release has vCenter driver integration with Icehouse and plan to have NSX driver integration in the future.

In my previous post, I wrote OpenStack deployment in virtual box.  In this post, I will walk through how to deploy OpenStack Icehouse in ESX environment with ESXi as hypervisor using Mirantis Fuel.

OpenStack Environment in this deployment

  • Fuel Master Node
  • Controller Node
  • Cinder Storage Node
  • ESX cluster (Compute) – Above three nodes are also running as Virtual Machine on the same ESXi cluster

Networking Setup in ESXi cluster

In my lab environment, 2 standard switches and following port groups are used in this OpenStack deployment.  I have a DHCP running on vSwitch0 network, so I created separate vSwitch1 with no uplink to place a “PXE/Storage/Mgmt” port group. DHCP on fuel master node and slave nodes which will PXE boot will be placed on the port group to avoid conflict with existing DHCP.  Also, you will need to create a port group called “br100” to be recognized for OpenStack instances to connect to.

  • VM Network – VLAN ID: – / Promiscuous mode: accept
    • OpenStack Public network & vCenter Management network (untagged) –
  • br100 – VLAN ID: All (4095) / Promiscuous mode: accept
    • OpenStack Fixed (Private) network (tagged as VLAN103) –
  • PXE / Storage / Mgmt – VLAN ID: All (4095) / Promiscuous mode: accept
    • Fuel Admin (PXE) network (untagged) – (Automatically assigned by Fuel)
    • OpenStack Management network (tagged as VLAN101) –
    • OpenStack Storage network for Cinder (tagged as VLAN102) –

Screen Shot 2014-08-19 at 5.31.43 AM Screen Shot 2014-08-19 at 5.29.57 AM

Create Fuel-master VM and install Fuel 

  • First, create a fuel-master VM (Guest OS – CentOS 64-bit) with following settings
  • Download Mirantis Fuel ISO, copy it to a VMFS then map to CD/DVD drive on the VM
  • Power up the VM.  It will start the Fuel installation

Screen Shot 2014-08-19 at 5.50.14 AM

  • When installation is done, log in as root (root/r00tme)
  • Type “fuelmenu” to bring up setup menu and update networking, DNS, hostname and NTP as necessary
  • In my lab environment, I configured eth1 to put static IP address to make fuel GUI accessible from VM Network.
[root@fuel ~]# fuelmenu


Create Controller node & Cinder node VM’s

  • Create two VMs (Guest OS: CentOS 64-bit) with following settings
  • Power up VMs.  It will PXE boot on eth0 (Network adapter 1)

Screen Shot 2014-08-19 at 5.50.54 AM

Deploying OpenStack Environment with ESXi as Nova Compute

  • Follow the same step as my previous post to create a new OpenStack environment
  • To log in Fuel UI I used IP address that I configured on eth1 on previous step
  • Specify vCetner as Compute this time, rest of selections are all same

Screen Shot 2014-08-19 at 6.13.49 AM

  • > Settings
  • Fill out the vCenter section, and then Save settings

Screen Shot 2014-08-19 at 6.17.42 AM

  • > Networks
  • Fill out the Network Settings fields, and then Save settings.  My lab environment looks like this.

Screen Shot 2014-08-19 at 6.22.01 AM Screen Shot 2014-08-19 at 6.22.30 AM

  • Follow the same step as my previous post to assign controller and cinder role to two discovered node as below
  • It’s NOT ready to hit Deploy Changes…

Screen Shot 2014-08-19 at 6.28.14 AM

  • Once a role is assigned, select the controller node
  • > Configure Interfaces
  • Configure interfaces as below
  • Repeat same on the cinder node.  Once the interfaces configured on both node
  • > Back To Node List

Screen Shot 2014-08-19 at 6.23.55 AM

  • > Deploy Changes
  • OpenStack deployment with vCenter is done!

Screen Shot 2014-08-19 at 6.40.03 AM

Launch an instance from OpenStack Horizon Dashboard

  • Log into OpenStack dashboard
  • Username: admin / Password: admin
  • > Hypervisors
  • You can see VMWare vCenter Server listed as Hypervisors

Screen Shot 2014-08-19 at 6.40.45 AM

  • > Images
  • You can see a pre-loaded TestVM image is VMDK format

Screen Shot 2014-08-21 at 11.13.58 PM

  • Let’s Launch Instance using default TestVM image

Screen Shot 2014-08-19 at 6.41.53 AM

  • Now the instance is active and running on the ESXi cluster
  • I associated a floating IP address – was assigned from a range of floating IP I defined in the Fuel

Screen Shot 2014-08-19 at 6.43.54 AM

  • See ID in Instance Details

Screen Shot 2014-08-19 at 6.44.12 AM

  • In vSphere Web client, you can see a running VM named the instance ID

Screen Shot 2014-08-19 at 6.46.38 AM

I hope this post help those who are interested in OpenStack to get start with an existing VMware environment and to understand its integration with vSphere.  Any feedbacks and corrections are welcome.