Deploying VMware Integrated OpenStack (VIO)

VMware has released a relatively new product called VMware Integrated OpenStack (VIO). This product is free for our customers who have Enterprise plus licensing, but actual support for the product is on a per CPU cost basis. Essentially, we have simplified the process for deploying OpenStack into a simple wizard. Although it takes a while to run through all the steps, it’s all done in the background which makes the deployment of this product so much easier for anyone wanting to use it or even just play around with it.

VIO is a very powerful cloud product which allows you or your tenants to quickly and efficiently provision instances (virtual machines). If you would like more information on OpenStack, you can see the following documentation as this guide will mainly be based on how to setup and install VIO.

VIO Quick Start Guide

VIO Administrator Guide

VIO User Guide

VIO Hands on Lab (HOL)

Before starting, it’s important to note that VIO integrates heavily with NSX. While you can use a distributed virtual switch (DVS), I highly recommend that you install and configure NSX before going through the VIO implementation. Once you install VIO, you will have two options, use a DVS, or use NSX, and you won’t be able to switch after it’s all said and done.

Download VMware Integrated OpenStack here: VIO Appliance

As I will be deploying VIO in a lab environment with limited resources I will edit the CPU and Memory of the VIO VMs. You will want to do the same if you are deploying VIO in workstation or a home lab as VIO takes a minimum of 56 CPUs, 192GB of RAM and 565GB of disk space.. yes, you read that correctly.
Let’s get started!

Deploy the VIO OVA

Step 1. The first thing you will do is deploy the VIO Appliance. I have provided the entries I used below. A couple caveats when working through the deployment is to make sure that you enable DRS and only set one NTP server as there are issues when multiple servers are used; this will be fixed in a future release.


Edit default VIO configuration

Success! The initial password is not very fun to deal with, but at least you get to change it right after you login to the console.
Step 2. We are going to modify some of the configuration properties as I am running my deployment in a lab and I want to minimize the amount of resources consumed. If you are not worried about resources, or this is a production deployment, feel free to skip to step 7. Before making changes, you will have to sudo to root.

sudo -s

Step 3. Modify the file as shown below. As habit and best practice, I have taken a backup of the file before proceeding in each of these steps.

root@localhost:~# cd /opt/vmware/vio/etc/
root@localhost:/opt/vmware/vio/etc# cp

Change the following lines
oms.use_linked_clone = false to oms.use_linked_clone = true
oms.datadisk_size = 60 to oms.datadisk_size = 20
You may also want to modify the number of CPUs and Memory that each of the OpenStack VMs will utilize in the same configuration file. The default is shown below, and my configuration follows. = 2
oms.vmsize.cpu.controller = 8
oms.vmsize.cpu.db = 4
oms.vmsize.cpu.dhcp = 4 = 4
oms.vmsize.cpu.memcache = 2
oms.vmsize.cpu.compute = 2 = 2
oms.vmsize.cpu.smoke = 2

# MB = 4096
oms.vmsize.memory.controller = 16384
oms.vmsize.memory.db = 16384
oms.vmsize.memory.dhcp = 16384 = 16384
oms.vmsize.memory.memcache = 16384
oms.vmsize.memory.compute = 4096 = 4096
oms.vmsize.memory.smoke = 4096 = 1
oms.vmsize.cpu.controller = 1
oms.vmsize.cpu.db = 1
oms.vmsize.cpu.dhcp = 1 = 1
oms.vmsize.cpu.memcache = 1
oms.vmsize.cpu.compute = 1 = 1
oms.vmsize.cpu.smoke = 1

# MB = 1024
oms.vmsize.memory.controller = 3072
oms.vmsize.memory.db = 3072
oms.vmsize.memory.dhcp = 3072 = 3072
oms.vmsize.memory.memcache = 3072
oms.vmsize.memory.compute = 1024 = 1024
oms.vmsize.memory.smoke = 1024

oms.disable_datastores_anti_affinity = false
oms.disable_hosts_anti_affinity = false
oms.skip_cluster_vmotion_check = false


Step 4. Next, I will change the number of backup edge vms, which are essentially on standby whenever networking needs to be provisioned.

root@localhost:/opt/vmware/vio/etc# cd /var/lib/vio/ansible/roles/config-controller/templates/etc/neutron/plugins/vmware
root@localhost:/var/lib/vio/ansible/roles/config-controller/templates/etc/neutron/plugins/vmware# cp nsxv.ini nsxv.ini.old

Add the following line to the nsxv.ini file.

backup_edge_pool = service:large:1:3,service:compact:1:3,vdr:large:1:3

Step 5. Finally, because my lab is relatively slow, I have increased the neutron timeout from 900 to 1800. I have provided a picture of the timeout being changed below.

root@localhost:/var/lib/vio/ansible/roles/config-controller/templates/etc/neutron/plugins/vmware# cd /var/lib/vio/ansible/roles/config-controller/tasks/
root@localhost:/var/lib/vio/ansible/roles/config-controller/tasks# cp neutron.yml neutron.yml.old

Step 6. Reboot VIO Management Server

Deploying VMware Integrated OpenStack

Step 7. Log into vSphere Web Client and click the VIO link
Step 8. Click Summary, Deploy Open Stack
Step 9. Follow the wizard to configure your VIO deployment. While this may seem long, it definitely simplifies the entire process on the backend for you! I have provided my configuration as an example below.
Step 10. It will then bring you to the monitor screen to watch your progress. There are so many things VIO has to configure, so be patient! In my slow lab this took almost an hour to finish, but that is nothing compared to setting up OpenStack manually!
Step 11. You can click VIO on the left and see it reconfiguring the VMs
Step 12. Finally you see the Status as “Service Ready”
You are now ready to play around with VIO. I will be writing more documentation surrounding VIO and how to use the product but let me know if you have any issues during the deployment as I will do my best to help!

Posted by:

Sean Whitney


  1. Trevor Roberts Jr -  August 28, 2015 - 11:50 am 239

    Hello Sean,

    You can save a little time in your “Edit default VIO configuration” section by restarting the oms service instead of the entire management-server.

    Great write-up! Keep the VIO goodness coming.


    • Sean Whitney -  August 28, 2015 - 12:26 pm 240

      Thanks, Trevor. I figured you could do that as well, but that’s good info to save some time for others!

  2. Robin -  December 31, 2015 - 11:06 pm 364

    Hi Sean,
    I am new to Openstack, we have deployed vmware integrated openstack in our environment. Now we need to increase the controller count, is it possible to do the vcenter console without redeploying it.

    My Current settings: = 1
    oms.vmsize.cpu.controller = 2
    oms.vmsize.cpu.db = 2
    oms.vmsize.cpu.dhcp = 2 = 2
    oms.vmsize.cpu.memcache = 2
    oms.vmsize.cpu.compute = 2 = 1
    oms.vmsize.cpu.smoke = 1
    oms.vmsize.cpu.mongodb = 2

    Planning to increase oms.vmsize.cpu.controller = 2 to 4.

    Thanks in Advance,

  3. samuel -  December 29, 2016 - 9:52 am 548

    Hey Sean, Nice post bro

    I have vio 3 environment running in production. I dont know what happened but in my VC WEB the VMware integrated Openstack Plugin connects to the management-server, but when i try to view the configuration i receive this attached error and it can’t list the configuration of my environment and don’t let me update anything too.
    OBS: the oms service is runing ok

    Do you have any ideas?

    Thank you

  4. shawn dawson -  May 23, 2017 - 8:31 am 590

    Thanks for putting this together. Our team has found it helpful and you saved us time. Cheers.

    • Sean Whitney -  November 4, 2017 - 10:21 am 620

      You’re welcome, Shawn!

  5. uday -  September 10, 2019 - 3:13 am 676

    Here In during VIO deployment, there is no where we have option to specify storage for management POD. What If we have one datastore and vsanDatastore on management cluster. Then VIO VMs might get scattered between vsan and datastores. How can we specifically make VIO VMs to use vsan always?


Leave A Comment

Your email address will not be published. Required fields are marked (required):

Back to Top